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/13 01:37:40 UTC

svn commit: r963530 [1/3] - in /directory/apacheds/trunk: core-api/src/main/java/org/apache/directory/server/core/ core-api/src/main/java/org/apache/directory/server/core/event/ core-api/src/main/java/org/apache/directory/server/core/schema/ core-api/s...

Author: elecharny
Date: Mon Jul 12 23:37:38 2010
New Revision: 963530

URL: http://svn.apache.org/viewvc?rev=963530&view=rev
Log:
o Reflect the change in Filter that are now Schema aware
o Ignored some tests which wee failing due to DIRSERVER_971. They will be fixed later
o Many small improvment in all the server code (using AT instead of String constants when possible, to avoid useless lookup in AT registry)
o Formatted back some Entry creation in tests

Modified:
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/event/NotificationCriteria.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDaoImpl.java
    directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/MockCoreSession.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
    directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
    directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/ReferralManagerImpl.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/MaxImmSubFilter.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ExpressionEvaluator.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/LeafEvaluator.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/SubstringEvaluator.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.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/schema/SchemaInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.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/TriggerSpecCache.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilterTest.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/normalization/NormalizationVisitorTest.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/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
    directory/apacheds/trunk/ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/cramMD5/CramMd5CallbackHandler.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/digestMD5/DigestMd5CallbackHandler.java
    directory/apacheds/trunk/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/catalog/GetCatalog.java
    directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/FilterNormalizingVisitor.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/PartitionFrame.java

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/LdapCoreSessionConnection.java Mon Jul 12 23:37:38 2010
@@ -95,7 +95,7 @@ public class LdapCoreSessionConnection i
     private CoreSession session;
 
     /** the SchemaManager */
-    private SchemaManager sm;
+    private SchemaManager schemaManager;
 
     /** the session's DirectoryService */
     private DirectoryService directoryService;
@@ -191,7 +191,7 @@ public class LdapCoreSessionConnection i
 
         try
         {
-            Entry se = new DefaultEntry( sm, entry );
+            Entry se = new DefaultEntry( schemaManager, entry );
 
             session.add( se );
         }
@@ -443,7 +443,7 @@ public class LdapCoreSessionConnection i
      */
     public SchemaManager getSchemaManager()
     {
-        return sm;
+        return schemaManager;
     }
 
 
@@ -840,7 +840,7 @@ public class LdapCoreSessionConnection i
             InternalSearchRequest iSearchReq = new SearchRequestImpl( searchRequest.getMessageId() );
             iSearchReq.setBase( new DN( searchRequest.getBaseDn() ) );
             iSearchReq.setDerefAliases( searchRequest.getDerefAliases() );
-            iSearchReq.setFilter( FilterParser.parse( searchRequest.getFilter() ) );
+            iSearchReq.setFilter( FilterParser.parse( schemaManager, searchRequest.getFilter() ) );
             iSearchReq.setScope( searchRequest.getScope() );
             iSearchReq.setSizeLimit( searchRequest.getSizeLimit() );
             iSearchReq.setTimeLimit( searchRequest.getTimeLimit() );
@@ -1060,7 +1060,7 @@ public class LdapCoreSessionConnection i
     {
         this.session = session;
         this.directoryService = session.getDirectoryService();
-        this.sm = directoryService.getSchemaManager();
+        this.schemaManager = directoryService.getSchemaManager();
     }
 
 }

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/event/NotificationCriteria.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/event/NotificationCriteria.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/event/NotificationCriteria.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/event/NotificationCriteria.java Mon Jul 12 23:37:38 2010
@@ -41,7 +41,7 @@ public class NotificationCriteria
     public static final SearchScope DEFAULT_SCOPE = SearchScope.ONELEVEL;
     public static final AliasDerefMode DEFAULT_ALIAS_DEREF_MODE = AliasDerefMode.DEREF_ALWAYS;
     public static final DN DEFAULT_BASE = new DN();
-    public static final ExprNode DEFAULT_FILTER = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT_OID );
+    public static final ExprNode DEFAULT_FILTER = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT );
     
     private SearchScope scope = DEFAULT_SCOPE;
     private AliasDerefMode aliasDerefMode = DEFAULT_ALIAS_DEREF_MODE;

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=963530&r1=963529&r2=963530&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 Mon Jul 12 23:37:38 2010
@@ -100,21 +100,20 @@ public class SchemaPartitionDaoImpl impl
     private final SchemaEntityFactory factory;
     private final SchemaManager schemaManager;
 
-    private final String M_NAME_OID;
-    private final String CN_OID;
-    private final String M_OID_OID;
-    private final String OBJECTCLASS_OID;
-    private final String M_SYNTAX_OID;
-    private final String M_ORDERING_OID;
-    private final String M_SUBSTRING_OID;
-    private final String M_EQUALITY_OID;
-    private final String M_SUP_ATTRIBUTE_TYPE_OID;
-    private final String M_MUST_OID;
-    private final String M_MAY_OID;
-    private final String M_AUX_OID;
-    private final String M_OC_OID;
-    private final String M_SUP_OBJECT_CLASS_OID;
-    private final String M_DEPENDENCIES_OID;
+    private final AttributeType M_NAME_AT;
+    private final AttributeType M_OID_AT;
+    private final AttributeType OBJECT_CLASS_AT;
+    private final AttributeType M_SYNTAX_AT;
+    private final AttributeType M_ORDERING_AT;
+    private final AttributeType M_SUBSTRING_AT;
+    private final AttributeType M_EQUALITY_AT;
+    private final AttributeType M_SUP_ATTRIBUTE_TYPE_AT;
+    private final AttributeType M_MUST_AT;
+    private final AttributeType M_MAY_AT;
+    private final AttributeType M_AUX_AT;
+    private final AttributeType M_OC_AT;
+    private final AttributeType M_SUP_OBJECT_CLASS_AT;
+    private final AttributeType M_DEPENDENCIES_AT;
 
     private final Set<AttributeTypeOptions> schemaAttributesToReturn = new HashSet<AttributeTypeOptions>();
     private final AttributeType disabledAttributeType;
@@ -133,22 +132,21 @@ public class SchemaPartitionDaoImpl impl
         this.factory = new SchemaEntityFactory();
         this.schemaManager = schemaManager;
 
