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-2021 Ping Identity Corporation
026 */
027package com.unboundid.directory.sdk.ds.types;
028
029
030
031import com.unboundid.util.ThreadSafety;
032import 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)
041public 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}