You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2009/11/17 18:20:57 UTC
svn commit: r881386 -
/directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java
Author: elecharny
Date: Tue Nov 17 17:20:56 2009
New Revision: 881386
URL: http://svn.apache.org/viewvc?rev=881386&view=rev
Log:
Many fixes, javadoc addition, comments addition
Modified:
directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java
Modified: directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java?rev=881386&r1=881385&r2=881386&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java (original)
+++ directory/shared/branches/shared-schema/ldap-schema-loader/src/main/java/org/apache/directory/shared/schema/DefaultSchemaManager.java Tue Nov 17 17:20:56 2009
@@ -26,7 +26,6 @@
import javax.naming.NamingException;
import org.apache.directory.shared.ldap.NotImplementedException;
-import org.apache.directory.shared.ldap.constants.MetaSchemaConstants;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.name.LdapDN;
@@ -195,6 +194,10 @@
registerNameForms( schema, registries );
registerDitStructureRules( schema, registries );
+ // Now that we have loaded all the SchemaObjects, we have to create the
+ // cross references
+ registries.buildReferences();
+
//notifyListenerOrRegistries( schema, registries );
}
@@ -219,28 +222,21 @@
// Check the resulting registries
errors = targetRegistries.checkRefInteg();
+ // Rebuild the using and usedBy references
+ errors.addAll( targetRegistries.buildReferences() );
+
// if we have no more error, we can swap the registries
if ( errors.size() == 0 )
{
targetRegistries.setStrict();
- // Rebuild the references
- errors = targetRegistries.checkRefInteg();
-
- if ( errors.size() == 0 )
- {
- Registries oldRegistries = registries;
- registries = targetRegistries;
+ Registries oldRegistries = registries;
+ registries = targetRegistries;
- // Delete the old registries to avoid memory leaks
- destroy( oldRegistries );
-
- return true;
- }
- else
- {
- return false;
- }
+ // Delete the old registries to avoid memory leaks
+ destroy( oldRegistries );
+
+ return true;
}
else
{
@@ -587,11 +583,7 @@
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( attributeType );
- }
- else if ( schema.isEnabled() && attributeType.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && attributeType.isEnabled() ) )
{
registries.register( attributeType );
}
@@ -612,9 +604,6 @@
}
}
- // And register the AT in the OidRegister
- registries.getOidRegistry().register( attributeType );
-
return attributeType;
}
@@ -633,15 +622,9 @@
LdapComparator<?> comparator =
factory.getLdapComparator( this, entry, registries, schema.getSchemaName() );
- comparator.setOid( entry.get( MetaSchemaConstants.M_OID_AT ).getString() );
-
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( comparator );
- }
- else if ( schema.isEnabled() && comparator.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && comparator.isEnabled() ) )
{
registries.register( comparator );
}
@@ -717,11 +700,7 @@
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( matchingRule );
- }
- else if ( schema.isEnabled() && matchingRule.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && matchingRule.isEnabled() ) )
{
registries.register( matchingRule );
}
@@ -742,10 +721,6 @@
}
}
-
- // And register the MR in the OidRegister
- registries.getOidRegistry().register( matchingRule );
-
return matchingRule;
}
@@ -801,11 +776,7 @@
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( normalizer );
- }
- else if ( schema.isEnabled() && normalizer.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && normalizer.isEnabled() ) )
{
registries.register( normalizer );
}
@@ -846,11 +817,7 @@
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( objectClass );
- }
- else if ( schema.isEnabled() && objectClass.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && objectClass.isEnabled() ) )
{
registries.register( objectClass );
}
@@ -871,9 +838,6 @@
}
}
- // And register the OC in the OidRegister
- registries.getOidRegistry().register( objectClass );
-
return objectClass;
}
@@ -892,15 +856,10 @@
{
SyntaxChecker syntaxChecker =
factory.getSyntaxChecker( this, entry, registries, schema.getSchemaName() );
- syntaxChecker.setOid( entry.get( MetaSchemaConstants.M_OID_AT ).getString() );
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( syntaxChecker );
- }
- else if ( schema.isEnabled() && syntaxChecker.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && syntaxChecker.isEnabled() ) )
{
registries.register( syntaxChecker );
}
@@ -943,11 +902,7 @@
if ( registries.isRelaxed() )
{
- if ( registries.isDisabledAccepted() )
- {
- registries.register( syntax );
- }
- else if ( schema.isEnabled() && syntax.isEnabled() )
+ if ( registries.isDisabledAccepted() || ( schema.isEnabled() && syntax.isEnabled() ) )
{
registries.register( syntax );
}
@@ -968,9 +923,6 @@
}
}
- // And register the Syntax in the OidRegister
- registries.getOidRegistry().register( syntax );
-
return syntax;
}
@@ -1193,21 +1145,20 @@
*/
public boolean verify( Schema... schemas ) throws Exception
{
- Registries clonedRegistries = null;
-
- clonedRegistries = registries.clone();
- clonedRegistries.setRelaxed();
+ // Work on a cloned registries
+ Registries clonedRegistries = cloneRegistries();
+ // Loop on all the schemas
for ( Schema schema : schemas )
{
try
{
-
// Inject the schema
boolean loaded = load( clonedRegistries, schema );
if ( !loaded )
{
+ // We got an error : exit
destroy( clonedRegistries );
return false;
}
@@ -1217,17 +1168,22 @@
if ( errors.size() != 0 )
{
+ // We got an error : exit
destroy( clonedRegistries );
return false;
}
}
catch ( Exception e )
{
+ // We got an error : exit
destroy( clonedRegistries );
return false;
}
}
+ // We can now delete the cloned registries before exiting
+ destroy( clonedRegistries );
+
return true;
}
@@ -1437,7 +1393,7 @@
*/
public OidRegistry getOidRegistry()
{
- return registries.getOidRegistry();
+ return registries.getGlobalOidRegistry();
}