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 2010/07/08 20:23:30 UTC

svn commit: r961863 - in /directory: apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/ apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/ apacheds/trunk/core/src/main/jav...

Author: elecharny
Date: Thu Jul  8 18:23:29 2010
New Revision: 961863

URL: http://svn.apache.org/viewvc?rev=961863&view=rev
Log:
o Added a SchemaMnager.getAttributeType() method which does not throw an exception 
o Removed many AT lookups
o The RefinementEvaluator now takes a SchemaManager instead of an OidRegistry

Modified:
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/AbstractRegistrySynchronizer.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/AttributesFactory.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/DefaultSchemaService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java
    directory/shared/trunk/ldap-aci/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java
    directory/shared/trunk/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java
    directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaManager.java

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java Thu Jul  8 18:23:29 2010
@@ -83,7 +83,7 @@ public class PartitionSchemaLoader exten
         this.schemaManager = schemaManager;
 
         dao = new SchemaPartitionDaoImpl( this.partition, schemaManager );
-        cnAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.CN_AT );
+        cnAT = schemaManager.getAttributeType( SchemaConstants.CN_AT );
 
         initStaticDNs( "system" );
         initStaticDNs( "core" );

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java Thu Jul  8 18:23:29 2010
@@ -135,20 +135,20 @@ public class SchemaPartitionDaoImpl impl
 
         this.M_NAME_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_NAME_AT );
         this.CN_OID = schemaManager.getAttributeTypeRegistry().getOidByName( SchemaConstants.CN_AT );
-        this.disabledAttributeType = schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_DISABLED_AT );
-        this.M_OID_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_OID_AT );
+        this.disabledAttributeType = schemaManager.getAttributeType( MetaSchemaConstants.M_DISABLED_AT );
+        this.M_OID_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_OID_AT ).getOid();
         this.OBJECTCLASS_OID = schemaManager.getAttributeTypeRegistry().getOidByName( SchemaConstants.OBJECT_CLASS_AT );
-        this.M_SYNTAX_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_SYNTAX_AT );
-        this.M_ORDERING_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_ORDERING_AT );
-        this.M_EQUALITY_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_EQUALITY_AT );
-        this.M_SUBSTRING_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_SUBSTR_AT );
-        this.M_SUP_ATTRIBUTE_TYPE_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_SUP_ATTRIBUTE_TYPE_AT );
-        this.M_MUST_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_MUST_AT );
-        this.M_MAY_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_MAY_AT );
-        this.M_AUX_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_AUX_AT );
-        this.M_OC_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_OC_AT );
-        this.M_SUP_OBJECT_CLASS_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_SUP_OBJECT_CLASS_AT );
-        this.M_DEPENDENCIES_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_DEPENDENCIES_AT );
+        this.M_SYNTAX_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_SYNTAX_AT ).getOid();
+        this.M_ORDERING_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_ORDERING_AT ).getOid();
+        this.M_EQUALITY_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_EQUALITY_AT ).getOid();
+        this.M_SUBSTRING_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_SUBSTR_AT ).getOid();
+        this.M_SUP_ATTRIBUTE_TYPE_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_SUP_ATTRIBUTE_TYPE_AT ).getOid();
+        this.M_MUST_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_MUST_AT ).getOid();
+        this.M_MAY_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_MAY_AT ).getOid();
+        this.M_AUX_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_AUX_AT ).getOid();
+        this.M_OC_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_OC_AT ).getOid();
+        this.M_SUP_OBJECT_CLASS_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_SUP_OBJECT_CLASS_AT ).getOid();
+        this.M_DEPENDENCIES_OID = schemaManager.getAttributeType( MetaSchemaConstants.M_DEPENDENCIES_AT ).getOid();
         
         for ( String attrId : SCHEMA_ATTRIBUTES )
         {
@@ -590,14 +590,14 @@ public class SchemaPartitionDaoImpl impl
         }
 
         mods.add( new DefaultModification( ModificationOperation.REMOVE_ATTRIBUTE, new DefaultEntryAttribute(
-            MetaSchemaConstants.M_DISABLED_AT, schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_DISABLED_AT ) ) ) );
+            MetaSchemaConstants.M_DISABLED_AT, schemaManager.getAttributeType( MetaSchemaConstants.M_DISABLED_AT ) ) ) );
 
         mods.add( new DefaultModification( ModificationOperation.ADD_ATTRIBUTE, new DefaultEntryAttribute(
-            SchemaConstants.MODIFIERS_NAME_AT, schemaManager.lookupAttributeTypeRegistry( SchemaConstants.MODIFIERS_NAME_AT ),
+            SchemaConstants.MODIFIERS_NAME_AT, schemaManager.getAttributeType( SchemaConstants.MODIFIERS_NAME_AT ),
             ServerDNConstants.ADMIN_SYSTEM_DN ) ) );
 
         mods.add( new DefaultModification( ModificationOperation.ADD_ATTRIBUTE, new DefaultEntryAttribute(
-            SchemaConstants.MODIFY_TIMESTAMP_AT, schemaManager.lookupAttributeTypeRegistry( SchemaConstants.MODIFY_TIMESTAMP_AT ), DateUtils
+            SchemaConstants.MODIFY_TIMESTAMP_AT, schemaManager.getAttributeType( SchemaConstants.MODIFY_TIMESTAMP_AT ), DateUtils
                 .getGeneralizedTime() ) ) );
 
         partition.modify( new ModifyOperationContext( null, dn, mods ) );

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/AbstractRegistrySynchronizer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/AbstractRegistrySynchronizer.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/AbstractRegistrySynchronizer.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/registries/synchronizers/AbstractRegistrySynchronizer.java Thu Jul  8 18:23:29 2010
@@ -93,7 +93,7 @@ public abstract class AbstractRegistrySy
     protected AbstractRegistrySynchronizer( SchemaManager schemaManager ) throws Exception
     {
         this.schemaManager = schemaManager;
-        m_oidAT = schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_OID_AT );
+        m_oidAT = schemaManager.getAttributeType( MetaSchemaConstants.M_OID_AT );
         factory = new SchemaEntityFactory();
     }
     

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java Thu Jul  8 18:23:29 2010
@@ -157,7 +157,7 @@ public class AciAuthorizationInterceptor
     /** interceptor chain */
     private InterceptorChain chain;
 
