summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/certsrv/selftests/ISelfTest.java
blob: 875cd8a02657821ef9d0728f18739eaaa1ab8e60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// --- BEGIN COPYRIGHT BLOCK ---
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// (C) 2007 Red Hat, Inc.
// All rights reserved.
// --- END COPYRIGHT BLOCK ---
// package statement //
///////////////////////

package com.netscape.certsrv.selftests;

///////////////////////
// import statements //
///////////////////////

import java.util.Locale;

import com.netscape.certsrv.base.IConfigStore;
import com.netscape.certsrv.logging.ILogEventListener;

//////////////////////
// class definition //
//////////////////////

/**
 * This class defines the interface of an individual self test.
 * <P>
 * 
 * @version $Revision$, $Date$
 */
public interface ISelfTest {
    // //////////////////////
    // default parameters //
    // //////////////////////

    // ////////////////////////
    // ISelfTest parameters //
    // ////////////////////////

    public static final String PROP_PLUGIN = "plugin";

    // ///////////////////
    // default methods //
    // ///////////////////

    // /////////////////////
    // ISelfTest methods //
    // /////////////////////

    /**
     * Initializes this subsystem with the configuration store associated with
     * this instance name.
     * <P>
     * 
     * @param subsystem the associated subsystem
     * @param instanceName the name of this self test instance
     * @param parameters configuration store (self test parameters)
     * @exception EDuplicateSelfTestException subsystem has duplicate name/value
     * @exception EInvalidSelfTestException subsystem has invalid name/value
     * @exception EMissingSelfTestException subsystem has missing name/value
     */
    public void initSelfTest(ISelfTestSubsystem subsystem, String instanceName,
            IConfigStore parameters) throws EDuplicateSelfTestException,
            EInvalidSelfTestException, EMissingSelfTestException;

    /**
     * Notifies this subsystem if it is in execution mode.
     * <P>
     * 
     * @exception ESelfTestException failed to start
     */
    public void startupSelfTest() throws ESelfTestException;

    /**
     * Stops this subsystem. The subsystem may call shutdownSelfTest anytime
     * after initialization.
     * <P>
     */
    public void shutdownSelfTest();

    /**
     * Returns the name associated with this self test. This method may return
     * null if the self test has not been intialized.
     * <P>
     * 
     * @return instanceName of this self test
     */
    public String getSelfTestName();

    /**
     * Returns the root configuration storage (self test parameters) associated
     * with this subsystem.
     * <P>
     * 
     * @return configuration store (self test parameters) of this subsystem
     */
    public IConfigStore getSelfTestConfigStore();

    /**
     * Retrieves description associated with an individual self test. This
     * method may return null.
     * <P>
     * 
     * @param locale locale of the client that requests the description
     * @return description of self test
     */
    public String getSelfTestDescription(Locale locale);

    /**
     * Execute an individual self test.
     * <P>
     * 
     * @param logger specifies logging subsystem
     * @exception ESelfTestException self test exception
     */
    public void runSelfTest(ILogEventListener logger) throws ESelfTestException;
}