001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008 Sun Microsystems, Inc.
015 */
016package org.opends.server.admin.std.meta;
017
018
019
020import java.util.Collection;
021import java.util.SortedSet;
022import org.forgerock.opendj.ldap.DN;
023import org.opends.server.admin.AdministratorAction;
024import org.opends.server.admin.AggregationPropertyDefinition;
025import org.opends.server.admin.AliasDefaultBehaviorProvider;
026import org.opends.server.admin.BooleanPropertyDefinition;
027import org.opends.server.admin.client.AuthorizationException;
028import org.opends.server.admin.client.CommunicationException;
029import org.opends.server.admin.client.ConcurrentModificationException;
030import org.opends.server.admin.client.ManagedObject;
031import org.opends.server.admin.client.MissingMandatoryPropertiesException;
032import org.opends.server.admin.client.OperationRejectedException;
033import org.opends.server.admin.condition.Conditions;
034import org.opends.server.admin.DefaultBehaviorProvider;
035import org.opends.server.admin.DefinedDefaultBehaviorProvider;
036import org.opends.server.admin.DurationPropertyDefinition;
037import org.opends.server.admin.EnumPropertyDefinition;
038import org.opends.server.admin.IntegerPropertyDefinition;
039import org.opends.server.admin.ManagedObjectAlreadyExistsException;
040import org.opends.server.admin.ManagedObjectDefinition;
041import org.opends.server.admin.PropertyOption;
042import org.opends.server.admin.PropertyProvider;
043import org.opends.server.admin.server.ConfigurationChangeListener;
044import org.opends.server.admin.server.ServerManagedObject;
045import org.opends.server.admin.SizePropertyDefinition;
046import org.opends.server.admin.std.client.GlobalCfgClient;
047import org.opends.server.admin.std.client.IdentityMapperCfgClient;
048import org.opends.server.admin.std.client.PasswordPolicyCfgClient;
049import org.opends.server.admin.std.server.GlobalCfg;
050import org.opends.server.admin.std.server.IdentityMapperCfg;
051import org.opends.server.admin.std.server.PasswordPolicyCfg;
052import org.opends.server.admin.StringPropertyDefinition;
053import org.opends.server.admin.Tag;
054import org.opends.server.admin.TopCfgDefn;
055import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
056
057
058
059/**
060 * An interface for querying the Global Configuration managed object
061 * definition meta information.
062 * <p>
063 * The Global Configuration contains properties that affect the
064 * overall operation of the OpenDJ.
065 */
066public final class GlobalCfgDefn extends ManagedObjectDefinition<GlobalCfgClient, GlobalCfg> {
067
068  // The singleton configuration definition instance.
069  private static final GlobalCfgDefn INSTANCE = new GlobalCfgDefn();
070
071
072
073  /**
074   * Defines the set of permissable values for the "disabled-privilege" property.
075   * <p>
076   * Specifies the name of a privilege that should not be evaluated by
077   * the server.
078   * <p>
079   * If a privilege is disabled, then it is assumed that all clients
080   * (including unauthenticated clients) have that privilege.
081   */
082  public static enum DisabledPrivilege {
083
084    /**
085     * Allows the user to request that the server process backup
086     * tasks.
087     */
088    BACKEND_BACKUP("backend-backup"),
089
090
091
092    /**
093     * Allows the user to request that the server process restore
094     * tasks.
095     */
096    BACKEND_RESTORE("backend-restore"),
097
098
099
100    /**
101     * Allows the associated user to bypass access control checks
102     * performed by the server.
103     */
104    BYPASS_ACL("bypass-acl"),
105
106
107
108    /**
109     * Allows the associated user to bypass server lockdown mode.
110     */
111    BYPASS_LOCKDOWN("bypass-lockdown"),
112
113
114
115    /**
116     * Allows the user to cancel operations in progress on other
117     * client connections.
118     */
119    CANCEL_REQUEST("cancel-request"),
120
121
122
123    /**
124     * The privilege that provides the ability to perform read
125     * operations on the changelog
126     */
127    CHANGELOG_READ("changelog-read"),
128
129
130
131    /**
132     * Allows the associated user to read the server configuration.
133     */
134    CONFIG_READ("config-read"),
135
136
137
138    /**
139     * Allows the associated user to update the server configuration.
140     * The config-read privilege is also required.
141     */
142    CONFIG_WRITE("config-write"),
143
144
145
146    /**
147     * Allows the user to participate in data synchronization.
148     */
149    DATA_SYNC("data-sync"),
150
151
152
153    /**
154     * Allows the user to terminate other client connections.
155     */
156    DISCONNECT_CLIENT("disconnect-client"),
157
158
159
160    /**
161     * Allows the associated user to subscribe to receive JMX
162     * notifications.
163     */
164    JMX_NOTIFY("jmx-notify"),
165
166
167
168    /**
169     * Allows the associated user to perform JMX read operations.
170     */
171    JMX_READ("jmx-read"),
172
173
174
175    /**
176     * Allows the associated user to perform JMX write operations.
177     */
178    JMX_WRITE("jmx-write"),
179
180
181
182    /**
183     * Allows the user to request that the server process LDIF export
184     * tasks.
185     */
186    LDIF_EXPORT("ldif-export"),
187
188
189
190    /**
191     * Allows the user to request that the server process LDIF import
192     * tasks.
193     */
194    LDIF_IMPORT("ldif-import"),
195
196
197
198    /**
199     * Allows the associated user to modify the server's access
200     * control configuration.
201     */
202    MODIFY_ACL("modify-acl"),
203
204
205
206    /**
207     * Allows the user to reset user passwords.
208     */
209    PASSWORD_RESET("password-reset"),
210
211
212
213    /**
214     * Allows the user to make changes to the set of defined root
215     * privileges, as well as to grant and revoke privileges for users.
216     */
217    PRIVILEGE_CHANGE("privilege-change"),
218
219
220
221    /**
222     * Allows the user to use the proxied authorization control, or to
223     * perform a bind that specifies an alternate authorization
224     * identity.
225     */
226    PROXIED_AUTH("proxied-auth"),
227
228
229
230    /**
231     * Allows the user to place and bring the server of lockdown mode.
232     */
233    SERVER_LOCKDOWN("server-lockdown"),
234
235
236
237    /**
238     * Allows the user to request that the server perform an in-core
239     * restart.
240     */
241    SERVER_RESTART("server-restart"),
242
243
244
245    /**
246     * Allows the user to request that the server shut down.
247     */
248    SERVER_SHUTDOWN("server-shutdown"),
249
250
251
252    /**
253     * Allows the associated user to perform LDAP subentry write
254     * operations.
255     */
256    SUBENTRY_WRITE("subentry-write"),
257
258
259
260    /**
261     * Allows the user to request that the server process a search
262     * that cannot be optimized using server indexes.
263     */
264    UNINDEXED_SEARCH("unindexed-search"),
265
266
267
268    /**
269     * Allows the user to make changes to the server schema.
270     */
271    UPDATE_SCHEMA("update-schema");
272
273
274
275    // String representation of the value.
276    private final String name;
277
278
279
280    // Private constructor.
281    private DisabledPrivilege(String name) { this.name = name; }
282
283
284
285    /**
286     * {@inheritDoc}
287     */
288    public String toString() { return name; }
289
290  }
291
292
293
294  /**
295   * Defines the set of permissable values for the "etime-resolution" property.
296   * <p>
297   * Specifies the resolution to use for operation elapsed processing
298   * time (etime) measurements.
299   */
300  public static enum EtimeResolution {
301
302    /**
303     * Use millisecond resolution.
304     */
305    MILLISECONDS("milliseconds"),
306
307
308
309    /**
310     * Use nanosecond resolution.
311     */
312    NANOSECONDS("nanoseconds");
313
314
315
316    // String representation of the value.
317    private final String name;
318
319
320
321    // Private constructor.
322    private EtimeResolution(String name) { this.name = name; }
323
324
325
326    /**
327     * {@inheritDoc}
328     */
329    public String toString() { return name; }
330
331  }
332
333
334
335  /**
336   * Defines the set of permissable values for the "invalid-attribute-syntax-behavior" property.
337   * <p>
338   * Specifies how the directory server should handle operations
339   * whenever an attribute value violates the associated attribute
340   * syntax.
341   */
342  public static enum InvalidAttributeSyntaxBehavior {
343
344    /**
345     * The directory server silently accepts attribute values that are
346     * invalid according to their associated syntax. Matching
347     * operations targeting those values may not behave as expected.
348     */
349    ACCEPT("accept"),
350
351
352
353    /**
354     * The directory server rejects attribute values that are invalid
355     * according to their associated syntax.
356     */
357    REJECT("reject"),
358
359
360
361    /**
362     * The directory server accepts attribute values that are invalid
363     * according to their associated syntax, but also logs a warning
364     * message to the error log. Matching operations targeting those
365     * values may not behave as expected.
366     */
367    WARN("warn");
368
369
370
371    // String representation of the value.
372    private final String name;
373
374
375
376    // Private constructor.
377    private InvalidAttributeSyntaxBehavior(String name) { this.name = name; }
378
379
380
381    /**
382     * {@inheritDoc}
383     */
384    public String toString() { return name; }
385
386  }
387
388
389
390  /**
391   * Defines the set of permissable values for the "single-structural-objectclass-behavior" property.
392   * <p>
393   * Specifies how the directory server should handle operations an
394   * entry does not contain a structural object class or contains
395   * multiple structural classes.
396   */
397  public static enum SingleStructuralObjectclassBehavior {
398
399    /**
400     * The directory server silently accepts entries that do not
401     * contain exactly one structural object class. Certain schema
402     * features that depend on the entry's structural class may not
403     * behave as expected.
404     */
405    ACCEPT("accept"),
406
407
408
409    /**
410     * The directory server rejects entries that do not contain
411     * exactly one structural object class.
412     */
413    REJECT("reject"),
414
415
416
417    /**
418     * The directory server accepts entries that do not contain
419     * exactly one structural object class, but also logs a warning
420     * message to the error log. Certain schema features that depend on
421     * the entry's structural class may not behave as expected.
422     */
423    WARN("warn");
424
425
426
427    // String representation of the value.
428    private final String name;
429
430
431
432    // Private constructor.
433    private SingleStructuralObjectclassBehavior(String name) { this.name = name; }
434
435
436
437    /**
438     * {@inheritDoc}
439     */
440    public String toString() { return name; }
441
442  }
443
444
445
446  /**
447   * Defines the set of permissable values for the "writability-mode" property.
448   * <p>
449   * Specifies the kinds of write operations the directory server can
450   * process.
451   */
452  public static enum WritabilityMode {
453
454    /**
455     * The directory server rejects all write operations that are
456     * requested of it, regardless of their origin.
457     */
458    DISABLED("disabled"),
459
460
461
462    /**
463     * The directory server attempts to process all write operations
464     * that are requested of it, regardless of their origin.
465     */
466    ENABLED("enabled"),
467
468
469
470    /**
471     * The directory server attempts to process write operations
472     * requested as internal operations or through synchronization, but
473     * rejects any such operations requested from external clients.
474     */
475    INTERNAL_ONLY("internal-only");
476
477
478
479    // String representation of the value.
480    private final String name;
481
482
483
484    // Private constructor.
485    private WritabilityMode(String name) { this.name = name; }
486
487
488
489    /**
490     * {@inheritDoc}
491     */
492    public String toString() { return name; }
493
494  }
495
496
497
498  // The "add-missing-rdn-attributes" property definition.
499  private static final BooleanPropertyDefinition PD_ADD_MISSING_RDN_ATTRIBUTES;
500
501
502
503  // The "allow-attribute-name-exceptions" property definition.
504  private static final BooleanPropertyDefinition PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS;
505
506
507
508  // The "allowed-task" property definition.
509  private static final StringPropertyDefinition PD_ALLOWED_TASK;
510
511
512
513  // The "bind-with-dn-requires-password" property definition.
514  private static final BooleanPropertyDefinition PD_BIND_WITH_DN_REQUIRES_PASSWORD;
515
516
517
518  // The "check-schema" property definition.
519  private static final BooleanPropertyDefinition PD_CHECK_SCHEMA;
520
521
522
523  // The "default-password-policy" property definition.
524  private static final AggregationPropertyDefinition<PasswordPolicyCfgClient, PasswordPolicyCfg> PD_DEFAULT_PASSWORD_POLICY;
525
526
527
528  // The "disabled-privilege" property definition.
529  private static final EnumPropertyDefinition<DisabledPrivilege> PD_DISABLED_PRIVILEGE;
530
531
532
533  // The "etime-resolution" property definition.
534  private static final EnumPropertyDefinition<EtimeResolution> PD_ETIME_RESOLUTION;
535
536
537
538  // The "idle-time-limit" property definition.
539  private static final DurationPropertyDefinition PD_IDLE_TIME_LIMIT;
540
541
542
543  // The "invalid-attribute-syntax-behavior" property definition.
544  private static final EnumPropertyDefinition<InvalidAttributeSyntaxBehavior> PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR;
545
546
547
548  // The "lookthrough-limit" property definition.
549  private static final IntegerPropertyDefinition PD_LOOKTHROUGH_LIMIT;
550
551
552
553  // The "max-allowed-client-connections" property definition.
554  private static final IntegerPropertyDefinition PD_MAX_ALLOWED_CLIENT_CONNECTIONS;
555
556
557
558  // The "max-internal-buffer-size" property definition.
559  private static final SizePropertyDefinition PD_MAX_INTERNAL_BUFFER_SIZE;
560
561
562
563  // The "max-psearches" property definition.
564  private static final IntegerPropertyDefinition PD_MAX_PSEARCHES;
565
566
567
568  // The "notify-abandoned-operations" property definition.
569  private static final BooleanPropertyDefinition PD_NOTIFY_ABANDONED_OPERATIONS;
570
571
572
573  // The "proxied-authorization-identity-mapper" property definition.
574  private static final AggregationPropertyDefinition<IdentityMapperCfgClient, IdentityMapperCfg> PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER;
575
576
577
578  // The "reject-unauthenticated-requests" property definition.
579  private static final BooleanPropertyDefinition PD_REJECT_UNAUTHENTICATED_REQUESTS;
580
581
582
583  // The "return-bind-error-messages" property definition.
584  private static final BooleanPropertyDefinition PD_RETURN_BIND_ERROR_MESSAGES;
585
586
587
588  // The "save-config-on-successful-startup" property definition.
589  private static final BooleanPropertyDefinition PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP;
590
591
592
593  // The "server-error-result-code" property definition.
594  private static final IntegerPropertyDefinition PD_SERVER_ERROR_RESULT_CODE;
595
596
597
598  // The "single-structural-objectclass-behavior" property definition.
599  private static final EnumPropertyDefinition<SingleStructuralObjectclassBehavior> PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR;
600
601
602
603  // The "size-limit" property definition.
604  private static final IntegerPropertyDefinition PD_SIZE_LIMIT;
605
606
607
608  // The "smtp-server" property definition.
609  private static final StringPropertyDefinition PD_SMTP_SERVER;
610
611
612
613  // The "time-limit" property definition.
614  private static final DurationPropertyDefinition PD_TIME_LIMIT;
615
616
617
618  // The "trust-transaction-ids" property definition.
619  private static final BooleanPropertyDefinition PD_TRUST_TRANSACTION_IDS;
620
621
622
623  // The "writability-mode" property definition.
624  private static final EnumPropertyDefinition<WritabilityMode> PD_WRITABILITY_MODE;
625
626
627
628  // Build the "add-missing-rdn-attributes" property definition.
629  static {
630      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "add-missing-rdn-attributes");
631      builder.setOption(PropertyOption.ADVANCED);
632      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "add-missing-rdn-attributes"));
633      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
634      builder.setDefaultBehaviorProvider(provider);
635      PD_ADD_MISSING_RDN_ATTRIBUTES = builder.getInstance();
636      INSTANCE.registerPropertyDefinition(PD_ADD_MISSING_RDN_ATTRIBUTES);
637  }
638
639
640
641  // Build the "allow-attribute-name-exceptions" property definition.
642  static {
643      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "allow-attribute-name-exceptions");
644      builder.setOption(PropertyOption.ADVANCED);
645      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "allow-attribute-name-exceptions"));
646      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
647      builder.setDefaultBehaviorProvider(provider);
648      PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS = builder.getInstance();
649      INSTANCE.registerPropertyDefinition(PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS);
650  }
651
652
653
654  // Build the "allowed-task" property definition.
655  static {
656      StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "allowed-task");
657      builder.setOption(PropertyOption.MULTI_VALUED);
658      builder.setOption(PropertyOption.ADVANCED);
659      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "allowed-task"));
660      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "allowed-task"));
661      PD_ALLOWED_TASK = builder.getInstance();
662      INSTANCE.registerPropertyDefinition(PD_ALLOWED_TASK);
663  }
664
665
666
667  // Build the "bind-with-dn-requires-password" property definition.
668  static {
669      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "bind-with-dn-requires-password");
670      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "bind-with-dn-requires-password"));
671      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
672      builder.setDefaultBehaviorProvider(provider);
673      PD_BIND_WITH_DN_REQUIRES_PASSWORD = builder.getInstance();
674      INSTANCE.registerPropertyDefinition(PD_BIND_WITH_DN_REQUIRES_PASSWORD);
675  }
676
677
678
679  // Build the "check-schema" property definition.
680  static {
681      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "check-schema");
682      builder.setOption(PropertyOption.ADVANCED);
683      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "check-schema"));
684      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
685      builder.setDefaultBehaviorProvider(provider);
686      PD_CHECK_SCHEMA = builder.getInstance();
687      INSTANCE.registerPropertyDefinition(PD_CHECK_SCHEMA);
688  }
689
690
691
692  // Build the "default-password-policy" property definition.
693  static {
694      AggregationPropertyDefinition.Builder<PasswordPolicyCfgClient, PasswordPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "default-password-policy");
695      builder.setOption(PropertyOption.MANDATORY);
696      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-password-policy"));
697      builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
698      builder.setParentPath("/");
699      builder.setRelationDefinition("password-policy");
700      PD_DEFAULT_PASSWORD_POLICY = builder.getInstance();
701      INSTANCE.registerPropertyDefinition(PD_DEFAULT_PASSWORD_POLICY);
702      INSTANCE.registerConstraint(PD_DEFAULT_PASSWORD_POLICY.getSourceConstraint());
703  }
704
705
706
707  // Build the "disabled-privilege" property definition.
708  static {
709      EnumPropertyDefinition.Builder<DisabledPrivilege> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "disabled-privilege");
710      builder.setOption(PropertyOption.MULTI_VALUED);
711      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "disabled-privilege"));
712      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<DisabledPrivilege>(INSTANCE, "disabled-privilege"));
713      builder.setEnumClass(DisabledPrivilege.class);
714      PD_DISABLED_PRIVILEGE = builder.getInstance();
715      INSTANCE.registerPropertyDefinition(PD_DISABLED_PRIVILEGE);
716  }
717
718
719
720  // Build the "etime-resolution" property definition.
721  static {
722      EnumPropertyDefinition.Builder<EtimeResolution> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "etime-resolution");
723      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "etime-resolution"));
724      DefaultBehaviorProvider<EtimeResolution> provider = new DefinedDefaultBehaviorProvider<EtimeResolution>("milliseconds");
725      builder.setDefaultBehaviorProvider(provider);
726      builder.setEnumClass(EtimeResolution.class);
727      PD_ETIME_RESOLUTION = builder.getInstance();
728      INSTANCE.registerPropertyDefinition(PD_ETIME_RESOLUTION);
729  }
730
731
732
733  // Build the "idle-time-limit" property definition.
734  static {
735      DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "idle-time-limit");
736      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "idle-time-limit"));
737      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("0 seconds");
738      builder.setDefaultBehaviorProvider(provider);
739      builder.setBaseUnit("ms");
740      builder.setLowerLimit("0");
741      PD_IDLE_TIME_LIMIT = builder.getInstance();
742      INSTANCE.registerPropertyDefinition(PD_IDLE_TIME_LIMIT);
743  }
744
745
746
747  // Build the "invalid-attribute-syntax-behavior" property definition.
748  static {
749      EnumPropertyDefinition.Builder<InvalidAttributeSyntaxBehavior> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "invalid-attribute-syntax-behavior");
750      builder.setOption(PropertyOption.ADVANCED);
751      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "invalid-attribute-syntax-behavior"));
752      DefaultBehaviorProvider<InvalidAttributeSyntaxBehavior> provider = new DefinedDefaultBehaviorProvider<InvalidAttributeSyntaxBehavior>("reject");
753      builder.setDefaultBehaviorProvider(provider);
754      builder.setEnumClass(InvalidAttributeSyntaxBehavior.class);
755      PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR = builder.getInstance();
756      INSTANCE.registerPropertyDefinition(PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR);
757  }
758
759
760
761  // Build the "lookthrough-limit" property definition.
762  static {
763      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "lookthrough-limit");
764      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "lookthrough-limit"));
765      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("5000");
766      builder.setDefaultBehaviorProvider(provider);
767      builder.setLowerLimit(0);
768      PD_LOOKTHROUGH_LIMIT = builder.getInstance();
769      INSTANCE.registerPropertyDefinition(PD_LOOKTHROUGH_LIMIT);
770  }
771
772
773
774  // Build the "max-allowed-client-connections" property definition.
775  static {
776      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "max-allowed-client-connections");
777      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-allowed-client-connections"));
778      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("0");
779      builder.setDefaultBehaviorProvider(provider);
780      builder.setLowerLimit(0);
781      PD_MAX_ALLOWED_CLIENT_CONNECTIONS = builder.getInstance();
782      INSTANCE.registerPropertyDefinition(PD_MAX_ALLOWED_CLIENT_CONNECTIONS);
783  }
784
785
786
787  // Build the "max-internal-buffer-size" property definition.
788  static {
789      SizePropertyDefinition.Builder builder = SizePropertyDefinition.createBuilder(INSTANCE, "max-internal-buffer-size");
790      builder.setOption(PropertyOption.ADVANCED);
791      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-internal-buffer-size"));
792      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("32 KB");
793      builder.setDefaultBehaviorProvider(provider);
794      builder.setUpperLimit("1 GB");
795      builder.setLowerLimit("512 B");
796      PD_MAX_INTERNAL_BUFFER_SIZE = builder.getInstance();
797      INSTANCE.registerPropertyDefinition(PD_MAX_INTERNAL_BUFFER_SIZE);
798  }
799
800
801
802  // Build the "max-psearches" property definition.
803  static {
804      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "max-psearches");
805      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-psearches"));
806      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("-1");
807      builder.setDefaultBehaviorProvider(provider);
808      builder.setAllowUnlimited(true);
809      builder.setLowerLimit(0);
810      PD_MAX_PSEARCHES = builder.getInstance();
811      INSTANCE.registerPropertyDefinition(PD_MAX_PSEARCHES);
812  }
813
814
815
816  // Build the "notify-abandoned-operations" property definition.
817  static {
818      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "notify-abandoned-operations");
819      builder.setOption(PropertyOption.ADVANCED);
820      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "notify-abandoned-operations"));
821      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
822      builder.setDefaultBehaviorProvider(provider);
823      PD_NOTIFY_ABANDONED_OPERATIONS = builder.getInstance();
824      INSTANCE.registerPropertyDefinition(PD_NOTIFY_ABANDONED_OPERATIONS);
825  }
826
827
828
829  // Build the "proxied-authorization-identity-mapper" property definition.
830  static {
831      AggregationPropertyDefinition.Builder<IdentityMapperCfgClient, IdentityMapperCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "proxied-authorization-identity-mapper");
832      builder.setOption(PropertyOption.MANDATORY);
833      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "proxied-authorization-identity-mapper"));
834      builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
835      builder.setParentPath("/");
836      builder.setRelationDefinition("identity-mapper");
837      builder.setTargetIsEnabledCondition(Conditions.contains("enabled", "true"));
838      PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER = builder.getInstance();
839      INSTANCE.registerPropertyDefinition(PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER);
840      INSTANCE.registerConstraint(PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER.getSourceConstraint());
841  }
842
843
844
845  // Build the "reject-unauthenticated-requests" property definition.
846  static {
847      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "reject-unauthenticated-requests");
848      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "reject-unauthenticated-requests"));
849      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
850      builder.setDefaultBehaviorProvider(provider);
851      PD_REJECT_UNAUTHENTICATED_REQUESTS = builder.getInstance();
852      INSTANCE.registerPropertyDefinition(PD_REJECT_UNAUTHENTICATED_REQUESTS);
853  }
854
855
856
857  // Build the "return-bind-error-messages" property definition.
858  static {
859      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "return-bind-error-messages");
860      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "return-bind-error-messages"));
861      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
862      builder.setDefaultBehaviorProvider(provider);
863      PD_RETURN_BIND_ERROR_MESSAGES = builder.getInstance();
864      INSTANCE.registerPropertyDefinition(PD_RETURN_BIND_ERROR_MESSAGES);
865  }
866
867
868
869  // Build the "save-config-on-successful-startup" property definition.
870  static {
871      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "save-config-on-successful-startup");
872      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "save-config-on-successful-startup"));
873      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
874      builder.setDefaultBehaviorProvider(provider);
875      PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP = builder.getInstance();
876      INSTANCE.registerPropertyDefinition(PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP);
877  }
878
879
880
881  // Build the "server-error-result-code" property definition.
882  static {
883      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "server-error-result-code");
884      builder.setOption(PropertyOption.ADVANCED);
885      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "server-error-result-code"));
886      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("80");
887      builder.setDefaultBehaviorProvider(provider);
888      builder.setLowerLimit(0);
889      PD_SERVER_ERROR_RESULT_CODE = builder.getInstance();
890      INSTANCE.registerPropertyDefinition(PD_SERVER_ERROR_RESULT_CODE);
891  }
892
893
894
895  // Build the "single-structural-objectclass-behavior" property definition.
896  static {
897      EnumPropertyDefinition.Builder<SingleStructuralObjectclassBehavior> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "single-structural-objectclass-behavior");
898      builder.setOption(PropertyOption.ADVANCED);
899      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "single-structural-objectclass-behavior"));
900      DefaultBehaviorProvider<SingleStructuralObjectclassBehavior> provider = new DefinedDefaultBehaviorProvider<SingleStructuralObjectclassBehavior>("reject");
901      builder.setDefaultBehaviorProvider(provider);
902      builder.setEnumClass(SingleStructuralObjectclassBehavior.class);
903      PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR = builder.getInstance();
904      INSTANCE.registerPropertyDefinition(PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR);
905  }
906
907
908
909  // Build the "size-limit" property definition.
910  static {
911      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "size-limit");
912      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "size-limit"));
913      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("1000");
914      builder.setDefaultBehaviorProvider(provider);
915      builder.setLowerLimit(0);
916      PD_SIZE_LIMIT = builder.getInstance();
917      INSTANCE.registerPropertyDefinition(PD_SIZE_LIMIT);
918  }
919
920
921
922  // Build the "smtp-server" property definition.
923  static {
924      StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "smtp-server");
925      builder.setOption(PropertyOption.MULTI_VALUED);
926      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "smtp-server"));
927      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "smtp-server"));
928      builder.setPattern("^.+(:[0-9]+)?$", "HOST[:PORT]");
929      PD_SMTP_SERVER = builder.getInstance();
930      INSTANCE.registerPropertyDefinition(PD_SMTP_SERVER);
931  }
932
933
934
935  // Build the "time-limit" property definition.
936  static {
937      DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "time-limit");
938      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "time-limit"));
939      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("60 seconds");
940      builder.setDefaultBehaviorProvider(provider);
941      builder.setBaseUnit("s");
942      builder.setLowerLimit("0");
943      PD_TIME_LIMIT = builder.getInstance();
944      INSTANCE.registerPropertyDefinition(PD_TIME_LIMIT);
945  }
946
947
948
949  // Build the "trust-transaction-ids" property definition.
950  static {
951      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "trust-transaction-ids");
952      builder.setOption(PropertyOption.ADVANCED);
953      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "trust-transaction-ids"));
954      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
955      builder.setDefaultBehaviorProvider(provider);
956      PD_TRUST_TRANSACTION_IDS = builder.getInstance();
957      INSTANCE.registerPropertyDefinition(PD_TRUST_TRANSACTION_IDS);
958  }
959
960
961
962  // Build the "writability-mode" property definition.
963  static {
964      EnumPropertyDefinition.Builder<WritabilityMode> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "writability-mode");
965      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "writability-mode"));
966      DefaultBehaviorProvider<WritabilityMode> provider = new DefinedDefaultBehaviorProvider<WritabilityMode>("enabled");
967      builder.setDefaultBehaviorProvider(provider);
968      builder.setEnumClass(WritabilityMode.class);
969      PD_WRITABILITY_MODE = builder.getInstance();
970      INSTANCE.registerPropertyDefinition(PD_WRITABILITY_MODE);
971  }
972
973
974
975  // Register the tags associated with this managed object definition.
976  static {
977    INSTANCE.registerTag(Tag.valueOf("core-server"));
978  }
979
980
981
982  /**
983   * Get the Global Configuration configuration definition singleton.
984   *
985   * @return Returns the Global Configuration configuration definition
986   *         singleton.
987   */
988  public static GlobalCfgDefn getInstance() {
989    return INSTANCE;
990  }
991
992
993
994  /**
995   * Private constructor.
996   */
997  private GlobalCfgDefn() {
998    super("global", TopCfgDefn.getInstance());
999  }
1000
1001
1002
1003  /**
1004   * {@inheritDoc}
1005   */
1006  public GlobalCfgClient createClientConfiguration(
1007      ManagedObject<? extends GlobalCfgClient> impl) {
1008    return new GlobalCfgClientImpl(impl);
1009  }
1010
1011
1012
1013  /**
1014   * {@inheritDoc}
1015   */
1016  public GlobalCfg createServerConfiguration(
1017      ServerManagedObject<? extends GlobalCfg> impl) {
1018    return new GlobalCfgServerImpl(impl);
1019  }
1020
1021
1022
1023  /**
1024   * {@inheritDoc}
1025   */
1026  public Class<GlobalCfg> getServerConfigurationClass() {
1027    return GlobalCfg.class;
1028  }
1029
1030
1031
1032  /**
1033   * Get the "add-missing-rdn-attributes" property definition.
1034   * <p>
1035   * Indicates whether the directory server should automatically add
1036   * any attribute values contained in the entry's RDN into that entry
1037   * when processing an add request.
1038   *
1039   * @return Returns the "add-missing-rdn-attributes" property definition.
1040   */
1041  public BooleanPropertyDefinition getAddMissingRDNAttributesPropertyDefinition() {
1042    return PD_ADD_MISSING_RDN_ATTRIBUTES;
1043  }
1044
1045
1046
1047  /**
1048   * Get the "allow-attribute-name-exceptions" property definition.
1049   * <p>
1050   * Indicates whether the directory server should allow underscores
1051   * in attribute names and allow attribute names to begin with numeric
1052   * digits (both of which are violations of the LDAP standards).
1053   *
1054   * @return Returns the "allow-attribute-name-exceptions" property definition.
1055   */
1056  public BooleanPropertyDefinition getAllowAttributeNameExceptionsPropertyDefinition() {
1057    return PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS;
1058  }
1059
1060
1061
1062  /**
1063   * Get the "allowed-task" property definition.
1064   * <p>
1065   * Specifies the fully-qualified name of a Java class that may be
1066   * invoked in the server.
1067   * <p>
1068   * Any attempt to invoke a task not included in the list of allowed
1069   * tasks is rejected.
1070   *
1071   * @return Returns the "allowed-task" property definition.
1072   */
1073  public StringPropertyDefinition getAllowedTaskPropertyDefinition() {
1074    return PD_ALLOWED_TASK;
1075  }
1076
1077
1078
1079  /**
1080   * Get the "bind-with-dn-requires-password" property definition.
1081   * <p>
1082   * Indicates whether the directory server should reject any simple
1083   * bind request that contains a DN but no password.
1084   * <p>
1085   * Although such bind requests are technically allowed by the LDAPv3
1086   * specification (and should be treated as anonymous simple
1087   * authentication), they may introduce security problems in
1088   * applications that do not verify that the client actually provided
1089   * a password.
1090   *
1091   * @return Returns the "bind-with-dn-requires-password" property definition.
1092   */
1093  public BooleanPropertyDefinition getBindWithDNRequiresPasswordPropertyDefinition() {
1094    return PD_BIND_WITH_DN_REQUIRES_PASSWORD;
1095  }
1096
1097
1098
1099  /**
1100   * Get the "check-schema" property definition.
1101   * <p>
1102   * Indicates whether schema enforcement is active.
1103   * <p>
1104   * When schema enforcement is activated, the directory server
1105   * ensures that all operations result in entries are valid according
1106   * to the defined server schema. It is strongly recommended that this
1107   * option be left enabled to prevent the inadvertent addition of
1108   * invalid data into the server.
1109   *
1110   * @return Returns the "check-schema" property definition.
1111   */
1112  public BooleanPropertyDefinition getCheckSchemaPropertyDefinition() {
1113    return PD_CHECK_SCHEMA;
1114  }
1115
1116
1117
1118  /**
1119   * Get the "default-password-policy" property definition.
1120   * <p>
1121   * Specifies the name of the password policy that is in effect for
1122   * users whose entries do not specify an alternate password policy
1123   * (either via a real or virtual attribute).
1124   * <p>
1125   * In addition, the default password policy will be used for
1126   * providing default parameters for sub-entry based password policies
1127   * when not provided or supported by the sub-entry itself. This
1128   * property must reference a password policy and no other type of
1129   * authentication policy.
1130   *
1131   * @return Returns the "default-password-policy" property definition.
1132   */
1133  public AggregationPropertyDefinition<PasswordPolicyCfgClient, PasswordPolicyCfg> getDefaultPasswordPolicyPropertyDefinition() {
1134    return PD_DEFAULT_PASSWORD_POLICY;
1135  }
1136
1137
1138
1139  /**
1140   * Get the "disabled-privilege" property definition.
1141   * <p>
1142   * Specifies the name of a privilege that should not be evaluated by
1143   * the server.
1144   * <p>
1145   * If a privilege is disabled, then it is assumed that all clients
1146   * (including unauthenticated clients) have that privilege.
1147   *
1148   * @return Returns the "disabled-privilege" property definition.
1149   */
1150  public EnumPropertyDefinition<DisabledPrivilege> getDisabledPrivilegePropertyDefinition() {
1151    return PD_DISABLED_PRIVILEGE;
1152  }
1153
1154
1155
1156  /**
1157   * Get the "etime-resolution" property definition.
1158   * <p>
1159   * Specifies the resolution to use for operation elapsed processing
1160   * time (etime) measurements.
1161   *
1162   * @return Returns the "etime-resolution" property definition.
1163   */
1164  public EnumPropertyDefinition<EtimeResolution> getEtimeResolutionPropertyDefinition() {
1165    return PD_ETIME_RESOLUTION;
1166  }
1167
1168
1169
1170  /**
1171   * Get the "idle-time-limit" property definition.
1172   * <p>
1173   * Specifies the maximum length of time that a client connection may
1174   * remain established since its last completed operation.
1175   * <p>
1176   * A value of "0 seconds" indicates that no idle time limit is
1177   * enforced.
1178   *
1179   * @return Returns the "idle-time-limit" property definition.
1180   */
1181  public DurationPropertyDefinition getIdleTimeLimitPropertyDefinition() {
1182    return PD_IDLE_TIME_LIMIT;
1183  }
1184
1185
1186
1187  /**
1188   * Get the "invalid-attribute-syntax-behavior" property definition.
1189   * <p>
1190   * Specifies how the directory server should handle operations
1191   * whenever an attribute value violates the associated attribute
1192   * syntax.
1193   *
1194   * @return Returns the "invalid-attribute-syntax-behavior" property definition.
1195   */
1196  public EnumPropertyDefinition<InvalidAttributeSyntaxBehavior> getInvalidAttributeSyntaxBehaviorPropertyDefinition() {
1197    return PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR;
1198  }
1199
1200
1201
1202  /**
1203   * Get the "lookthrough-limit" property definition.
1204   * <p>
1205   * Specifies the maximum number of entries that the directory server
1206   * should "look through" in the course of processing a search
1207   * request.
1208   * <p>
1209   * This includes any entry that the server must examine in the
1210   * course of processing the request, regardless of whether it
1211   * actually matches the search criteria. A value of 0 indicates that
1212   * no lookthrough limit is enforced. Note that this is the default
1213   * server-wide limit, but it may be overridden on a per-user basis
1214   * using the ds-rlim-lookthrough-limit operational attribute.
1215   *
1216   * @return Returns the "lookthrough-limit" property definition.
1217   */
1218  public IntegerPropertyDefinition getLookthroughLimitPropertyDefinition() {
1219    return PD_LOOKTHROUGH_LIMIT;
1220  }
1221
1222
1223
1224  /**
1225   * Get the "max-allowed-client-connections" property definition.
1226   * <p>
1227   * Specifies the maximum number of client connections that may be
1228   * established at any given time
1229   * <p>
1230   * A value of 0 indicates that unlimited client connection is
1231   * allowed.
1232   *
1233   * @return Returns the "max-allowed-client-connections" property definition.
1234   */
1235  public IntegerPropertyDefinition getMaxAllowedClientConnectionsPropertyDefinition() {
1236    return PD_MAX_ALLOWED_CLIENT_CONNECTIONS;
1237  }
1238
1239
1240
1241  /**
1242   * Get the "max-internal-buffer-size" property definition.
1243   * <p>
1244   * The threshold capacity beyond which internal cached buffers used
1245   * for encoding and decoding entries and protocol messages will be
1246   * trimmed after use.
1247   * <p>
1248   * Individual buffers may grow very large when encoding and decoding
1249   * large entries and protocol messages and should be reduced in size
1250   * when they are no longer needed. This setting specifies the
1251   * threshold at which a buffer is determined to have grown too big
1252   * and should be trimmed down after use.
1253   *
1254   * @return Returns the "max-internal-buffer-size" property definition.
1255   */
1256  public SizePropertyDefinition getMaxInternalBufferSizePropertyDefinition() {
1257    return PD_MAX_INTERNAL_BUFFER_SIZE;
1258  }
1259
1260
1261
1262  /**
1263   * Get the "max-psearches" property definition.
1264   * <p>
1265   * Defines the maximum number of concurrent persistent searches that
1266   * can be performed on directory server
1267   * <p>
1268   * The persistent search mechanism provides an active channel
1269   * through which entries that change, and information about the
1270   * changes that occur, can be communicated. Because each persistent
1271   * search operation consumes resources, limiting the number of
1272   * simultaneous persistent searches keeps the performance impact
1273   * minimal. A value of -1 indicates that there is no limit on the
1274   * persistent searches.
1275   *
1276   * @return Returns the "max-psearches" property definition.
1277   */
1278  public IntegerPropertyDefinition getMaxPsearchesPropertyDefinition() {
1279    return PD_MAX_PSEARCHES;
1280  }
1281
1282
1283
1284  /**
1285   * Get the "notify-abandoned-operations" property definition.
1286   * <p>
1287   * Indicates whether the directory server should send a response to
1288   * any operation that is interrupted via an abandon request.
1289   * <p>
1290   * The LDAP specification states that abandoned operations should
1291   * not receive any response, but this may cause problems with client
1292   * applications that always expect to receive a response to each
1293   * request.
1294   *
1295   * @return Returns the "notify-abandoned-operations" property definition.
1296   */
1297  public BooleanPropertyDefinition getNotifyAbandonedOperationsPropertyDefinition() {
1298    return PD_NOTIFY_ABANDONED_OPERATIONS;
1299  }
1300
1301
1302
1303  /**
1304   * Get the "proxied-authorization-identity-mapper" property definition.
1305   * <p>
1306   * Specifies the name of the identity mapper to map authorization ID
1307   * values (using the "u:" form) provided in the proxied authorization
1308   * control to the corresponding user entry.
1309   *
1310   * @return Returns the "proxied-authorization-identity-mapper" property definition.
1311   */
1312  public AggregationPropertyDefinition<IdentityMapperCfgClient, IdentityMapperCfg> getProxiedAuthorizationIdentityMapperPropertyDefinition() {
1313    return PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER;
1314  }
1315
1316
1317
1318  /**
1319   * Get the "reject-unauthenticated-requests" property definition.
1320   * <p>
1321   * Indicates whether the directory server should reject any request
1322   * (other than bind or StartTLS requests) received from a client that
1323   * has not yet been authenticated, whose last authentication attempt
1324   * was unsuccessful, or whose last authentication attempt used
1325   * anonymous authentication.
1326   *
1327   * @return Returns the "reject-unauthenticated-requests" property definition.
1328   */
1329  public BooleanPropertyDefinition getRejectUnauthenticatedRequestsPropertyDefinition() {
1330    return PD_REJECT_UNAUTHENTICATED_REQUESTS;
1331  }
1332
1333
1334
1335  /**
1336   * Get the "return-bind-error-messages" property definition.
1337   * <p>
1338   * Indicates whether responses for failed bind operations should
1339   * include a message string providing the reason for the
1340   * authentication failure.
1341   * <p>
1342   * Note that these messages may include information that could
1343   * potentially be used by an attacker. If this option is disabled,
1344   * then these messages appears only in the server's access log.
1345   *
1346   * @return Returns the "return-bind-error-messages" property definition.
1347   */
1348  public BooleanPropertyDefinition getReturnBindErrorMessagesPropertyDefinition() {
1349    return PD_RETURN_BIND_ERROR_MESSAGES;
1350  }
1351
1352
1353
1354  /**
1355   * Get the "save-config-on-successful-startup" property definition.
1356   * <p>
1357   * Indicates whether the directory server should save a copy of its
1358   * configuration whenever the startup process completes successfully.
1359   * <p>
1360   * This ensures that the server provides a "last known good"
1361   * configuration, which can be used as a reference (or copied into
1362   * the active config) if the server fails to start with the current
1363   * "active" configuration.
1364   *
1365   * @return Returns the "save-config-on-successful-startup" property definition.
1366   */
1367  public BooleanPropertyDefinition getSaveConfigOnSuccessfulStartupPropertyDefinition() {
1368    return PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP;
1369  }
1370
1371
1372
1373  /**
1374   * Get the "server-error-result-code" property definition.
1375   * <p>
1376   * Specifies the numeric value of the result code when request
1377   * processing fails due to an internal server error.
1378   *
1379   * @return Returns the "server-error-result-code" property definition.
1380   */
1381  public IntegerPropertyDefinition getServerErrorResultCodePropertyDefinition() {
1382    return PD_SERVER_ERROR_RESULT_CODE;
1383  }
1384
1385
1386
1387  /**
1388   * Get the "single-structural-objectclass-behavior" property definition.
1389   * <p>
1390   * Specifies how the directory server should handle operations an
1391   * entry does not contain a structural object class or contains
1392   * multiple structural classes.
1393   *
1394   * @return Returns the "single-structural-objectclass-behavior" property definition.
1395   */
1396  public EnumPropertyDefinition<SingleStructuralObjectclassBehavior> getSingleStructuralObjectclassBehaviorPropertyDefinition() {
1397    return PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR;
1398  }
1399
1400
1401
1402  /**
1403   * Get the "size-limit" property definition.
1404   * <p>
1405   * Specifies the maximum number of entries that can be returned to
1406   * the client during a single search operation.
1407   * <p>
1408   * A value of 0 indicates that no size limit is enforced. Note that
1409   * this is the default server-wide limit, but it may be overridden on
1410   * a per-user basis using the ds-rlim-size-limit operational
1411   * attribute.
1412   *
1413   * @return Returns the "size-limit" property definition.
1414   */
1415  public IntegerPropertyDefinition getSizeLimitPropertyDefinition() {
1416    return PD_SIZE_LIMIT;
1417  }
1418
1419
1420
1421  /**
1422   * Get the "smtp-server" property definition.
1423   * <p>
1424   * Specifies the address (and optional port number) for a mail
1425   * server that can be used to send email messages via SMTP.
1426   * <p>
1427   * It may be an IP address or resolvable hostname, optionally
1428   * followed by a colon and a port number.
1429   *
1430   * @return Returns the "smtp-server" property definition.
1431   */
1432  public StringPropertyDefinition getSMTPServerPropertyDefinition() {
1433    return PD_SMTP_SERVER;
1434  }
1435
1436
1437
1438  /**
1439   * Get the "time-limit" property definition.
1440   * <p>
1441   * Specifies the maximum length of time that should be spent
1442   * processing a single search operation.
1443   * <p>
1444   * A value of 0 seconds indicates that no time limit is enforced.
1445   * Note that this is the default server-wide time limit, but it may
1446   * be overridden on a per-user basis using the ds-rlim-time-limit
1447   * operational attribute.
1448   *
1449   * @return Returns the "time-limit" property definition.
1450   */
1451  public DurationPropertyDefinition getTimeLimitPropertyDefinition() {
1452    return PD_TIME_LIMIT;
1453  }
1454
1455
1456
1457  /**
1458   * Get the "trust-transaction-ids" property definition.
1459   * <p>
1460   * Indicates whether the directory server should trust the
1461   * transaction ids that may be received from requests, either through
1462   * a LDAP control or through a HTTP header.
1463   *
1464   * @return Returns the "trust-transaction-ids" property definition.
1465   */
1466  public BooleanPropertyDefinition getTrustTransactionIdsPropertyDefinition() {
1467    return PD_TRUST_TRANSACTION_IDS;
1468  }
1469
1470
1471
1472  /**
1473   * Get the "writability-mode" property definition.
1474   * <p>
1475   * Specifies the kinds of write operations the directory server can
1476   * process.
1477   *
1478   * @return Returns the "writability-mode" property definition.
1479   */
1480  public EnumPropertyDefinition<WritabilityMode> getWritabilityModePropertyDefinition() {
1481    return PD_WRITABILITY_MODE;
1482  }
1483
1484
1485
1486  /**
1487   * Managed object client implementation.
1488   */
1489  private static class GlobalCfgClientImpl implements
1490    GlobalCfgClient {
1491
1492    // Private implementation.
1493    private ManagedObject<? extends GlobalCfgClient> impl;
1494
1495
1496
1497    // Private constructor.
1498    private GlobalCfgClientImpl(
1499        ManagedObject<? extends GlobalCfgClient> impl) {
1500      this.impl = impl;
1501    }
1502
1503
1504
1505    /**
1506     * {@inheritDoc}
1507     */
1508    public boolean isAddMissingRDNAttributes() {
1509      return impl.getPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition());
1510    }
1511
1512
1513
1514    /**
1515     * {@inheritDoc}
1516     */
1517    public void setAddMissingRDNAttributes(Boolean value) {
1518      impl.setPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition(), value);
1519    }
1520
1521
1522
1523    /**
1524     * {@inheritDoc}
1525     */
1526    public boolean isAllowAttributeNameExceptions() {
1527      return impl.getPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition());
1528    }
1529
1530
1531
1532    /**
1533     * {@inheritDoc}
1534     */
1535    public void setAllowAttributeNameExceptions(Boolean value) {
1536      impl.setPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition(), value);
1537    }
1538
1539
1540
1541    /**
1542     * {@inheritDoc}
1543     */
1544    public SortedSet<String> getAllowedTask() {
1545      return impl.getPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition());
1546    }
1547
1548
1549
1550    /**
1551     * {@inheritDoc}
1552     */
1553    public void setAllowedTask(Collection<String> values) {
1554      impl.setPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition(), values);
1555    }
1556
1557
1558
1559    /**
1560     * {@inheritDoc}
1561     */
1562    public boolean isBindWithDNRequiresPassword() {
1563      return impl.getPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition());
1564    }
1565
1566
1567
1568    /**
1569     * {@inheritDoc}
1570     */
1571    public void setBindWithDNRequiresPassword(Boolean value) {
1572      impl.setPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition(), value);
1573    }
1574
1575
1576
1577    /**
1578     * {@inheritDoc}
1579     */
1580    public boolean isCheckSchema() {
1581      return impl.getPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition());
1582    }
1583
1584
1585
1586    /**
1587     * {@inheritDoc}
1588     */
1589    public void setCheckSchema(Boolean value) {
1590      impl.setPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition(), value);
1591    }
1592
1593
1594
1595    /**
1596     * {@inheritDoc}
1597     */
1598    public String getDefaultPasswordPolicy() {
1599      return impl.getPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition());
1600    }
1601
1602
1603
1604    /**
1605     * {@inheritDoc}
1606     */
1607    public void setDefaultPasswordPolicy(String value) {
1608      impl.setPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition(), value);
1609    }
1610
1611
1612
1613    /**
1614     * {@inheritDoc}
1615     */
1616    public SortedSet<DisabledPrivilege> getDisabledPrivilege() {
1617      return impl.getPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition());
1618    }
1619
1620
1621
1622    /**
1623     * {@inheritDoc}
1624     */
1625    public void setDisabledPrivilege(Collection<DisabledPrivilege> values) {
1626      impl.setPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition(), values);
1627    }
1628
1629
1630
1631    /**
1632     * {@inheritDoc}
1633     */
1634    public EtimeResolution getEtimeResolution() {
1635      return impl.getPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition());
1636    }
1637
1638
1639
1640    /**
1641     * {@inheritDoc}
1642     */
1643    public void setEtimeResolution(EtimeResolution value) {
1644      impl.setPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition(), value);
1645    }
1646
1647
1648
1649    /**
1650     * {@inheritDoc}
1651     */
1652    public long getIdleTimeLimit() {
1653      return impl.getPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition());
1654    }
1655
1656
1657
1658    /**
1659     * {@inheritDoc}
1660     */
1661    public void setIdleTimeLimit(Long value) {
1662      impl.setPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition(), value);
1663    }
1664
1665
1666
1667    /**
1668     * {@inheritDoc}
1669     */
1670    public InvalidAttributeSyntaxBehavior getInvalidAttributeSyntaxBehavior() {
1671      return impl.getPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition());
1672    }
1673
1674
1675
1676    /**
1677     * {@inheritDoc}
1678     */
1679    public void setInvalidAttributeSyntaxBehavior(InvalidAttributeSyntaxBehavior value) {
1680      impl.setPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition(), value);
1681    }
1682
1683
1684
1685    /**
1686     * {@inheritDoc}
1687     */
1688    public int getLookthroughLimit() {
1689      return impl.getPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition());
1690    }
1691
1692
1693
1694    /**
1695     * {@inheritDoc}
1696     */
1697    public void setLookthroughLimit(Integer value) {
1698      impl.setPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition(), value);
1699    }
1700
1701
1702
1703    /**
1704     * {@inheritDoc}
1705     */
1706    public int getMaxAllowedClientConnections() {
1707      return impl.getPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition());
1708    }
1709
1710
1711
1712    /**
1713     * {@inheritDoc}
1714     */
1715    public void setMaxAllowedClientConnections(Integer value) {
1716      impl.setPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition(), value);
1717    }
1718
1719
1720
1721    /**
1722     * {@inheritDoc}
1723     */
1724    public long getMaxInternalBufferSize() {
1725      return impl.getPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition());
1726    }
1727
1728
1729
1730    /**
1731     * {@inheritDoc}
1732     */
1733    public void setMaxInternalBufferSize(Long value) {
1734      impl.setPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition(), value);
1735    }
1736
1737
1738
1739    /**
1740     * {@inheritDoc}
1741     */
1742    public int getMaxPsearches() {
1743      return impl.getPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition());
1744    }
1745
1746
1747
1748    /**
1749     * {@inheritDoc}
1750     */
1751    public void setMaxPsearches(Integer value) {
1752      impl.setPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition(), value);
1753    }
1754
1755
1756
1757    /**
1758     * {@inheritDoc}
1759     */
1760    public boolean isNotifyAbandonedOperations() {
1761      return impl.getPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition());
1762    }
1763
1764
1765
1766    /**
1767     * {@inheritDoc}
1768     */
1769    public void setNotifyAbandonedOperations(Boolean value) {
1770      impl.setPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition(), value);
1771    }
1772
1773
1774
1775    /**
1776     * {@inheritDoc}
1777     */
1778    public String getProxiedAuthorizationIdentityMapper() {
1779      return impl.getPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition());
1780    }
1781
1782
1783
1784    /**
1785     * {@inheritDoc}
1786     */
1787    public void setProxiedAuthorizationIdentityMapper(String value) {
1788      impl.setPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition(), value);
1789    }
1790
1791
1792
1793    /**
1794     * {@inheritDoc}
1795     */
1796    public boolean isRejectUnauthenticatedRequests() {
1797      return impl.getPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition());
1798    }
1799
1800
1801
1802    /**
1803     * {@inheritDoc}
1804     */
1805    public void setRejectUnauthenticatedRequests(Boolean value) {
1806      impl.setPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition(), value);
1807    }
1808
1809
1810
1811    /**
1812     * {@inheritDoc}
1813     */
1814    public boolean isReturnBindErrorMessages() {
1815      return impl.getPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition());
1816    }
1817
1818
1819
1820    /**
1821     * {@inheritDoc}
1822     */
1823    public void setReturnBindErrorMessages(Boolean value) {
1824      impl.setPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition(), value);
1825    }
1826
1827
1828
1829    /**
1830     * {@inheritDoc}
1831     */
1832    public boolean isSaveConfigOnSuccessfulStartup() {
1833      return impl.getPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition());
1834    }
1835
1836
1837
1838    /**
1839     * {@inheritDoc}
1840     */
1841    public void setSaveConfigOnSuccessfulStartup(Boolean value) {
1842      impl.setPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition(), value);
1843    }
1844
1845
1846
1847    /**
1848     * {@inheritDoc}
1849     */
1850    public int getServerErrorResultCode() {
1851      return impl.getPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition());
1852    }
1853
1854
1855
1856    /**
1857     * {@inheritDoc}
1858     */
1859    public void setServerErrorResultCode(Integer value) {
1860      impl.setPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition(), value);
1861    }
1862
1863
1864
1865    /**
1866     * {@inheritDoc}
1867     */
1868    public SingleStructuralObjectclassBehavior getSingleStructuralObjectclassBehavior() {
1869      return impl.getPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition());
1870    }
1871
1872
1873
1874    /**
1875     * {@inheritDoc}
1876     */
1877    public void setSingleStructuralObjectclassBehavior(SingleStructuralObjectclassBehavior value) {
1878      impl.setPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition(), value);
1879    }
1880
1881
1882
1883    /**
1884     * {@inheritDoc}
1885     */
1886    public int getSizeLimit() {
1887      return impl.getPropertyValue(INSTANCE.getSizeLimitPropertyDefinition());
1888    }
1889
1890
1891
1892    /**
1893     * {@inheritDoc}
1894     */
1895    public void setSizeLimit(Integer value) {
1896      impl.setPropertyValue(INSTANCE.getSizeLimitPropertyDefinition(), value);
1897    }
1898
1899
1900
1901    /**
1902     * {@inheritDoc}
1903     */
1904    public SortedSet<String> getSMTPServer() {
1905      return impl.getPropertyValues(INSTANCE.getSMTPServerPropertyDefinition());
1906    }
1907
1908
1909
1910    /**
1911     * {@inheritDoc}
1912     */
1913    public void setSMTPServer(Collection<String> values) {
1914      impl.setPropertyValues(INSTANCE.getSMTPServerPropertyDefinition(), values);
1915    }
1916
1917
1918
1919    /**
1920     * {@inheritDoc}
1921     */
1922    public long getTimeLimit() {
1923      return impl.getPropertyValue(INSTANCE.getTimeLimitPropertyDefinition());
1924    }
1925
1926
1927
1928    /**
1929     * {@inheritDoc}
1930     */
1931    public void setTimeLimit(Long value) {
1932      impl.setPropertyValue(INSTANCE.getTimeLimitPropertyDefinition(), value);
1933    }
1934
1935
1936
1937    /**
1938     * {@inheritDoc}
1939     */
1940    public boolean isTrustTransactionIds() {
1941      return impl.getPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition());
1942    }
1943
1944
1945
1946    /**
1947     * {@inheritDoc}
1948     */
1949    public void setTrustTransactionIds(Boolean value) {
1950      impl.setPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition(), value);
1951    }
1952
1953
1954
1955    /**
1956     * {@inheritDoc}
1957     */
1958    public WritabilityMode getWritabilityMode() {
1959      return impl.getPropertyValue(INSTANCE.getWritabilityModePropertyDefinition());
1960    }
1961
1962
1963
1964    /**
1965     * {@inheritDoc}
1966     */
1967    public void setWritabilityMode(WritabilityMode value) {
1968      impl.setPropertyValue(INSTANCE.getWritabilityModePropertyDefinition(), value);
1969    }
1970
1971
1972
1973    /**
1974     * {@inheritDoc}
1975     */
1976    public ManagedObjectDefinition<? extends GlobalCfgClient, ? extends GlobalCfg> definition() {
1977      return INSTANCE;
1978    }
1979
1980
1981
1982    /**
1983     * {@inheritDoc}
1984     */
1985    public PropertyProvider properties() {
1986      return impl;
1987    }
1988
1989
1990
1991    /**
1992     * {@inheritDoc}
1993     */
1994    public void commit() throws ManagedObjectAlreadyExistsException,
1995        MissingMandatoryPropertiesException, ConcurrentModificationException,
1996        OperationRejectedException, AuthorizationException,
1997        CommunicationException {
1998      impl.commit();
1999    }
2000
2001
2002
2003    /** {@inheritDoc} */
2004    public String toString() {
2005      return impl.toString();
2006    }
2007  }
2008
2009
2010
2011  /**
2012   * Managed object server implementation.
2013   */
2014  private static class GlobalCfgServerImpl implements
2015    GlobalCfg {
2016
2017    // Private implementation.
2018    private ServerManagedObject<? extends GlobalCfg> impl;
2019
2020    // The value of the "add-missing-rdn-attributes" property.
2021    private final boolean pAddMissingRDNAttributes;
2022
2023    // The value of the "allow-attribute-name-exceptions" property.
2024    private final boolean pAllowAttributeNameExceptions;
2025
2026    // The value of the "allowed-task" property.
2027    private final SortedSet<String> pAllowedTask;
2028
2029    // The value of the "bind-with-dn-requires-password" property.
2030    private final boolean pBindWithDNRequiresPassword;
2031
2032    // The value of the "check-schema" property.
2033    private final boolean pCheckSchema;
2034
2035    // The value of the "default-password-policy" property.
2036    private final String pDefaultPasswordPolicy;
2037
2038    // The value of the "disabled-privilege" property.
2039    private final SortedSet<DisabledPrivilege> pDisabledPrivilege;
2040
2041    // The value of the "etime-resolution" property.
2042    private final EtimeResolution pEtimeResolution;
2043
2044    // The value of the "idle-time-limit" property.
2045    private final long pIdleTimeLimit;
2046
2047    // The value of the "invalid-attribute-syntax-behavior" property.
2048    private final InvalidAttributeSyntaxBehavior pInvalidAttributeSyntaxBehavior;
2049
2050    // The value of the "lookthrough-limit" property.
2051    private final int pLookthroughLimit;
2052
2053    // The value of the "max-allowed-client-connections" property.
2054    private final int pMaxAllowedClientConnections;
2055
2056    // The value of the "max-internal-buffer-size" property.
2057    private final long pMaxInternalBufferSize;
2058
2059    // The value of the "max-psearches" property.
2060    private final int pMaxPsearches;
2061
2062    // The value of the "notify-abandoned-operations" property.
2063    private final boolean pNotifyAbandonedOperations;
2064
2065    // The value of the "proxied-authorization-identity-mapper" property.
2066    private final String pProxiedAuthorizationIdentityMapper;
2067
2068    // The value of the "reject-unauthenticated-requests" property.
2069    private final boolean pRejectUnauthenticatedRequests;
2070
2071    // The value of the "return-bind-error-messages" property.
2072    private final boolean pReturnBindErrorMessages;
2073
2074    // The value of the "save-config-on-successful-startup" property.
2075    private final boolean pSaveConfigOnSuccessfulStartup;
2076
2077    // The value of the "server-error-result-code" property.
2078    private final int pServerErrorResultCode;
2079
2080    // The value of the "single-structural-objectclass-behavior" property.
2081    private final SingleStructuralObjectclassBehavior pSingleStructuralObjectclassBehavior;
2082
2083    // The value of the "size-limit" property.
2084    private final int pSizeLimit;
2085
2086    // The value of the "smtp-server" property.
2087    private final SortedSet<String> pSMTPServer;
2088
2089    // The value of the "time-limit" property.
2090    private final long pTimeLimit;
2091
2092    // The value of the "trust-transaction-ids" property.
2093    private final boolean pTrustTransactionIds;
2094
2095    // The value of the "writability-mode" property.
2096    private final WritabilityMode pWritabilityMode;
2097
2098
2099
2100    // Private constructor.
2101    private GlobalCfgServerImpl(ServerManagedObject<? extends GlobalCfg> impl) {
2102      this.impl = impl;
2103      this.pAddMissingRDNAttributes = impl.getPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition());
2104      this.pAllowAttributeNameExceptions = impl.getPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition());
2105      this.pAllowedTask = impl.getPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition());
2106      this.pBindWithDNRequiresPassword = impl.getPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition());
2107      this.pCheckSchema = impl.getPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition());
2108      this.pDefaultPasswordPolicy = impl.getPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition());
2109      this.pDisabledPrivilege = impl.getPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition());
2110      this.pEtimeResolution = impl.getPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition());
2111      this.pIdleTimeLimit = impl.getPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition());
2112      this.pInvalidAttributeSyntaxBehavior = impl.getPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition());
2113      this.pLookthroughLimit = impl.getPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition());
2114      this.pMaxAllowedClientConnections = impl.getPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition());
2115      this.pMaxInternalBufferSize = impl.getPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition());
2116      this.pMaxPsearches = impl.getPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition());
2117      this.pNotifyAbandonedOperations = impl.getPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition());
2118      this.pProxiedAuthorizationIdentityMapper = impl.getPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition());
2119      this.pRejectUnauthenticatedRequests = impl.getPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition());
2120      this.pReturnBindErrorMessages = impl.getPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition());
2121      this.pSaveConfigOnSuccessfulStartup = impl.getPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition());
2122      this.pServerErrorResultCode = impl.getPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition());
2123      this.pSingleStructuralObjectclassBehavior = impl.getPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition());
2124      this.pSizeLimit = impl.getPropertyValue(INSTANCE.getSizeLimitPropertyDefinition());
2125      this.pSMTPServer = impl.getPropertyValues(INSTANCE.getSMTPServerPropertyDefinition());
2126      this.pTimeLimit = impl.getPropertyValue(INSTANCE.getTimeLimitPropertyDefinition());
2127      this.pTrustTransactionIds = impl.getPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition());
2128      this.pWritabilityMode = impl.getPropertyValue(INSTANCE.getWritabilityModePropertyDefinition());
2129    }
2130
2131
2132
2133    /**
2134     * {@inheritDoc}
2135     */
2136    public void addChangeListener(
2137        ConfigurationChangeListener<GlobalCfg> listener) {
2138      impl.registerChangeListener(listener);
2139    }
2140
2141
2142
2143    /**
2144     * {@inheritDoc}
2145     */
2146    public void removeChangeListener(
2147        ConfigurationChangeListener<GlobalCfg> listener) {
2148      impl.deregisterChangeListener(listener);
2149    }
2150
2151
2152
2153    /**
2154     * {@inheritDoc}
2155     */
2156    public boolean isAddMissingRDNAttributes() {
2157      return pAddMissingRDNAttributes;
2158    }
2159
2160
2161
2162    /**
2163     * {@inheritDoc}
2164     */
2165    public boolean isAllowAttributeNameExceptions() {
2166      return pAllowAttributeNameExceptions;
2167    }
2168
2169
2170
2171    /**
2172     * {@inheritDoc}
2173     */
2174    public SortedSet<String> getAllowedTask() {
2175      return pAllowedTask;
2176    }
2177
2178
2179
2180    /**
2181     * {@inheritDoc}
2182     */
2183    public boolean isBindWithDNRequiresPassword() {
2184      return pBindWithDNRequiresPassword;
2185    }
2186
2187
2188
2189    /**
2190     * {@inheritDoc}
2191     */
2192    public boolean isCheckSchema() {
2193      return pCheckSchema;
2194    }
2195
2196
2197
2198    /**
2199     * {@inheritDoc}
2200     */
2201    public String getDefaultPasswordPolicy() {
2202      return pDefaultPasswordPolicy;
2203    }
2204
2205
2206
2207    /**
2208     * {@inheritDoc}
2209     */
2210    public DN getDefaultPasswordPolicyDN() {
2211      String value = getDefaultPasswordPolicy();
2212      if (value == null) return null;
2213      return INSTANCE.getDefaultPasswordPolicyPropertyDefinition().getChildDN(value);
2214    }
2215
2216
2217
2218    /**
2219     * {@inheritDoc}
2220     */
2221    public SortedSet<DisabledPrivilege> getDisabledPrivilege() {
2222      return pDisabledPrivilege;
2223    }
2224
2225
2226
2227    /**
2228     * {@inheritDoc}
2229     */
2230    public EtimeResolution getEtimeResolution() {
2231      return pEtimeResolution;
2232    }
2233
2234
2235
2236    /**
2237     * {@inheritDoc}
2238     */
2239    public long getIdleTimeLimit() {
2240      return pIdleTimeLimit;
2241    }
2242
2243
2244
2245    /**
2246     * {@inheritDoc}
2247     */
2248    public InvalidAttributeSyntaxBehavior getInvalidAttributeSyntaxBehavior() {
2249      return pInvalidAttributeSyntaxBehavior;
2250    }
2251
2252
2253
2254    /**
2255     * {@inheritDoc}
2256     */
2257    public int getLookthroughLimit() {
2258      return pLookthroughLimit;
2259    }
2260
2261
2262
2263    /**
2264     * {@inheritDoc}
2265     */
2266    public int getMaxAllowedClientConnections() {
2267      return pMaxAllowedClientConnections;
2268    }
2269
2270
2271
2272    /**
2273     * {@inheritDoc}
2274     */
2275    public long getMaxInternalBufferSize() {
2276      return pMaxInternalBufferSize;
2277    }
2278
2279
2280
2281    /**
2282     * {@inheritDoc}
2283     */
2284    public int getMaxPsearches() {
2285      return pMaxPsearches;
2286    }
2287
2288
2289
2290    /**
2291     * {@inheritDoc}
2292     */
2293    public boolean isNotifyAbandonedOperations() {
2294      return pNotifyAbandonedOperations;
2295    }
2296
2297
2298
2299    /**
2300     * {@inheritDoc}
2301     */
2302    public String getProxiedAuthorizationIdentityMapper() {
2303      return pProxiedAuthorizationIdentityMapper;
2304    }
2305
2306
2307
2308    /**
2309     * {@inheritDoc}
2310     */
2311    public DN getProxiedAuthorizationIdentityMapperDN() {
2312      String value = getProxiedAuthorizationIdentityMapper();
2313      if (value == null) return null;
2314      return INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition().getChildDN(value);
2315    }
2316
2317
2318
2319    /**
2320     * {@inheritDoc}
2321     */
2322    public boolean isRejectUnauthenticatedRequests() {
2323      return pRejectUnauthenticatedRequests;
2324    }
2325
2326
2327
2328    /**
2329     * {@inheritDoc}
2330     */
2331    public boolean isReturnBindErrorMessages() {
2332      return pReturnBindErrorMessages;
2333    }
2334
2335
2336
2337    /**
2338     * {@inheritDoc}
2339     */
2340    public boolean isSaveConfigOnSuccessfulStartup() {
2341      return pSaveConfigOnSuccessfulStartup;
2342    }
2343
2344
2345
2346    /**
2347     * {@inheritDoc}
2348     */
2349    public int getServerErrorResultCode() {
2350      return pServerErrorResultCode;
2351    }
2352
2353
2354
2355    /**
2356     * {@inheritDoc}
2357     */
2358    public SingleStructuralObjectclassBehavior getSingleStructuralObjectclassBehavior() {
2359      return pSingleStructuralObjectclassBehavior;
2360    }
2361
2362
2363
2364    /**
2365     * {@inheritDoc}
2366     */
2367    public int getSizeLimit() {
2368      return pSizeLimit;
2369    }
2370
2371
2372
2373    /**
2374     * {@inheritDoc}
2375     */
2376    public SortedSet<String> getSMTPServer() {
2377      return pSMTPServer;
2378    }
2379
2380
2381
2382    /**
2383     * {@inheritDoc}
2384     */
2385    public long getTimeLimit() {
2386      return pTimeLimit;
2387    }
2388
2389
2390
2391    /**
2392     * {@inheritDoc}
2393     */
2394    public boolean isTrustTransactionIds() {
2395      return pTrustTransactionIds;
2396    }
2397
2398
2399
2400    /**
2401     * {@inheritDoc}
2402     */
2403    public WritabilityMode getWritabilityMode() {
2404      return pWritabilityMode;
2405    }
2406
2407
2408
2409    /**
2410     * {@inheritDoc}
2411     */
2412    public Class<? extends GlobalCfg> configurationClass() {
2413      return GlobalCfg.class;
2414    }
2415
2416
2417
2418    /**
2419     * {@inheritDoc}
2420     */
2421    public DN dn() {
2422      return impl.getDN();
2423    }
2424
2425
2426
2427    /** {@inheritDoc} */
2428    public String toString() {
2429      return impl.toString();
2430    }
2431  }
2432}