From 1c8e5cfe6e0b17d10da60c705dc084e095aa325e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 10 Jul 2013 07:36:32 +0000
Subject: [PATCH] DirectoryServer.java: In bootstrapAttributeSyntaxes(), extracted method initAndRegister() to remove duplicated code.
---
opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java | 303 ++++------------------
opendj-sdk/opends/src/server/org/opends/server/types/Schema.java | 254 ++++++++++---------
opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java | 173 +++++++-----
3 files changed, 294 insertions(+), 436 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
index a3eb16e..263cf1f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
@@ -127,91 +127,115 @@
- // The set of user-defined attributes that will be included in the schema
- // entry.
+ /**
+ * The set of user-defined attributes that will be included in the schema
+ * entry.
+ */
private ArrayList<Attribute> userDefinedAttributes;
- // The attribute type that will be used to include the defined attribute
- // types.
+ /**
+ * The attribute type that will be used to include the defined attribute
+ * types.
+ */
private AttributeType attributeTypesType;
- // The attribute type that will be used to hold the schema creation timestamp.
+ /**
+ * The attribute type that will be used to hold the schema creation timestamp.
+ */
private AttributeType createTimestampType;
- // The attribute type that will be used to hold the schema creator's name.
+ /** The attribute type that will be used to hold the schema creator's name. */
private AttributeType creatorsNameType;
- // The attribute type that will be used to include the defined DIT content
- // rules.
+ /**
+ * The attribute type that will be used to include the defined DIT content
+ * rules.
+ */
private AttributeType ditContentRulesType;
- // The attribute type that will be used to include the defined DIT structure
- // rules.
+ /**
+ * The attribute type that will be used to include the defined DIT structure
+ * rules.
+ */
private AttributeType ditStructureRulesType;
- // The attribute type that will be used to include the defined attribute
- // syntaxes.
+ /**
+ * The attribute type that will be used to include the defined attribute
+ * syntaxes.
+ */
private AttributeType ldapSyntaxesType;
- // The attribute type that will be used to include the defined matching rules.
+ /**
+ * The attribute type that will be used to include the defined matching rules.
+ */
private AttributeType matchingRulesType;
- // The attribute type that will be used to include the defined matching rule
- // uses.
+ /**
+ * The attribute type that will be used to include the defined matching rule
+ * uses.
+ */
private AttributeType matchingRuleUsesType;
- // The attribute that will be used to hold the schema modifier's name.
+ /** The attribute that will be used to hold the schema modifier's name. */
private AttributeType modifiersNameType;
- // The attribute type that will be used to hold the schema modification
- // timestamp.
+ /**
+ * The attribute type that will be used to hold the schema modification
+ * timestamp.
+ */
private AttributeType modifyTimestampType;
- // The attribute type that will be used to include the defined object classes.
+ /**
+ * The attribute type that will be used to include the defined object classes.
+ */
private AttributeType objectClassesType;
- // The attribute type that will be used to include the defined name forms.
+ /** The attribute type that will be used to include the defined name forms. */
private AttributeType nameFormsType;
- // The value containing DN of the user we'll say created the configuration.
+ /** The value containing DN of the user we'll say created the configuration. */
private AttributeValue creatorsName;
- // The value containing the DN of the last user to modify the configuration.
+ /** The value containing the DN of the last user to modify the configuration. */
private AttributeValue modifiersName;
- // The timestamp that will be used for the schema creation time.
+ /** The timestamp that will be used for the schema creation time. */
private AttributeValue createTimestamp;
- // The timestamp that will be used for the latest schema modification time.
+ /** The timestamp that will be used for the latest schema modification time. */
private AttributeValue modifyTimestamp;
- // Indicates whether the attributes of the schema entry should always be
- // treated as user attributes even if they are defined as operational.
+ /**
+ * Indicates whether the attributes of the schema entry should always be
+ * treated as user attributes even if they are defined as operational.
+ */
private boolean showAllAttributes;
- // The DN of the configuration entry for this backend.
+ /** The DN of the configuration entry for this backend. */
private DN configEntryDN;
- // The current configuration state.
+ /** The current configuration state. */
private SchemaBackendCfg currentConfig;
- // The set of base DNs for this backend.
+ /** The set of base DNs for this backend. */
private DN[] baseDNs;
- // The set of objectclasses that will be used in the schema entry.
+ /** The set of objectclasses that will be used in the schema entry. */
private HashMap<ObjectClass,String> schemaObjectClasses;
- // The set of supported controls for this backend.
- private HashSet<String> supportedControls;
+ /** The set of supported controls for this backend. */
+ private Set<String> supportedControls;
- // The set of supported features for this backend.
- private HashSet<String> supportedFeatures;
+ /** The set of supported features for this backend. */
+ private Set<String> supportedFeatures;
- // The time that the schema was last modified.
+ /** The time that the schema was last modified. */
private long modifyTime;
- //Regular expression used to strip minimum upper bound value from
- //syntax Attribute Type Description. The value looks like: {count}.
+ /**
+ * Regular expression used to strip minimum upper bound value from syntax
+ * Attribute Type Description. The value looks like: {count}.
+ */
private String stripMinUpperBoundRegEx = "\\{\\d+\\}";
@@ -386,13 +410,13 @@
try
{
// First, generate lists of elements from the current schema.
- LinkedHashSet<String> newATs = new LinkedHashSet<String>();
- LinkedHashSet<String> newOCs = new LinkedHashSet<String>();
- LinkedHashSet<String> newNFs = new LinkedHashSet<String>();
- LinkedHashSet<String> newDCRs = new LinkedHashSet<String>();
- LinkedHashSet<String> newDSRs = new LinkedHashSet<String>();
- LinkedHashSet<String> newMRUs = new LinkedHashSet<String>();
- LinkedHashSet<String> newLSDs = new LinkedHashSet<String>();
+ Set<String> newATs = new LinkedHashSet<String>();
+ Set<String> newOCs = new LinkedHashSet<String>();
+ Set<String> newNFs = new LinkedHashSet<String>();
+ Set<String> newDCRs = new LinkedHashSet<String>();
+ Set<String> newDSRs = new LinkedHashSet<String>();
+ Set<String> newMRUs = new LinkedHashSet<String>();
+ Set<String> newLSDs = new LinkedHashSet<String>();
Schema.genConcatenatedSchema(newATs, newOCs, newNFs, newDCRs, newDSRs,
newMRUs,newLSDs);
@@ -439,19 +463,19 @@
}
}
- LinkedHashSet<String> oldATs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldOCs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldNFs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldDCRs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldDSRs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldMRUs = new LinkedHashSet<String>();
- LinkedHashSet<String> oldLSDs = new LinkedHashSet<String>();
+ Set<String> oldATs = new LinkedHashSet<String>();
+ Set<String> oldOCs = new LinkedHashSet<String>();
+ Set<String> oldNFs = new LinkedHashSet<String>();
+ Set<String> oldDCRs = new LinkedHashSet<String>();
+ Set<String> oldDSRs = new LinkedHashSet<String>();
+ Set<String> oldMRUs = new LinkedHashSet<String>();
+ Set<String> oldLSDs = new LinkedHashSet<String>();
Schema.readConcatenatedSchema(concatFilePath, oldATs, oldOCs, oldNFs,
oldDCRs, oldDSRs, oldMRUs,oldLSDs);
// Create a list of modifications and add any differences between the old
// and new schema into them.
- LinkedList<Modification> mods = new LinkedList<Modification>();
+ List<Modification> mods = new LinkedList<Modification>();
Schema.compareConcatenatedSchema(oldATs, newATs, attributeTypesType,
mods);
Schema.compareConcatenatedSchema(oldOCs, newOCs, objectClassesType, mods);
@@ -681,10 +705,10 @@
private Entry getSchemaEntry(DN entryDN, boolean includeSchemaFile,
boolean ignoreShowAllOption)
{
- LinkedHashMap<AttributeType, List<Attribute>> userAttrs =
+ Map<AttributeType, List<Attribute>> userAttrs =
new LinkedHashMap<AttributeType, List<Attribute>>();
- LinkedHashMap<AttributeType, List<Attribute>> operationalAttrs =
+ Map<AttributeType, List<Attribute>> operationalAttrs =
new LinkedHashMap<AttributeType, List<Attribute>>();
// Add the RDN attribute(s) for the provided entry.
@@ -714,14 +738,13 @@
Schema schema = DirectoryServer.getSchema();
// Add the "attributeTypes" attribute.
- LinkedHashSet<AttributeValue> valueSet = DirectoryServer
- .getAttributeTypeSet();
+ Set<AttributeValue> valueSet = DirectoryServer.getAttributeTypeSet();
// Add the file name to the description of the attribute type if
// this was requested by the caller.
if (includeSchemaFile)
{
- LinkedHashSet<AttributeValue> newValueSet =
+ Set<AttributeValue> newValueSet =
new LinkedHashSet<AttributeValue>(valueSet.size());
for (AttributeValue value : valueSet)
@@ -796,7 +819,7 @@
// the caller.
if (includeSchemaFile)
{
- LinkedHashSet<AttributeValue> newValueSet =
+ Set<AttributeValue> newValueSet =
new LinkedHashSet<AttributeValue>(valueSet.size());
for (AttributeValue value : valueSet)
@@ -3434,7 +3457,7 @@
*/
private Entry createEmptySchemaEntry()
{
- LinkedHashMap<ObjectClass,String> objectClasses =
+ Map<ObjectClass,String> objectClasses =
new LinkedHashMap<ObjectClass,String>();
objectClasses.put(DirectoryServer.getTopObjectClass(), OC_TOP);
objectClasses.put(DirectoryServer.getObjectClass(OC_LDAP_SUBENTRY_LC, true),
@@ -3442,10 +3465,10 @@
objectClasses.put(DirectoryServer.getObjectClass(OC_SUBSCHEMA, true),
OC_SUBSCHEMA);
- LinkedHashMap<AttributeType,List<Attribute>> userAttributes =
+ Map<AttributeType,List<Attribute>> userAttributes =
new LinkedHashMap<AttributeType,List<Attribute>>();
- LinkedHashMap<AttributeType,List<Attribute>> operationalAttributes =
+ Map<AttributeType,List<Attribute>> operationalAttributes =
new LinkedHashMap<AttributeType,List<Attribute>>();
DN dn = DirectoryServer.getSchemaDN();
@@ -3453,7 +3476,7 @@
for (int i=0; i < rdn.getNumValues(); i++)
{
AttributeType type = rdn.getAttributeType(i);
- LinkedList<Attribute> attrList = new LinkedList<Attribute>();
+ List<Attribute> attrList = new LinkedList<Attribute>();
attrList.add(Attributes.create(type, rdn.getAttributeValue(i)));
if (type.isOperational())
{
@@ -3499,7 +3522,7 @@
* this only for the real part of the ldapsyntaxes attribute. The real part
* is read and write to/from the schema files.
*/
- LinkedHashSet<AttributeValue> values = new LinkedHashSet<AttributeValue>();
+ Set<AttributeValue> values = new LinkedHashSet<AttributeValue>();
for (LDAPSyntaxDescription ldapSyntax :
schema.getLdapSyntaxDescriptions().values())
{
@@ -3522,7 +3545,7 @@
// Add all of the appropriate attribute types to the schema entry. We need
// to be careful of the ordering to ensure that any superior types in the
// same file are written before the subordinate types.
- HashSet<AttributeType> addedTypes = new HashSet<AttributeType>();
+ Set<AttributeType> addedTypes = new HashSet<AttributeType>();
values = new LinkedHashSet<AttributeValue>();
for (AttributeType at : schema.getAttributeTypes().values())
{
@@ -3545,7 +3568,7 @@
// Add all of the appropriate objectclasses to the schema entry. We need
// to be careful of the ordering to ensure that any superior classes in the
// same file are written before the subordinate classes.
- HashSet<ObjectClass> addedClasses = new HashSet<ObjectClass>();
+ Set<ObjectClass> addedClasses = new HashSet<ObjectClass>();
values = new LinkedHashSet<AttributeValue>();
for (ObjectClass oc : schema.getObjectClasses().values())
{
@@ -3618,7 +3641,7 @@
// Add all of the appropriate DIT structure rules to the schema entry. We
// need to be careful of the ordering to ensure that any superior rules in
// the same file are written before the subordinate rules.
- HashSet<DITStructureRule> addedDSRs = new HashSet<DITStructureRule>();
+ Set<DITStructureRule> addedDSRs = new HashSet<DITStructureRule>();
values = new LinkedHashSet<AttributeValue>();
for (DITStructureRule dsr : schema.getDITStructureRulesByID().values())
{
@@ -3705,8 +3728,8 @@
*/
private void addAttrTypeToSchemaFile(Schema schema, String schemaFile,
AttributeType attributeType,
- LinkedHashSet<AttributeValue> values,
- HashSet<AttributeType> addedTypes,
+ Set<AttributeValue> values,
+ Set<AttributeType> addedTypes,
int depth)
throws DirectoryException
{
@@ -3756,8 +3779,8 @@
*/
private void addObjectClassToSchemaFile(Schema schema, String schemaFile,
ObjectClass objectClass,
- LinkedHashSet<AttributeValue> values,
- HashSet<ObjectClass> addedClasses,
+ Set<AttributeValue> values,
+ Set<ObjectClass> addedClasses,
int depth)
throws DirectoryException
{
@@ -3808,8 +3831,8 @@
*/
private void addDITStructureRuleToSchemaFile(Schema schema, String schemaFile,
DITStructureRule ditStructureRule,
- LinkedHashSet<AttributeValue> values,
- HashSet<DITStructureRule> addedDSRs, int depth)
+ Set<AttributeValue> values,
+ Set<DITStructureRule> addedDSRs, int depth)
throws DirectoryException
{
if (depth > 20)
@@ -4240,7 +4263,7 @@
* {@inheritDoc}
*/
@Override()
- public HashSet<String> getSupportedControls()
+ public Set<String> getSupportedControls()
{
return supportedControls;
}
@@ -4251,7 +4274,7 @@
* {@inheritDoc}
*/
@Override()
- public HashSet<String> getSupportedFeatures()
+ public Set<String> getSupportedFeatures()
{
return supportedFeatures;
}
@@ -5781,7 +5804,7 @@
// deleteBaseDNs will contain the set of DNs that should no longer be used
// and should be deregistered from the server, and the newBaseDNs set will
// just contain the set of DNs to add.
- HashSet<DN> deleteBaseDNs = new HashSet<DN>(baseDNs.length);
+ Set<DN> deleteBaseDNs = new HashSet<DN>(baseDNs.length);
for (DN baseDN : baseDNs)
{
if (! newBaseDNs.remove(baseDN))
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
index 096678c..e950d76 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -398,10 +398,10 @@
private ConcurrentHashMap<String,SASLMechanismHandler> saslMechanismHandlers;
/** The connection handler configuration manager for the Directory Server. */
- private ConnectionHandlerConfigManager connectionHandlerConfigManager = null;
+ private ConnectionHandlerConfigManager connectionHandlerConfigManager;
/** The set of alert handlers registered with the Directory Server. */
- private CopyOnWriteArrayList<AlertHandler> alertHandlers;
+ private List<AlertHandler> alertHandlers;
/** The set of backup task listeners registered with the Directory Server. */
private CopyOnWriteArrayList<BackupTaskListener> backupTaskListeners;
@@ -410,11 +410,11 @@
* The set of change notification listeners registered with the Directory
* Server.
*/
- private CopyOnWriteArrayList<ChangeNotificationListener>
+ private List<ChangeNotificationListener>
changeNotificationListeners;
/** The set of connection handlers registered with the Directory Server. */
- private CopyOnWriteArrayList<ConnectionHandler> connectionHandlers;
+ private List<ConnectionHandler> connectionHandlers;
/** The set of export task listeners registered with the Directory Server. */
private CopyOnWriteArrayList<ExportTaskListener> exportTaskListeners;
@@ -429,35 +429,34 @@
* The set of initialization completed listeners that have been registered
* with the Directory Server.
*/
- private CopyOnWriteArrayList<InitializationCompletedListener>
+ private List<InitializationCompletedListener>
initializationCompletedListeners;
/**
* The set of shutdown listeners that have been registered with the Directory
* Server.
*/
- private CopyOnWriteArrayList<ServerShutdownListener> shutdownListeners;
+ private List<ServerShutdownListener> shutdownListeners;
/**
* The set of synchronization providers that have been registered with the
* Directory Server.
*/
- private
- CopyOnWriteArrayList<SynchronizationProvider<SynchronizationProviderCfg>>
+ private List<SynchronizationProvider<SynchronizationProviderCfg>>
synchronizationProviders;
/** The set of virtual attributes defined in the server. */
- private CopyOnWriteArrayList<VirtualAttributeRule> virtualAttributes;
+ private List<VirtualAttributeRule> virtualAttributes;
/**
* The set of backend initialization listeners registered with the Directory
* Server.
*/
- private CopyOnWriteArraySet<BackendInitializationListener>
+ private Set<BackendInitializationListener>
backendInitializationListeners;
/** The set of root DNs registered with the Directory Server. */
- private CopyOnWriteArraySet<DN> rootDNs;
+ private Set<DN> rootDNs;
/** The core configuration manager for the Directory Server. */
private CoreConfigManager coreConfigManager;
@@ -548,7 +547,7 @@
private ExtensionConfigManager extensionConfigManager;
/** The set of connections that are currently established. */
- private LinkedHashSet<ClientConnection> establishedConnections;
+ private Set<ClientConnection> establishedConnections;
/** The sets of mail server properties. */
private List<Properties> mailServerPropertySets;
@@ -1623,9 +1622,26 @@
*/
private void bootstrapAttributeSyntaxes()
{
+ initAndRegister(new AttributeTypeSyntax());
+ defaultBinarySyntax = initAndRegister(new BinarySyntax());
+ defaultBooleanSyntax = initAndRegister(new BooleanSyntax());
+ defaultStringSyntax = initAndRegister(new DirectoryStringSyntax());
+ defaultSyntax = defaultStringSyntax;
+ defaultDNSyntax = initAndRegister(new DistinguishedNameSyntax());
+ initAndRegister(new IA5StringSyntax());
+ defaultIntegerSyntax = initAndRegister(new IntegerSyntax());
+ initAndRegister(new GeneralizedTimeSyntax());
+ initAndRegister(new ObjectClassSyntax());
+ initAndRegister(new OIDSyntax());
+ initAndRegister(new TelephoneNumberSyntax());
+ }
+
+
+ private <T extends AttributeSyntaxCfg> AttributeSyntax<T> initAndRegister(
+ AttributeSyntax<T> syntax)
+ {
try
{
- AttributeTypeSyntax syntax = new AttributeTypeSyntax();
syntax.initializeSyntax(null);
registerAttributeSyntax(syntax, true);
}
@@ -1636,205 +1652,10 @@
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- AttributeTypeSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
+ logError(ERR_CANNOT_BOOTSTRAP_SYNTAX.get(syntax.getClass().getName(),
+ stackTraceToSingleLineString(e)));
}
-
-
- try
- {
- defaultBinarySyntax = new BinarySyntax();
- defaultBinarySyntax.initializeSyntax(null);
- registerAttributeSyntax(defaultBinarySyntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- BinarySyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- defaultBooleanSyntax = new BooleanSyntax();
- defaultBooleanSyntax.initializeSyntax(null);
- registerAttributeSyntax(defaultBooleanSyntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- BooleanSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- defaultStringSyntax = new DirectoryStringSyntax();
- defaultStringSyntax.initializeSyntax(null);
- registerAttributeSyntax(defaultStringSyntax, true);
- defaultSyntax = defaultStringSyntax;
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.
- get(DirectoryStringSyntax.class.getName(),
- stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- defaultDNSyntax = new DistinguishedNameSyntax();
- defaultDNSyntax.initializeSyntax(null);
- registerAttributeSyntax(defaultDNSyntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.
- get(DistinguishedNameSyntax.class.getName(),
- stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- IA5StringSyntax syntax = new IA5StringSyntax();
- syntax.initializeSyntax(null);
- registerAttributeSyntax(syntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- IA5StringSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- defaultIntegerSyntax = new IntegerSyntax();
- defaultIntegerSyntax.initializeSyntax(null);
- registerAttributeSyntax(defaultIntegerSyntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- IntegerSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- GeneralizedTimeSyntax syntax = new GeneralizedTimeSyntax();
- syntax.initializeSyntax(null);
- registerAttributeSyntax(syntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.
- get(GeneralizedTimeSyntax.class.getName(),
- stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- ObjectClassSyntax syntax = new ObjectClassSyntax();
- syntax.initializeSyntax(null);
- registerAttributeSyntax(syntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- ObjectClassSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- OIDSyntax syntax = new OIDSyntax();
- syntax.initializeSyntax(null);
- registerAttributeSyntax(syntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.get(
- OIDSyntax.class.getName(), stackTraceToSingleLineString(e));
- logError(message);
- }
-
-
- try
- {
- TelephoneNumberSyntax syntax = new TelephoneNumberSyntax();
- syntax.initializeSyntax(null);
- registerAttributeSyntax(syntax, true);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = ERR_CANNOT_BOOTSTRAP_SYNTAX.
- get(TelephoneNumberSyntax.class.getName(),
- stackTraceToSingleLineString(e));
- logError(message);
- }
+ return syntax;
}
@@ -1982,11 +1803,11 @@
// preserve any configuration add/delete/change listeners that might have
// been registered with the old configuration (which will primarily be
// schema elements) so they can be re-registered with the new configuration.
- LinkedHashMap<String,List<ConfigAddListener>> addListeners =
+ Map<String, List<ConfigAddListener>> addListeners =
new LinkedHashMap<String,List<ConfigAddListener>>();
- LinkedHashMap<String,List<ConfigDeleteListener>> deleteListeners =
+ Map<String, List<ConfigDeleteListener>> deleteListeners =
new LinkedHashMap<String,List<ConfigDeleteListener>>();
- LinkedHashMap<String,List<ConfigChangeListener>> changeListeners =
+ Map<String, List<ConfigChangeListener>> changeListeners =
new LinkedHashMap<String,List<ConfigChangeListener>>();
getChangeListeners(configHandler.getConfigRootEntry(), addListeners,
deleteListeners, changeListeners);
@@ -2114,26 +1935,25 @@
* the corresponding configuration entry.
*/
private void getChangeListeners(ConfigEntry configEntry,
- LinkedHashMap<String,List<ConfigAddListener>> addListeners,
- LinkedHashMap<String,List<ConfigDeleteListener>> deleteListeners,
- LinkedHashMap<String,List<ConfigChangeListener>> changeListeners)
+ Map<String, List<ConfigAddListener>> addListeners,
+ Map<String, List<ConfigDeleteListener>> deleteListeners,
+ Map<String, List<ConfigChangeListener>> changeListeners)
{
- CopyOnWriteArrayList<ConfigAddListener> cfgAddListeners =
- configEntry.getAddListeners();
+ List<ConfigAddListener> cfgAddListeners = configEntry.getAddListeners();
if ((cfgAddListeners != null) && (cfgAddListeners.size() > 0))
{
addListeners.put(configEntry.getDN().toString(), cfgAddListeners);
}
- CopyOnWriteArrayList<ConfigDeleteListener> cfgDeleteListeners =
- configEntry.getDeleteListeners();
+ List<ConfigDeleteListener> cfgDeleteListeners =
+ configEntry.getDeleteListeners();
if ((cfgDeleteListeners != null) && (cfgDeleteListeners.size() > 0))
{
deleteListeners.put(configEntry.getDN().toString(), cfgDeleteListeners);
}
- CopyOnWriteArrayList<ConfigChangeListener> cfgChangeListeners =
- configEntry.getChangeListeners();
+ List<ConfigChangeListener> cfgChangeListeners =
+ configEntry.getChangeListeners();
if ((cfgChangeListeners != null) && (cfgChangeListeners.size() > 0))
{
changeListeners.put(configEntry.getDN().toString(), cfgChangeListeners);
@@ -3235,7 +3055,7 @@
* @return The set of encoded matching rules that have been defined in the
* Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getMatchingRuleSet()
+ public static Set<AttributeValue> getMatchingRuleSet()
{
return directoryServer.schema.getMatchingRuleSet();
}
@@ -3634,7 +3454,7 @@
* @return The set of encoded objectclasses that have been defined in the
* Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getObjectClassSet()
+ public static Set<AttributeValue> getObjectClassSet()
{
return directoryServer.schema.getObjectClassSet();
}
@@ -3838,7 +3658,7 @@
* @return The set of encoded attribute types that have been defined in the
* Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getAttributeTypeSet()
+ public static Set<AttributeValue> getAttributeTypeSet()
{
return directoryServer.schema.getAttributeTypeSet();
}
@@ -4057,7 +3877,7 @@
* @return The set of encoded attribute syntaxes that have been defined in
* the Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getAttributeSyntaxSet()
+ public static Set<AttributeValue> getAttributeSyntaxSet()
{
return directoryServer.schema.getSyntaxSet();
}
@@ -4238,7 +4058,7 @@
* @return The set of encoded matching rule uses that have been defined in
* the Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getMatchingRuleUseSet()
+ public static Set<AttributeValue> getMatchingRuleUseSet()
{
return directoryServer.schema.getMatchingRuleUseSet();
}
@@ -4318,7 +4138,7 @@
* @return The set of encoded DIT content rules that have been defined in the
* Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getDITContentRuleSet()
+ public static Set<AttributeValue> getDITContentRuleSet()
{
return directoryServer.schema.getDITContentRuleSet();
}
@@ -4397,7 +4217,7 @@
* @return The set of encoded DIT structure rules that have been defined in
* the Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getDITStructureRuleSet()
+ public static Set<AttributeValue> getDITStructureRuleSet()
{
return directoryServer.schema.getDITStructureRuleSet();
}
@@ -4493,7 +4313,7 @@
* @return The set of encoded name forms that have been defined in the
* Directory Server.
*/
- public static LinkedHashSet<AttributeValue> getNameFormSet()
+ public static Set<AttributeValue> getNameFormSet()
{
return directoryServer.schema.getNameFormSet();
}
@@ -4593,8 +4413,8 @@
*/
public static List<VirtualAttributeRule> getVirtualAttributes(Entry entry)
{
- LinkedList<VirtualAttributeRule> ruleList =
- new LinkedList<VirtualAttributeRule>();
+ List<VirtualAttributeRule> ruleList =
+ new LinkedList<VirtualAttributeRule>();
for (VirtualAttributeRule rule : directoryServer.virtualAttributes)
{
@@ -4803,7 +4623,7 @@
* @return The set of alert handlers that have been registered with the
* Directory Server.
*/
- public static CopyOnWriteArrayList<AlertHandler> getAlertHandlers()
+ public static List<AlertHandler> getAlertHandlers()
{
return directoryServer.alertHandlers;
}
@@ -5864,7 +5684,7 @@
*
* @return The DNs for the root users configured in the Directory Server.
*/
- public static CopyOnWriteArraySet<DN> getRootDNs()
+ public static Set<DN> getRootDNs()
{
return directoryServer.rootDNs;
}
@@ -7173,7 +6993,7 @@
*
* @return The set of connection handlers configured in the Directory Server.
*/
- public static CopyOnWriteArrayList<ConnectionHandler> getConnectionHandlers()
+ public static List<ConnectionHandler> getConnectionHandlers()
{
return directoryServer.connectionHandlers;
}
@@ -7238,8 +7058,8 @@
*/
private void startConnectionHandlers() throws ConfigException
{
- LinkedHashSet<HostPort> usedListeners = new LinkedHashSet<HostPort>();
- LinkedHashSet<Message> errorMessages = new LinkedHashSet<Message>();
+ Set<HostPort> usedListeners = new LinkedHashSet<HostPort>();
+ Set<Message> errorMessages = new LinkedHashSet<Message>();
// Check that the port specified in the connection handlers is
// available.
for (ConnectionHandler<?> c : connectionHandlers)
@@ -7475,7 +7295,7 @@
* @return The set of change notification listeners registered with the
* Directory Server.
*/
- public static CopyOnWriteArrayList<ChangeNotificationListener>
+ public static List<ChangeNotificationListener>
getChangeNotificationListeners()
{
return directoryServer.changeNotificationListeners;
@@ -7522,8 +7342,7 @@
* @return The set of synchronization providers that have been registered
* with the Directory Server.
*/
- public static
- CopyOnWriteArrayList<SynchronizationProvider<SynchronizationProviderCfg>>
+ public static List<SynchronizationProvider<SynchronizationProviderCfg>>
getSynchronizationProviders()
{
return directoryServer.synchronizationProviders;
@@ -9396,7 +9215,7 @@
// We're not really trying to start, so rebuild the argument list
// without the "--checkStartability" argument and try again. Exit with
// whatever that exits with.
- LinkedList<String> newArgList = new LinkedList<String>();
+ List<String> newArgList = new LinkedList<String>();
for (String arg : args)
{
if (! arg.equalsIgnoreCase("--checkstartability"))
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
index dd70081..1b572c0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
@@ -42,6 +42,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
@@ -99,140 +100,161 @@
- // The matching rule that will be used to normalize schema element
- // definitions.
+ /**
+ * The matching rule that will be used to normalize schema element
+ * definitions.
+ */
private MatchingRule normalizationMatchingRule;
- // The set of subordinate attribute types registered within the
- // server schema.
+ /**
+ * The set of subordinate attribute types registered within the server schema.
+ */
private ConcurrentHashMap<AttributeType,List<AttributeType>>
subordinateTypes;
- // The set of attribute type definitions for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // attribute type itself.
+ /**
+ * The set of attribute type definitions for this schema, mapped between the
+ * lowercase names and OID for the definition and the attribute type itself.
+ */
private ConcurrentHashMap<String,AttributeType> attributeTypes;
- // The set of objectclass definitions for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // objectclass itself.
+ /**
+ * The set of objectclass definitions for this schema, mapped between the
+ * lowercase names and OID for the definition and the objectclass itself.
+ */
private ConcurrentHashMap<String,ObjectClass> objectClasses;
- // The set of attribute syntaxes for this schema, mapped between the
- // OID for the syntax and the syntax itself.
+ /**
+ * The set of attribute syntaxes for this schema, mapped between the OID for
+ * the syntax and the syntax itself.
+ */
private ConcurrentHashMap<String,AttributeSyntax<?>> syntaxes;
- // The entire set of matching rules for this schema, mapped between
- // the lowercase names and OID for the definition and the matching
- // rule itself.
+ /**
+ * The entire set of matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,MatchingRule> matchingRules;
- // The set of approximate matching rules for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // matching rule itself.
+ /**
+ * The set of approximate matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,ApproximateMatchingRule>
approximateMatchingRules;
- // The set of equality matching rules for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // matching rule itself.
+ /**
+ * The set of equality matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,EqualityMatchingRule>
equalityMatchingRules;
- // The set of ordering matching rules for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // matching rule itself.
+ /**
+ * The set of ordering matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,OrderingMatchingRule>
orderingMatchingRules;
- // The set of substring matching rules for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // matching rule itself.
+ /**
+ * The set of substring matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,SubstringMatchingRule>
substringMatchingRules;
- // The set of extensible matching rules for this schema, mapped
- // between the lowercase names and OID for the definition and the
- // matching rule itself.
+ /**
+ * The set of extensible matching rules for this schema, mapped between the
+ * lowercase names and OID for the definition and the matching rule itself.
+ */
private ConcurrentHashMap<String,ExtensibleMatchingRule>
extensibleMatchingRules;
- // The set of matching rule uses for this schema, mapped between the
- // matching rule for the definition and the matching rule use
- // itself.
+ /**
+ * The set of matching rule uses for this schema, mapped between the matching
+ * rule for the definition and the matching rule use itself.
+ */
private ConcurrentHashMap<MatchingRule,MatchingRuleUse>
matchingRuleUses;
- // The set of DIT content rules for this schema, mapped between the
- // structural objectclass for the definition and the DIT content
- // rule itself.
+ /**
+ * The set of DIT content rules for this schema, mapped between the structural
+ * objectclass for the definition and the DIT content rule itself.
+ */
private ConcurrentHashMap<ObjectClass,DITContentRule>
ditContentRules;
- // The set of DIT structure rules for this schema, mapped between
- // the name form for the definition and the DIT structure rule
- // itself.
+ /**
+ * The set of DIT structure rules for this schema, mapped between the name
+ * form for the definition and the DIT structure rule itself.
+ */
private ConcurrentHashMap<Integer,DITStructureRule>
ditStructureRulesByID;
- // The set of DIT structure rules for this schema, mapped between
- // the name form for the definition and the DIT structure rule
- // itself.
+ /**
+ * The set of DIT structure rules for this schema, mapped between the name
+ * form for the definition and the DIT structure rule itself.
+ */
private ConcurrentHashMap<NameForm,DITStructureRule>
ditStructureRulesByNameForm;
- // The set of name forms for this schema, mapped between the
- // structural objectclass for the definition and the list of name
- // forms
+ /**
+ * The set of name forms for this schema, mapped between the structural
+ * objectclass for the definition and the list of name forms
+ */
private ConcurrentHashMap<ObjectClass,List<NameForm>>
nameFormsByOC;
- // The set of name forms for this schema, mapped between the
- // names/OID and the name form itself.
+ /**
+ * The set of name forms for this schema, mapped between the names/OID and the
+ * name form itself.
+ */
private ConcurrentHashMap<String,NameForm> nameFormsByName;
- // The set of ldap syntax descriptions for this schema, mapped
- // the OID and the ldap syntax description itself.
+ /**
+ * The set of ldap syntax descriptions for this schema, mapped the OID and the
+ * ldap syntax description itself.
+ */
private ConcurrentHashMap<String,LDAPSyntaxDescription>
ldapSyntaxDescriptions;
- // The set of pre-encoded attribute syntax representations.
- private LinkedHashSet<AttributeValue> syntaxSet;
+ /** The set of pre-encoded attribute syntax representations. */
+ private Set<AttributeValue> syntaxSet;
- // The set of pre-encoded attribute type representations.
- private LinkedHashSet<AttributeValue> attributeTypeSet;
+ /** The set of pre-encoded attribute type representations. */
+ private Set<AttributeValue> attributeTypeSet;
- // The set of pre-encoded DIT content rule representations.
- private LinkedHashSet<AttributeValue> ditContentRuleSet;
+ /** The set of pre-encoded DIT content rule representations. */
+ private Set<AttributeValue> ditContentRuleSet;
- // The set of pre-encoded DIT structure rule representations.
- private LinkedHashSet<AttributeValue> ditStructureRuleSet;
+ /** The set of pre-encoded DIT structure rule representations. */
+ private Set<AttributeValue> ditStructureRuleSet;
- // The set of pre-encoded matching rule representations.
- private LinkedHashSet<AttributeValue> matchingRuleSet;
+ /** The set of pre-encoded matching rule representations. */
+ private Set<AttributeValue> matchingRuleSet;
- // The set of pre-encoded matching rule use representations.
- private LinkedHashSet<AttributeValue> matchingRuleUseSet;
+ /** The set of pre-encoded matching rule use representations. */
+ private Set<AttributeValue> matchingRuleUseSet;
- // The set of pre-encoded name form representations.
- private LinkedHashSet<AttributeValue> nameFormSet;
+ /** The set of pre-encoded name form representations. */
+ private Set<AttributeValue> nameFormSet;
- // The set of pre-encoded objectclass representations.
- private LinkedHashSet<AttributeValue> objectClassSet;
+ /** The set of pre-encoded objectclass representations. */
+ private Set<AttributeValue> objectClassSet;
- // The oldest modification timestamp for any schema configuration
- // file.
+ /** The oldest modification timestamp for any schema configuration file. */
private long oldestModificationTime;
- // The youngest modification timestamp for any schema configuration
- // file.
+ /** The youngest modification timestamp for any schema configuration file. */
private long youngestModificationTime;
- // A set of extra attributes that are not used directly by
- // the schema but may be used by other component to store
- // information in the schema.
- // ex : Replication uses this to store its state and GenerationID.
-
+ /**
+ * A set of extra attributes that are not used directly by the schema but may
+ * be used by other component to store information in the schema.
+ * <p>
+ * ex : Replication uses this to store its state and GenerationID.
+ */
private Map<String, Attribute> extraAttributes =
new HashMap<String, Attribute>();
@@ -313,7 +335,7 @@
*
* @return The set of defined attribute types for this schema.
*/
- public LinkedHashSet<AttributeValue> getAttributeTypeSet()
+ public Set<AttributeValue> getAttributeTypeSet()
{
return attributeTypeSet;
}
@@ -612,7 +634,7 @@
*
* @return The set of defined objectclasses for this schema.
*/
- public LinkedHashSet<AttributeValue> getObjectClassSet()
+ public Set<AttributeValue> getObjectClassSet()
{
return objectClassSet;
}
@@ -803,7 +825,7 @@
*
* @return The set of defined attribute syntaxes for this schema.
*/
- public LinkedHashSet<AttributeValue> getSyntaxSet()
+ public Set<AttributeValue> getSyntaxSet()
{
return syntaxSet;
}
@@ -1097,7 +1119,7 @@
*
* @return The set of defined matching rules for this schema.
*/
- public LinkedHashSet<AttributeValue> getMatchingRuleSet()
+ public Set<AttributeValue> getMatchingRuleSet()
{
return matchingRuleSet;
}
@@ -2217,7 +2239,7 @@
*
* @return The set of defined matching rule uses for this schema.
*/
- public LinkedHashSet<AttributeValue> getMatchingRuleUseSet()
+ public Set<AttributeValue> getMatchingRuleUseSet()
{
return matchingRuleUseSet;
}
@@ -2378,7 +2400,7 @@
*
* @return The set of defined DIT content rules for this schema.
*/
- public LinkedHashSet<AttributeValue> getDITContentRuleSet()
+ public Set<AttributeValue> getDITContentRuleSet()
{
return ditContentRuleSet;
}
@@ -2521,7 +2543,7 @@
*
* @return The set of defined DIT structure rules for this schema.
*/
- public LinkedHashSet<AttributeValue> getDITStructureRuleSet()
+ public Set<AttributeValue> getDITStructureRuleSet()
{
return ditStructureRuleSet;
}
@@ -2753,7 +2775,7 @@
*
* @return The set of defined name forms for this schema.
*/
- public LinkedHashSet<AttributeValue> getNameFormSet()
+ public Set<AttributeValue> getNameFormSet()
{
return nameFormSet;
}
@@ -3397,19 +3419,13 @@
String concatFilePath = null;
try
{
- LinkedHashSet<String> attributeTypes =
- new LinkedHashSet<String>();
- LinkedHashSet<String> objectClasses =
- new LinkedHashSet<String>();
- LinkedHashSet<String> nameForms = new LinkedHashSet<String>();
- LinkedHashSet<String> ditContentRules =
- new LinkedHashSet<String>();
- LinkedHashSet<String> ditStructureRules =
- new LinkedHashSet<String>();
- LinkedHashSet<String> matchingRuleUses =
- new LinkedHashSet<String>();
- LinkedHashSet<String> ldapSyntaxes =
- new LinkedHashSet<String>();
+ Set<String> attributeTypes = new LinkedHashSet<String>();
+ Set<String> objectClasses = new LinkedHashSet<String>();
+ Set<String> nameForms = new LinkedHashSet<String>();
+ Set<String> ditContentRules = new LinkedHashSet<String>();
+ Set<String> ditStructureRules = new LinkedHashSet<String>();
+ Set<String> matchingRuleUses = new LinkedHashSet<String>();
+ Set<String> ldapSyntaxes = new LinkedHashSet<String>();
genConcatenatedSchema(attributeTypes, objectClasses, nameForms,
ditContentRules, ditStructureRules,
matchingRuleUses,ldapSyntaxes);
@@ -3547,13 +3563,13 @@
* schema file elements.
*/
public static void genConcatenatedSchema(
- LinkedHashSet<String> attributeTypes,
- LinkedHashSet<String> objectClasses,
- LinkedHashSet<String> nameForms,
- LinkedHashSet<String> ditContentRules,
- LinkedHashSet<String> ditStructureRules,
- LinkedHashSet<String> matchingRuleUses,
- LinkedHashSet<String> ldapSyntaxes)
+ Set<String> attributeTypes,
+ Set<String> objectClasses,
+ Set<String> nameForms,
+ Set<String> ditContentRules,
+ Set<String> ditStructureRules,
+ Set<String> matchingRuleUses,
+ Set<String> ldapSyntaxes)
throws IOException
{
// Get a sorted list of the files in the schema directory.
@@ -3672,13 +3688,13 @@
* schema file elements.
*/
public static void readConcatenatedSchema(String concatSchemaFile,
- LinkedHashSet<String> attributeTypes,
- LinkedHashSet<String> objectClasses,
- LinkedHashSet<String> nameForms,
- LinkedHashSet<String> ditContentRules,
- LinkedHashSet<String> ditStructureRules,
- LinkedHashSet<String> matchingRuleUses,
- LinkedHashSet<String> ldapSyntaxes)
+ Set<String> attributeTypes,
+ Set<String> objectClasses,
+ Set<String> nameForms,
+ Set<String> ditContentRules,
+ Set<String> ditStructureRules,
+ Set<String> matchingRuleUses,
+ Set<String> ldapSyntaxes)
throws IOException
{
BufferedReader reader =
@@ -3721,13 +3737,13 @@
*/
private static void parseSchemaLine(String line,
- LinkedHashSet<String> attributeTypes,
- LinkedHashSet<String> objectClasses,
- LinkedHashSet<String> nameForms,
- LinkedHashSet<String> ditContentRules,
- LinkedHashSet<String> ditStructureRules,
- LinkedHashSet<String> matchingRuleUses,
- LinkedHashSet<String> ldapSyntaxes)
+ Set<String> attributeTypes,
+ Set<String> objectClasses,
+ Set<String> nameForms,
+ Set<String> ditContentRules,
+ Set<String> ditStructureRules,
+ Set<String> matchingRuleUses,
+ Set<String> ldapSyntaxes)
{
String value;
String lowerLine = toLowerCase(line);
@@ -3789,10 +3805,10 @@
* identified differences should be written.
*/
public static void compareConcatenatedSchema(
- LinkedHashSet<String> oldElements,
- LinkedHashSet<String> newElements,
+ Set<String> oldElements,
+ Set<String> newElements,
AttributeType elementType,
- LinkedList<Modification> mods)
+ List<Modification> mods)
{
AttributeType attributeTypesType =
DirectoryServer.getAttributeType(ATTR_ATTRIBUTE_TYPES_LC, true);
--
Gitblit v1.10.0