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/08/26 14:01:28 UTC

svn commit: r807974 - in /directory: apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/ shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/

Author: elecharny
Date: Wed Aug 26 12:01:27 2009
New Revision: 807974

URL: http://svn.apache.org/viewvc?rev=807974&view=rev
Log:
Fixed the registries constructor so that it takes the oidRegistry as an input, as we need to update it when adding or removing schemaObjects

Modified:
    directory/apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/AbstractBootstrapProducer.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaObjectRegistry.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java

Modified: directory/apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/AbstractBootstrapProducer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/AbstractBootstrapProducer.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/AbstractBootstrapProducer.java (original)
+++ directory/apacheds/branches/apacheds-schema/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/AbstractBootstrapProducer.java Wed Aug 26 12:01:27 2009
@@ -163,7 +163,7 @@
         public BootstrapMatchingRule(String oid, Registries registries)
         {
             super( oid );
-            this.syntaxRegistry = registries.getSyntaxRegistry();
+            this.syntaxRegistry = registries.getLdapSyntaxRegistry();
             this.normalizerRegistry = registries.getNormalizerRegistry();
             this.comparatorRegistry = registries.getComparatorRegistry();
         }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default ComparatorRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public ComparatorRegistry()
+    public ComparatorRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.COMPARATOR );
+        super( SchemaObjectType.COMPARATOR, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java Wed Aug 26 12:01:27 2009
@@ -20,14 +20,8 @@
 package org.apache.directory.shared.ldap.schema.registries;
 
 
-import java.util.Iterator;
-
-import javax.naming.NamingException;
-
 import org.apache.directory.shared.ldap.schema.DITContentRule;
-import org.apache.directory.shared.ldap.schema.Normalizer;
 import org.apache.directory.shared.ldap.schema.SchemaObjectType;
-import org.apache.directory.shared.ldap.schema.parsers.NormalizerDescription;
 
 
 /**
@@ -40,9 +34,11 @@
 {
     /**
      * Creates a new default NormalizerRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public DITContentRuleRegistry()
+    public DITContentRuleRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.DIT_CONTENT_RULE );
+        super( SchemaObjectType.DIT_CONTENT_RULE, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java Wed Aug 26 12:01:27 2009
@@ -52,10 +52,12 @@
     
     /**
      * Creates a new default NormalizerRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public DITStructureRuleRegistry()
+    public DITStructureRuleRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.DIT_STRUCTURE_RULE );
+        super( SchemaObjectType.DIT_STRUCTURE_RULE, oidRegistry );
         byRuleId = new ConcurrentHashMap<Integer, DITStructureRule>();
     }
 

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java Wed Aug 26 12:01:27 2009
@@ -33,9 +33,11 @@
 {
     /**
      * Creates a new default LdapSyntaxRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public LdapSyntaxRegistry()
+    public LdapSyntaxRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.LDAP_SYNTAX );
+        super( SchemaObjectType.LDAP_SYNTAX, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default MatchingRuleRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public MatchingRuleRegistry()
+    public MatchingRuleRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.MATCHING_RULE );
+        super( SchemaObjectType.MATCHING_RULE, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java Wed Aug 26 12:01:27 2009
@@ -36,9 +36,11 @@
 {
     /**
      * Creates a new default MatchingRuleUseRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public MatchingRuleUseRegistry()
+    public MatchingRuleUseRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.MATCHING_RULE_USE );
+        super( SchemaObjectType.MATCHING_RULE_USE, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default NameFormRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public NameFormRegistry()
+    public NameFormRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.NAME_FORM );
+        super( SchemaObjectType.NAME_FORM, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default NormalizerRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public NormalizerRegistry()
+    public NormalizerRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.NORMALIZER );
+        super( SchemaObjectType.NORMALIZER, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default ObjectClassRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public ObjectClassRegistry()
+    public ObjectClassRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.OBJECT_CLASS );
+        super( SchemaObjectType.OBJECT_CLASS, oidRegistry );
     }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java Wed Aug 26 12:01:27 2009
@@ -104,17 +104,17 @@
         });
         
         oidRegistry = registry;
-        normalizerRegistry = new NormalizerRegistry();
-        comparatorRegistry = new ComparatorRegistry();
-        syntaxCheckerRegistry = new SyntaxCheckerRegistry();
-        ldapSyntaxRegistry = new LdapSyntaxRegistry();
-        matchingRuleRegistry = new MatchingRuleRegistry();
+        normalizerRegistry = new NormalizerRegistry( oidRegistry );
+        comparatorRegistry = new ComparatorRegistry( oidRegistry );
+        syntaxCheckerRegistry = new SyntaxCheckerRegistry( oidRegistry );
+        ldapSyntaxRegistry = new LdapSyntaxRegistry( oidRegistry );
+        matchingRuleRegistry = new MatchingRuleRegistry( oidRegistry );
         attributeTypeRegistry = new AttributeTypeRegistry( oidRegistry );
-        objectClassRegistry = new ObjectClassRegistry();
-        ditContentRuleRegistry = new DITContentRuleRegistry();
-        ditStructureRuleRegistry = new DITStructureRuleRegistry();
-        matchingRuleUseRegistry = new MatchingRuleUseRegistry();
-        nameFormRegistry = new NameFormRegistry();
+        objectClassRegistry = new ObjectClassRegistry( oidRegistry );
+        ditContentRuleRegistry = new DITContentRuleRegistry( oidRegistry );
+        ditStructureRuleRegistry = new DITStructureRuleRegistry( oidRegistry );
+        matchingRuleUseRegistry = new MatchingRuleUseRegistry( oidRegistry );
+        nameFormRegistry = new NameFormRegistry( oidRegistry );
     }
     
     

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaObjectRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaObjectRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaObjectRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SchemaObjectRegistry.java Wed Aug 26 12:01:27 2009
@@ -53,14 +53,18 @@
     /** The SchemaObject type */
     protected SchemaObjectType type;
 
+    /** the global OID Registry */
+    protected final OidRegistry oidRegistry;
+    
 
     /**
      * Creates a new SchemaObjectRegistry instance.
      */
-    protected SchemaObjectRegistry( SchemaObjectType schemaObjectType )
+    protected SchemaObjectRegistry( SchemaObjectType schemaObjectType, OidRegistry oidRegistry )
     {
         byOid = new ConcurrentHashMap<String, T>();
         type = schemaObjectType;
+        this.oidRegistry = oidRegistry;
     }
     
     
@@ -205,6 +209,9 @@
         {
             LOG.debug( "registered {} for OID {}", schemaObject, oid );
         }
+        
+        // And register the oid -> schemaObject relation
+        oidRegistry.register( schemaObject );
     }
 
 
