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-2013 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 replication assurance policy
133       * manager has been initialized.
134       */
135      REPLICATION_ASSURANCE_POLICIES,
136    
137    
138    
139      /**
140       * This dependency will be satisfied after the crypto manager has been
141       * initialized.
142       */
143      CRYPTO_MANAGER_INITIALIZED,
144    
145    
146    
147      /**
148       * This dependency will be satisfied after crypto manager synchronization has
149       * been enabled.
150       */
151      CRYPTO_MANAGER_SYNCHRONIZATION,
152    
153    
154    
155      /**
156       * This dependency will be satisfied after the entry cache has been
157       * initialized.
158       */
159      ENTRY_CACHE,
160    
161    
162    
163      /**
164       * This dependency will be satisfied after the extended operation handlers
165       * have been initialized.
166       */
167      EXTENDED_OPERATION_HANDLERS,
168    
169    
170    
171      /**
172       * This dependency will be satisfied after the external servers have been
173       * initialized.
174       */
175      EXTERNAL_SERVERS,
176    
177    
178    
179      /**
180       * This dependency will be satisfied after the group implementations have
181       * been initialized.
182       */
183      GROUPS,
184    
185    
186    
187      /**
188       * This dependency will be satisfied after the identity mappers have been
189       * initialized.
190       */
191      IDENTITY_MAPPERS,
192    
193    
194    
195      /**
196       * This dependency will be satisfied after the key manager providers and trust
197       * manager providers have been initialized.
198       */
199      KEY_AND_TRUST_MANAGERS,
200    
201    
202    
203      /**
204       * This dependency will be satisfied after the locations have been
205       * initialized.
206       */
207      LOCATIONS,
208    
209    
210    
211      /**
212       * This dependency will be satisfied after the log rotation policies, log
213       * retention policies, and log publishers have been initialized.
214       */
215      LOGGING,
216    
217    
218    
219      /**
220       * This dependency will be satisfied after the log field mappings have been
221       * initialized.
222       */
223      LOG_FIELD_MAPPINGS,
224    
225    
226    
227      /**
228       * This dependency will be satisfied after the MIB providers have been
229       * initialized.
230       */
231      MIB_PROVIDERS,
232    
233    
234    
235      /**
236       * This dependency will be satisfied after the monitor providers have been
237       * initialized.
238       */
239      MONITOR_PROVIDERS,
240    
241    
242    
243      /**
244       * This dependency will be satisfied after the password policy components have
245       * been initialized.
246       */
247      PASSWORD_POLICY,
248    
249    
250    
251      /**
252       * This dependency will be satisfied after the plugins have been initialized.
253       * Note that this will apply only for plugins that have not explicitly
254       * overridden the set of startup dependencies.
255       */
256      PLUGINS,
257    
258    
259    
260      /**
261       * This dependency will be satisfied after the proxy-related configuration has
262       * been initialized.
263       */
264      PROXY_CONFIG,
265    
266    
267    
268      /**
269       * This dependency will be satisfied after replication has been initialized.
270       */
271      REPLICATION,
272    
273    
274    
275      /**
276       * This dependency will be satisfied after the synchronization server
277       * components have been initialized.
278       */
279      SYNCHRONIZATION_SERVER,
280    
281    
282    
283      /**
284       * This dependency will be satisfied after the SASL mechanism handlers have
285       * been initialized.
286       */
287      SASL_MECHANISM_HANDLERS,
288    
289    
290    
291      /**
292       * This dependency will be satisfied after all of the schema has been
293       * initialized.
294       */
295      SCHEMA,
296    
297    
298    
299      /**
300       * This dependency will be satisfied after all other startup processing has
301       * completed.
302       */
303      STARTUP_COMPLETE,
304    
305    
306    
307      /**
308       * This dependency will be satisfied after the subtree accessibility manager
309       * has been initialized.
310       */
311      SUBTREE_ACCESSIBILITY,
312    
313    
314    
315      /**
316       * This dependency will be satisfied after all the subtree views have been
317       * initialized.
318       */
319      SUBTREE_VIEWS,
320    
321    
322    
323      /**
324       * This dependency will be satisfied after the supported controls have been
325       * initialized.
326       */
327      SUPPORTED_CONTROLS,
328    
329    
330    
331      /**
332       * This dependency will be satisfied after the supported features have been
333       * initialized.
334       */
335      SUPPORTED_FEATURES,
336    
337    
338    
339      /**
340       * This dependency will be satisfied after the virtual attribute providers
341       * have been initialized.
342       */
343      VIRTUAL_ATTRIBUTES,
344    
345    
346    
347      /**
348       * This dependency will be satisfied after the work queue has been
349       * initialized.
350       */
351      WORK_QUEUE;
352    }