001    /*
002     * CDDL HEADER START
003     *
004     * The contents of this file are subject to the terms of the
005     * Common Development and Distribution License, Version 1.0 only
006     * (the "License").  You may not use this file except in compliance
007     * with the License.
008     *
009     * You can obtain a copy of the license at
010     * docs/licenses/cddl.txt
011     * or http://www.opensource.org/licenses/cddl1.php.
012     * See the License for the specific language governing permissions
013     * and limitations under the License.
014     *
015     * When distributing Covered Code, include this CDDL HEADER in each
016     * file and include the License file at
017     * docs/licenses/cddl.txt.  If applicable,
018     * add the following below this CDDL HEADER, with the fields enclosed
019     * by brackets "[]" replaced with your own identifying information:
020     *      Portions Copyright [yyyy] [name of copyright owner]
021     *
022     * CDDL HEADER END
023     *
024     *
025     *      Copyright 2010-2012 UnboundID Corp.
026     */
027    package com.unboundid.directory.sdk.ds.types;
028    
029    
030    
031    import com.unboundid.util.ThreadSafety;
032    import com.unboundid.util.ThreadSafetyLevel;
033    
034    
035    
036    /**
037     * This enum defines a set of dependencies that may need to be satisfied by a
038     * component which is to be invoked at server startup.
039     */
040    @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE)
041    public enum StartupDependency
042    {
043      /**
044       * This dependency will be satisfied after the access control handler has been
045       * initialized.
046       */
047      ACCESS_CONTROL,
048    
049    
050    
051      /**
052       * This dependency will be satisfied after the alert handlers have been
053       * initialized.
054       */
055      ALERT_HANDLERS,
056    
057    
058    
059      /**
060       * This dependency will be satisfied after the backends have been initialized.
061       */
062      BACKENDS,
063    
064    
065    
066      /**
067       * This dependency will be satisfied after the certificate mappers have been
068       * initialized.
069       */
070      CERTIFICATE_MAPPERS,
071    
072    
073    
074      /**
075       * This dependency will be satisfied after the change subscription handlers
076       * have been initialized.
077       */
078      CHANGE_SUBSCRIPTION_HANDLERS,
079    
080    
081    
082      /**
083       * This dependency will be satisfied after the client connection policies have
084       * been initialized.
085       */
086      CLIENT_CONNECTION_POLICIES,
087    
088    
089    
090      /**
091       * This dependency will be satisfied after the config audit log has been
092       * initialized.
093       */
094      CONFIG_AUDIT_LOG,
095    
096    
097    
098      /**
099       * This dependency will be satisfied after the connection handlers have been
100       * initialized.
101       */
102      CONNECTION_HANDLERS_INITIALIZED,
103    
104    
105    
106      /**
107       * This dependency will be satisfied after the connection handlers have been
108       * started.
109       */
110      CONNECTION_HANDLER_STARTED,
111    
112    
113    
114      /**
115       * This dependency will be satisfied after the core configuration (the
116       * configuration properties associated with the "cn=config" entry itself) has
117       * been initialized.
118       */
119      CORE_CONFIG,
120    
121    
122    
123      /**
124       * This dependency will be satisfied after the criteria subsystem has been
125       * initialized.
126       */
127      CRITERIA,
128    
129    
130    
131      /**
132       * This dependency will be satisfied after the crypto manager has been
133       * initialized.
134       */
135      CRYPTO_MANAGER_INITIALIZED,
136    
137    
138    
139      /**
140       * This dependency will be satisfied after crypto manager synchronization has
141       * been enabled.
142       */
143      CRYPTO_MANAGER_SYNCHRONIZATION,
144    
145    
146    
147      /**
148       * This dependency will be satisfied after the entry cache has been
149       * initialized.
150       */
151      ENTRY_CACHE,
152    
153    
154    
155      /**
156       * This dependency will be satisfied after the extended operation handlers
157       * have been initialized.
158       */
159      EXTENDED_OPERATION_HANDLERS,
160    
161    
162    
163      /**
164       * This dependency will be satisfied after the external servers have been
165       * initialized.
166       */
167      EXTERNAL_SERVERS,
168    
169    
170    
171      /**
172       * This dependency will be satisfied after the group implementations have
173       * been initialized.
174       */
175      GROUPS,
176    
177    
178    
179      /**
180       * This dependency will be satisfied after the identity mappers have been
181       * initialized.
182       */
183      IDENTITY_MAPPERS,
184    
185    
186    
187      /**
188       * This dependency will be satisfied after the key manager providers and trust
189       * manager providers have been initialized.
190       */
191      KEY_AND_TRUST_MANAGERS,
192    
193    
194    
195      /**
196       * This dependency will be satisfied after the locations have been
197       * initialized.
198       */
199      LOCATIONS,
200    
201    
202    
203      /**
204       * This dependency will be satisfied after the log rotation policies, log
205       * retention policies, and log publishers have been initialized.
206       */
207      LOGGING,
208    
209    
210    
211      /**
212       * This dependency will be satisfied after the log field mappings have been
213       * initialized.
214       */
215      LOG_FIELD_MAPPINGS,
216    
217    
218    
219      /**
220       * This dependency will be satisfied after the MIB providers have been
221       * initialized.
222       */
223      MIB_PROVIDERS,
224    
225    
226    
227      /**
228       * This dependency will be satisfied after the monitor providers have been
229       * initialized.
230       */
231      MONITOR_PROVIDERS,
232    
233    
234    
235      /**
236       * This dependency will be satisfied after the password policy components have
237       * been initialized.
238       */
239      PASSWORD_POLICY,
240    
241    
242    
243      /**
244       * This dependency will be satisfied after the plugins have been initialized.
245       * Note that this will apply only for plugins that have not explicitly
246       * overridden the set of startup dependencies.
247       */
248      PLUGINS,
249    
250    
251    
252      /**
253       * This dependency will be satisfied after the proxy-related configuration has
254       * been initialized.
255       */
256      PROXY_CONFIG,
257    
258    
259    
260      /**
261       * This dependency will be satisfied after replication has been initialized.
262       */
263      REPLICATION,
264    
265    
266    
267      /**
268       * This dependency will be satisfied after the synchronization server
269       * components have been initialized.
270       */
271      SYNCHRONIZATION_SERVER,
272    
273    
274    
275      /**
276       * This dependency will be satisfied after the SASL mechanism handlers have
277       * been initialized.
278       */
279      SASL_MECHANISM_HANDLERS,
280    
281    
282    
283      /**
284       * This dependency will be satisfied after all of the schema has been
285       * initialized.
286       */
287      SCHEMA,
288    
289    
290    
291      /**
292       * This dependency will be satisfied after all other startup processing has
293       * completed.
294       */
295      STARTUP_COMPLETE,
296    
297    
298    
299      /**
300       * This dependency will be satisfied after all the subtree views have been
301       * initialized.
302       */
303      SUBTREE_VIEWS,
304    
305    
306    
307      /**
308       * This dependency will be satisfied after the supported controls have been
309       * initialized.
310       */
311      SUPPORTED_CONTROLS,
312    
313    
314    
315      /**
316       * This dependency will be satisfied after the supported features have been
317       * initialized.
318       */
319      SUPPORTED_FEATURES,
320    
321    
322    
323      /**
324       * This dependency will be satisfied after the virtual attribute providers
325       * have been initialized.
326       */
327      VIRTUAL_ATTRIBUTES,
328    
329    
330    
331      /**
332       * This dependency will be satisfied after the work queue has been
333       * initialized.
334       */
335      WORK_QUEUE;
336    }