@@ -226,6 +233,9 @@
 
         SchemaObject schemaObject = byOid.remove( numericOid );
         
+        // And remove the SchemaObject from the oidRegistry
+        oidRegistry.unregister( numericOid );
+        
         if ( DEBUG )
         {
             LOG.debug( "Removed {} with oid {} from the registry", schemaObject, numericOid );
@@ -239,7 +249,7 @@
      * 
      * @param schemaName the name of the schema whose SchemaObjects will be removed from
      */
-    public void unregisterSchemaElements( String schemaName )
+    public void unregisterSchemaElements( String schemaName ) throws NamingException
     {
         if ( schemaName == null )
         {
@@ -254,6 +264,7 @@
             {
                 String oid = schemaObject.getOid();
                 SchemaObject removed = byOid.remove( oid );
+                oidRegistry.unregister( oid );
                 
                 if ( DEBUG )
                 {

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java?rev=807974&r1=807973&r2=807974&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java Wed Aug 26 12:01:27 2009
@@ -34,9 +34,11 @@
 {
     /**
      * Creates a new default SyntaxCheckerRegistry instance.
+     * 
+     * @param oidRegistry The global OID registry 
      */
-    public SyntaxCheckerRegistry()
+    public SyntaxCheckerRegistry( OidRegistry oidRegistry )
     {
-        super( SchemaObjectType.SYNTAX_CHECKER );
+        super( SchemaObjectType.SYNTAX_CHECKER, oidRegistry );
     }
 }