You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2007/01/03 21:40:41 UTC

svn commit: r492293 - in /directory/trunks/apacheds: core-unit/src/main/java/org/apache/directory/server/core/unit/ core/src/main/java/org/apache/directory/server/core/ core/src/main/java/org/apache/directory/server/core/authn/ core/src/main/java/org/a...

Author: akarasulu
Date: Wed Jan  3 12:40:39 2007
New Revision: 492293

URL: http://svn.apache.org/viewvc?view=rev&rev=492293
Log:
playing with different concepts on how to handle updates to schema data

Added:
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java
      - copied, changed from r491943, directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaModifyHandler.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaUtils.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/RegistryModifier.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java
Removed:
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaModifyHandler.java
Modified:
    directory/trunks/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractPerformanceTest.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/MutableStartupConfiguration.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/StartupConfiguration.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleImpl.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaManager.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
    directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java
    directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/Registries.java
    directory/trunks/apacheds/server-installers/pom.xml
    directory/trunks/apacheds/server-installers/src/main/installers/server.xml
    directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java
    directory/trunks/apacheds/server-main/server.xml

Modified: directory/trunks/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractPerformanceTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractPerformanceTest.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractPerformanceTest.java (original)
+++ directory/trunks/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractPerformanceTest.java Wed Jan  3 12:40:39 2007
@@ -36,6 +36,7 @@
 import javax.naming.ldap.LdapContext;
 
 import org.apache.directory.server.core.configuration.MutablePartitionConfiguration;
+import org.apache.directory.server.core.configuration.PartitionConfiguration;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.shared.ldap.ldif.Entry;
 import org.apache.directory.shared.ldap.ldif.LdifReader;
@@ -152,7 +153,7 @@
             partConfig.setContextEntry( attributes );
             
             configuration.setShutdownHookEnabled( false );
-            configuration.setPartitionConfigurations( Collections.singleton( partConfig ) );
+            configuration.setPartitionConfigurations( Collections.singleton( ( PartitionConfiguration ) partConfig ) );
             
             doDelete( configuration.getWorkingDirectory() );
             setContextRoots( username, password, configuration );

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java Wed Jan  3 12:40:39 2007
@@ -851,7 +851,7 @@
                 String schemaName = dao.findSchema( indexedAttr.toString() );
                 if ( schemaName == null )
                 {
-                    throw new NamingException( "Index on unidentified attribute" );
+                    throw new NamingException( "Index on unidentified attribute: " + indexedAttr.toString() );
                 }
                 
                 Schema schema = schemaMap.get( schemaName );

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java Wed Jan  3 12:40:39 2007
@@ -23,9 +23,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.naming.Context;
 import javax.naming.NamingEnumeration;
@@ -105,11 +107,16 @@
     /**
      * Deinitializes and deregisters all {@link Authenticator}s from this service.
      */