-    /** Global registries */
+    /** SchemaManager instance */
     private SchemaManager schemaManager;
 
     /** the system wide subschemaSubentryDn */
@@ -201,10 +201,10 @@ public class AciAuthorizationInterceptor
         groupCache = new GroupCache( adminSession );
 
         // look up some constant information
-        OBJECT_CLASS_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
-        ACCESS_CONTROL_SUBENTRY_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ACCESS_CONTROL_SUBENTRIES_AT );
-        ENTRY_ACI_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ENTRY_ACI_AT_OID );
-        SUBENTRY_ACI_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.SUBENTRY_ACI_AT_OID );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
+        ACCESS_CONTROL_SUBENTRY_AT = schemaManager.getAttributeType( SchemaConstants.ACCESS_CONTROL_SUBENTRIES_AT );
+        ENTRY_ACI_AT = schemaManager.getAttributeType( SchemaConstants.ENTRY_ACI_AT_OID );
+        SUBENTRY_ACI_AT = schemaManager.getAttributeType( SchemaConstants.SUBENTRY_ACI_AT_OID );
 
         // Iitialize the ACI PARSER and ACDF engine
         aciParser = new ACIItemParser( new ConcreteNameComponentNormalizer( schemaManager ), schemaManager );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java Thu Jul  8 18:23:29 2010
@@ -116,7 +116,7 @@ public class DefaultAuthorizationInterce
         ADMIN_GROUP_DN = new DN( ServerDNConstants.ADMINISTRATORS_GROUP_DN );
         ADMIN_GROUP_DN.normalize( schemaManager.getNormalizerMapping() );
 
-        uniqueMemberAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.UNIQUE_MEMBER_AT_OID );
+        uniqueMemberAT = schemaManager.getAttributeType( SchemaConstants.UNIQUE_MEMBER_AT_OID );
 
         loadAdministrators( directoryService );
     }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java Thu Jul  8 18:23:29 2010
@@ -74,11 +74,14 @@ public class GroupCache
     /** a handle on the partition nexus */
     private final PartitionNexus nexus;
 
+    /** A storage for the ObjectClass attributeType */
+    private AttributeType OBJECT_CLASS_AT;
+
     /** A storage for the member attributeType */
-    private AttributeType memberAT;
+    private AttributeType MEMBER_AT;
 
     /** A storage for the uniqueMember attributeType */
