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-2014 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 alarm manager has been
053       * initialized.
054       */
055      ALARMS,
056    
057    
058    
059      /**
060       * This dependency will be satisfied after the alert handlers have been
061       * initialized.
062       */
063      ALERT_HANDLERS,
064    
065    
066    
067      /**
068       * This dependency will be satisfied after the backends have been initialized.
069       */
070      BACKENDS,
071    
072    
073    
074      /**
075       * This dependency will be satisfied after the certificate mappers have been
076       * initialized.
077       */
078      CERTIFICATE_MAPPERS,
079    
080    
081    
082      /**
083       * This dependency will be satisfied after the change subscription handlers
084       * have been initialized.
085       */
086      CHANGE_SUBSCRIPTION_HANDLERS,
087    
088    
089    
090      /**
091       * This dependency will be satisfied after the client connection policies have
092       * been initialized.
093       */
094      CLIENT_CONNECTION_POLICIES,
095    
096    
097    
098      /**
099       * This dependency will be satisfied after the config audit log has been
100       * initialized.
101       */
102      CONFIG_AUDIT_LOG,
103    
104    
105    
106      /**
107       * This dependency will be satisfied after the connection handlers have been
108       * initialized.
109       */
110      CONNECTION_HANDLERS_INITIALIZED,
111    
112    
113    
114      /**
115       * This dependency will be satisfied after the connection handlers have been
116       * started.
117       */
118      CONNECTION_HANDLER_STARTED,
119    
120    
121    
122      /**
123       * This dependency will be satisfied after the core configuration (the
124       * configuration properties associated with the "cn=config" entry itself) has
125       * been initialized.
126       */
127      CORE_CONFIG,
128    
129    
130    
131      /**
132       * This dependency will be satisfied after the criteria subsystem has been
133       * initialized.
134       */
135      CRITERIA,
136    
137    
138    
139      /**
140       * This dependency will be satisfied after the replication assurance policy
141       * manager has been initialized.
142       */
143      REPLICATION_ASSURANCE_POLICIES,
144    
145    
146    
147      /**
148       * This dependency will be satisfied after the crypto manager has been
149       * initialized.
150       */
151      CRYPTO_MANAGER_INITIALIZED,
152    
153    
154    
155      /**
156       * This dependency will be satisfied after crypto manager synchronization has
157       * been enabled.
158       */
159      CRYPTO_MANAGER_SYNCHRONIZATION,
160    
161    
162    
163      /**
164       * This dependency will be satisfied after the entry cache has been
165       * initialized.
166       */
167      ENTRY_CACHE,
168    
169    
170    
171      /**
172       * This dependency will be satisfied after the extended operation handlers
173       * have been initialized.
174       */
175      EXTENDED_OPERATION_HANDLERS,
176    
177    
178    
179      /**
180       * This dependency will be satisfied after the external servers have been
181       * initialized.
182       */
183      EXTERNAL_SERVERS,
184    
185    
186    
187      /**
188       * This dependency will be satisfied after gauges have been initialized.
189       */
190      GAUGES,
191    
192    
193    
194      /**
195       * This dependency will be satisfied after the group implementations have
196       * been initialized.
197       */
198      GROUPS,
199    
200    
201    
202      /**
203       * This dependency will be satisfied after the identity mappers have been
204       * initialized.
205       */
206      IDENTITY_MAPPERS,
207    
208    
209    
210      /**
211       * This dependency will be satisfied after the key manager providers and trust
212       * manager providers have been initialized.
213       */
214      KEY_AND_TRUST_MANAGERS,
215    
216    
217    
218      /**
219       * This dependency will be satisfied after the locations have been
220       * initialized.
221       */
222      LOCATIONS,
223    
224    
225    
226      /**
227       * This dependency will be satisfied after the log rotation policies, log
228       * retention policies, and log publishers have been initialized.
229       */
230      LOGGING,
231    
232    
233    
234      /**
235       * This dependency will be satisfied after the log field mappings have been
236       * initialized.
237       */
238      LOG_FIELD_MAPPINGS,
239    
240    
241    
242      /**
243       * This dependency will be satisfied after the MIB providers have been
244       * initialized.
245       */
246      MIB_PROVIDERS,
247    
248    
249    
250      /**
251       * This dependency will be satisfied after the monitor providers have been
252       * initialized.
253       */
254      MONITOR_PROVIDERS,
255    
256    
257    
258      /**
259       * This dependency will be satisfied after the password policy components have
260       * been initialized.
261       */
262      PASSWORD_POLICY,
263    
264    
265    
266      /**
267       * This dependency will be satisfied after the plugins have been initialized.
268       * Note that this will apply only for plugins that have not explicitly
269       * overridden the set of startup dependencies.
270       */
271      PLUGINS,
272    
273    
274    
275      /**
276       * This dependency will be satisfied after the proxy-related configuration has
277       * been initialized.
278       */
279      PROXY_CONFIG,
280    
281    
282    
283      /**
284       * This dependency will be satisfied after replication has been initialized.
285       */
286      REPLICATION,
287    
288    
289    
290      /**
291       * This dependency will be satisfied after the synchronization server
292       * components have been initialized.
293       */
294      SYNCHRONIZATION_SERVER,
295    
296    
297    
298      /**
299       * This dependency will be satisfied after the SASL mechanism handlers have
300       * been initialized.
301       */
302      SASL_MECHANISM_HANDLERS,
303    
304    
305    
306      /**
307       * This dependency will be satisfied after all of the schema has been
308       * initialized.
309       */
310      SCHEMA,
311    
312    
313    
314      /**
315       * This dependency will be satisfied after all other startup processing has
316       * completed.
317       */
318      STARTUP_COMPLETE,
319    
320    
321    
322      /**
323       * This dependency will be satisfied after the subtree accessibility manager
324       * has been initialized.
325       */
326      SUBTREE_ACCESSIBILITY,
327    
328    
329    
330      /**
331       * This dependency will be satisfied after all the subtree views have been
332       * initialized.
333       */
334      SUBTREE_VIEWS,
335    
336    
337    
338      /**
339       * This dependency will be satisfied after the supported controls have been
340       * initialized.
341       */
342      SUPPORTED_CONTROLS,
343    
344    
345    
346      /**
347       * This dependency will be satisfied after the supported features have been
348       * initialized.
349       */
350      SUPPORTED_FEATURES,
351    
352    
353    
354      /**
355       * This dependency will be satisfied after the virtual attribute providers
356       * have been initialized.
357       */
358      VIRTUAL_ATTRIBUTES,
359    
360    
361    
362      /**
363       * This dependency will be satisfied after the work queue has been
364       * initialized.
365       */
366      WORK_QUEUE;
367    }