-        this.M_NAME_OID = schemaManager.getAttributeTypeRegistry().getOidByName( MetaSchemaConstants.M_NAME_AT );
-        this.CN_OID = schemaManager.getAttributeTypeRegistry().getOidByName( SchemaConstants.CN_AT );
+        this.M_NAME_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_NAME_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.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();
+        this.M_OID_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_OID_AT );
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
+        this.M_SYNTAX_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_SYNTAX_AT );
+        this.M_ORDERING_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_ORDERING_AT );
+        this.M_EQUALITY_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_EQUALITY_AT );
+        this.M_SUBSTRING_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_SUBSTR_AT );
+        this.M_SUP_ATTRIBUTE_TYPE_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_SUP_ATTRIBUTE_TYPE_AT );
+        this.M_MUST_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_MUST_AT );
+        this.M_MAY_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_MAY_AT );
+        this.M_AUX_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_AUX_AT );
+        this.M_OC_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_OC_AT );
+        this.M_SUP_OBJECT_CLASS_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_SUP_OBJECT_CLASS_AT );
+        this.M_DEPENDENCIES_AT = schemaManager.getAttributeType( MetaSchemaConstants.M_DEPENDENCIES_AT );
         
         for ( String attrId : SCHEMA_ATTRIBUTES )
         {
@@ -199,7 +197,7 @@ public class SchemaPartitionDaoImpl impl
     {
         DN base = new DN( SchemaConstants.OU_SCHEMA );
         base.normalize( schemaManager.getNormalizerMapping() );
-        ExprNode filter = new EqualityNode<String>( schemaManager.getAttributeTypeRegistry().getOidByName( SchemaConstants.OBJECT_CLASS_AT ),
+        ExprNode filter = new EqualityNode<String>( OBJECT_CLASS_AT,
             new StringValue( MetaSchemaConstants.META_SCHEMA_OC ) );
 
         SearchOperationContext searchContext = new SearchOperationContext( null );
@@ -228,16 +226,16 @@ public class SchemaPartitionDaoImpl impl
     public boolean hasMatchingRule( String oid ) throws Exception
     {
         BranchNode filter = new AndNode();
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue(
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
             MetaSchemaConstants.META_MATCHING_RULE_OC ) ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new EqualityNode<String>( M_OID_OID, new StringValue( oid ) ) );
+            filter.addNode( new EqualityNode<String>( M_OID_AT, new StringValue( oid ) ) );
         }
         else
         {
-            filter.addNode( new EqualityNode<String>( M_NAME_OID, new StringValue( oid.toLowerCase() ) ) );
+            filter.addNode( new EqualityNode<String>( M_NAME_AT, new StringValue( oid.toLowerCase() ) ) );
         }
 
         SearchControls searchControls = new SearchControls();
@@ -280,16 +278,16 @@ public class SchemaPartitionDaoImpl impl
     public boolean hasAttributeType( String oid ) throws Exception
     {
         BranchNode filter = new AndNode();
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue(
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
             MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC ) ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new EqualityNode<String>( M_OID_OID, new StringValue( oid ) ) );
+            filter.addNode( new EqualityNode<String>( M_OID_AT, new StringValue( oid ) ) );
         }
         else
         {
-            filter.addNode( new EqualityNode<String>( M_NAME_OID, new StringValue( oid.toLowerCase() ) ) );
+            filter.addNode( new EqualityNode<String>( M_NAME_AT, new StringValue( oid.toLowerCase() ) ) );
         }
 
         SearchControls searchControls = new SearchControls();
@@ -332,16 +330,16 @@ public class SchemaPartitionDaoImpl impl
     public boolean hasObjectClass( String oid ) throws Exception
     {
         BranchNode filter = new AndNode();
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_OBJECT_CLASS_OC ) ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new EqualityNode<String>( M_OID_OID, new StringValue( oid ) ) );
+            filter.addNode( new EqualityNode<String>( M_OID_AT, new StringValue( oid ) ) );
         }
         else
         {
-            filter.addNode( new EqualityNode<String>( M_NAME_OID, new StringValue( oid.toLowerCase() ) ) );
+            filter.addNode( new EqualityNode<String>( M_NAME_AT, new StringValue( oid.toLowerCase() ) ) );
         }
 
         SearchControls searchControls = new SearchControls();
@@ -384,16 +382,16 @@ public class SchemaPartitionDaoImpl impl
     public boolean hasSyntax( String oid ) throws Exception
     {
         BranchNode filter = new AndNode();
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
                 new StringValue( MetaSchemaConstants.META_SYNTAX_OC ) ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new EqualityNode<String>( M_OID_OID, new StringValue( oid ) ) );
+            filter.addNode( new EqualityNode<String>( M_OID_AT, new StringValue( oid ) ) );
         }
         else
         {
-            filter.addNode( new EqualityNode<String>( M_NAME_OID, new StringValue( oid.toLowerCase() ) ) );
+            filter.addNode( new EqualityNode<String>( M_NAME_AT, new StringValue( oid.toLowerCase() ) ) );
         }
 
         SearchControls searchControls = new SearchControls();
@@ -436,16 +434,16 @@ public class SchemaPartitionDaoImpl impl
     public boolean hasSyntaxChecker( String oid ) throws Exception
     {
         BranchNode filter = new AndNode();
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_SYNTAX_CHECKER_OC ) ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new EqualityNode<String>( M_OID_OID, new StringValue( oid ) ) );
+            filter.addNode( new EqualityNode<String>( M_OID_AT, new StringValue( oid ) ) );
         }
         else
         {
-            filter.addNode( new EqualityNode<String>( M_NAME_OID, new StringValue( oid.toLowerCase() ) ) );
+            filter.addNode( new EqualityNode<String>( M_NAME_AT, new StringValue( oid.toLowerCase() ) ) );
         }
 
         SearchControls searchControls = new SearchControls();
@@ -495,9 +493,9 @@ public class SchemaPartitionDaoImpl impl
 
         RDN rdn = dn.getRdn( 1 );
         
-        if ( !rdn.getNormType().equalsIgnoreCase( CN_OID ) )
+        if ( !rdn.getNormType().equalsIgnoreCase( SchemaConstants.CN_AT_OID ) )
         {
-            throw new NamingException( I18n.err( I18n.ERR_434, dn.getNormName(), CN_OID, rdn.getNormType() ) );
+            throw new NamingException( I18n.err( I18n.ERR_434, dn.getNormName(), SchemaConstants.CN_AT_OID, rdn.getNormType() ) );
         }
 
         return rdn.getNormValue().getString();
@@ -522,9 +520,9 @@ public class SchemaPartitionDaoImpl impl
     public Entry find( String entityName ) throws Exception
     {
         BranchNode filter = new OrNode();
-        SimpleNode<String> nameAVA = new EqualityNode<String>( M_NAME_OID, 
+        SimpleNode<String> nameAVA = new EqualityNode<String>( M_NAME_AT, 
             new StringValue( entityName.toLowerCase() ) );
-        SimpleNode<String> oidAVA = new EqualityNode<String>( M_OID_OID, 
+        SimpleNode<String> oidAVA = new EqualityNode<String>( M_OID_AT, 
             new StringValue( entityName.toLowerCase() ) );
         filter.addNode( nameAVA );
         filter.addNode( oidAVA );
@@ -614,13 +612,13 @@ public class SchemaPartitionDaoImpl impl
 
         // subfilter for (| (objectClass=metaMatchingRule) (objectClass=metaAttributeType))  
         BranchNode or = new OrNode();
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_MATCHING_RULE_OC.toLowerCase() ) ) );
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) ) );
 
         filter.addNode( or );
-        filter.addNode( new EqualityNode<String>( M_SYNTAX_OID, new StringValue( numericOid.toLowerCase() ) ) );
+        filter.addNode( new EqualityNode<String>( M_SYNTAX_AT, new StringValue( numericOid.toLowerCase() ) ) );
 
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
@@ -660,13 +658,13 @@ public class SchemaPartitionDaoImpl impl
         BranchNode filter = new AndNode();
 
         // ( objectClass = metaAttributeType )
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue(
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
             MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) ) );
 
         BranchNode or = new OrNode();