-    private AttributeType uniqueMemberAT;
+    private AttributeType UNIQUE_MEMBER_AT;
 
     /**
      * The OIDs normalizer map
@@ -102,8 +105,9 @@ public class GroupCache
         SchemaManager schemaManager = session.getDirectoryService().getSchemaManager();
         normalizerMap = schemaManager.getNormalizerMapping();
         nexus = session.getDirectoryService().getPartitionNexus();
-        memberAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.MEMBER_AT_OID );
-        uniqueMemberAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.UNIQUE_MEMBER_AT_OID );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
+        MEMBER_AT = schemaManager.getAttributeType( SchemaConstants.MEMBER_AT );
+        UNIQUE_MEMBER_AT = schemaManager.getAttributeType( SchemaConstants.UNIQUE_MEMBER_AT );
 
         // stuff for dealing with the admin group
         administratorsGroupDn = parseNormalized( ServerDNConstants.ADMINISTRATORS_GROUP_DN );
@@ -191,18 +195,18 @@ public class GroupCache
      */
     private EntryAttribute getMemberAttribute( Entry entry ) throws LdapException
     {
-        EntryAttribute oc = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute oc = entry.get( OBJECT_CLASS_AT );
 
         if ( oc == null )
         {
-            EntryAttribute member = entry.get( memberAT );
+            EntryAttribute member = entry.get( MEMBER_AT );
 
             if ( member != null )
             {
                 return member;
             }
 
-            EntryAttribute uniqueMember = entry.get( uniqueMemberAT );
+            EntryAttribute uniqueMember = entry.get( UNIQUE_MEMBER_AT );
 
             if ( uniqueMember != null )
             {
@@ -214,13 +218,13 @@ public class GroupCache
 
         if ( oc.contains( SchemaConstants.GROUP_OF_NAMES_OC ) || oc.contains( SchemaConstants.GROUP_OF_NAMES_OC_OID ) )
         {
-            return entry.get( memberAT );
+            return entry.get( MEMBER_AT );
         }
 
         if ( oc.contains( SchemaConstants.GROUP_OF_UNIQUE_NAMES_OC )
             || oc.contains( SchemaConstants.GROUP_OF_UNIQUE_NAMES_OC_OID ) )
         {
-            return entry.get( uniqueMemberAT );
+            return entry.get( UNIQUE_MEMBER_AT );
         }
 
         return null;
@@ -389,17 +393,17 @@ public class GroupCache
     {
         EntryAttribute members = null;
         String memberAttrId = null;
-        EntryAttribute oc = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute oc = entry.get( OBJECT_CLASS_AT );
 
         if ( oc.contains( SchemaConstants.GROUP_OF_NAMES_OC ) )
         {
-            members = entry.get( memberAT );
+            members = entry.get( MEMBER_AT );
             memberAttrId = SchemaConstants.MEMBER_AT;
         }
 
         if ( oc.contains( SchemaConstants.GROUP_OF_UNIQUE_NAMES_OC ) )
         {
-            members = entry.get( uniqueMemberAT );
+            members = entry.get( UNIQUE_MEMBER_AT );
             memberAttrId = SchemaConstants.UNIQUE_MEMBER_AT;
         }
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java Thu Jul  8 18:23:29 2010
@@ -82,7 +82,7 @@ public class TupleCache
     private final ACIItemParser aciParser;
 
     /** A storage for the PrescriptiveACI attributeType */
-    private AttributeType prescriptiveAciAT;
+    private AttributeType PRESCRIPTIVE_ACI_AT;
 
     /** A storage for the ObjectClass attributeType */
     private static AttributeType OBJECT_CLASS_AT;
@@ -100,8 +100,8 @@ public class TupleCache
         this.nexus = session.getDirectoryService().getPartitionNexus();
         NameComponentNormalizer ncn = new ConcreteNameComponentNormalizer( schemaManager );
         aciParser = new ACIItemParser( ncn, schemaManager );
-        prescriptiveAciAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.PRESCRIPTIVE_ACI_AT );
-        OBJECT_CLASS_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
+        PRESCRIPTIVE_ACI_AT = schemaManager.getAttributeType( SchemaConstants.PRESCRIPTIVE_ACI_AT );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
         initialize( session );
     }
 
@@ -142,7 +142,7 @@ public class TupleCache
                     Entry result = results.get();
                     DN subentryDn = result.getDn().normalize( session.getDirectoryService().getSchemaManager().
                             getNormalizerMapping() );
-                    EntryAttribute aci = result.get( prescriptiveAciAT );
+                    EntryAttribute aci = result.get( PRESCRIPTIVE_ACI_AT );
     
                     if ( aci == null )
                     {
@@ -170,7 +170,7 @@ public class TupleCache
     private boolean hasPrescriptiveACI( Entry entry ) throws LdapException
     {
         // only do something if the entry contains prescriptiveACI
-        EntryAttribute aci = entry.get( prescriptiveAciAT );
+        EntryAttribute aci = entry.get( PRESCRIPTIVE_ACI_AT );
 
         if ( aci == null )
         {
@@ -200,7 +200,7 @@ public class TupleCache
         }
 
         // Get the prescriptiveACI
-        EntryAttribute prescriptiveAci = entry.get( prescriptiveAciAT );
+        EntryAttribute prescriptiveAci = entry.get( PRESCRIPTIVE_ACI_AT );
 
         List<ACITuple> entryTuples = new ArrayList<ACITuple>();
 
@@ -266,7 +266,7 @@ public class TupleCache
             return;
         }
 
-        if ( mods.get( prescriptiveAciAT ) != null )
+        if ( mods.get( PRESCRIPTIVE_ACI_AT ) != null )
         {
             subentryDeleted( normName, entry );
             subentryAdded( normName, entry );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java Thu Jul  8 18:23:29 2010
@@ -85,7 +85,7 @@ public class ACDFEngine
     {
         Evaluator entryEvaluator = new ExpressionEvaluator( schemaManager );
         SubtreeEvaluator subtreeEvaluator = new SubtreeEvaluator( schemaManager );
-        RefinementEvaluator refinementEvaluator = new RefinementEvaluator( new RefinementLeafEvaluator( schemaManager.getGlobalOidRegistry() ) );
+        RefinementEvaluator refinementEvaluator = new RefinementEvaluator( new RefinementLeafEvaluator( schemaManager ) );
 
         filters = new ACITupleFilter[] {
             new RelatedUserClassFilter( subtreeEvaluator ),

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java Thu Jul  8 18:23:29 2010
@@ -90,7 +90,7 @@ public class ChangeLogInterceptor extend
         changeLog = directoryService.getChangeLog();
         schemaService = directoryService.getSchemaService();
         entryDeleted = directoryService.getSchemaManager()
-                .lookupAttributeTypeRegistry( ApacheSchemaConstants.ENTRY_DELETED_AT_OID );
+                .getAttributeType( ApacheSchemaConstants.ENTRY_DELETED_AT_OID );
     }
 
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java Thu Jul  8 18:23:29 2010
@@ -60,6 +60,8 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.exception.LdapUnwillingToPerformException;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
+import org.apache.directory.shared.ldap.schema.SchemaManager;
 
 
 /**
@@ -98,6 +100,12 @@ public class ExceptionInterceptor extend
     /** Declare a default for this cache. 100 entries seems to be enough */
     private static final int DEFAULT_CACHE_SIZE = 100;
 
+    /** SchemaManager instance */
+    private SchemaManager schemaManager;
+
+    /** The ObjectClass AttributeType */
+    private static AttributeType OBJECT_CLASS_AT;
+
 
     /**
      * Creates an interceptor that is also the exception handling service.
@@ -113,6 +121,10 @@ public class ExceptionInterceptor extend
         Value<?> attr = nexus.getRootDSE( null ).get( SchemaConstants.SUBSCHEMA_SUBENTRY_AT ).get();
         subschemSubentryDn = new DN( attr.getString() );
         subschemSubentryDn.normalize( directoryService.getSchemaManager().getNormalizerMapping() );
+        schemaManager = directoryService.getSchemaManager();
+
+        // look up some constant information
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
     }
 
 
@@ -180,7 +192,7 @@ public class ExceptionInterceptor extend
             }
 
             EntryAttribute objectClass = ( ( ClonedServerEntry ) attrs ).getOriginalEntry().get(
-                SchemaConstants.OBJECT_CLASS_AT );
+                OBJECT_CLASS_AT );
 
             if ( objectClass.contains( SchemaConstants.ALIAS_OC ) )
             {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java Thu Jul  8 18:23:29 2010
@@ -144,9 +144,8 @@ public class OperationalAttributeInterce
         adminDn = new DN( ServerDNConstants.ADMIN_SYSTEM_DN );
         adminDn.normalize( schemaManager.getNormalizerMapping() );
 
-        MODIFIERS_NAME_ATTRIBUTE_TYPE = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.MODIFIERS_NAME_AT );
-        MODIFY_TIMESTAMP_ATTRIBUTE_TYPE = schemaManager
-            .lookupAttributeTypeRegistry( SchemaConstants.MODIFY_TIMESTAMP_AT );
+        MODIFIERS_NAME_ATTRIBUTE_TYPE = schemaManager.getAttributeType( SchemaConstants.MODIFIERS_NAME_AT );
+        MODIFY_TIMESTAMP_ATTRIBUTE_TYPE = schemaManager.getAttributeType( SchemaConstants.MODIFY_TIMESTAMP_AT );
     }
 
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java Thu Jul  8 18:23:29 2010
@@ -214,7 +214,7 @@ public class DefaultPartitionNexus exten
 
         //this.directoryService = directoryService;
         schemaManager = directoryService.getSchemaManager();
-        ENTRY_CSN_ATTRIBUTE_TYPE = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ENTRY_CSN_AT );
+        ENTRY_CSN_ATTRIBUTE_TYPE = schemaManager.getAttributeType( SchemaConstants.ENTRY_CSN_AT );
 
         // Initialize and normalize the localy used DNs
         DN adminDn = new DN( ServerDNConstants.ADMIN_SYSTEM_DN );
@@ -334,7 +334,7 @@ public class DefaultPartitionNexus exten
             if ( namingContexts == null )
             {
                 namingContexts = new DefaultEntryAttribute( schemaManager
-                    .lookupAttributeTypeRegistry( SchemaConstants.NAMING_CONTEXTS_AT ), system.getSuffix().getName() );
+                    .getAttributeType( SchemaConstants.NAMING_CONTEXTS_AT ), system.getSuffix().getName() );
                 rootDSE.put( namingContexts );
             }
             else

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java Thu Jul  8 18:23:29 2010
@@ -45,6 +45,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.util.LdapURL;
 import org.apache.directory.shared.ldap.util.StringTools;
@@ -74,6 +75,9 @@ public class ReferralInterceptor extends
     /** A normalized form for the SubschemaSubentry DN */
     private DN subschemaSubentryDn;
 
+    /** The ObjectClass AttributeType */
+    private static AttributeType OBJECT_CLASS_AT;
+
 
     static private void checkRefAttributeValue( Value<?> value ) throws LdapException, LdapURLEncodingException
     {
@@ -151,7 +155,7 @@ public class ReferralInterceptor extends
             return false;
         }
 
-        EntryAttribute oc = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute oc = entry.get( OBJECT_CLASS_AT );
 
         if ( oc == null )
         {
@@ -209,6 +213,9 @@ public class ReferralInterceptor extends
         Value<?> subschemaSubentry = nexus.getRootDSE( null ).get( SchemaConstants.SUBSCHEMA_SUBENTRY_AT ).get();
         subschemaSubentryDn = new DN( subschemaSubentry.getString() );
         subschemaSubentryDn.normalize( schemaManager.getNormalizerMapping() );
+
+        // look up some constant information
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
     }
 
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/AttributesFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/AttributesFactory.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/AttributesFactory.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/AttributesFactory.java Thu Jul  8 18:23:29 2010
@@ -112,7 +112,7 @@ public class AttributesFactory
         
         if ( dependencies != null && dependencies.length > 0 )
         {
-            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_DEPENDENCIES_AT ) );
+            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.getAttributeType( MetaSchemaConstants.M_DEPENDENCIES_AT ) );
             
             for ( String dependency:dependencies )
             {
@@ -335,7 +335,7 @@ public class AttributesFactory
         // handle the superior objectClasses 
         if ( objectClass.getSuperiorOids() != null && objectClass.getSuperiorOids().size() != 0 )
         {
-            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_SUP_OBJECT_CLASS_AT ) );
+            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.getAttributeType( MetaSchemaConstants.M_SUP_OBJECT_CLASS_AT ) );
             
             for ( String superior:objectClass.getSuperiorOids() )
             {
@@ -348,7 +348,7 @@ public class AttributesFactory
         // add the must list
         if ( objectClass.getMustAttributeTypeOids() != null && objectClass.getMustAttributeTypeOids().size() != 0 )
         {
-            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_MUST_AT ) );
+            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.getAttributeType( MetaSchemaConstants.M_MUST_AT ) );
 
             for ( String mustOid :objectClass.getMustAttributeTypeOids() )
             {
@@ -361,7 +361,7 @@ public class AttributesFactory
         // add the may list
         if ( objectClass.getMayAttributeTypeOids() != null && objectClass.getMayAttributeTypeOids().size() != 0 )
         {
-            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_MAY_AT ) );
+            EntryAttribute attr = new DefaultEntryAttribute( schemaManager.getAttributeType( MetaSchemaConstants.M_MAY_AT ) );
 
             for ( String mayOid :objectClass.getMayAttributeTypeOids() )
             {
@@ -395,7 +395,7 @@ public class AttributesFactory
             return;
         }
         
-        EntryAttribute attr = new DefaultEntryAttribute( schemaManager.lookupAttributeTypeRegistry( MetaSchemaConstants.M_NAME_AT ) );
+        EntryAttribute attr = new DefaultEntryAttribute( schemaManager.getAttributeType( MetaSchemaConstants.M_NAME_AT ) );
 
         for ( String name:names )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/DefaultSchemaService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/DefaultSchemaService.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/DefaultSchemaService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/DefaultSchemaService.java Thu Jul  8 18:23:29 2010
@@ -138,7 +138,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateNormalizers() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.NORMALIZERS_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.NORMALIZERS_AT ) );
 
         NormalizerRegistry nr = getSchemaManager().getNormalizerRegistry();
         
