You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2007/04/14 18:37:19 UTC

svn commit: r528834 - in /directory/apacheds/trunk/core/src: main/java/org/apache/directory/server/core/interceptor/ main/java/org/apache/directory/server/core/interceptor/context/ main/java/org/apache/directory/server/core/jndi/ main/java/org/apache/d...

Author: elecharny
Date: Sat Apr 14 09:37:17 2007
New Revision: 528834

URL: http://svn.apache.org/viewvc?view=rev&rev=528834
Log:
Added the RemoveContextPartitionServiceContext, and modified the interceptors

Added:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionServiceContext.java
Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/AbstractContextFactory.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java Sat Apr 14 09:37:17 2007
@@ -196,9 +196,9 @@
     }
 
 
-    public void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException
+    public void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException
     {
-        next.removeContextPartition( suffix );
+        next.removeContextPartition( removeContextPartition );
     }
 
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java Sat Apr 14 09:37:17 2007
@@ -149,9 +149,9 @@
 
 
     /**
-     * Filters {@link PartitionNexus#removeContextPartition(org.apache.directory.shared.ldap.name.LdapDN)} call.
+     * Filters {@link PartitionNexus#removeContextPartition( ServiceContext )} call.
      */
-    void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException;
+    void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException;
 
 
     /**

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java Sat Apr 14 09:37:17 2007
@@ -185,9 +185,9 @@
         }
 
 
-        public void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException
+        public void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException
         {
-            nexus.removeContextPartition( suffix );
+            nexus.removeContextPartition( removeContextPartition );
         }
 
 
@@ -651,14 +651,14 @@
     }
 
 
-    public void removeContextPartition( LdapDN suffix ) throws NamingException
+    public void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.configuration.getInterceptor();
         NextInterceptor next = entry.nextInterceptor;
         try
         {
-            head.removeContextPartition( next, suffix );
+            head.removeContextPartition( next, removeContextPartition );
         }
         catch ( NamingException ne )
         {
@@ -1393,14 +1393,14 @@
                 }
 
 
-                public void removeContextPartition( LdapDN suffix ) throws NamingException
+                public void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.configuration.getInterceptor();
 
                     try
                     {
-                        interceptor.removeContextPartition( next.nextInterceptor, suffix );
+                        interceptor.removeContextPartition( next.nextInterceptor, removeContextPartition );
                     }
                     catch ( NamingException ne )
                     {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java Sat Apr 14 09:37:17 2007
@@ -81,9 +81,9 @@
 
 
     /**
-     * Calls the next interceptor's {@link PartitionNexus#removeContextPartition(org.apache.directory.shared.ldap.name.LdapDN)}.
+     * Calls the next interceptor's {@link PartitionNexus#removeContextPartition( ServiceContext )}.
      */
-    void removeContextPartition( LdapDN suffix ) throws NamingException;
+    void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException;
 
 
     /**

Added: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionServiceContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionServiceContext.java?view=auto&rev=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionServiceContext.java (added)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionServiceContext.java Sat Apr 14 09:37:17 2007
@@ -0,0 +1,57 @@
+/*
+ *  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.interceptor.context;
+
+import org.apache.directory.shared.ldap.name.LdapDN;
+
+/**
+ * A RemoveContextPartition context used for Interceptors. It contains all the informations
+ * needed for the removeContextPartition operation, and used by all the interceptors
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class RemoveContextPartitionServiceContext  extends AbstractServiceContext
+{
+    /**
+     * Creates a new instance of RemoveContextPartitionServiceContext.
+     */
+    public RemoveContextPartitionServiceContext()
+    {
+    }
+    
+    /**
+     * Creates a new instance of RemoveContextPartitionServiceContext.
+     *
+     * @param entryDn The Entry DN from which the partition should be removed
+     */
+    public RemoveContextPartitionServiceContext( LdapDN dn )
+    {
+        super( dn );
+    }
+    
+    /**
+     * @see Object#toString()
+     */
+    public String toString()
+    {
+        return "RemoveContextPartitionServiceContext for DN '" + getDn().getUpName() + "'";
+    }
+}

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/AbstractContextFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/AbstractContextFactory.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/AbstractContextFactory.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/AbstractContextFactory.java Sat Apr 14 09:37:17 2007
@@ -37,6 +37,7 @@
 import org.apache.directory.server.core.configuration.StartupConfiguration;
 import org.apache.directory.server.core.configuration.SyncConfiguration;
 import org.apache.directory.server.core.interceptor.context.AddContextPartitionServiceContext;