-        or.addNode( new EqualityNode<String>( M_ORDERING_OID, new StringValue( mr.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_SUBSTRING_OID, new StringValue( mr.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_EQUALITY_OID, new StringValue( mr.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_ORDERING_AT, new StringValue( mr.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_SUBSTRING_AT, new StringValue( mr.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_EQUALITY_AT, new StringValue( mr.getOid() ) ) );
         filter.addNode( or );
 
         List<String> names = mr.getNames();
@@ -675,9 +673,9 @@ public class SchemaPartitionDaoImpl impl
         {
             for ( String name : names )
             {
-                or.addNode( new EqualityNode<String>( M_ORDERING_OID, new StringValue( name.toLowerCase() ) ) );
-                or.addNode( new EqualityNode<String>( M_SUBSTRING_OID, new StringValue( name.toLowerCase() ) ) );
-                or.addNode( new EqualityNode<String>( M_EQUALITY_OID, new StringValue( name.toLowerCase() ) ) );
+                or.addNode( new EqualityNode<String>( M_ORDERING_AT, new StringValue( name.toLowerCase() ) ) );
+                or.addNode( new EqualityNode<String>( M_SUBSTRING_AT, new StringValue( name.toLowerCase() ) ) );
+                or.addNode( new EqualityNode<String>( M_EQUALITY_AT, new StringValue( name.toLowerCase() ) ) );
             }
         }
 
@@ -720,8 +718,8 @@ public class SchemaPartitionDaoImpl impl
         BranchNode filter = new AndNode();
 
         // (& (m-oid=*) (m-name=*) )
-        filter.addNode( new PresenceNode( M_OID_OID ) );
-        filter.addNode( new PresenceNode( M_NAME_OID ) );
+        filter.addNode( new PresenceNode( M_OID_AT ) );
+        filter.addNode( new PresenceNode( M_NAME_AT ) );
 
         SearchOperationContext searchOperationContext = new SearchOperationContext( null, partition.getSuffix(),
             filter, searchControls );
@@ -759,16 +757,16 @@ public class SchemaPartitionDaoImpl impl
 
         // ( objectClass = metaAttributeType )
         BranchNode or = new OrNode();
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) ) );
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_OBJECT_CLASS_OC.toLowerCase() ) ) );
         filter.addNode( or );
 
         or = new OrNode();