@@ -154,7 +154,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateSyntaxCheckers() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.SYNTAX_CHECKERS_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.SYNTAX_CHECKERS_AT ) );
 
         for ( SyntaxChecker syntaxChecker : getSchemaManager().getSyntaxCheckerRegistry() )
         {
@@ -168,7 +168,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateObjectClasses() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASSES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.OBJECT_CLASSES_AT ) );
 
         for ( ObjectClass objectClass : getSchemaManager().getObjectClassRegistry() )
         {
@@ -182,7 +182,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateAttributeTypes() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.ATTRIBUTE_TYPES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.ATTRIBUTE_TYPES_AT ) );
 
         for ( AttributeType attributeType : getSchemaManager().getAttributeTypeRegistry() )
         {
@@ -196,7 +196,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateMatchingRules() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.MATCHING_RULES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.MATCHING_RULES_AT ) );
 
         for ( MatchingRule matchingRule : getSchemaManager().getMatchingRuleRegistry() )
         {
@@ -210,7 +210,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateMatchingRuleUses() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.MATCHING_RULE_USE_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.MATCHING_RULE_USE_AT ) );
 
         for ( MatchingRuleUse matchingRuleUse : getSchemaManager().getMatchingRuleUseRegistry() )
         {
@@ -224,7 +224,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateSyntaxes() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.LDAP_SYNTAXES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.LDAP_SYNTAXES_AT ) );
 
         for ( LdapSyntax syntax : getSchemaManager().getLdapSyntaxRegistry() )
         {
@@ -238,7 +238,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateDitContextRules() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.DIT_CONTENT_RULES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.DIT_CONTENT_RULES_AT ) );
 
         for ( DITContentRule ditContentRule : getSchemaManager().getDITContentRuleRegistry() )
         {
@@ -252,7 +252,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateDitStructureRules() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.DIT_STRUCTURE_RULES_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.DIT_STRUCTURE_RULES_AT ) );
 
         for ( DITStructureRule ditStructureRule : getSchemaManager().getDITStructureRuleRegistry() )
         {
@@ -266,7 +266,7 @@ public class DefaultSchemaService implem
     private EntryAttribute generateNameForms() throws LdapException
     {
         EntryAttribute attr = new DefaultEntryAttribute( 
-            getSchemaManager().lookupAttributeTypeRegistry( SchemaConstants.NAME_FORMS_AT ) );
+            getSchemaManager().getAttributeType( SchemaConstants.NAME_FORMS_AT ) );
 
         for ( NameForm nameForm : getSchemaManager().getNameFormRegistry() )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java Thu Jul  8 18:23:29 2010
@@ -133,7 +133,7 @@ public class SchemaInterceptor extends B
     private SchemaManager schemaManager;
 
     /** A global reference to the ObjectClass attributeType */
-    private AttributeType OBJECT_CLASS;
+    private AttributeType OBJECT_CLASS_AT;
 
     /** A normalized form for the SubschemaSubentry DN */
     private String subschemaSubentryDnNorm;
@@ -185,7 +185,7 @@ public class SchemaInterceptor extends B
 
         nexus = directoryService.getPartitionNexus();
         schemaManager = directoryService.getSchemaManager();
-        OBJECT_CLASS = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
         binaryAttributeFilter = new BinaryAttributeFilter();
         topFilter = new TopFilter();
         filters.add( binaryAttributeFilter );
@@ -210,9 +210,8 @@ public class SchemaInterceptor extends B
         SchemaLoader loader = schemaService.getSchemaPartition().getSchemaManager().getLoader();
         schemaSubEntryManager = new SchemaSubentryManager( schemaManager, loader );
 
-        MODIFIERS_NAME_ATTRIBUTE_TYPE = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.MODIFIERS_NAME_AT );
-        MODIFY_TIMESTAMP_ATTRIBUTE_TYPE = schemaManager
-            .lookupAttributeTypeRegistry( SchemaConstants.MODIFY_TIMESTAMP_AT );
+        MODIFIERS_NAME_ATTRIBUTE_TYPE = schemaManager.getAttributeType( SchemaConstants.MODIFIERS_NAME_AT );
+        MODIFY_TIMESTAMP_ATTRIBUTE_TYPE = schemaManager.getAttributeType( SchemaConstants.MODIFY_TIMESTAMP_AT );
 
         if ( IS_DEBUG )
         {
@@ -880,7 +879,7 @@ public class SchemaInterceptor extends B
         Set<String> allowed = new HashSet<String>( must );
 
         // Add the 'ObjectClass' attribute ID
-        allowed.add( schemaManager.getAttributeTypeRegistry().getOidByName( SchemaConstants.OBJECT_CLASS_AT ) );
+        allowed.add( SchemaConstants.OBJECT_CLASS_AT_OID );
 
         // Loop on all objectclasses
         for ( Value<?> objectClass : objectClasses )
@@ -1405,14 +1404,14 @@ public class SchemaInterceptor extends B
         // 3-1) Except if the extensibleObject ObjectClass is used
         // 3-2) or if the AttributeType is COLLECTIVE
         // 4) We also check that for H-R attributes, we have a valid String in the values
-        EntryAttribute objectClassAttr = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute objectClassAttr = entry.get( OBJECT_CLASS_AT );
 
         // Protect the server against a null objectClassAttr
         // It can be the case if the user forgot to add it to the entry ...
         // In this case, we create an new one, empty
         if ( objectClassAttr == null )
         {
-            objectClassAttr = new DefaultEntryAttribute( SchemaConstants.OBJECT_CLASS_AT, OBJECT_CLASS );
+            objectClassAttr = new DefaultEntryAttribute( OBJECT_CLASS_AT );
         }
 
         List<ObjectClass> ocs = new ArrayList<ObjectClass>();
@@ -1526,7 +1525,7 @@ public class SchemaInterceptor extends B
             // get the schema name
             String schemaName = getSchemaName( name );
 
-            if ( entry.contains( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.META_SCHEMA_OC ) )
+            if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.META_SCHEMA_OC ) )
             {
                 next.add( addContext );
 
@@ -1536,7 +1535,7 @@ public class SchemaInterceptor extends B
                     computeSuperiors();
                 }
             }