+import org.apache.directory.server.core.interceptor.context.RemoveContextPartitionServiceContext;
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.StringTools;
@@ -134,7 +135,8 @@
         {
             Context ctx = service.getJndiContext( principalDn, principal, credential, authentication, "" );
             PartitionNexusProxy proxy = new PartitionNexusProxy( ctx, service );
-            proxy.removeContextPartition( ( ( RemovePartitionConfiguration ) cfg ).getSuffix() );
+            proxy.removeContextPartition( 
+                new RemoveContextPartitionServiceContext( ( ( RemovePartitionConfiguration ) cfg ).getSuffix() ) );
         }
         else if ( service == null )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java Sat Apr 14 09:37:17 2007
@@ -404,9 +404,9 @@
     }
 
 
-    public void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException
+    public void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException
     {
-        suffix = LdapDN.normalize( suffix, attrNormalizers );
-        next.removeContextPartition( suffix );
+        LdapDN.normalize( removeContextPartition.getDn(), attrNormalizers );
+        next.removeContextPartition( removeContextPartition );
     }
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java Sat Apr 14 09:37:17 2007
@@ -48,6 +48,7 @@
 import org.apache.directory.server.core.interceptor.context.CompareServiceContext;
 import org.apache.directory.server.core.interceptor.context.EntryServiceContext;
 import org.apache.directory.server.core.interceptor.context.LookupServiceContext;
+import org.apache.directory.server.core.interceptor.context.RemoveContextPartitionServiceContext;
 import org.apache.directory.server.core.interceptor.context.ServiceContext;
 import org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration;
 import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
@@ -409,9 +410,10 @@
         while ( suffixes.hasNext() )
         {
             String suffix = suffixes.next();
+            
             try
             {
-                removeContextPartition( new LdapDN( suffix ) );
+                removeContextPartition( new RemoveContextPartitionServiceContext( new LdapDN( suffix ) ) );
             }
             catch ( NamingException e )
             {
@@ -557,10 +559,11 @@
     }
 
 
-    public synchronized void removeContextPartition( LdapDN suffix ) throws NamingException
+    public synchronized void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException
     {
-        String key = suffix.toString();
+        String key = removeContextPartition.getDn().getNormName();
         Partition partition = partitions.get( key );
+        
         if ( partition == null )
         {
             throw new NameNotFoundException( "No partition with suffix: " + key );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java Sat Apr 14 09:37:17 2007
@@ -199,7 +199,7 @@
     public abstract void addContextPartition( ServiceContext addContextPartitionContext ) throws NamingException;
 
 
-    public abstract void removeContextPartition( LdapDN suffix ) throws NamingException;
+    public abstract void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException;
 
 
     public abstract Partition getSystemPartition();

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java Sat Apr 14 09:37:17 2007
@@ -726,21 +726,21 @@
     }
 
 
-    public void removeContextPartition( LdapDN suffix ) throws NamingException
+    public void removeContextPartition( ServiceContext removeContextPartition ) throws NamingException
     {
-        removeContextPartition( suffix, null );
+        removeContextPartition( removeContextPartition, null );
     }
 
 
-    public void removeContextPartition( LdapDN suffix, Collection bypass ) throws NamingException
+    public void removeContextPartition( ServiceContext removeContextPartition, Collection bypass ) throws NamingException
     {
         ensureStarted();
         InvocationStack stack = InvocationStack.getInstance();
         stack.push( new Invocation( this, caller, "removeContextPartition", new Object[]
-            { suffix }, bypass ) );
+            { removeContextPartition }, bypass ) );
         try
         {
-            this.configuration.getInterceptorChain().removeContextPartition( suffix );
+            this.configuration.getInterceptorChain().removeContextPartition( removeContextPartition );
         }
         finally
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java Sat Apr 14 09:37:17 2007
@@ -882,15 +882,20 @@
     }
 
 
-    public void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException
+    public void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException
     {
         // remove referrals immediately before removing the partition
         Invocation invocation = InvocationStack.getInstance().peek();
-        NamingEnumeration list = invocation.getProxy().search( suffix, env, getReferralFilter(), getControls(),
+        NamingEnumeration list = invocation.getProxy().search( 
+            removeContextPartition.getDn(), 
+            env, 
+            getReferralFilter(), 
+            getControls(),
             SEARCH_BYPASS );
-        deleteReferrals( list, suffix );
+        
+        deleteReferrals( list, removeContextPartition.getDn() );
 
-        next.removeContextPartition( suffix );
+        next.removeContextPartition( removeContextPartition );
     }
 
 

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java?view=diff&rev=528834&r1=528833&r2=528834
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java Sat Apr 14 09:37:17 2007
@@ -325,10 +325,10 @@
         }
 
 
-        public void removeContextPartition( NextInterceptor next, LdapDN suffix ) throws NamingException
+        public void removeContextPartition( NextInterceptor next, ServiceContext removeContextPartition ) throws NamingException
         {
             interceptors.add( this );
-            next.removeContextPartition( suffix );
+            next.removeContextPartition( removeContextPartition );
         }