-        or.addNode( new EqualityNode<String>( M_MAY_OID, new StringValue( at.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_MUST_OID, new StringValue( at.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_SUP_ATTRIBUTE_TYPE_OID, new StringValue( at.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_MAY_AT, new StringValue( at.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_MUST_AT, new StringValue( at.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_SUP_ATTRIBUTE_TYPE_AT, new StringValue( at.getOid() ) ) );
         filter.addNode( or );
 
         SearchControls searchControls = new SearchControls();
@@ -814,9 +812,9 @@ public class SchemaPartitionDaoImpl impl
         Set<Entry> set = new HashSet<Entry>();
         BranchNode filter = new AndNode();
 
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, 
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( MetaSchemaConstants.META_SCHEMA_OC.toLowerCase() ) ) );
-        filter.addNode( new EqualityNode<String>( M_DEPENDENCIES_OID, 
+        filter.addNode( new EqualityNode<String>( M_DEPENDENCIES_AT, 
             new StringValue( schemaName.toLowerCase() ) ) );
 
         SearchControls searchControls = new SearchControls();
@@ -856,9 +854,9 @@ public class SchemaPartitionDaoImpl impl
         Set<Entry> set = new HashSet<Entry>();
         BranchNode filter = new AndNode();
 
-        filter.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue( 
+        filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue( 
             MetaSchemaConstants.META_SCHEMA_OC.toLowerCase() ) ) );
-        filter.addNode( new EqualityNode<String>( M_DEPENDENCIES_OID, new StringValue( 
+        filter.addNode( new EqualityNode<String>( M_DEPENDENCIES_AT, new StringValue( 
             schemaName.toLowerCase() ) ) );
 
         SearchControls searchControls = new SearchControls();
@@ -933,18 +931,18 @@ public class SchemaPartitionDaoImpl impl
         BranchNode filter = new AndNode();
 
         BranchNode or = new OrNode();
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue( MetaSchemaConstants.META_NAME_FORM_OC
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue( MetaSchemaConstants.META_NAME_FORM_OC
             .toLowerCase() ) ) );
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue( MetaSchemaConstants.META_OBJECT_CLASS_OC
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue( MetaSchemaConstants.META_OBJECT_CLASS_OC
             .toLowerCase() ) ) );
-        or.addNode( new EqualityNode<String>( OBJECTCLASS_OID, new StringValue(
+        or.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
             MetaSchemaConstants.META_DIT_CONTENT_RULE_OC.toLowerCase() ) ) );
         filter.addNode( or );
 
         or = new OrNode();
-        or.addNode( new EqualityNode<String>( M_AUX_OID, new StringValue( oc.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_OC_OID, new StringValue( oc.getOid() ) ) );
-        or.addNode( new EqualityNode<String>( M_SUP_OBJECT_CLASS_OID, new StringValue( oc.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_AUX_AT, new StringValue( oc.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_OC_AT, new StringValue( oc.getOid() ) ) );
+        or.addNode( new EqualityNode<String>( M_SUP_OBJECT_CLASS_AT, new StringValue( oc.getOid() ) ) );
         filter.addNode( or );
 
         SearchControls searchControls = new SearchControls();

Modified: directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/MockCoreSession.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/MockCoreSession.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/MockCoreSession.java (original)
+++ directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/MockCoreSession.java Mon Jul 12 23:37:38 2010
@@ -722,7 +722,7 @@ public class MockCoreSession implements 
         
         try
         {
-            FilterParser.parse( filter ); 
+            FilterParser.parse( directoryService.getSchemaManager(), filter ); 
         }
         catch ( ParseException pe )
         {

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java Mon Jul 12 23:37:38 2010
@@ -35,8 +35,8 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
 import org.apache.directory.shared.ldap.entry.DefaultEntry;
-import org.apache.directory.shared.ldap.entry.DefaultModification;
 import org.apache.directory.shared.ldap.entry.DefaultEntryAttribute;
+import org.apache.directory.shared.ldap.entry.DefaultModification;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.Modification;
@@ -173,7 +173,7 @@ public class AuthorizationServiceAsNonAd
 
         try
         {
-            ExprNode filter = FilterParser.parse( "(objectClass=*)" );
+            ExprNode filter = FilterParser.parse( service.getSchemaManager(), "(objectClass=*)" );
             service.getAdminSession().search( new DN( "ou=system" ), SearchScope.SUBTREE, filter , AliasDerefMode.DEREF_ALWAYS, null );
         }
         catch ( LdapNoPermissionException e )

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java Mon Jul 12 23:37:38 2010
@@ -439,7 +439,7 @@ public class AliasSearchIT extends Abstr
         {
             DN base = new DN( "dc=example,dc=com" );
             SearchScope scope = SearchScope.SUBTREE;
-            ExprNode exprNode = FilterParser.parse( "(objectClass=*)" );
+            ExprNode exprNode = FilterParser.parse( service.getSchemaManager(), "(objectClass=*)" );
             AliasDerefMode aliasDerefMode = AliasDerefMode.DEREF_ALWAYS;
             EntryFilteringCursor cursor = service.getAdminSession()
                 .search( base, scope, exprNode, aliasDerefMode, null );
@@ -482,7 +482,7 @@ public class AliasSearchIT extends Abstr
         {
             DN base = new DN( "dc=example,dc=com" );
             SearchScope scope = SearchScope.SUBTREE;
-            ExprNode exprNode = FilterParser.parse( "(objectClass=*)" );
+            ExprNode exprNode = FilterParser.parse( service.getSchemaManager(), "(objectClass=*)" );
             AliasDerefMode aliasDerefMode = AliasDerefMode.DEREF_ALWAYS;
             EntryFilteringCursor cursor = service.getAdminSession()
                 .search( base, scope, exprNode, aliasDerefMode, null );
@@ -573,7 +573,7 @@ public class AliasSearchIT extends Abstr
     {
         List<String> nextResults = new ArrayList<String>();
 
-        ExprNode exprNode = FilterParser.parse( filter );
+        ExprNode exprNode = FilterParser.parse( service.getSchemaManager(), filter );
         EntryFilteringCursor cursor = service.getAdminSession().search( new DN( base ), scope, exprNode,
             aliasDerefMode, null );
         cursor.beforeFirst();

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java Mon Jul 12 23:37:38 2010
@@ -69,7 +69,9 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.ldif.LdifUtils;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -82,25 +84,83 @@ import org.junit.runner.RunWith;
 @RunWith(FrameworkRunner.class)
 @CreateDS(name = "SearchDS")
 @ApplyLdifs(
-    { "dn: m-oid=2.2.0, ou=attributeTypes, cn=apachemeta, ou=schema", "objectclass: metaAttributeType",
-        "objectclass: metaTop", "objectclass: top", "m-oid: 2.2.0", "m-name: integerAttribute",
-        "m-description: the precursor for all integer attributes", "m-equality: integerMatch",
-        "m-ordering: integerOrderingMatch", "m-syntax: 1.3.6.1.4.1.1466.115.121.1.27", "m-length: 0", "",
-        "dn: ou=testing00,ou=system", "objectClass: top", "objectClass: organizationalUnit",
-        "objectClass: extensibleObject", "ou: testing00", "integerAttribute: 0", "", "dn: ou=testing01,ou=system",
-        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing01",
-        "integerAttribute: 1", "", "dn: ou=testing02,ou=system", "objectClass: top", "objectClass: organizationalUnit",
-        "objectClass: extensibleObject", "ou: testing02", "integerAttribute: 2", "", "dn: ou=testing03,ou=system",
-        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing03",
-        "integerAttribute: 3", "", "dn: ou=testing04,ou=system", "objectClass: top", "objectClass: organizationalUnit",
-        "objectClass: extensibleObject", "ou: testing04", "integerAttribute: 4", "", "dn: ou=testing05,ou=system",
-        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing05",
-        "integerAttribute: 5", "", "dn: ou=subtest,ou=testing01,ou=system", "objectClass: top",
-        "objectClass: organizationalUnit", "ou: subtest", "", "dn: cn=Heather Nova, ou=system", "objectClass: top",
-        "objectClass: person", "cn: Heather Nova", "sn: Nova", "telephoneNumber: 1 801 555 1212 ", "",
-        "dn: cn=with-dn, ou=system", "objectClass: top", "objectClass: person", "objectClass: organizationalPerson",
-        "objectClass: inetorgPerson", "cn: singer", "sn: manager", "telephoneNumber: 1 801 555 1212 ",
-        "manager: cn=Heather Nova, ou=system" })
+    {         
+        "dn: m-oid=2.2.0, ou=attributeTypes, cn=apachemeta, ou=schema",
+        "objectclass: metaAttributeType",
+        "objectclass: metaTop",
+        "objectclass: top",
+        "m-oid: 2.2.0",
+        "m-name: integerAttribute",
+        "m-description: the precursor for all integer attributes",
+        "m-equality: integerMatch",
+        "m-ordering: integerOrderingMatch",
+        "m-syntax: 1.3.6.1.4.1.1466.115.121.1.27",
+        "m-length: 0",
+        "",
+        "dn: ou=testing00,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing00",
+        "integerAttribute: 0",
+        "",
+        "dn: ou=testing01,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing01",
+        "integerAttribute: 1",
+        "",
+        "dn: ou=testing02,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing02",
+        "integerAttribute: 2",
+        "",
+        "dn: ou=testing03,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing03",
+        "integerAttribute: 3",
+        "",
+        "dn: ou=testing04,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing04",
+        "integerAttribute: 4",
+        "",
+        "dn: ou=testing05,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "objectClass: extensibleObject",
+        "ou: testing05",
+        "integerAttribute: 5",
+        "",
+        "dn: ou=subtest,ou=testing01,ou=system",
+        "objectClass: top",
+        "objectClass: organizationalUnit",
+        "ou: subtest",
+        "",
+        "dn: cn=Heather Nova, ou=system",
+        "objectClass: top",
+        "objectClass: person",
+        "cn: Heather Nova",
+        "sn: Nova",
+        "telephoneNumber: 1 801 555 1212 ",
+        "",
+        "dn: cn=with-dn, ou=system",
+        "objectClass: top",
+        "objectClass: person",
+        "objectClass: organizationalPerson",
+        "objectClass: inetorgPerson",
+        "cn: singer",
+        "sn: manager",
+        "telephoneNumber: 1 801 555 1212 ",
+        "manager: cn=Heather Nova, ou=system"
+ })
 public class SearchIT extends AbstractLdapTestUnit
 {
     private static final String RDN = "cn=Heather Nova";
@@ -221,7 +281,10 @@ public class SearchIT extends AbstractLd
      */
     private static DirContext addNisPosixGroup( String name, int gid ) throws Exception
     {
-        Attributes attrs = LdifUtils.createAttributes( "objectClass: top", "objectClass: posixGroup", "cn", name,
+        Attributes attrs = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: posixGroup", 
+            "cn", name,
             "gidNumber", String.valueOf( gid ) );
 
         return getSystemContext( service ).createSubcontext( "cn=" + name + ",ou=groups", attrs );
@@ -349,6 +412,7 @@ public class SearchIT extends AbstractLd
      * result in exceptions.
      */
     @Test
+    @Ignore( "Fix DIRSERVER-1525/955" )
     public void testBogusAttributeInSearchFilter() throws Exception
     {
         boolean oldSetAllowAnnonymousAccess = service.isAllowAnonymousAccess();
@@ -618,8 +682,12 @@ public class SearchIT extends AbstractLd
      */
     protected Attributes getPersonAttributes( String sn, String cn ) throws LdapException
     {
-        Attributes attributes = LdifUtils.createAttributes( "objectClass: top", "objectClass: top",
-            "objectClass: person", "cn", cn, "sn", sn );
+        Attributes attributes = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: top",
+            "objectClass: person", 
+            "cn", cn, 
+            "sn", sn );
 
         return attributes;
     }
@@ -1169,8 +1237,12 @@ public class SearchIT extends AbstractLd
     public void testSearchWithEscapedCharsInFilter() throws Exception
     {
         // Create entry cn=Sid Vicious, ou=system
-        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn",
-            "Sid Vicious", "sn", "Vicious", "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: person", 
+            "cn: Sid Vicious", 
+            "sn: Vicious", 
+            "description: (sex*pis\\tols)" );
 
         DirContext ctx = sysRoot.createSubcontext( "cn=Sid Vicious", vicious );
         assertNotNull( ctx );
@@ -1215,8 +1287,12 @@ public class SearchIT extends AbstractLd
     public void testSubstringSearchWithEscapedCharsInFilter() throws Exception
     {
         // Create entry cn=Sid Vicious, ou=system
-        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn",
-            "Sid Vicious", "sn", "Vicious", "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: person", 
+            "cn: Sid Vicious", 
+            "sn: Vicious", 
+            "description: (sex*pis\\tols)" );
 
         DirContext ctx = sysRoot.createSubcontext( "cn=Sid Vicious", vicious );
         assertNotNull( ctx );
@@ -1263,8 +1339,12 @@ public class SearchIT extends AbstractLd
     @Test
     public void testSubstringSearchWithEscapedAsterisksInFilter_DIRSERVER_1181() throws Exception
     {
-        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn", "x*y*z*",
-            "sn", "x*y*z*", "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: person", 
+            "cn: x*y*z*",
+            "sn: x*y*z*", 
+            "description: (sex*pis\\tols)" );
 
         sysRoot.createSubcontext( "cn=x*y*z*", vicious );
 
@@ -1485,8 +1565,11 @@ public class SearchIT extends AbstractLd
             .getJndiValue() );
 
         // Create an entry which does not match
-        Attributes attrs = LdifUtils.createAttributes( "objectClass: top", "objectClass: groupOfUniqueNames", "cn",
-            "testGroup3", "uniqueMember", "uid=admin,ou=system" );
+        Attributes attrs = LdifUtils.createAttributes( 
+            "objectClass: top", 
+            "objectClass: groupOfUniqueNames", 
+            "cn: testGroup3", 
+            "uniqueMember: uid=admin,ou=system" );
 
         getSystemContext( service ).createSubcontext( "cn=testGroup3,ou=groups", attrs );
 
@@ -1768,17 +1851,17 @@ public class SearchIT extends AbstractLd
     private void testUseCases( String filterCsnVal, String[] expectedCsns, LdapConnection connection, int useCaseNum )
         throws Exception
     {
-        Value val = new StringValue( filterCsnVal );
-
+        Value<String> val = new StringValue( filterCsnVal );
+        AttributeType entryCsnAt = service.getSchemaManager().getAttributeType( SchemaConstants.ENTRY_CSN_AT );
         ExprNode filter = null;
 
         if ( useCaseNum == 1 )
         {
-            filter = new LessEqNode( SchemaConstants.ENTRY_CSN_AT, val );
+            filter = new LessEqNode( entryCsnAt, val );
         }
         else if ( useCaseNum == 2 )
         {
-            filter = new GreaterEqNode( SchemaConstants.ENTRY_CSN_AT, val );
+            filter = new GreaterEqNode( entryCsnAt, val );
         }
 
         Entry loadedEntry = null;
@@ -1803,6 +1886,7 @@ public class SearchIT extends AbstractLd
 
 
     @Test
+    @Ignore( "Fix DIRSERVER-1525/955" )
     public void testSearchFilterWithBadAttributeType() throws Exception
     {
         SearchControls controls = new SearchControls();
@@ -1827,6 +1911,7 @@ public class SearchIT extends AbstractLd
 
 
     @Test
+    @Ignore( "Fix DIRSERVER-1525/955" )
     public void testSearchFilterBadAttributeType() throws Exception
     {
         SearchControls controls = new SearchControls();

Modified: directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java (original)
+++ directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java Mon Jul 12 23:37:38 2010
@@ -91,6 +91,8 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.name.AVA;
 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.SchemaManager;
 import org.apache.directory.shared.ldap.util.AttributeUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 
@@ -110,6 +112,12 @@ public abstract class ServerContext impl
 
     /** The directory service which owns this context **/
     private final DirectoryService service;
+    
+    /** The SchemManager instance */
+    protected SchemaManager schemaManager;
+    
+    /** A reference to the ObjectClass AT */
+    protected AttributeType OBJECT_CLASS_AT;
 
     /** The cloned environment used by this Context */
     private final Hashtable<String, Object> env;
@@ -136,8 +144,6 @@ public abstract class ServerContext impl
     // ------------------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------------------
-
-    
     /**
      * Must be called by all subclasses to initialize the nexus proxy and the
      * environment settings to be used by this Context implementation.  This
@@ -175,6 +181,11 @@ public abstract class ServerContext impl
         {
             throw new NameNotFoundException( I18n.err( I18n.ERR_490, dn ) );
         }
+        
+        schemaManager = service.getSchemaManager();
+
+        // setup attribute type value
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
     }
     
     
@@ -203,6 +214,11 @@ public abstract class ServerContext impl
         {
             throw new NameNotFoundException( I18n.err( I18n.ERR_490, dn ) );
         }
+        
+        schemaManager = service.getSchemaManager();
+
+        // setup attribute type value
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
     }
 
 
@@ -220,6 +236,11 @@ public abstract class ServerContext impl
         {
             throw new NameNotFoundException( I18n.err( I18n.ERR_490, dn ) );
         }
+        
+        schemaManager = service.getSchemaManager();
+
+        // setup attribute type value
+        OBJECT_CLASS_AT = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
     }
 
 
@@ -336,7 +357,7 @@ public abstract class ServerContext impl
                 && ( searchControls.getReturningAttributes().length == 0 ) )
             && ( filter instanceof EqualityNode ) )
         {
-        	CompareOperationContext compareContext = new CompareOperationContext( session, dn, ((EqualityNode)filter).getAttribute(), ((EqualityNode)filter).getValue() );
+            CompareOperationContext compareContext = new CompareOperationContext( session, dn, ((EqualityNode)filter).getAttribute(), ((EqualityNode)filter).getValue() );
             
             // Inject the referral handling into the operation context
             injectReferralControl( compareContext );
@@ -1370,7 +1391,7 @@ public abstract class ServerContext impl
     {
         // Conduct a special one level search at base for all objects
         DN base = buildTarget( DN.fromName( name ) );
-        PresenceNode filter = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT );
+        PresenceNode filter = new PresenceNode( OBJECT_CLASS_AT );
         SearchControls ctls = new SearchControls();
         ctls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         AliasDerefMode aliasDerefMode = AliasDerefMode.getEnum( getEnvironment() );
@@ -1459,7 +1480,7 @@ public abstract class ServerContext impl
 
     public void addNamingListener( Name name, int scope, NamingListener namingListener ) throws NamingException
     {
-        ExprNode filter = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT );
+        ExprNode filter = new PresenceNode( OBJECT_CLASS_AT );
 
         try
         {

Modified: directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java (original)
+++ directory/apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java Mon Jul 12 23:37:38 2010
@@ -57,12 +57,11 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.filtering.EntryFilteringCursor;
 import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
 import org.apache.directory.server.i18n.I18n;
-import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.entry.BinaryValue;
-import org.apache.directory.shared.ldap.entry.StringValue;
+import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.Modification;
-import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.StringValue;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.exception.LdapInvalidAttributeTypeException;
 import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
@@ -402,7 +401,6 @@ public abstract class ServerDirContext e
                     catch ( LdapException e )
                     {
                         // TODO Auto-generated catch block
-                        e.printStackTrace();
                     }
                 }
             }
@@ -732,7 +730,7 @@ public abstract class ServerDirContext e
 
         if ( ( null == matchingAttributes ) || ( matchingAttributes.size() <= 0 ) )
         {
-            PresenceNode filter = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT );
+            PresenceNode filter = new PresenceNode( OBJECT_CLASS_AT );
             AliasDerefMode aliasDerefMode = AliasDerefMode.getEnum( getEnvironment() );
             try
             {
@@ -756,17 +754,19 @@ public abstract class ServerDirContext e
             {
                 Object value = attr.get();
                 SimpleNode<?> node;
+                String attributeType = attr.getID();
 
                 if ( value instanceof byte[] )
                 {
-                    node = new EqualityNode<byte[]>( attr.getID(), new BinaryValue( ( byte[] ) value ) );
+                    node = new EqualityNode<byte[]>( attributeType, new BinaryValue( ( byte[] ) value ) );
                 }
                 else
                 {
-                    node = new EqualityNode<String>( attr.getID(), new StringValue( ( String ) value ) );
+                    node = new EqualityNode<String>( attributeType, new StringValue( ( String ) value ) );
                 }
 
                 AliasDerefMode aliasDerefMode = AliasDerefMode.getEnum( getEnvironment() );
+                
                 try
                 {
                     EntryFilteringCursor cursor = doSearchOperation( target, aliasDerefMode, node, ctls );
@@ -887,7 +887,7 @@ public abstract class ServerDirContext e
 
         try
         {
-            filterNode = FilterParser.parse( filter );
+            filterNode = FilterParser.parse( schemaManager, filter );
         }
         catch ( ParseException pe )
         {
@@ -897,6 +897,7 @@ public abstract class ServerDirContext e
         }
 
         AliasDerefMode aliasDerefMode = AliasDerefMode.getEnum( getEnvironment() );
+        
         try
         {
             EntryFilteringCursor cursor = doSearchOperation( target, aliasDerefMode, filterNode, cons );
@@ -1003,7 +1004,7 @@ public abstract class ServerDirContext e
 
         try
         {
-            filter = FilterParser.parse( filterStr );
+            filter = FilterParser.parse( schemaManager, filterStr );
         }
         catch ( Exception e )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java Mon Jul 12 23:37:38 2010
@@ -725,7 +725,7 @@ public class DefaultCoreSession implemen
         
         try
         { 
-            filterNode = (ExprNode)FilterParser.parse( filter ); 
+            filterNode = (ExprNode)FilterParser.parse( directoryService.getSchemaManager(), filter ); 
         }
         catch ( ParseException pe )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/ReferralManagerImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/ReferralManagerImpl.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/ReferralManagerImpl.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/ReferralManagerImpl.java Mon Jul 12 23:37:38 2010
@@ -37,6 +37,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.util.tree.DnBranchNode;
 
 
@@ -56,6 +57,9 @@ public class ReferralManagerImpl impleme
     /** A lock to guarantee the manager consistency */
     private ReentrantReadWriteLock mutex = new ReentrantReadWriteLock();
 
+    /** A storage for the ObjectClass attributeType */
+    private AttributeType OBJECT_CLASS_AT;
+
     
     /**
      * 
@@ -72,9 +76,10 @@ public class ReferralManagerImpl impleme
         PartitionNexus nexus = directoryService.getPartitionNexus();
 
         Set<String> suffixes = nexus.listSuffixes();
-        
+        OBJECT_CLASS_AT = directoryService.getSchemaManager().getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
+
         init( directoryService, suffixes.toArray( new String[]{} ) );
-        
+
         unlock();
     }
     
@@ -142,7 +147,7 @@ public class ReferralManagerImpl impleme
      */
     public void init( DirectoryService directoryService, String... suffixes ) throws LdapException
     {
-        ExprNode referralFilter = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, 
+        ExprNode referralFilter = new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( SchemaConstants.REFERRAL_OC ) );
 
         // Lookup for each entry with the ObjectClass = Referral value
@@ -197,7 +202,7 @@ public class ReferralManagerImpl impleme
      */
     public void remove( DirectoryService directoryService, DN suffix ) throws Exception
     {
-        ExprNode referralFilter = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, 
+        ExprNode referralFilter = new EqualityNode<String>( OBJECT_CLASS_AT, 
             new StringValue( SchemaConstants.REFERRAL_OC ) );
 
         // Lookup for each entry with the ObjectClass = Referral value

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=963530&r1=963529&r2=963530&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 Mon Jul 12 23:37:38 2010
@@ -137,9 +137,9 @@ public class GroupCache
             // didn't use clone() cause it is creating List objects, which IMO is not worth calling
             // in this initialization phase
             BranchNode filter = new OrNode();
-            filter.addNode( new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, new StringValue(
+            filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
                 SchemaConstants.GROUP_OF_NAMES_OC ) ) );
-            filter.addNode( new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, new StringValue(
+            filter.addNode( new EqualityNode<String>( OBJECT_CLASS_AT, new StringValue(
                 SchemaConstants.GROUP_OF_UNIQUE_NAMES_OC ) ) );
 
             DN baseDn = new DN( suffix ).normalize( normalizerMap );

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=963530&r1=963529&r2=963530&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 Mon Jul 12 23:37:38 2010
@@ -124,7 +124,7 @@ public class TupleCache
         for ( String suffix:suffixes )
         {
             DN baseDn = parseNormalized( session.getDirectoryService().getSchemaManager(), suffix );
-            ExprNode filter = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, 
+            ExprNode filter = new EqualityNode<String>( OBJECT_CLASS_AT, 
                 new StringValue( SchemaConstants.ACCESS_CONTROL_SUBENTRY_OC ) );
             SearchControls ctls = new SearchControls();
             ctls.setSearchScope( SearchControls.SUBTREE_SCOPE );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java Mon Jul 12 23:37:38 2010
@@ -50,6 +50,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.filter.PresenceNode;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 
 
@@ -68,7 +69,18 @@ public class MaxImmSubFilter implements 
 
     public MaxImmSubFilter( SchemaManager schemaManager )
     {
-        childrenFilter = new PresenceNode( SchemaConstants.OBJECT_CLASS_AT );
+        AttributeType objectClassAt = null;
+        
+        try
+        {
+            objectClassAt = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
+        }
+        catch ( LdapException le )
+        {
+            // Do nothing
+        }
+        
+        childrenFilter = new PresenceNode( objectClassAt );
         childrenSearchControls = new SearchControls();
         childrenSearchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
     }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java Mon Jul 12 23:37:38 2010
@@ -300,9 +300,14 @@ public class EventInterceptor extends Ba
             NotificationCriteria criteria = registration.getCriteria();
 
             DN base = criteria.getBase();
+            
+            if ( !criteria.getFilter().isSchemaAware() )
+            {
+                criteria.getFilter().accept( filterNormalizer );
+            }
 
             // fix for DIRSERVER-1502
-            if ( name.equals( base ) || name.isChildOf( base )
+            if ( ( name.equals( base ) || name.isChildOf( base ) )
                 && evaluator.evaluate( criteria.getFilter(), base, entry ) )
             {
                 selecting.add( registration );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ExpressionEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ExpressionEvaluator.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ExpressionEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ExpressionEvaluator.java Mon Jul 12 23:37:38 2010
@@ -35,7 +35,7 @@ import org.apache.directory.shared.ldap.
 
 
 /**
- * Top level filter expression evaluator implemenation.
+ * Top level filter expression evaluator implementation.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -48,7 +48,6 @@ public class ExpressionEvaluator impleme
     // ------------------------------------------------------------------------
     // C O N S T R U C T O R S
     // ------------------------------------------------------------------------
-
     /**
      * Creates a top level Evaluator where leaves are delegated to a leaf node
      * evaluator which is already provided.
@@ -71,7 +70,7 @@ public class ExpressionEvaluator impleme
     public ExpressionEvaluator( SchemaManager schemaManager )
     {
         SubstringEvaluator substringEvaluator = null;
-        substringEvaluator = new SubstringEvaluator( schemaManager );
+        substringEvaluator = new SubstringEvaluator();
         leafEvaluator = new LeafEvaluator( schemaManager, substringEvaluator );
     }
 
@@ -90,7 +89,6 @@ public class ExpressionEvaluator impleme
     // ------------------------------------------------------------------------
     // Evaluator.evaluate() implementation
     // ------------------------------------------------------------------------
-
     /**
      * @see Evaluator#evaluate(ExprNode, String, Entry)
      */

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/LeafEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/LeafEvaluator.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/LeafEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/LeafEvaluator.java Mon Jul 12 23:37:38 2010
@@ -24,9 +24,9 @@ import java.util.Comparator;
 
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.shared.ldap.NotImplementedException;
-import org.apache.directory.shared.ldap.entry.StringValue;
-import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.EntryAttribute;
+import org.apache.directory.shared.ldap.entry.StringValue;
 import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.exception.LdapInvalidSearchFilterException;
@@ -116,8 +116,7 @@ public class LeafEvaluator implements Ev
 
         if ( node instanceof PresenceNode )
         {
-            String attrId = ( ( PresenceNode ) node ).getAttribute();
-            return evalPresence( attrId, entry );
+            return evalPresence( ( ( PresenceNode ) node ).getAttributeType(), entry );
         }
         else if ( ( node instanceof EqualityNode ) || ( node instanceof ApproximateNode ) )
         {
@@ -161,11 +160,10 @@ public class LeafEvaluator implements Ev
     private boolean evalGreaterOrLesser( SimpleNode<?> node, Entry entry, boolean isGreaterOrLesser )
         throws LdapException
     {
-        String attrId = node.getAttribute();
+        AttributeType attributeType = node.getAttributeType();
 
         // get the attribute associated with the node
-        AttributeType type = schemaManager.lookupAttributeTypeRegistry( attrId );
-        EntryAttribute attr = entry.get( type );
+        EntryAttribute attr = entry.get( node.getAttribute() );
 
         // If we do not have the attribute just return false
         if ( null == attr )
@@ -177,8 +175,8 @@ public class LeafEvaluator implements Ev
          * We need to iterate through all values and for each value we normalize
          * and use the comparator to determine if a match exists.
          */
-        Normalizer normalizer = getNormalizer( attrId );
-        Comparator comparator = getComparator( attrId );
+        Normalizer normalizer = getNormalizer( attributeType );
+        Comparator comparator = getComparator( attributeType );
         Object filterValue = normalizer.normalize( node.getValue() );
 
         /*
@@ -225,14 +223,14 @@ public class LeafEvaluator implements Ev
      * @param entry the perspective candidate
      * @return the ava evaluation on the perspective candidate
      */
-    private boolean evalPresence( String attrId, Entry entry ) throws LdapException
+    private boolean evalPresence( AttributeType attributeType, Entry entry ) throws LdapException
     {
         if ( entry == null )
         {
             return false;
         }
 
-        return null != entry.get( attrId );
+        return null != entry.get( attributeType );
     }
 
 
@@ -248,8 +246,8 @@ public class LeafEvaluator implements Ev
     @SuppressWarnings("unchecked")
     private boolean evalEquality( EqualityNode<?> node, Entry entry ) throws LdapException
     {
-        Normalizer normalizer = getNormalizer( node.getAttribute() );
-        Comparator comparator = getComparator( node.getAttribute() );
+        Normalizer normalizer = getNormalizer( node.getAttributeType() );
+        Comparator comparator = getComparator( node.getAttributeType() );
 
         // get the attribute associated with the node
         EntryAttribute attr = entry.get( node.getAttribute() );
@@ -261,10 +259,10 @@ public class LeafEvaluator implements Ev
         }
 
         // check if AVA value exists in attribute
-        AttributeType at = schemaManager.lookupAttributeTypeRegistry( node.getAttribute() );
+        AttributeType attributeType = node.getAttributeType();
         Value<?> value = null;
         
-        if ( at.getSyntax().isHumanReadable() )
+        if ( attributeType.getSyntax().isHumanReadable() )
         {
             if ( node.getValue().isBinary() )
             {
@@ -317,13 +315,14 @@ public class LeafEvaluator implements Ev
     /**
      * Gets the comparator for equality matching.
      *
-     * @param attrId the attribute identifier
+     * @param attributeType the attributeType
      * @return the comparator for equality matching
      * @throws LdapException if there is a failure
      */
-    private LdapComparator<? super Object> getComparator( String attrId ) throws LdapException
+    private LdapComparator<? super Object> getComparator( AttributeType attributeType ) throws LdapException
     {
-        MatchingRule mrule = getMatchingRule( attrId, EQUALITY_MATCH );
+        MatchingRule mrule = getMatchingRule( attributeType, EQUALITY_MATCH );
+        
         return mrule.getLdapComparator();
     }
 
@@ -331,13 +330,14 @@ public class LeafEvaluator implements Ev
     /**
      * Gets the normalizer for equality matching.
      *
-     * @param attrId the attribute identifier
+     * @param attributeType the attributeType
      * @return the normalizer for equality matching
      * @throws LdapException if there is a failure
      */
-    private Normalizer getNormalizer( String attrId ) throws LdapException
+    private Normalizer getNormalizer( AttributeType attributeType ) throws LdapException
     {
-        MatchingRule mrule = getMatchingRule( attrId, EQUALITY_MATCH );
+        MatchingRule mrule = getMatchingRule( attributeType, EQUALITY_MATCH );
+        
         return mrule.getNormalizer();
     }
 
@@ -345,27 +345,26 @@ public class LeafEvaluator implements Ev
     /**
      * Gets the matching rule for an attributeType.
      *
-     * @param attrId the attribute identifier
+     * @param attributeType the attributeType
      * @return the matching rule
      * @throws LdapException if there is a failure
      */
-    private MatchingRule getMatchingRule( String attrId, int matchType ) throws LdapException
+    private MatchingRule getMatchingRule( AttributeType attributeType, int matchType ) throws LdapException
     {
         MatchingRule mrule = null;
-        AttributeType type = schemaManager.lookupAttributeTypeRegistry( attrId );
 
         switch ( matchType )
         {
             case ( EQUALITY_MATCH ):
-                mrule = type.getEquality();
+                mrule = attributeType.getEquality();
                 break;
 
             case ( SUBSTRING_MATCH ):
-                mrule = type.getSubstring();
+                mrule = attributeType.getSubstring();
                 break;
 
             case ( ORDERING_MATCH ):
-                mrule = type.getOrdering();
+                mrule = attributeType.getOrdering();
                 break;
 
             default:
@@ -374,7 +373,7 @@ public class LeafEvaluator implements Ev
 
         if ( ( mrule == null ) && ( matchType != EQUALITY_MATCH ) )
         {
-            mrule = type.getEquality();
+            mrule = attributeType.getEquality();
         }
 
         return mrule;

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/SubstringEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/SubstringEvaluator.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/SubstringEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/SubstringEvaluator.java Mon Jul 12 23:37:38 2010
@@ -24,8 +24,8 @@ import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
 import org.apache.directory.server.i18n.I18n;
-import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.exception.LdapException;
 import org.apache.directory.shared.ldap.exception.LdapInvalidSearchFilterException;
@@ -35,7 +35,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.MatchingRule;
 import org.apache.directory.shared.ldap.schema.Normalizer;
-import org.apache.directory.shared.ldap.schema.SchemaManager;
 
 
 /**
@@ -45,19 +44,11 @@ import org.apache.directory.shared.ldap.
  */
 public class SubstringEvaluator implements Evaluator
 {
-    /** SchemaManager needed for normalizing and comparing values */
-    private SchemaManager schemaManager;
-
-
     /**
      * Creates a new SubstringEvaluator for substring expressions.
-     *
-     * @param oidRegistry the OID registry for name to OID mapping
-     * @param attributeTypeRegistry the attributeType registry
      */
-    public SubstringEvaluator( SchemaManager schemaManager )
+    public SubstringEvaluator()
     {
-        this.schemaManager = schemaManager;
     }
 
 
@@ -68,13 +59,12 @@ public class SubstringEvaluator implemen
     {
         Pattern regex = null;
         SubstringNode snode = (SubstringNode)node;
-        String oid = schemaManager.getAttributeTypeRegistry().getOidByName( snode.getAttribute() );
-        AttributeType type = schemaManager.lookupAttributeTypeRegistry( oid );
-        MatchingRule matchingRule = type.getSubstring();
+        AttributeType attributeType = snode.getAttributeType();
+        MatchingRule matchingRule = attributeType.getSubstring();
         
         if ( matchingRule == null )
         {
-            matchingRule = type.getEquality();
+            matchingRule = attributeType.getEquality();
         }
         
         Normalizer normalizer = matchingRule.getNormalizer();

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java?rev=963530&r1=963529&r2=963530&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java Mon Jul 12 23:37:38 2010
@@ -102,7 +102,7 @@ public class ExpandingVisitor implements
 
                 try
                 {
-                    if ( schemaManager.getAttributeTypeRegistry().hasDescendants( leaf.getAttribute() ) )
+                    if ( schemaManager.getAttributeTypeRegistry().hasDescendants( leaf.getAttributeType() ) )
                     {
                         // create a new OR node to hold all descendent forms
                         // add to this node the generalized leaf node and 
@@ -112,7 +112,7 @@ public class ExpandingVisitor implements
                         children.set( childNumber++, orNode );
 
                         // iterate through descendants adding them to the orNode
-                        Iterator<AttributeType> descendants = schemaManager.getAttributeTypeRegistry().descendants( leaf.getAttribute() );
+                        Iterator<AttributeType> descendants = schemaManager.getAttributeTypeRegistry().descendants( leaf.getAttributeType() );
 
                         while ( descendants.hasNext() )
                         {
@@ -121,42 +121,42 @@ public class ExpandingVisitor implements
 
                             if ( leaf instanceof PresenceNode )
                             {
-                                newLeaf = new PresenceNode( descendant.getOid() );
+                                newLeaf = new PresenceNode( descendant );
                             }
                             else if ( leaf instanceof ApproximateNode )
                             {
                                 ApproximateNode approximateNode = ( ApproximateNode ) leaf;
 
-                                newLeaf = new ApproximateNode( descendant.getOid(), approximateNode.getValue() );
+                                newLeaf = new ApproximateNode( descendant, approximateNode.getValue() );
                             }
                             else if ( leaf instanceof EqualityNode )
                             {
                                 EqualityNode equalityNode = ( EqualityNode ) leaf;
 
-                                newLeaf = new EqualityNode( descendant.getOid(), equalityNode.getValue() );
+                                newLeaf = new EqualityNode( descendant, equalityNode.getValue() );
                             }
                             else if ( leaf instanceof GreaterEqNode )
                             {
                                 GreaterEqNode greaterEqNode = ( GreaterEqNode ) leaf;
 
-                                newLeaf = new GreaterEqNode( descendant.getOid(), greaterEqNode.getValue() );
+                                newLeaf = new GreaterEqNode( descendant, greaterEqNode.getValue() );
                             }
                             else if ( leaf instanceof LessEqNode )
                             {
                                 LessEqNode lessEqNode = ( LessEqNode ) leaf;
 
-                                newLeaf = new LessEqNode( descendant.getOid(), lessEqNode.getValue() );
+                                newLeaf = new LessEqNode( descendant, lessEqNode.getValue() );
                             }
                             else if ( leaf instanceof ExtensibleNode )
                             {
                                 ExtensibleNode extensibleNode = ( ExtensibleNode ) leaf;
-                                newLeaf = new ExtensibleNode( descendant.getOid(), extensibleNode.getValue(),
+                                newLeaf = new ExtensibleNode( descendant, extensibleNode.getValue(),
                                     extensibleNode.getMatchingRuleId(), extensibleNode.hasDnAttributes() );
                             }
                             else if ( leaf instanceof SubstringNode )
                             {
                                 SubstringNode substringNode = ( SubstringNode ) leaf;
-                                newLeaf = new SubstringNode( descendant.getOid(), substringNode.getInitial(),
+                                newLeaf = new SubstringNode( descendant, substringNode.getInitial(),
                                     substringNode.getFinal() );
                             }
                             else