directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akaras...@apache.org
Subject svn commit: r613608 [6/15] - in /directory/sandbox/akarasulu/bigbang/apacheds: ./ bootstrap-plugin/ bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/ core-entry/ core-entry/src/main/java/org/apache/directory/server/core/...
Date Sun, 20 Jan 2008 16:59:36 GMT
Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java Sun Jan 20 08:59:10 2008
@@ -30,6 +30,7 @@
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
 import org.apache.directory.server.core.schema.SchemaInterceptor;
 import org.apache.directory.server.core.subtree.SubentryInterceptor;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.ProtectedItem;
@@ -40,7 +41,6 @@
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
-import javax.naming.Name;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
@@ -74,10 +74,11 @@
 
 
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,
@@ -120,7 +121,7 @@
                 {
                     if ( immSubCount < 0 )
                     {
-                        immSubCount = getImmSubCount( proxy, entryName );
+                        immSubCount = getImmSubCount( registries, proxy, entryName );
                     }
 
                     ProtectedItem.MaxImmSub mis = ( ProtectedItem.MaxImmSub ) item;
@@ -156,14 +157,14 @@
     }
 
 
-    private int getImmSubCount( PartitionNexusProxy proxy, LdapDN entryName ) throws NamingException
+    private int getImmSubCount( Registries registries, PartitionNexusProxy proxy, LdapDN entryName ) throws NamingException
     {
         int cnt = 0;
         NamingEnumeration<SearchResult> e = null;
         
         try
         {
-            e = proxy.search( new SearchOperationContext( ( LdapDN ) entryName.getPrefix( 1 ),
+            e = proxy.search( new SearchOperationContext( registries, ( LdapDN ) entryName.getPrefix( 1 ),
                     AliasDerefMode.DEREF_ALWAYS, childrenFilter, childrenSearchControls ), SEARCH_BYPASS );
 
             while ( e.hasMore() )

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxValueCountFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxValueCountFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxValueCountFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxValueCountFilter.java Sun Jan 20 08:59:10 2008
@@ -23,12 +23,12 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.ProtectedItem;
@@ -47,10 +47,11 @@
 public class MaxValueCountFilter implements ACITupleFilter
 {
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MicroOperationFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MicroOperationFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MicroOperationFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MicroOperationFilter.java Sun Jan 20 08:59:10 2008
@@ -23,11 +23,11 @@
 import java.util.Collection;  
 import java.util.Iterator;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
 
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
@@ -45,19 +45,20 @@
 public class MicroOperationFilter implements ACITupleFilter
 {
     public Collection<ACITuple> filter( 
-                Collection<ACITuple> tuples, 
-                OperationScope scope, 
-                PartitionNexusProxy proxy,
-                Collection<Name> userGroupNames, 
-                LdapDN userName, 
-                Attributes userEntry, 
-                AuthenticationLevel authenticationLevel,
-                LdapDN entryName, 
-                String attrId, 
-                Object attrValue, 
-                Attributes entry, 
-                Collection<MicroOperation> microOperations,
-                Attributes entryView )
+            Registries registries, 
+            Collection<ACITuple> tuples, 
+            OperationScope scope, 
+            PartitionNexusProxy proxy,
+            Collection<LdapDN> userGroupNames, 
+            LdapDN userName, 
+            Attributes userEntry, 
+            AuthenticationLevel authenticationLevel,
+            LdapDN entryName, 
+            String attrId, 
+            Object attrValue, 
+            Attributes entry, 
+            Collection<MicroOperation> microOperations,
+            Attributes entryView )
         throws NamingException
     {
         if ( tuples.size() == 0 )

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilter.java Sun Jan 20 08:59:10 2008
@@ -23,11 +23,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
 
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.ProtectedItem;
@@ -53,10 +53,11 @@
 public class MostSpecificProtectedItemFilter implements ACITupleFilter
 {
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilter.java Sun Jan 20 08:59:10 2008
@@ -23,11 +23,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
 
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.UserClass;
@@ -51,10 +51,11 @@
 public class MostSpecificUserClassFilter implements ACITupleFilter
 {
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilter.java Sun Jan 20 08:59:10 2008
@@ -23,7 +23,6 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
@@ -33,6 +32,7 @@
 import org.apache.directory.server.core.subtree.RefinementEvaluator;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
 import org.apache.directory.server.schema.registries.OidRegistry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.ProtectedItem;
@@ -71,10 +71,11 @@
 
 
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry,
             AuthenticationLevel authenticationLevel, 

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilter.java Sun Jan 20 08:59:10 2008
@@ -23,12 +23,14 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
 
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.core.entry.ServerEntryUtils;
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
 import org.apache.directory.server.core.subtree.SubtreeEvaluator;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.UserClass;
@@ -58,10 +60,11 @@
 
 
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,
@@ -84,7 +87,11 @@
             
             if ( tuple.isGrant() )
             {
-                if ( !isRelated( userGroupNames, userName, userEntry, entryName, tuple.getUserClasses() )
+                if ( !isRelated( userGroupNames, 
+                                 userName, 
+                                 ServerEntryUtils.toServerEntry( userEntry, userName, registries ), 
+                                 entryName, 
+                                 tuple.getUserClasses() )
                     || authenticationLevel.compareTo( tuple.getAuthenticationLevel() ) < 0 )
                 {
                     ii.remove();
@@ -93,7 +100,11 @@
             else
             // Denials
             {
-                if ( !isRelated( userGroupNames, userName, userEntry, entryName, tuple.getUserClasses() )
+                if ( !isRelated( userGroupNames, 
+                                 userName, 
+                                 ServerEntryUtils.toServerEntry( userEntry, userName, registries ), 
+                                 entryName, 
+                                 tuple.getUserClasses() )
                     && authenticationLevel.compareTo( tuple.getAuthenticationLevel() ) >= 0 )
                 {
                     ii.remove();
@@ -105,7 +116,7 @@
     }
 
 
-    private boolean isRelated( Collection<Name> userGroupNames, LdapDN userName, Attributes userEntry, 
+    private boolean isRelated( Collection<LdapDN> userGroupNames, LdapDN userName, ServerEntry userEntry, 
         LdapDN entryName, Collection<UserClass> userClasses ) throws NamingException
     {
         for ( UserClass userClass : userClasses )
@@ -133,7 +144,7 @@
             {
                 UserClass.UserGroup userGroupUserClass = ( UserClass.UserGroup ) userClass;
                 
-                for ( Name userGroupName : userGroupNames )
+                for ( LdapDN userGroupName : userGroupNames )
                 {
                     if ( userGroupName != null && userGroupUserClass.getNames().contains( userGroupName ) )
                     {
@@ -159,7 +170,7 @@
     }
 
 
-    private boolean matchUserClassSubtree( LdapDN userName, Attributes userEntry, UserClass.Subtree subtree )
+    private boolean matchUserClassSubtree( LdapDN userName, ServerEntry userEntry, UserClass.Subtree subtree )
         throws NamingException
     {
         for ( SubtreeSpecification subtreeSpec : subtree.getSubtreeSpecifications() )

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RestrictedByFilter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RestrictedByFilter.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RestrictedByFilter.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RestrictedByFilter.java Sun Jan 20 08:59:10 2008
@@ -23,12 +23,12 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.aci.ACITuple;
 import org.apache.directory.shared.ldap.aci.MicroOperation;
 import org.apache.directory.shared.ldap.aci.ProtectedItem;
@@ -47,10 +47,11 @@
 public class RestrictedByFilter implements ACITupleFilter
 {
     public Collection<ACITuple> filter( 
+            Registries registries, 
             Collection<ACITuple> tuples, 
             OperationScope scope, 
             PartitionNexusProxy proxy,
-            Collection<Name> userGroupNames, 
+            Collection<LdapDN> userGroupNames, 
             LdapDN userName, 
             Attributes userEntry, 
             AuthenticationLevel authenticationLevel,

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java Sun Jan 20 08:59:10 2008
@@ -19,8 +19,12 @@
 package org.apache.directory.server.core.changelog;
 
 
+import java.util.Set;
+
 import org.apache.directory.server.constants.ApacheSchemaConstants;
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.core.entry.ServerEntryUtils;
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
@@ -29,6 +33,7 @@
 import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
+import org.apache.directory.server.core.interceptor.context.OperationContext;
 import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
 import org.apache.directory.server.core.invocation.Invocation;
 import org.apache.directory.server.core.invocation.InvocationStack;
@@ -45,9 +50,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
-import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 
 
@@ -59,10 +62,13 @@
 {
     /** for debugging */
     private static final Logger LOG = LoggerFactory.getLogger( ChangeLogInterceptor.class );
+    
     /** used to ignore modify operations to tombstone entries */
     private AttributeType entryDeleted;
+    
     /** the changelog service to log changes to */
     private ChangeLog changeLog;
+    
     /** we need the schema service to deal with special conditions */
     private SchemaService schemaService;
 
@@ -98,11 +104,14 @@
         Entry forward = new Entry();
         forward.setChangeType( ChangeType.Add );
         forward.setDn( opContext.getDn().getUpName() );
-        NamingEnumeration<? extends Attribute> list = opContext.getEntry().getAll();
         
-        while ( list.hasMore() )
+        ServerEntry addEntry = opContext.getEntry();
+
+        Set<AttributeType> list = addEntry.getAttributeTypes();
+        
+        for ( AttributeType attributeType:list )
         {
-            forward.addAttribute( ( Attribute ) list.next() );
+            forward.addAttribute( ServerEntryUtils.toAttributeImpl( addEntry.get( attributeType ) ) );
         }
         
         Entry reverse = LdifUtils.reverseAdd( opContext.getDn() );
@@ -122,7 +131,7 @@
 
         if ( changeLog.isEnabled() && ! opContext.isCollateralOperation() )
         {
-            attributes = getAttributes( opContext.getDn() );
+            attributes = getAttributes( opContext );
         }
 
         next.delete( opContext );
@@ -147,8 +156,9 @@
      * @return the entry's attributes (may be immutable if the schema subentry)
      * @throws NamingException on error accessing the entry's attributes
      */
-    private Attributes getAttributes( LdapDN dn ) throws NamingException
+    private Attributes getAttributes( OperationContext opContext ) throws NamingException
     {
+        LdapDN dn = opContext.getDn();
         Attributes attributes;
 
         // @todo make sure we're not putting in operational attributes that cannot be user modified
@@ -161,7 +171,7 @@
         }
         else
         {
-            attributes = proxy.lookup( new LookupOperationContext( dn ), PartitionNexusProxy.LOOKUP_BYPASS );
+            attributes = proxy.lookup( new LookupOperationContext( opContext.getRegistries(), dn ), PartitionNexusProxy.LOOKUP_BYPASS );
         }
 
         return attributes;
@@ -176,7 +186,7 @@
         if ( ! isDelete && ( changeLog.isEnabled() && ! opContext.isCollateralOperation() ) )
         {
             // @todo make sure we're not putting in operational attributes that cannot be user modified
-            attributes = getAttributes( opContext.getDn() );
+            attributes = getAttributes( opContext );
         }
 
         next.modify( opContext );
@@ -216,7 +226,7 @@
         if ( changeLog.isEnabled() && ! renameContext.isCollateralOperation() )
         {
             // @todo make sure we're not putting in operational attributes that cannot be user modified
-            attributes = getAttributes( renameContext.getDn() );
+            attributes = getAttributes( renameContext );
         }
 
         next.rename( renameContext );
@@ -246,7 +256,7 @@
             // @todo make sure we're not putting in operational attributes that cannot be user modified
             Invocation invocation = InvocationStack.getInstance().peek();
             PartitionNexusProxy proxy = invocation.getProxy();
-            attributes = proxy.lookup( new LookupOperationContext( opCtx.getDn() ),
+            attributes = proxy.lookup( new LookupOperationContext( opCtx.getRegistries(), opCtx.getDn() ),
                     PartitionNexusProxy.LOOKUP_BYPASS );
         }
 

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/OriginalChangeLogInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/OriginalChangeLogInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/OriginalChangeLogInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/OriginalChangeLogInterceptor.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
 package org.apache.directory.server.core.changelog;
 
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntryUtils;
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
@@ -73,7 +74,7 @@
     private final Queue<StringBuilder> queue = new LinkedList<StringBuilder>();
     
     /** a handle on the attributeType registry to determine the binary nature of attributes */
-    private AttributeTypeRegistry registry;
+    private AttributeTypeRegistry atRegistry;
     
     /** determines if this service has been activated */
     private boolean isActive;
@@ -92,7 +93,7 @@
         super.init( directoryService );
 
         // Get a handle on the attribute registry to check if attributes are binary
-        registry = directoryService.getRegistries().getAttributeTypeRegistry();
+        atRegistry = directoryService.getRegistries().getAttributeTypeRegistry();
 
         // Open a print stream to use for flushing LDIFs into
         File changes = new File( directoryService.getWorkingDirectory(), "changes.LOG" );
@@ -232,7 +233,7 @@
         buf.append( DateUtils.getGeneralizedTime() );
         
         // Append the LDIF entry now
-        buf.append( LdifUtils.convertToLdif( opContext.getEntry() ) );
+        buf.append( LdifUtils.convertToLdif( ServerEntryUtils.toAttributesImpl( opContext.getEntry() ) ) );
 
         // Enqueue the buffer onto a queue that is emptied by another thread asynchronously. 
         synchronized ( queue )
@@ -449,7 +450,7 @@
     {
         String id = attr.getID();
         int sz = attr.size();
-        boolean isBinary = ! registry.lookup( id ).getSyntax().isHumanReadable();
+        boolean isBinary = ! atRegistry.lookup( id ).getSyntax().isHumanReadable();
         
         if ( isBinary )
         {

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java Sun Jan 20 08:59:10 2008
@@ -34,6 +34,7 @@
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 import org.apache.directory.shared.ldap.message.ServerSearchResult;
@@ -65,9 +66,17 @@
  */
 public class CollectiveAttributeInterceptor extends BaseInterceptor
 {
-    public static final String EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_OID = "2.5.18.0";
-    public static final String EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES = "excludeAllCollectiveAttributes";
+    /** The global registries */
+    private Registries registries;
     
+    /** The attributeType registry */
+    private AttributeTypeRegistry atRegistry;
+    
+    private PartitionNexus nexus;
+    
+    private CollectiveAttributesSchemaChecker collectiveAttributesSchemaChecker;
+
+
     /**
      * the search result filter to use for collective attribute injection
      */
@@ -80,7 +89,7 @@
             
             if ( !name.isNormalized() )
             {
-            	name = LdapDN.normalize( name, attrTypeRegistry.getNormalizerMapping() );
+            	name = LdapDN.normalize( name, atRegistry.getNormalizerMapping() );
             }
             
             Attributes entry = result.getAttributes();
@@ -90,18 +99,13 @@
         }
     };
 
-    private AttributeTypeRegistry attrTypeRegistry;
-    private PartitionNexus nexus;
-    
-    private CollectiveAttributesSchemaChecker collectiveAttributesSchemaChecker;
-
-
     public void init( DirectoryService directoryService ) throws NamingException
     {
         super.init( directoryService );
         nexus = directoryService.getPartitionNexus();
-        attrTypeRegistry = directoryService.getRegistries().getAttributeTypeRegistry();
-        collectiveAttributesSchemaChecker = new CollectiveAttributesSchemaChecker(nexus, attrTypeRegistry);
+        atRegistry = directoryService.getRegistries().getAttributeTypeRegistry();
+        collectiveAttributesSchemaChecker = new CollectiveAttributesSchemaChecker( nexus, atRegistry );
+        registries = directoryService.getRegistries();
     }
 
 
@@ -123,7 +127,7 @@
         //noinspection StringEquality
         if ( ( retAttrs == null ) || ( retAttrs.length != 1 ) || ( retAttrs[0] != SchemaConstants.ALL_USER_ATTRIBUTES ) )
         {
-            Attributes entryWithCAS = nexus.lookup( new LookupOperationContext( normName, new String[] { 
+            Attributes entryWithCAS = nexus.lookup( new LookupOperationContext( registries, normName, new String[] { 
             	SchemaConstants.COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT } ) );
             caSubentries = entryWithCAS.get( SchemaConstants.COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT );
         }
@@ -152,8 +156,9 @@
         
         if ( collectiveExclusions != null )
         {
-            if ( AttributeUtils.containsValueCaseIgnore( collectiveExclusions, EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_OID )
-                || AttributeUtils.containsValue( collectiveExclusions, EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES, attrTypeRegistry.lookup( SchemaConstants.COLLECTIVE_EXCLUSIONS_AT_OID ) ) )
+            if ( AttributeUtils.containsValueCaseIgnore( collectiveExclusions, SchemaConstants.EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_AT_OID )
+                || AttributeUtils.containsValue( collectiveExclusions, SchemaConstants.EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_AT, 
+                    atRegistry.lookup( SchemaConstants.COLLECTIVE_EXCLUSIONS_AT_OID ) ) )
             {
                 /*
                  * This entry does not allow any collective attributes
@@ -166,7 +171,7 @@
             
             for ( int ii = 0; ii < collectiveExclusions.size(); ii++ )
             {
-                AttributeType attrType = attrTypeRegistry.lookup( ( String ) collectiveExclusions.get( ii ) );
+                AttributeType attrType = atRegistry.lookup( ( String ) collectiveExclusions.get( ii ) );
                 exclusions.add( attrType.getOid() );
             }
         }
@@ -200,13 +205,13 @@
         {
             String subentryDnStr = ( String ) caSubentries.get( ii );
             LdapDN subentryDn = new LdapDN( subentryDnStr );
-            Attributes subentry = nexus.lookup( new LookupOperationContext( subentryDn ) );
+            Attributes subentry = nexus.lookup( new LookupOperationContext( registries, subentryDn ) );
             NamingEnumeration<String> attrIds = subentry.getIDs();
             
             while ( attrIds.hasMore() )
             {
                 String attrId = attrIds.next();
-                AttributeType attrType = attrTypeRegistry.lookup( attrId );
+                AttributeType attrType = atRegistry.lookup( attrId );
 
                 if ( !attrType.isCollective() )
                 {
@@ -231,7 +236,7 @@
                         continue;
                     }
 
-                    AttributeType retType = attrTypeRegistry.lookup( retId );
+                    AttributeType retType = atRegistry.lookup( retId );
 
                     if ( allSuperTypes.contains( retType ) )
                     {
@@ -350,7 +355,7 @@
 
     public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
-        collectiveAttributesSchemaChecker.checkModify( opContext.getDn(), opContext.getModItems() );
+        collectiveAttributesSchemaChecker.checkModify( opContext.getRegistries(),opContext.getDn(), opContext.getModItems() );
 
         next.modify( opContext );
     }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributesSchemaChecker.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributesSchemaChecker.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributesSchemaChecker.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributesSchemaChecker.java Sun Jan 20 08:59:10 2008
@@ -22,6 +22,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
@@ -30,9 +31,11 @@
 import javax.naming.directory.DirContext;
 import javax.naming.directory.ModificationItem;
 
+import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
 import org.apache.directory.shared.ldap.message.ModificationItemImpl;
@@ -60,11 +63,9 @@
         this.attrTypeRegistry = attrTypeRegistry;
     }
     
-    public void checkAdd( LdapDN normName, Attributes entry ) throws LdapSchemaViolationException, NamingException
+    /* package scope*/ void checkAdd( LdapDN normName, ServerEntry entry ) throws LdapSchemaViolationException, NamingException
     {
-        Attribute objectClass = entry.get( SchemaConstants.OBJECT_CLASS_AT );
-        
-        if ( AttributeUtils.containsValueCaseIgnore( objectClass, "collectiveAttributeSubentry" ) )
+        if ( entry.hasObjectClass( SchemaConstants.COLLECTIVE_ATTRIBUTE_SUBENTRY_OC ) )
         {
             return;
         }
@@ -80,7 +81,7 @@
         }
     }
     
-    public void checkModify( LdapDN normName, int modOp, Attributes mods ) throws NamingException
+    public void checkModify( Registries registries, LdapDN normName, int modOp, Attributes mods ) throws NamingException
     {
         ArrayList<ModificationItemImpl> modsAsArray = new ArrayList<ModificationItemImpl>( mods.size() );
         NamingEnumeration<? extends Attribute> allAttrs = mods.getAll();
@@ -91,17 +92,17 @@
             modsAsArray.add( new ModificationItemImpl( modOp, attr ) );
         }
         
-        checkModify( normName, modsAsArray );
+        checkModify( registries, normName, modsAsArray );
     }
     
     
-    public void checkModify( LdapDN normName, List<ModificationItemImpl> mods ) throws NamingException
+    public void checkModify( Registries registries, LdapDN normName, List<ModificationItemImpl> mods ) throws NamingException
     {
-        Attributes originalEntry = nexus.lookup( new LookupOperationContext( normName ) );
+        Attributes originalEntry = nexus.lookup( new LookupOperationContext( registries, normName ) );
         Attributes targetEntry = SchemaUtils.getTargetEntry( mods, originalEntry );
         Attribute targetObjectClasses = targetEntry.get( SchemaConstants.OBJECT_CLASS_AT );
         
-        if ( AttributeUtils.containsValueCaseIgnore( targetObjectClasses, "collectiveAttributeSubentry" ) )
+        if ( AttributeUtils.containsValueCaseIgnore( targetObjectClasses, SchemaConstants.COLLECTIVE_ATTRIBUTE_SUBENTRY_OC ) )
         {
             return;
         }
@@ -138,16 +139,13 @@
     }
     
     
-    private boolean containsAnyCollectiveAttributes( Attributes entry ) throws NamingException
+    private boolean containsAnyCollectiveAttributes( ServerEntry entry ) throws NamingException
     {
-        NamingEnumeration<String> allIDs = entry.getIDs();
+        Set<AttributeType> attributeTypes = entry.getAttributeTypes();
         
-        while ( allIDs.hasMoreElements() )
+        for ( AttributeType attributeType:attributeTypes )
         {
-            String attrTypeStr = allIDs.nextElement();
-            AttributeType attrType = attrTypeRegistry.lookup( attrTypeStr );
-            
-            if ( attrType.isCollective() )
+            if ( attributeType.isCollective() )
             {
                 return true;
             }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/enumeration/ReferralHandlingEnumeration.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/enumeration/ReferralHandlingEnumeration.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/enumeration/ReferralHandlingEnumeration.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/enumeration/ReferralHandlingEnumeration.java Sun Jan 20 08:59:10 2008
@@ -34,7 +34,7 @@
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.core.referral.ReferralLut;
-import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.codec.util.LdapURL;
 import org.apache.directory.shared.ldap.codec.util.LdapURLEncodingException;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
@@ -68,16 +68,25 @@
      * The OIDs normalizer map
      */
     private Map<String, OidNormalizer> normalizerMap;
-
-    public ReferralHandlingEnumeration( NamingEnumeration<SearchResult> underlying, ReferralLut lut, 
-        AttributeTypeRegistry registry, PartitionNexus nexus, int scope, boolean doThrow ) throws NamingException
+    
+    /** The global registries */
+    private Registries registries;
+
+    public ReferralHandlingEnumeration( 
+            NamingEnumeration<SearchResult> underlying, 
+            ReferralLut lut, 
+            Registries registries, 
+            PartitionNexus nexus, 
+            int scope, 
+            boolean doThrow ) throws NamingException
     {
-    	normalizerMap = registry.getNormalizerMapping();
+    	normalizerMap = registries.getAttributeTypeRegistry().getNormalizerMapping();
         this.underlying = underlying;
         this.doThrow = doThrow;
         this.lut = lut;
         this.scope = scope;
         this.nexus = nexus;
+        this.registries = registries;
         prefetch();
     }
 
@@ -104,7 +113,7 @@
         prefetched = referrals.get( refIndex );
         if ( doThrow )
         {
-            doReferralExceptionOnSearchBase();
+            doReferralExceptionOnSearchBase( registries );
         }
     }
 
@@ -170,7 +179,7 @@
     }
 
 
-    public void doReferralExceptionOnSearchBase() throws NamingException
+    public void doReferralExceptionOnSearchBase( Registries registries ) throws NamingException
     {
         // the refs attribute may be filtered out so we might need to lookup the entry
         Attribute refs = prefetched.getAttributes().get( SchemaConstants.REF_AT );
@@ -179,7 +188,7 @@
         {
             LdapDN prefetchedDn = new LdapDN( prefetched.getName() );
             prefetchedDn.normalize( normalizerMap );
-            refs = nexus.lookup( new LookupOperationContext( prefetchedDn ) ).get( SchemaConstants.REF_AT );
+            refs = nexus.lookup( new LookupOperationContext( registries, prefetchedDn ) ).get( SchemaConstants.REF_AT );
         }
 
         if ( refs == null )

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java Sun Jan 20 08:59:10 2008
@@ -30,6 +30,7 @@
 import java.util.Set;
 
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntryUtils;
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
@@ -47,6 +48,7 @@
 import org.apache.directory.server.schema.ConcreteNameComponentNormalizer;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
 import org.apache.directory.server.schema.registries.OidRegistry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.filter.AndNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
@@ -245,7 +247,7 @@
         //super.add( next, opContext );
         
     	LdapDN name = opContext.getDn();
-        Attributes entry = opContext.getEntry();
+        Attributes entry = ServerEntryUtils.toAttributesImpl( opContext.getEntry() );
         
         Set<EventSourceRecord> selecting = getSelectingSources( name, entry );
         
@@ -275,7 +277,7 @@
     public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException
     {
     	LdapDN name = opContext.getDn();
-        Attributes entry = nexus.lookup( new LookupOperationContext( name ) );
+        Attributes entry = nexus.lookup( new LookupOperationContext( opContext.getRegistries(), name ) );
 
         next.delete( opContext );
         //super.delete( next, opContext );
@@ -305,9 +307,9 @@
     }
 
 
-    private void notifyOnModify( LdapDN name, List<ModificationItemImpl> mods, Attributes oriEntry ) throws NamingException
+    private void notifyOnModify( Registries registries, LdapDN name, List<ModificationItemImpl> mods, Attributes oriEntry ) throws NamingException
     {
-        Attributes entry = nexus.lookup( new LookupOperationContext( name ) );
+        Attributes entry = nexus.lookup( new LookupOperationContext( registries, name ) );
         Set<EventSourceRecord> selecting = getSelectingSources( name, entry );
         
         if ( selecting.isEmpty() )
@@ -338,17 +340,17 @@
     {
         Invocation invocation = InvocationStack.getInstance().peek();
         PartitionNexusProxy proxy = invocation.getProxy();
-        Attributes oriEntry = proxy.lookup( new LookupOperationContext( opContext.getDn() ), PartitionNexusProxy.LOOKUP_BYPASS );
+        Attributes oriEntry = proxy.lookup( new LookupOperationContext( opContext.getRegistries(), opContext.getDn() ), PartitionNexusProxy.LOOKUP_BYPASS );
         
         next.modify( opContext );
 
-        notifyOnModify( opContext.getDn(), opContext.getModItems(), oriEntry );
+        notifyOnModify( opContext.getRegistries(), opContext.getDn(), opContext.getModItems(), oriEntry );
     }
 
 
-    private void notifyOnNameChange( LdapDN oldName, LdapDN newName ) throws NamingException
+    private void notifyOnNameChange( Registries registries, LdapDN oldName, LdapDN newName ) throws NamingException
     {
-        Attributes entry = nexus.lookup( new LookupOperationContext( newName ) );
+        Attributes entry = nexus.lookup( new LookupOperationContext( registries, newName ) );
         Set<EventSourceRecord> selecting = getSelectingSources( oldName, entry );
         
         if ( selecting.isEmpty() )
@@ -384,7 +386,7 @@
         newName.remove( newName.size() - 1 );
         newName.add( opContext.getNewRdn() );
         newName.normalize( attributeRegistry.getNormalizerMapping() );
-        notifyOnNameChange( opContext.getDn(), newName );
+        notifyOnNameChange( opContext.getRegistries(), opContext.getDn(), newName );
     }
 
 
@@ -396,7 +398,7 @@
 
         LdapDN newName = ( LdapDN ) opContext.getParent().clone();
         newName.add( opContext.getNewRdn() );
-        notifyOnNameChange( opContext.getDn(), newName );
+        notifyOnNameChange( opContext.getRegistries(), opContext.getDn(), newName );
     }
 
 
@@ -409,7 +411,7 @@
         
         LdapDN newName = ( LdapDN ) opContext.getParent().clone();
         newName.add( oriChildName.get( oriChildName.size() - 1 ) );
-        notifyOnNameChange( oriChildName, newName );
+        notifyOnNameChange( opContext.getRegistries(), oriChildName, newName );
     }
 
 

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java Sun Jan 20 08:59:10 2008
@@ -21,6 +21,8 @@
 
 import org.apache.commons.collections.map.LRUMap;
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntryUtils;
+import org.apache.directory.server.core.entry.ServerValue;
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
@@ -39,6 +41,7 @@
 import org.apache.directory.server.core.partition.Partition;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.exception.LdapAttributeInUseException;
 import org.apache.directory.shared.ldap.exception.LdapContextNotEmptyException;
@@ -77,6 +80,9 @@
  */
 public class ExceptionInterceptor extends BaseInterceptor
 {
+    /** The global registries */
+    private Registries registries;
+    
     private PartitionNexus nexus;
     private LdapDN subschemSubentryDn;
     
@@ -121,9 +127,10 @@
     {
         nexus = directoryService.getPartitionNexus();
         normalizerMap = directoryService.getRegistries().getAttributeTypeRegistry().getNormalizerMapping();
-        Attribute attr = nexus.getRootDSE( null ).get( SchemaConstants.SUBSCHEMA_SUBENTRY_AT );
+        ServerValue<?> attr = nexus.getRootDSE( null ).get( SchemaConstants.SUBSCHEMA_SUBENTRY_AT ).get();
         subschemSubentryDn = new LdapDN( ( String ) attr.get() );
         subschemSubentryDn.normalize( normalizerMap );
+        registries = directoryService.getRegistries();
     }
 
 
@@ -147,7 +154,7 @@
         }
         
         // check if the entry already exists
-        if ( nextInterceptor.hasEntry( new EntryOperationContext( name ) ) )
+        if ( nextInterceptor.hasEntry( new EntryOperationContext( registries, name ) ) )
         {
             NamingException ne = new LdapNameAlreadyBoundException( name.getUpName() + " already exists!" );
             ne.setResolvedName( new LdapDN( name.getUpName() ) );
@@ -173,13 +180,13 @@
             
             try
             {
-                attrs = nextInterceptor.lookup( new LookupOperationContext( parentDn ) );
+                attrs = nextInterceptor.lookup( new LookupOperationContext( registries, parentDn ) );
             }
             catch ( Exception e )
             {
                 LdapNameNotFoundException e2 = new LdapNameNotFoundException( "Parent " + parentDn.getUpName() 
                     + " not found" );
-                e2.setResolvedName( new LdapDN( nexus.getMatchedName( new GetMatchedNameOperationContext( parentDn ) ).getUpName() ) );
+                e2.setResolvedName( new LdapDN( nexus.getMatchedName( new GetMatchedNameOperationContext( registries, parentDn ) ).getUpName() ) );
                 throw e2;
             }
             
@@ -228,7 +235,7 @@
 
         // check if entry to delete has children (only leaves can be deleted)
         boolean hasChildren = false;
-        NamingEnumeration<SearchResult> list = nextInterceptor.list( new ListOperationContext( name ) );
+        NamingEnumeration<SearchResult> list = nextInterceptor.list( new ListOperationContext( registries, name ) );
         
         if ( list.hasMore() )
         {
@@ -282,7 +289,7 @@
     {
         if ( opContext.getDn().getNormName().equals( subschemSubentryDn.getNormName() ) )
         {
-            return nexus.getRootDSE( null );
+            return ServerEntryUtils.toAttributesImpl( nexus.getRootDSE( null ) );
         }
         
         // check if entry to lookup exists
@@ -312,7 +319,7 @@
         
         assertHasEntry( nextInterceptor, msg, opContext.getDn() );
 
-        Attributes entry = nexus.lookup( new LookupOperationContext( opContext.getDn() ) );
+        Attributes entry = nexus.lookup( new LookupOperationContext( registries, opContext.getDn() ) );
         List<ModificationItemImpl> items = opContext.getModItems();
 
         for ( ModificationItemImpl item : items )
@@ -379,7 +386,7 @@
         newDn.add( opContext.getNewRdn() );
         newDn.normalize( normalizerMap );
         
-        if ( nextInterceptor.hasEntry( new EntryOperationContext( newDn ) ) )
+        if ( nextInterceptor.hasEntry( new EntryOperationContext( registries, newDn ) ) )
         {
             LdapNameAlreadyBoundException e;
             e = new LdapNameAlreadyBoundException( "target entry " + newDn.getUpName() + " already exists!" );
@@ -430,7 +437,7 @@
         LdapDN target = ( LdapDN ) newParentName.clone();
         target.add( rdn );
         
-        if ( nextInterceptor.hasEntry( new EntryOperationContext( target ) ) )
+        if ( nextInterceptor.hasEntry( new EntryOperationContext( registries, target ) ) )
         {
             // we must calculate the resolved name using the user provided Rdn value
             String upRdn = new LdapDN( oriChildName.getUpName() ).get( oriChildName.size() - 1 );
@@ -485,7 +492,7 @@
         LdapDN target = ( LdapDN ) parent.clone();
         target.add( opContext.getNewRdn() );
 
-        if ( nextInterceptor.hasEntry( new EntryOperationContext( target ) ) )
+        if ( nextInterceptor.hasEntry( new EntryOperationContext( registries, target ) ) )
         {
             // we must calculate the resolved name using the user provided Rdn value
             LdapDN upTarget = ( LdapDN ) parent.clone();
@@ -560,7 +567,7 @@
         Invocation invocation = InvocationStack.getInstance().peek();
         PartitionNexusProxy proxy = invocation.getProxy();
         
-        if ( !nextInterceptor.hasEntry( new EntryOperationContext( dn ) ) )
+        if ( !nextInterceptor.hasEntry( new EntryOperationContext( registries, dn ) ) )
         {
             LdapNameNotFoundException e;
 
@@ -576,7 +583,7 @@
             e.setResolvedName( 
                 new LdapDN( 
                     proxy.getMatchedName( 
-                        new GetMatchedNameOperationContext( dn ) ).getUpName() ) );
+                        new GetMatchedNameOperationContext( registries, dn ) ).getUpName() ) );
             throw e;
         }
     }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java Sun Jan 20 08:59:10 2008
@@ -22,6 +22,7 @@
 
 import org.apache.directory.server.core.DirectoryService;
 import org.apache.directory.server.core.authn.LdapPrincipal;
+import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
@@ -143,7 +144,7 @@
     }
 
 
-    public Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
+    public ServerEntry getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
     {
         return next.getRootDSE( opContext );
     }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java Sun Jan 20 08:59:10 2008
@@ -21,6 +21,7 @@
 
 
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
@@ -139,7 +140,7 @@
     /**
      * Filters {@link PartitionNexus#getRootDSE( GetRootDSEOperationContext )} call.
      */
-    Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext  opContext ) throws NamingException;
+    ServerEntry getRootDSE( NextInterceptor next, GetRootDSEOperationContext  opContext ) throws NamingException;
 
 
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java Sun Jan 20 08:59:10 2008
@@ -27,6 +27,7 @@
 import java.util.Map;
 
 import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
@@ -102,7 +103,7 @@
         }
 
 
-        public Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
+        public ServerEntry getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
         {
             return nexus.getRootDSE( opContext );
         }
@@ -536,7 +537,7 @@
     }
 
 
-    public Attributes getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
+    public ServerEntry getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -1041,7 +1042,7 @@
                 }
 
 
-                public Attributes getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
+                public ServerEntry getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java Sun Jan 20 08:59:10 2008
@@ -27,6 +27,7 @@
 import javax.naming.directory.Attributes;
 import javax.naming.directory.SearchResult;
 
+import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
@@ -69,7 +70,7 @@
     /**
      * Calls the next interceptor's {@link Interceptor#getRootDSE( NextInterceptor, GetRootDSEOperationContext )}.
      */
-    Attributes getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException;
+    ServerEntry getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException;
 
 
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java Sun Jan 20 08:59:10 2008
@@ -25,6 +25,7 @@
 
 import javax.naming.ldap.Control;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 
@@ -41,43 +42,56 @@
 
     /** The DN associated with the context */
     private LdapDN dn;
+    
+    /** The associated request's controls */
     private Map<String, Control> requestControls = new HashMap<String, Control>(4);
+
+    /** The associated response's controls */
     private Map<String, Control> responseControls = new HashMap<String, Control>(4);
 
+    /** A flag to tell that this is a collateral operation */
     private boolean collateralOperation;
+    
+    /** The global registries reference */
+    private Registries registries;
 
     
     /**
-     * 
      * Creates a new instance of AbstractOperationContext.
      *
+     * @param Registries The global registries
      */
-    public AbstractOperationContext()
+    public AbstractOperationContext( Registries registries )
     {
+        this.registries = registries;
     }
-
-
+    
+    
     /**
      * Creates a new instance of AbstractOperationContext.
      *
+     * @param Registries The global registries
      * @param dn The associated DN
      */
-    public AbstractOperationContext( LdapDN dn )
+    public AbstractOperationContext( Registries registries, LdapDN dn )
     {
         this.dn = dn;
+        this.registries = registries;
     }
 
 
     /**
      * Creates a new instance of AbstractOperationContext.
      *
+     * @param Registries The global registries
      * @param dn the associated DN
      * @param collateralOperation true if op is collateral, false otherwise
      */
-    public AbstractOperationContext( LdapDN dn, boolean collateralOperation )
+    public AbstractOperationContext( Registries registries, LdapDN dn, boolean collateralOperation )
     {
         this.dn = dn;
         this.collateralOperation = collateralOperation;
+        this.registries = registries; 
     }
 
 
@@ -85,14 +99,20 @@
      * Creates an operation context where the operation is considered a side
      * effect of a direct operation.
      *
+     * @param Registries The global registries
      * @param collateralOperation true if this is a side effect operation
      */
-    public AbstractOperationContext( boolean collateralOperation )
+    public AbstractOperationContext( Registries registries, boolean collateralOperation )
     {
         this.collateralOperation = collateralOperation;
+        this.registries = registries;
     }
 
 
+    /**
+     * Tells if the current operation is considered a side effect of the
+     * current context
+     */
     public boolean isCollateralOperation()
     {
         return collateralOperation;
@@ -190,5 +210,14 @@
         {
             this.requestControls.put( c.getID(), c );
         }
+    }
+
+    
+    /**
+     * @return The AttributeTypeRegistry
+     */
+    public Registries getRegistries()
+    {
+        return registries;
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddContextPartitionOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddContextPartitionOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddContextPartitionOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddContextPartitionOperationContext.java Sun Jan 20 08:59:10 2008
@@ -21,6 +21,7 @@
 
 
 import org.apache.directory.server.core.partition.Partition;
+import org.apache.directory.server.schema.registries.Registries;
 
 
 /**
@@ -32,7 +33,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class AddContextPartitionOperationContext  extends EmptyOperationContext
+public class AddContextPartitionOperationContext extends EmptyOperationContext
 {
     /** the instantiated partition class */
     private Partition partition;
@@ -43,9 +44,9 @@
      *
      * @param partition The partition to add
      */
-    public AddContextPartitionOperationContext( Partition partition )
+    public AddContextPartitionOperationContext( Registries registries, Partition partition )
     {
-        super();
+        super( registries );
         this.partition = partition;
     }
     

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,10 +19,10 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
-import javax.naming.directory.Attributes;
 
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
-import org.apache.directory.shared.ldap.util.AttributeUtils;
 
 /**
  * A Add context used for Interceptors. It contains all the informations
@@ -33,34 +33,34 @@
  */
 public class AddOperationContext extends AbstractOperationContext
 {
-    /** The added Attribute  */
-    private Attributes entry;
+    /** The added entry  */
+    private ServerEntry entry;
     
 
     /**
      * Creates a new instance of AddOperationContext.
      */
-    public AddOperationContext()
+    public AddOperationContext( Registries registries )
     {
-    	super();
+    	super( registries );
     }
 
 
     /**
      * Creates a new instance of AddOperationContext.
      */
-    public AddOperationContext( LdapDN dn )
+    public AddOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
 
 
     /**
      * Creates a new instance of ModifyOperationContext.
      */
-    public AddOperationContext( LdapDN dn, Attributes entry )
+    public AddOperationContext( Registries registries, LdapDN dn, ServerEntry entry )
     {
-    	super( dn );
+    	super( registries, dn );
         this.entry = entry;
     }
 
@@ -70,9 +70,9 @@
      *
      * @param collateralOperation whether or not this is a side-effect
      */
-    public AddOperationContext( boolean collateralOperation )
+    public AddOperationContext( Registries registries, boolean collateralOperation )
     {
-    	super( collateralOperation );
+    	super( registries, collateralOperation );
     }
 
 
@@ -82,9 +82,9 @@
      * @param dn the name of the entry being added
      * @param collateralOperation whether or not this is a side-effect
      */
-    public AddOperationContext( LdapDN dn, boolean collateralOperation )
+    public AddOperationContext( Registries registries, LdapDN dn, boolean collateralOperation )
     {
-        super( dn, collateralOperation );
+        super( registries, dn, collateralOperation );
     }
 
 
@@ -95,9 +95,9 @@
      * @param entry the entry being added
      * @param collateralOperation whether or not this is a side-effect
      */
-    public AddOperationContext( LdapDN dn, Attributes entry, boolean collateralOperation )
+    public AddOperationContext( Registries registries, LdapDN dn, ServerEntry entry, boolean collateralOperation )
     {
-    	super( dn, collateralOperation );
+    	super( registries, dn, collateralOperation );
         this.entry = entry;
     }
 
@@ -105,7 +105,7 @@
     /**
 	 * @return The added attributes
 	 */
-	public Attributes getEntry() 
+	public ServerEntry getEntry() 
 	{
 		return entry;
 	}
@@ -114,7 +114,7 @@
 	 * Set the added attributes
 	 * @param entry The added attributes
 	 */
-	public void setEntry( Attributes entry ) 
+	public void setEntry( ServerEntry entry ) 
 	{
 		this.entry = entry;
 	}
@@ -125,6 +125,6 @@
     public String toString()
     {
         return "AddContext for DN '" + getDn().getUpName() + "'" +
-        ", added entry: " + AttributeUtils.toString( entry ); 
+        ", added entry: " + entry; 
     }
 }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java Sun Jan 20 08:59:10 2008
@@ -21,6 +21,7 @@
 
 import java.util.List;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.util.StringTools;
 
 /**
@@ -40,6 +41,17 @@
     
     /** The SASL identifier */
     private String saslAuthId;
+    
+    /**
+     * Creates a new instance of BindOperationContext.
+     *
+     * @param Registries The global registries
+     */
+    public BindOperationContext( Registries registries )
+    {
+        super( registries );
+    }
+
     
     /**
      * @return The list of supported mechanisms

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/CompareOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/CompareOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/CompareOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/CompareOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.StringTools;
 
@@ -29,7 +30,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class CompareOperationContext  extends AbstractOperationContext
+public class CompareOperationContext extends AbstractOperationContext
 {
     /** The entry OID */
     private String oid;
@@ -37,14 +38,15 @@
     /** The value to be compared */
     private Object value;
     
+    
     /**
      * 
      * Creates a new instance of CompareOperationContext.
      *
      */
-    public CompareOperationContext()
+    public CompareOperationContext( Registries registries )
     {
-    	super();
+    	super( registries );
     }
 
     /**
@@ -52,9 +54,9 @@
      * Creates a new instance of CompareOperationContext.
      *
      */
-    public CompareOperationContext( LdapDN dn )
+    public CompareOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
 
     /**
@@ -62,9 +64,9 @@
      * Creates a new instance of LookupOperationContext.
      *
      */
-    public CompareOperationContext( String oid )
+    public CompareOperationContext( Registries registries, String oid )
     {
-    	super();
+    	super( registries );
         this.oid = oid;
     }
 
@@ -73,9 +75,9 @@
      * Creates a new instance of LookupOperationContext.
      *
      */
-    public CompareOperationContext( LdapDN dn, String oid )
+    public CompareOperationContext( Registries registries, LdapDN dn, String oid )
     {
-    	super( dn );
+    	super( registries, dn );
         this.oid = oid;
     }
 
@@ -84,9 +86,9 @@
      * Creates a new instance of LookupOperationContext.
      *
      */
-    public CompareOperationContext( LdapDN dn, String oid, Object value )
+    public CompareOperationContext( Registries registries, LdapDN dn, String oid, Object value )
     {
-    	super( dn );
+    	super( registries, dn );
         this.oid = oid;
         this.value = value;
     }

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/DeleteOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/DeleteOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/DeleteOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/DeleteOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -28,14 +29,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class DeleteOperationContext  extends AbstractOperationContext
+public class DeleteOperationContext extends AbstractOperationContext
 {
     /**
      * Creates a new instance of DeleteOperationContext.
      */
-    public DeleteOperationContext()
+    public DeleteOperationContext( Registries registries )
     {
-        super();
+        super( registries );
     }
     
 
@@ -44,9 +45,9 @@
      *
      * @param collateralOperation true if this is a side effect operation
      */
-    public DeleteOperationContext( boolean collateralOperation )
+    public DeleteOperationContext( Registries registries, boolean collateralOperation )
     {
-        super( collateralOperation );
+        super( registries, collateralOperation );
     }
 
 
@@ -55,9 +56,9 @@
      *
      * @param deleteDn The entry DN to delete
      */
-    public DeleteOperationContext( LdapDN deleteDn )
+    public DeleteOperationContext( Registries registries, LdapDN deleteDn )
     {
-        super( deleteDn );
+        super( registries, deleteDn );
     }
 
 
@@ -67,9 +68,9 @@
      * @param deleteDn The entry DN to delete
      * @param collateralOperation true if this is a side effect operation
      */
-    public DeleteOperationContext( LdapDN deleteDn, boolean collateralOperation )
+    public DeleteOperationContext( Registries registries, LdapDN deleteDn, boolean collateralOperation )
     {
-        super( deleteDn, collateralOperation );
+        super( registries, deleteDn, collateralOperation );
     }
 
 

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EmptyOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EmptyOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EmptyOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EmptyOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -33,9 +34,9 @@
     /**
      * Creates a new instance of EmptyOperationContext.
      */
-    public EmptyOperationContext()
+    public EmptyOperationContext( Registries registries )
     {
-        super( LdapDN.EMPTY_LDAPDN );
+        super( registries, LdapDN.EMPTY_LDAPDN );
     }
     
 

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EntryOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EntryOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EntryOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EntryOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -28,13 +29,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class EntryOperationContext  extends AbstractOperationContext
+public class EntryOperationContext extends AbstractOperationContext
 {
     /**
      * Creates a new instance of EntryOperationContext.
      */
-    public EntryOperationContext()
+    public EntryOperationContext( Registries registries )
     {
+        super( registries );
     }
     
     /**
@@ -42,9 +44,9 @@
      *
      * @param entryDn The Entry DN to unbind
      */
-    public EntryOperationContext( LdapDN entryDn )
+    public EntryOperationContext( Registries registries, LdapDN entryDn )
     {
-        super( entryDn );
+        super( registries, entryDn );
     }
     
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetMatchedNameOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetMatchedNameOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetMatchedNameOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetMatchedNameOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -28,14 +29,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class GetMatchedNameOperationContext  extends AbstractOperationContext
+public class GetMatchedNameOperationContext extends AbstractOperationContext
 {
     /**
      * Creates a new instance of GetMatchedNameOperationContext.
      */
-    public GetMatchedNameOperationContext()
+    public GetMatchedNameOperationContext( Registries registries )
     {
-        super();
+        super( registries );
     }
     
     /**
@@ -43,9 +44,9 @@
      *
      * @param dn The DN to match
      */
-    public GetMatchedNameOperationContext( LdapDN dn )
+    public GetMatchedNameOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
     
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetRootDSEOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetRootDSEOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetRootDSEOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetRootDSEOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -28,14 +29,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class GetRootDSEOperationContext  extends AbstractOperationContext
+public class GetRootDSEOperationContext extends AbstractOperationContext
 {
     /**
      * Creates a new instance of GetRootDSEOperationContext.
      */
-    public GetRootDSEOperationContext()
+    public GetRootDSEOperationContext( Registries registries )
     {
-        super();
+        super( registries );
     }
     
     /**
@@ -43,9 +44,9 @@
      *
      * @param dn The entry DN used to get the rootDSE
      */
-    public GetRootDSEOperationContext( LdapDN dn )
+    public GetRootDSEOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
     
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetSuffixOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetSuffixOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetSuffixOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetSuffixOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 /**
@@ -28,14 +29,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class GetSuffixOperationContext  extends AbstractOperationContext
+public class GetSuffixOperationContext extends AbstractOperationContext
 {
     /**
      * Creates a new instance of GetSuffixOperationContext.
      */
-    public GetSuffixOperationContext()
+    public GetSuffixOperationContext( Registries registries )
     {
-        super();
+        super( registries );
     }
     
     /**
@@ -43,9 +44,9 @@
      *
      * @param dn The DN to get the suffix from
      */
-    public GetSuffixOperationContext( LdapDN dn )
+    public GetSuffixOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
     
     /**

Modified: directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListOperationContext.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListOperationContext.java?rev=613608&r1=613607&r2=613608&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListOperationContext.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListOperationContext.java Sun Jan 20 08:59:10 2008
@@ -19,6 +19,7 @@
  */
 package org.apache.directory.server.core.interceptor.context;
 
+import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.message.AliasDerefMode;
 
@@ -29,7 +30,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class ListOperationContext  extends AbstractOperationContext
+public class ListOperationContext extends AbstractOperationContext
 {
     private AliasDerefMode aliasDerefMode = AliasDerefMode.DEREF_ALWAYS;
 
@@ -37,9 +38,9 @@
     /**
      * Creates a new instance of ListOperationContext.
      */
-    public ListOperationContext()
+    public ListOperationContext( Registries registries )
     {
-        super();
+        super( registries );
     }
 
 
@@ -48,9 +49,9 @@
      *
      * @param dn The DN to get the suffix from
      */
-    public ListOperationContext( LdapDN dn )
+    public ListOperationContext( Registries registries, LdapDN dn )
     {
-        super( dn );
+        super( registries, dn );
     }
 
 
@@ -60,9 +61,9 @@
      * @param dn The DN to get the suffix from
      * @param aliasDerefMode the alias dereferencing mode to use
      */
-    public ListOperationContext( LdapDN dn, AliasDerefMode aliasDerefMode )
+    public ListOperationContext( Registries registries, LdapDN dn, AliasDerefMode aliasDerefMode )
     {
-        super( dn );
+        super( registries, dn );
         this.aliasDerefMode = aliasDerefMode;
     }
 



Mime
View raw message