-            else if ( entry.contains( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.META_OBJECT_CLASS_OC ) )
+            else if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.META_OBJECT_CLASS_OC ) )
             {
                 // This is an ObjectClass addition
                 checkOcSuperior( addContext.getEntry() );
@@ -1553,7 +1552,7 @@ public class SchemaInterceptor extends B
                     computeSuperior( addedOC );
                 }
             }
-            else if ( entry.contains( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.META_ATTRIBUTE_TYPE_OC ) )
+            else if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.META_ATTRIBUTE_TYPE_OC ) )
             {
 
                 // This is an AttributeType addition
@@ -1595,7 +1594,7 @@ public class SchemaInterceptor extends B
     {
         // Never check the attributes if the extensibleObject objectClass is
         // declared for this entry
-        EntryAttribute objectClass = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute objectClass = entry.get( OBJECT_CLASS_AT );
 
         if ( objectClass.contains( SchemaConstants.EXTENSIBLE_OBJECT_OC ) )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java Thu Jul  8 18:23:29 2010
@@ -28,6 +28,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
+import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
 
 
@@ -40,8 +41,8 @@ import org.apache.directory.shared.ldap.
  */
 public class RefinementLeafEvaluator
 {
-    /** an OID to name and vice versa registry */
-    private final OidRegistry registry;
+    /** A SchemaManager instance */
+    private final SchemaManager schemaManager;
 
 
     /**
@@ -49,9 +50,9 @@ public class RefinementLeafEvaluator
      *
      * @param registry the OID registry used to lookup names for objectClass OIDs
      */
-    public RefinementLeafEvaluator(OidRegistry registry)
+    public RefinementLeafEvaluator( SchemaManager schemaManager)
     {
-        this.registry = registry;
+        this.schemaManager = schemaManager;
     }
 
 
@@ -103,7 +104,7 @@ public class RefinementLeafEvaluator
         
         if ( Character.isDigit( value.charAt( 0 ) ) )
         {
-            Iterator<String> list = registry.getNameSet( value ).iterator();
+            Iterator<String> list = schemaManager.getGlobalOidRegistry().getNameSet( value ).iterator();
             
             while ( list.hasNext() )
             {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Thu Jul  8 18:23:29 2010
@@ -141,7 +141,7 @@ public class SubentryInterceptor extends
         schemaManager = directoryService.getSchemaManager();
 
         // setup various attribute type values
-        OBJECT_CLASS_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
 
         ssParser = new SubtreeSpecificationParser( schemaManager );
         evaluator = new SubtreeEvaluator( schemaManager );
@@ -213,7 +213,7 @@ public class SubentryInterceptor extends
     {
         Set<AdministrativeRole> adminRoles = new HashSet<AdministrativeRole>();
 
-        EntryAttribute oc = subentry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute oc = subentry.get( OBJECT_CLASS_AT );
 
         if ( oc == null )
         {
@@ -413,7 +413,7 @@ public class SubentryInterceptor extends
         DN name = addContext.getDn();
         ClonedServerEntry entry = addContext.getEntry();
 
-        EntryAttribute objectClasses = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute objectClasses = entry.get( OBJECT_CLASS_AT );
 
         if ( objectClasses.contains( SchemaConstants.SUBENTRY_OC ) )
         {
@@ -625,8 +625,7 @@ public class SubentryInterceptor extends
             DN baseDn = ( DN ) apName.clone();
             baseDn.addAll( ss.getBase() );
 
-            ExprNode filter = new PresenceNode( schemaManager.getAttributeTypeRegistry().getOidByName(
-                SchemaConstants.OBJECT_CLASS_AT ) );
+            ExprNode filter = new PresenceNode( OBJECT_CLASS_AT.getOid() );
             SearchControls controls = new SearchControls();
             controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
             controls.setReturningAttributes( new String[]
@@ -808,8 +807,7 @@ public class SubentryInterceptor extends
             next.rename( renameContext );
 
             subentry = subentryCache.getSubentry( newName );
-            ExprNode filter = new PresenceNode( schemaManager.getAttributeTypeRegistry().getOidByName(
-                SchemaConstants.OBJECT_CLASS_AT ) );
+            ExprNode filter = new PresenceNode( OBJECT_CLASS_AT.getName() );
             SearchControls controls = new SearchControls();
             controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
             controls.setReturningAttributes( new String[]
@@ -894,8 +892,7 @@ public class SubentryInterceptor extends
 
             subentry = subentryCache.getSubentry( newName );
 
-            ExprNode filter = new PresenceNode( schemaManager.getAttributeTypeRegistry().getOidByName(
-                SchemaConstants.OBJECT_CLASS_AT ) );
+            ExprNode filter = new PresenceNode( OBJECT_CLASS_AT.getOid() );
             SearchControls controls = new SearchControls();
             controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
             controls.setReturningAttributes( new String[]
@@ -963,7 +960,7 @@ public class SubentryInterceptor extends
 
         Entry entry = moveContext.getOriginalEntry();
 
-        EntryAttribute objectClasses = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+        EntryAttribute objectClasses = entry.get( OBJECT_CLASS_AT );
 
         if ( objectClasses.contains( SchemaConstants.SUBENTRY_OC ) )
         {
@@ -1040,16 +1037,17 @@ public class SubentryInterceptor extends
 
 
     // -----------------------------------------------------------------------
-    // Methods dealing subentry modification
+    // Methods dealing with subentry modification
     // -----------------------------------------------------------------------
 
     private Set<AdministrativeRole> getSubentryTypes( Entry entry, List<Modification> mods ) throws LdapException
     {
-        EntryAttribute ocFinalState = entry.get( SchemaConstants.OBJECT_CLASS_AT ).clone();
+        EntryAttribute ocFinalState = entry.get( OBJECT_CLASS_AT ).clone();
 
         for ( Modification mod : mods )
         {
-            if ( mod.getAttribute().getId().equalsIgnoreCase( SchemaConstants.OBJECT_CLASS_AT ) )
+            if ( mod.getAttribute().getId().equalsIgnoreCase( SchemaConstants.OBJECT_CLASS_AT ) ||
+                 mod.getAttribute().getId().equalsIgnoreCase( SchemaConstants.OBJECT_CLASS_AT_OID ) )
             {
                 switch ( mod.getOperation() )
                 {
@@ -1130,8 +1128,7 @@ public class SubentryInterceptor extends
             DN apName = dn.getParent();
             DN oldBaseDn = ( DN ) apName.clone();
             oldBaseDn.addAll( ssOld.getBase() );
-            ExprNode filter = new PresenceNode( schemaManager.getAttributeTypeRegistry().getOidByName(
-                SchemaConstants.OBJECT_CLASS_AT ) );
+            ExprNode filter = new PresenceNode( OBJECT_CLASS_AT.getOid() );
             SearchControls controls = new SearchControls();
             controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
             controls.setReturningAttributes( new String[]
@@ -1465,7 +1462,7 @@ public class SubentryInterceptor extends
             }
 
             // see if we can use objectclass if present
-            EntryAttribute objectClasses = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+            EntryAttribute objectClasses = entry.get( OBJECT_CLASS_AT );
 
             if ( objectClasses != null )
             {
@@ -1491,7 +1488,7 @@ public class SubentryInterceptor extends
             }
 
             // see if we can use objectclass if present
-            EntryAttribute objectClasses = entry.get( SchemaConstants.OBJECT_CLASS_AT );
+            EntryAttribute objectClasses = entry.get( OBJECT_CLASS_AT );
 
             if ( objectClasses != null )
             {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java Thu Jul  8 18:23:29 2010
@@ -55,6 +55,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.exception.LdapOtherException;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.name.RDN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.NormalizerMappingResolver;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.OidNormalizer;
@@ -96,6 +97,12 @@ public class TriggerInterceptor extends 
     private TriggerExecutionAuthorizer triggerExecutionAuthorizer = new SimpleTriggerExecutionAuthorizer();
 
     private StoredProcExecutionManager manager;
+    
+    /** The global schemaManager */
+    private SchemaManager schemaManager;
+
+    /** The ObjectClass AttributeType */
+    private static AttributeType OBJECT_CLASS_AT;
 
 
     /**
@@ -126,7 +133,7 @@ public class TriggerInterceptor extends 
          * to be in the same naming context as their access point so the subentries
          * effecting their parent entry applies to them as well.
          */
-        if ( entry.contains( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC ) )
+        if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC ) )
         {
             DN parentDn = ( DN ) dn.clone();
             parentDn.remove( dn.size() - 1 );
@@ -233,7 +240,10 @@ public class TriggerInterceptor extends 
         super.init( directoryService );
 
         triggerSpecCache = new TriggerSpecCache( directoryService );
-        final SchemaManager schemaManager = directoryService.getSchemaManager();
+        schemaManager = directoryService.getSchemaManager();
+
+        // look up some constant information
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
 
         triggerParser = new TriggerSpecificationParser( new NormalizerMappingResolver()
         {

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java Thu Jul  8 18:23:29 2010
@@ -84,9 +84,6 @@ public class RelatedProtectedItemFilterT
     private static Set<DN> GROUP_NAMES = new HashSet<DN>();
 
     private static SchemaManager schemaManager;
-    //private static AttributeTypeRegistry atRegistryA;
-    //private static AttributeTypeRegistry atRegistryB;
-    private static OidRegistry OID_REGISTRY;
 
     private static RelatedProtectedItemFilter filterA;
     private static RelatedProtectedItemFilter filterB;
@@ -115,16 +112,14 @@ public class RelatedProtectedItemFilterT
             fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
-        OID_REGISTRY = schemaManager.getGlobalOidRegistry();
-
         GROUP_NAME = new DN( "ou=test,ou=groups,ou=system" );
         USER_NAME = new DN( "ou=test, ou=users, ou=system" );
         
         filterA = new RelatedProtectedItemFilter( new RefinementEvaluator( new RefinementLeafEvaluator(
-            OID_REGISTRY ) ), new ExpressionEvaluator( schemaManager ), schemaManager );
+            schemaManager ) ), new ExpressionEvaluator( schemaManager ), schemaManager );
 
         filterB = new RelatedProtectedItemFilter( new RefinementEvaluator( new RefinementLeafEvaluator(
-            OID_REGISTRY ) ), new ExpressionEvaluator( schemaManager ), schemaManager );
+            schemaManager ) ), new ExpressionEvaluator( schemaManager ), schemaManager );
 
         USER_NAMES.add( USER_NAME );
         GROUP_NAMES.add( GROUP_NAME );

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java Thu Jul  8 18:23:29 2010
@@ -36,7 +36,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.loader.ldif.JarLdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
 import org.apache.directory.shared.ldap.schema.registries.Registries;
 import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.AfterClass;
@@ -87,8 +86,7 @@ public class RefinementEvaluatorTest
 
         registries = schemaManager.getRegistries();
 
-        OidRegistry registry = registries.getGlobalOidRegistry();
-        RefinementLeafEvaluator leafEvaluator = new RefinementLeafEvaluator( registry );
+        RefinementLeafEvaluator leafEvaluator = new RefinementLeafEvaluator( schemaManager );
         evaluator = new RefinementEvaluator( leafEvaluator );
         
         OBJECT_CLASS = registries.getAttributeTypeRegistry().lookup( "objectClass" );

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java Thu Jul  8 18:23:29 2010
@@ -26,6 +26,7 @@ import static org.junit.Assert.fail;
 
 import org.apache.directory.junit.tools.Concurrent;
 import org.apache.directory.junit.tools.ConcurrentJunitRunner;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.entry.DefaultEntryAttribute;
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.StringValue;
@@ -84,10 +85,9 @@ public class RefinementLeafEvaluatorTest
 
         registries = schemaManager.getRegistries();
         
-        OBJECT_CLASS = registries.getAttributeTypeRegistry().lookup( "objectClass" );
+        OBJECT_CLASS = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
 
-        OidRegistry registry = registries.getGlobalOidRegistry();
-        evaluator = new RefinementLeafEvaluator( registry );
+        evaluator = new RefinementLeafEvaluator( schemaManager );
     }
     
 

Modified: directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java (original)
+++ directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java Thu Jul  8 18:23:29 2010
@@ -111,10 +111,10 @@ public class JdbmStore<E> extends Abstra
         this.schemaManager = schemaManager;
 
         // Initialize Attribute types used all over this method
-        objectClassAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
-        aliasedObjectNameAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ALIASED_OBJECT_NAME_AT );
-        entryCsnAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ENTRY_CSN_AT );
-        entryUuidAT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.ENTRY_UUID_AT );
+        objectClassAT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
+        aliasedObjectNameAT = schemaManager.getAttributeType( SchemaConstants.ALIASED_OBJECT_NAME_AT );
+        entryCsnAT = schemaManager.getAttributeType( SchemaConstants.ENTRY_CSN_AT );
+        entryUuidAT = schemaManager.getAttributeType( SchemaConstants.ENTRY_UUID_AT );
 
         partitionDir.mkdirs();
 

Modified: directory/shared/trunk/ldap-aci/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap-aci/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/shared/trunk/ldap-aci/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java (original)
+++ directory/shared/trunk/ldap-aci/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java Thu Jul  8 18:23:29 2010
@@ -159,6 +159,7 @@ public class ItemFirstACIItem extends AC
                 tuples.add( new ACITuple( itemPermission.getUserClasses(), getAuthenticationLevel(), protectedItems,
                     toMicroOperations( grants ), true, precedence ) );
             }
+            
             if ( denials.size() > 0 )
             {
                 tuples.add( new ACITuple( itemPermission.getUserClasses(), getAuthenticationLevel(), protectedItems,

Modified: directory/shared/trunk/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/shared/trunk/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java (original)
+++ directory/shared/trunk/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java Thu Jul  8 18:23:29 2010
@@ -35,6 +35,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.exception.LdapInvalidDnException;
+import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
 import org.apache.directory.shared.ldap.exception.LdapOtherException;
 import org.apache.directory.shared.ldap.exception.LdapProtocolErrorException;
 import org.apache.directory.shared.ldap.exception.LdapUnwillingToPerformException;
@@ -1471,6 +1472,22 @@ public class DefaultSchemaManager implem
     /**
      * {@inheritDoc}
      */
+    public AttributeType getAttributeType( String oid )
+    {
+        try
+        {
+            return registries.getAttributeTypeRegistry().lookup( StringTools.toLowerCase( oid ).trim() );
+        }
+        catch ( LdapException lnsae )
+        {
+            return null;
+        }
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
     public LdapComparator<?> lookupComparatorRegistry( String oid ) throws LdapException
     {
         return registries.getComparatorRegistry().lookup( oid );

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaManager.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaManager.java?rev=961863&r1=961862&r2=961863&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaManager.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaManager.java Thu Jul  8 18:23:29 2010
@@ -443,6 +443,17 @@ public interface SchemaManager
 
 
     /**
+     * Get an AttributeType in the AttributeType registry. This method won't
+     * throw an exception if the AttributeTyp is not found, it will just return
+     * null.
+     * 
+     * @param oid the OID we are looking for
+     * @return The found AttributeType, or null if not found
+     */
+    AttributeType getAttributeType( String oid );
+
+
+    /**
      * Lookup for a Comparator in the Comparator registry
      * 
      * @param oid the OID we are looking for