+    @SuppressWarnings("unchecked")
     public void destroy()
     {
-        for ( Collection<Authenticator> collection:authenticators.values() )
+        Set<Collection<Authenticator>> clonedAuthenticatorCollections = new HashSet<Collection<Authenticator>>();
+        clonedAuthenticatorCollections.addAll( authenticators.values() );
+        for ( Collection<Authenticator> collection:clonedAuthenticatorCollections )
         {
-            for ( Authenticator authenticator:collection )
+            Set <Authenticator> clonedAuthenticators = new HashSet<Authenticator>();
+            clonedAuthenticators.addAll( collection );
+            for ( Authenticator authenticator:clonedAuthenticators )
             {
                 unregister( authenticator );
             }

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/MutableStartupConfiguration.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/MutableStartupConfiguration.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/MutableStartupConfiguration.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/MutableStartupConfiguration.java Wed Jan  3 12:40:39 2007
@@ -92,7 +92,7 @@
     }
 
 
-    public void setPartitionConfigurations( Set paritionConfigurations )
+    public void setPartitionConfigurations( Set<PartitionConfiguration> paritionConfigurations )
     {
         super.setPartitionConfigurations( paritionConfigurations );
     }

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/StartupConfiguration.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/StartupConfiguration.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/StartupConfiguration.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/configuration/StartupConfiguration.java Wed Jan  3 12:40:39 2007
@@ -241,7 +241,7 @@
     /**
      * Sets {@link PartitionConfiguration}s to configure context partitions.
      */
-    protected void setPartitionConfigurations( Set contextParitionConfigurations )
+    protected void setPartitionConfigurations( Set<PartitionConfiguration> contextParitionConfigurations )
     {
         Set newSet = ConfigurationUtil.getTypeSafeSet( contextParitionConfigurations,
             PartitionConfiguration.class );

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleImpl.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleImpl.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleImpl.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleImpl.java Wed Jan  3 12:40:39 2007
@@ -17,9 +17,9 @@
  *   under the License.
  *
  */
-
 package org.apache.directory.server.core.schema;
 
+
 import java.util.Comparator;
 
 import javax.naming.NamingException;
@@ -32,6 +32,7 @@
 import org.apache.directory.shared.ldap.schema.MutableSchemaObject;
 import org.apache.directory.shared.ldap.schema.Normalizer;
 import org.apache.directory.shared.ldap.schema.Syntax;
+
 
 class MatchingRuleImpl extends AbstractMatchingRule implements MutableSchemaObject
 {

Added: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java?view=auto&rev=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java (added)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java Wed Jan  3 12:40:39 2007
@@ -0,0 +1,119 @@
+/*
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *   or more contributor license agreements.  See the NOTICE file
+ *   distributed with this work for additional information
+ *   regarding copyright ownership.  The ASF licenses this file
+ *   to you under the Apache License, Version 2.0 (the
+ *   "License"); you may not use this file except in compliance
+ *   with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing,
+ *   software distributed under the License is distributed on an
+ *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *   KIND, either express or implied.  See the License for the
+ *   specific language governing permissions and limitations
+ *   under the License.
+ *
+ */
+package org.apache.directory.server.core.schema;
+
+
+import java.util.Comparator;
+
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.ModificationItem;
+
+import org.apache.directory.server.constants.MetaSchemaConstants;
+import org.apache.directory.server.core.ServerUtils;
+import org.apache.directory.server.schema.bootstrap.Schema;
+import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
+import org.apache.directory.shared.ldap.util.NamespaceTools;
+
+
+/**
+ * A handler for operations peformed to add, delete, modify, rename and 
+ * move schema comparators.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class MetaComparatorHandler implements SchemaChangeHandler
+{
+    private final SchemaEntityFactory factory;
+    private final RegistryModifier registryModifier;
+    private final Registries targetRegistries;
+    private final AttributeType m_oidAT;
+
+
+    public MetaComparatorHandler( Registries targetRegistries ) throws NamingException
+    {
+        this.targetRegistries = targetRegistries;
+        this.factory = new SchemaEntityFactory( targetRegistries );
+        this.registryModifier = new RegistryModifier();
+        this.m_oidAT = targetRegistries.getAttributeTypeRegistry().lookup( MetaSchemaConstants.M_OID_AT );
+    }
+
+
+    private String getOid( Attributes entry ) throws NamingException
+    {
+        Attribute oid = ServerUtils.getAttribute( m_oidAT, entry );
+        if ( oid == null )
+        {
+            return null;
+        }
+        return ( String ) oid.get();
+    }
+    
+    
+    private void modify( LdapDN name, Attributes entry, Attributes targetEntry ) throws NamingException
+    {
+        String oid = getOid( entry );
+        Comparator replacement = factory.getComparator( entry, targetRegistries );
+        Schema targetSchema = targetRegistries.getSchema( MetaSchemaUtils.getSchemaName( name ) );
+        registryModifier.modify( oid, replacement, targetSchema );
+    }
+
+
+    public void modify( LdapDN name, int modOp, Attributes mods, Attributes entry, Attributes targetEntry )
+        throws NamingException
+    {
+        modify( name, entry, targetEntry );
+    }
+
+
+    public void modify( LdapDN name, ModificationItem[] mods, Attributes entry, Attributes targetEntry )
+        throws NamingException
+    {
+        modify( name, entry, targetEntry );
+    }
+
+
+    public void add( LdapDN name, Attributes entry ) throws NamingException
+    {
+        Comparator comparator = factory.getComparator( entry, targetRegistries );
+        Schema schema = targetRegistries.getSchema( MetaSchemaUtils.getSchemaName( name ) );
+        registryModifier.add( getOid( entry ), comparator, schema );
+    }
+
+
+    public void delete( LdapDN name, Attributes entry ) throws NamingException
+    {
+        Comparator comparator = factory.getComparator( entry, targetRegistries );
+        Schema schema = targetRegistries.getSchema( MetaSchemaUtils.getSchemaName( name ) );
+        registryModifier.remove( getOid( entry ), comparator, schema );
+    }
+
+
+    public void rename( LdapDN name, Attributes entry, String newRdn ) throws NamingException
+    {
+        Schema schema = targetRegistries.getSchema( MetaSchemaUtils.getSchemaName( name ) );
+        String oid = NamespaceTools.getRdnValue( newRdn );
+        registryModifier.renameComparator( getOid( entry ), oid, schema );
+    }
+}

Copied: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java (from r491943, directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaModifyHandler.java)
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java?view=diff&rev=492293&p1=directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaModifyHandler.java&r1=491943&p2=directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaModifyHandler.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java Wed Jan  3 12:40:39 2007
@@ -42,14 +42,14 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class MetaSchemaModifyHandler
+public class MetaSchemaHandler implements SchemaChangeHandler
 {
     private final PartitionSchemaLoader loader;
     private final Registries globalRegistries;
     private final AttributeType disabledAT;
     
 
-    public MetaSchemaModifyHandler( Registries globalRegistries, PartitionSchemaLoader loader ) 
+    public MetaSchemaHandler( Registries globalRegistries, PartitionSchemaLoader loader ) 
         throws NamingException
     {
         this.globalRegistries = globalRegistries;
@@ -59,18 +59,18 @@
     }
 
     
-    void handleMetaSchemaModification( LdapDN name, int modOp, Attributes mods, Attributes entry )
+    public void modify( LdapDN name, int modOp, Attributes mods, Attributes entry, Attributes targetEntry )
         throws NamingException
     {
         Attribute disabledInMods = ServerUtils.getAttribute( disabledAT, mods );
         if ( disabledInMods != null )
         {
-            handleMetaSchemaDisable( name, modOp, disabledInMods, ServerUtils.getAttribute( disabledAT, entry ) );
+            disable( name, modOp, disabledInMods, ServerUtils.getAttribute( disabledAT, entry ) );
         }
     }
 
 
-    private void handleMetaSchemaDisable( LdapDN name, int modOp, Attribute disabledInMods, Attribute disabledInEntry )
+    private void disable( LdapDN name, int modOp, Attribute disabledInMods, Attribute disabledInEntry )
         throws NamingException
     {
         switch ( modOp )
@@ -155,7 +155,7 @@
     }
 
 
-    public void handleMetaSchemaModification( LdapDN name, ModificationItem[] mods, Attributes entry ) 
+    public void modify( LdapDN name, ModificationItem[] mods, Attributes entry, Attributes targetEntry ) 
         throws NamingException
     {
         OidRegistry registry = globalRegistries.getOidRegistry();
@@ -166,9 +166,27 @@
             String id = registry.getOid( mods[ii].getAttribute().getID() );
             if ( id.equals( disabledAT.getOid() ) )
             {
-                handleMetaSchemaDisable( name, mods[ii].getModificationOp(), 
+                disable( name, mods[ii].getModificationOp(), 
                     mods[ii].getAttribute(), disabledInEntry );
             }
         }
+    }
+
+
+    public void add( LdapDN name, Attributes entry ) throws NamingException
+    {
+        throw new NotImplementedException();
+    }
+
+
+    public void delete( LdapDN name, Attributes entry ) throws NamingException
+    {
+        throw new NotImplementedException();
+    }
+
+
+    public void rename( LdapDN name, Attributes entry, String newRdn ) throws NamingException
+    {
+        throw new NotImplementedException();
     }
 }

Added: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaUtils.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaUtils.java?view=auto&rev=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaUtils.java (added)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaUtils.java Wed Jan  3 12:40:39 2007
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.server.core.schema;
+
+
+import javax.naming.NamingException;
+
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.name.Rdn;
+
+
+/**
+ * Some useful methods used by meta schema handling code.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class MetaSchemaUtils
+{
+    public static String getSchemaName( LdapDN dn ) throws NamingException
+    {
+        if ( dn.size() < 2 )
+        {
+            throw new NamingException( "At least two name components are expected for the dn" );
+        }
+        
+        Rdn rdn = dn.getRdn( 1 );
+        return ( String ) rdn.getValue();
+    }
+}

Added: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/RegistryModifier.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/RegistryModifier.java?view=auto&rev=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/RegistryModifier.java (added)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/RegistryModifier.java Wed Jan  3 12:40:39 2007
@@ -0,0 +1,164 @@
+/*
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *   or more contributor license agreements.  See the NOTICE file
+ *   distributed with this work for additional information
+ *   regarding copyright ownership.  The ASF licenses this file
+ *   to you under the Apache License, Version 2.0 (the
+ *   "License"); you may not use this file except in compliance
+ *   with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing,
+ *   software distributed under the License is distributed on an
+ *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *   KIND, either express or implied.  See the License for the
+ *   specific language governing permissions and limitations
+ *   under the License.
+ *
+ */
+package org.apache.directory.server.core.schema;
+
+
+import java.util.Comparator;
+import javax.naming.NamingException;
+
+import org.apache.directory.server.schema.bootstrap.Schema;
+import org.apache.directory.shared.ldap.schema.Normalizer;
+import org.apache.directory.shared.ldap.schema.syntax.AttributeTypeDescription;
+import org.apache.directory.shared.ldap.schema.syntax.LdapSyntaxDescription;
+import org.apache.directory.shared.ldap.schema.syntax.MatchingRuleDescription;
+import org.apache.directory.shared.ldap.schema.syntax.ObjectClassDescription;
+import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;
+
+
+/**
+ * A class that reacts to schema changes.  It is informed of the event 
+ * before the operation occurs so it can reject the operation by throwing 
+ * an exception.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class RegistryModifier
+{
+    // --- handles entity addititions
+    
+    void add( String oid, Normalizer normalizer, Schema schema ) throws NamingException
+    {
+    }
+    void add( String oid, Comparator comparator, Schema schema ) throws NamingException
+    {
+    }
+    void add( String oid, SyntaxChecker syntaxChecker, Schema schema ) throws NamingException
+    {
+    }
+    void add( LdapSyntaxDescription syntax, Schema schema ) throws NamingException
+    {
+    }
+    void add( MatchingRuleDescription matchingRuleDescription, Schema schema ) throws NamingException
+    {
+    }
+    void add( AttributeTypeDescription attributeTypeDescription, Schema schema ) throws NamingException
+    {
+    }
+    void add( ObjectClassDescription objectClassDescription, Schema schema ) throws NamingException
+    {
+    }
+    
+    // --- handles entity deletions
+    
+    void remove( String oid, Normalizer normalizer, Schema schema ) throws NamingException
+    {
+    }
+    void remove( String oid, Comparator comparator, Schema schema ) throws NamingException
+    {
+    }
+    void remove( String oid, SyntaxChecker syntaxChecker, Schema schema ) throws NamingException
+    {
+    }
+    void remove( LdapSyntaxDescription syntax, Schema schema ) throws NamingException
+    {
+    }
+    void remove( MatchingRuleDescription matchingRuleDescription, Schema schema ) throws NamingException
+    {
+    }
+    void remove( AttributeTypeDescription attributeTypeDescription, Schema schema ) throws NamingException
+    {
+    }
+    void remove( ObjectClassDescription objectClassDescription, Schema schema ) throws NamingException
+    {
+    }
+
+    // --- handles entity moves 
+    
+    void replace( String oldOid, String newOid, Normalizer replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( String oldOid, String newOid, Comparator replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( String oldOid, String newOid, SyntaxChecker replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( LdapSyntaxDescription old, LdapSyntaxDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( MatchingRuleDescription old, MatchingRuleDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( AttributeTypeDescription old, AttributeTypeDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void replace( ObjectClassDescription old, ObjectClassDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+
+    // --- handles entity modifications
+    
+    void modify( String oid, Normalizer replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( String oid, Comparator replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( String oid, SyntaxChecker replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( LdapSyntaxDescription old, LdapSyntaxDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( MatchingRuleDescription old, MatchingRuleDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( AttributeTypeDescription old, AttributeTypeDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+    void modify( ObjectClassDescription old, ObjectClassDescription replacement, Schema targetSchema ) throws NamingException
+    {
+    }
+
+    // --- handles entity renames
+    
+    void renameNormalizer( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameComparator( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameSyntaxChecker( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameSyntax( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameMatchingRule( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameAttributeType( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+    void renameObjectClass( String oldOid, String newOid, Schema targetSchema ) throws NamingException
+    {
+    }
+}

Added: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java?view=auto&rev=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java (added)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java Wed Jan  3 12:40:39 2007
@@ -0,0 +1,44 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.server.core.schema;
+
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.ModificationItem;
+
+import org.apache.directory.shared.ldap.name.LdapDN;
+
+
+/**
+ * A common interface used by schema change handlers which react to 
+ * changes performed on schema entities.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface SchemaChangeHandler
+{
+    public void add( LdapDN name, Attributes entry ) throws NamingException;
+    public void delete( LdapDN name, Attributes entry ) throws NamingException;
+    public void rename( LdapDN name, Attributes entry, String newRdn ) throws NamingException;
+    public void modify( LdapDN name, int modOp, Attributes mods, Attributes entry, Attributes targetEntry ) throws NamingException;
+    public void modify( LdapDN name, ModificationItem[] mods, Attributes entry, Attributes targetEntry ) throws NamingException;
+//    public void move( LdapDN oldName, Attributes entry, Ldap) throws NamingException;
+}

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaManager.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaManager.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaManager.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaManager.java Wed Jan  3 12:40:39 2007
@@ -25,6 +25,7 @@
 import javax.naming.directory.Attributes;
 import javax.naming.directory.ModificationItem;
 
+import org.apache.directory.server.constants.MetaSchemaConstants;
 import org.apache.directory.server.constants.SystemSchemaConstants;
 import org.apache.directory.server.core.ServerUtils;
 import org.apache.directory.server.schema.registries.Registries;
@@ -50,9 +51,10 @@
 public class SchemaManager
 {
     private final PartitionSchemaLoader loader;
-    private final MetaSchemaModifyHandler metaSchemaModifyHandler;
+    private final MetaSchemaHandler metaSchemaHandler;
     private final Registries globalRegistries;
     private final AttributeType objectClassAT;
+    private final MetaComparatorHandler metaComparatorHandler;
     
 
     public SchemaManager( Registries globalRegistries, PartitionSchemaLoader loader ) throws NamingException
@@ -61,13 +63,14 @@
         this.globalRegistries = globalRegistries;
         this.objectClassAT = this.globalRegistries.getAttributeTypeRegistry()
             .lookup( SystemSchemaConstants.OBJECT_CLASS_AT );
-        this.metaSchemaModifyHandler = new MetaSchemaModifyHandler( this.globalRegistries, this.loader );
+        this.metaSchemaHandler = new MetaSchemaHandler( this.globalRegistries, this.loader );
+        this.metaComparatorHandler = new MetaComparatorHandler( globalRegistries );
     }
     
     
     public Registries getGlobalRegistries()
     {
-        throw new NotImplementedException();
+        return globalRegistries;
     }
     
     
@@ -78,14 +81,19 @@
 
 
 
-    public void modify( LdapDN name, int modOp, Attributes mods, Attributes entry ) throws NamingException
+    public void modify( LdapDN name, int modOp, Attributes mods, Attributes entry, Attributes targetEntry ) throws NamingException
     {
         Attribute oc = ServerUtils.getAttribute( objectClassAT, entry );
         
-        // We are changing a metaSchema entry
-        if ( AttributeUtils.containsValue( oc, "metaSchema", objectClassAT ) )
+        if ( AttributeUtils.containsValue( oc, MetaSchemaConstants.META_SCHEMA_OC, objectClassAT ) )
+        {
+            metaSchemaHandler.modify( name, modOp, mods, entry, targetEntry );
+            return;
+        }
+        
+        if ( AttributeUtils.containsValue( oc, MetaSchemaConstants.META_COMPARATOR_OC, objectClassAT ) )
         {
-            metaSchemaModifyHandler.handleMetaSchemaModification( name, modOp, mods, entry );
+            metaComparatorHandler.modify( name, modOp, mods, entry, targetEntry );
             return;
         }
 
@@ -93,14 +101,19 @@
     }
 
 
-    public void modify( LdapDN name, ModificationItem[] mods, Attributes entry ) throws NamingException
+    public void modify( LdapDN name, ModificationItem[] mods, Attributes entry, Attributes targetEntry ) throws NamingException
     {
         Attribute oc = ServerUtils.getAttribute( objectClassAT, entry );
         
-        // We are changing a metaSchema entry
-        if ( AttributeUtils.containsValue( oc, "metaSchema", objectClassAT ) )
+        if ( AttributeUtils.containsValue( oc, MetaSchemaConstants.META_SCHEMA_OC, objectClassAT ) )
+        {
+            metaSchemaHandler.modify( name, mods, entry, targetEntry );
+            return;
+        }
+        
+        if ( AttributeUtils.containsValue( oc, MetaSchemaConstants.META_COMPARATOR_OC, objectClassAT ) )
         {
-            metaSchemaModifyHandler.handleMetaSchemaModification( name, mods, entry );
+            metaComparatorHandler.modify( name, mods, entry, targetEntry );
             return;
         }
 

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java Wed Jan  3 12:40:39 2007
@@ -43,6 +43,7 @@
 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.BranchNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.filter.AssertionEnum;
@@ -67,6 +68,7 @@
     /** static class logger */
     private final static Logger log = LoggerFactory.getLogger( SchemaPartitionDao.class );
 
+
     private final Partition partition;
     private final Registries bootstrapRegistries;
     private final SchemaEntityFactory factory;
@@ -75,6 +77,7 @@
     
     private final String M_NAME_OID;
     private final String CN_OID;
+    private final String M_OID_OID;
     
     private final AttributeType disabledAttributeType;
     
@@ -95,6 +98,7 @@
         this.M_NAME_OID = oidRegistry.getOid( MetaSchemaConstants.M_NAME_AT );
         this.CN_OID = oidRegistry.getOid( SystemSchemaConstants.CN_AT );
         this.disabledAttributeType = attrRegistry.lookup( MetaSchemaConstants.M_DISABLED_AT );
+        this.M_OID_OID = oidRegistry.getOid( MetaSchemaConstants.M_OID_AT );
     }
     
     
@@ -168,7 +172,11 @@
      */
     public String findSchema( String entityName ) throws NamingException
     {
-        SimpleNode filter = new SimpleNode( M_NAME_OID, entityName.toLowerCase(), AssertionEnum.EQUALITY );
+        BranchNode filter = new BranchNode( AssertionEnum.OR );
+        SimpleNode nameAVA = new SimpleNode( M_NAME_OID, entityName.toLowerCase(), AssertionEnum.EQUALITY );
+        SimpleNode oidAVA = new SimpleNode( M_OID_OID, entityName.toLowerCase(), AssertionEnum.EQUALITY );
+        filter.addNode( nameAVA );
+        filter.addNode( oidAVA );
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         NamingEnumeration<SearchResult> ne = null;

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java Wed Jan  3 12:40:39 2007
@@ -130,6 +130,7 @@
     
     // the base DN (normalized) of the schema partition
     private LdapDN schemaBaseDN;
+    
 
     /**
      * Creates a schema service interceptor.
@@ -139,6 +140,7 @@
         startUpTimeStamp = DateUtils.getGeneralizedTime();
     }
 
+    
     /**
      * Initialize the Schema Service
      * 
@@ -667,6 +669,7 @@
     {
         // First, we get the entry from the backend. If it does not exist, then we throw an exception
         Attributes entry = nexus.lookup( name );
+        Attributes targetEntry = SchemaUtils.getTargetEntry( modOp, mods, entry );
         
         if ( entry == null )
         {
@@ -680,7 +683,7 @@
 
         NamingEnumeration changes = mods.getIDs();
         
-        Attributes tmpEntryForAdd = (Attributes)entry.clone();
+        Attributes tmpEntryForAdd = ( Attributes ) entry.clone();
         
         while ( changes.hasMore() )
         {
@@ -789,7 +792,7 @@
 
         if ( name.startsWith( schemaBaseDN ) )
         {
-            schemaManager.modify( name, modOp, mods, entry );
+            schemaManager.modify( name, modOp, mods, entry, targetEntry );
         }
         next.modify( name, modOp, mods );
     }
@@ -799,6 +802,7 @@
     {
         // First, we get the entry from the backend. If it does not exist, then we throw an exception
         Attributes entry = nexus.lookup( name );
+        Attributes targetEntry = SchemaUtils.getTargetEntry( mods, entry );
 
         if ( entry == null )
         {
@@ -1027,7 +1031,7 @@
 
         if ( name.startsWith( schemaBaseDN ) )
         {
-            schemaManager.modify( name, mods, entry );
+            schemaManager.modify( name, mods, entry, targetEntry );
         }
         next.modify( name, mods );
     }

Modified: directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java (original)
+++ directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java Wed Jan  3 12:40:39 2007
@@ -513,4 +513,10 @@
     {
         return schemaLoader;
     }
+
+
+    public Schema getSchema( String schemaName )
+    {
+        return this.byName.get( schemaName );
+    }
 }

Modified: directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/Registries.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/Registries.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/Registries.java (original)
+++ directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/Registries.java Wed Jan  3 12:40:39 2007
@@ -48,40 +48,30 @@
     SchemaLoader setSchemaLoader();
     
     AttributeTypeRegistry getAttributeTypeRegistry();
-
     
     ComparatorRegistry getComparatorRegistry();
 
-
     DITContentRuleRegistry getDitContentRuleRegistry();
 
-
     DITStructureRuleRegistry getDitStructureRuleRegistry();
 
-
     MatchingRuleRegistry getMatchingRuleRegistry();
 
-
     MatchingRuleUseRegistry getMatchingRuleUseRegistry();
 
-
     NameFormRegistry getNameFormRegistry();
 
-
     NormalizerRegistry getNormalizerRegistry();
 
-
     ObjectClassRegistry getObjectClassRegistry();
 
-
     OidRegistry getOidRegistry();
 
-
     SyntaxCheckerRegistry getSyntaxCheckerRegistry();
 
-
     SyntaxRegistry getSyntaxRegistry();
 
-
     List checkRefInteg();
+
+    Schema getSchema( String schemaName );
 }

Modified: directory/trunks/apacheds/server-installers/pom.xml
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/server-installers/pom.xml?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/server-installers/pom.xml (original)
+++ directory/trunks/apacheds/server-installers/pom.xml Wed Jan  3 12:40:39 2007
@@ -34,6 +34,11 @@
       <version>${pom.version}</version>
     </dependency>  
     <dependency>
+      <groupId>org.apache.directory.server</groupId>
+      <artifactId>apacheds-schema-extras</artifactId>
+      <version>${pom.version}</version>
+    </dependency>  
+    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>nlog4j</artifactId>
     </dependency>
@@ -71,7 +76,6 @@
       <plugin>
         <groupId>org.apache.directory.daemon</groupId>
         <artifactId>daemon-plugin</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
         <configuration>
           <excludes>
 
@@ -191,6 +195,7 @@
               <osArch>i386</osArch>
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
+<!--
             <izPackTarget>
               <packagedFiles>
                 <packagedFile>
@@ -251,6 +256,7 @@
               <osArch>ppc</osArch>
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
+-->
           </izPackTargets>
         </configuration>
         <executions>

Modified: directory/trunks/apacheds/server-installers/src/main/installers/server.xml
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/server-installers/src/main/installers/server.xml?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/server-installers/src/main/installers/server.xml (original)
+++ directory/trunks/apacheds/server-installers/src/main/installers/server.xml Wed Jan  3 12:40:39 2007
@@ -95,25 +95,9 @@
       <ref bean="systemPartitionConfiguration"/>
     </property>
 
-    <property name="contextPartitionConfigurations">
+    <property name="partitionConfigurations">
       <set>
         <ref bean="examplePartitionConfiguration"/>
-      </set>
-    </property>
-    <property name="bootstrapSchemas">
-      <set>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.AutofsSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CorbaSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CoreSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CosineSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.ApacheSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CollectiveSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.InetorgpersonSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.JavaSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.Krb5kdcSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.NisSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.SystemSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.ApachednsSchema"/>
       </set>
     </property>
     

Modified: directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java (original)
+++ directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java Wed Jan  3 12:40:39 2007
@@ -102,13 +102,7 @@
     }
 
 
-//    public void setBootstrapSchemas( Set arg0 )
-//    {
-//        super.setBootstrapSchemas( arg0 );
-//    }
-//
-
-    public void setPartitionConfigurations( Set arg0 )
+    public void setPartitionConfigurations( Set<PartitionConfiguration> arg0 )
     {
         super.setPartitionConfigurations( arg0 );
     }

Modified: directory/trunks/apacheds/server-main/server.xml
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/server-main/server.xml?view=diff&rev=492293&r1=492292&r2=492293
==============================================================================
--- directory/trunks/apacheds/server-main/server.xml (original)
+++ directory/trunks/apacheds/server-main/server.xml Wed Jan  3 12:40:39 2007
@@ -95,33 +95,16 @@
       <ref bean="systemPartitionConfiguration"/>
     </property>
 
-    <property name="contextPartitionConfigurations">
+    <property name="partitionConfigurations">
       <set>
         <ref bean="examplePartitionConfiguration"/>
       </set>
     </property>
-    <property name="bootstrapSchemas">
-      <set>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.AutofsSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CorbaSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CoreSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CosineSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.ApacheSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.CollectiveSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.InetorgpersonSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.JavaSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.Krb5kdcSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.NisSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.SystemSchema"/>
-        <bean class="org.apache.directory.server.core.schema.bootstrap.ApachednsSchema"/>
-      </set>
-    </property>
     
     <property name="extendedOperationHandlers">
       <list>
         <bean class="org.apache.directory.server.ldap.support.extended.GracefulShutdownHandler"/>
         <bean class="org.apache.directory.server.ldap.support.extended.LaunchDiagnosticUiHandler"/>
-        <bean class="org.apache.directory.server.ldap.support.extended.StoredProcedureExtendedOperationHandler"/>
       </list>
     </property>
 
@@ -199,6 +182,23 @@
             <bean class="org.apache.directory.server.core.trigger.TriggerService" />
           </property>
         </bean>
+
+        <!-- Uncomment to enable replication service
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>replicationService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.mitosis.service.ReplicationService">
+              <property name="configuration">
+                <bean class="org.apache.directory.mitosis.configuration.ReplicationConfiguration">
+                  <property name="replicaId"><value>instance_a</value></property>
+                  <property name="serverPort"><value>10390</value></property>
+                  <property name="peerReplicas"><value>instance_b@localhost:10392</value></property>
+                </bean>
+              </property>
+            </bean>
+          </property>
+        </bean>
+        -->
       </list>
     </property>
   </bean>