You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/10/17 10:05:00 UTC
svn commit: r325857 - in
/directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server:
configuration/MutableServerStartupConfiguration.java
configuration/ServerStartupConfiguration.java jndi/ServerContextFactory.java
Author: trustin
Date: Mon Oct 17 01:04:54 2005
New Revision: 325857
URL: http://svn.apache.org/viewcvs?rev=325857&view=rev
Log:
Added ExtendedOperationHandlers property to ServerStartupConfiguration sothat users cn configure LDAP extended operation handlers.
Modified:
directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/MutableServerStartupConfiguration.java
directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/ServerStartupConfiguration.java
directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/jndi/ServerContextFactory.java
Modified: directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/MutableServerStartupConfiguration.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/MutableServerStartupConfiguration.java?rev=325857&r1=325856&r2=325857&view=diff
==============================================================================
--- directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/MutableServerStartupConfiguration.java (original)
+++ directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/MutableServerStartupConfiguration.java Mon Oct 17 01:04:54 2005
@@ -19,6 +19,7 @@
package org.apache.ldap.server.configuration;
import java.io.File;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -98,5 +99,9 @@
public void setMinaServiceRegistry( ServiceRegistry minaServiceRegistry )
{
super.setMinaServiceRegistry( minaServiceRegistry );
+ }
+
+ public void setExtendedOperationHandlers(Collection handlers) {
+ super.setExtendedOperationHandlers(handlers);
}
}
Modified: directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/ServerStartupConfiguration.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/ServerStartupConfiguration.java?rev=325857&r1=325856&r2=325857&view=diff
==============================================================================
--- directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/ServerStartupConfiguration.java (original)
+++ directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/configuration/ServerStartupConfiguration.java Mon Oct 17 01:04:54 2005
@@ -18,6 +18,11 @@
*/
package org.apache.ldap.server.configuration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.ldap.server.protocol.ExtendedOperationHandler;
import org.apache.mina.registry.ServiceRegistry;
import org.apache.mina.registry.SimpleServiceRegistry;
@@ -36,6 +41,7 @@
private int ldapPort = 389;
private int ldapsPort = 636;
private boolean enableKerberos;
+ private final Collection extendedOperationHandlers = new ArrayList();
protected ServerStartupConfiguration()
{
@@ -127,5 +133,25 @@
throw new ConfigurationException( "MinaServiceRegistry cannot be null" );
}
this.minaServiceRegistry = minaServiceRegistry;
+ }
+
+ public Collection getExtendedOperationHandlers()
+ {
+ return new ArrayList( extendedOperationHandlers );
+ }
+
+ protected void setExtendedOperationHandlers( Collection handlers )
+ {
+ for( Iterator i = handlers.iterator(); i.hasNext(); )
+ {
+ if( !( i.next() instanceof ExtendedOperationHandler ) )
+ {
+ throw new IllegalArgumentException(
+ "The specified handler collection contains an element which is not an ExtendedOperationHandler." );
+ }
+ }
+
+ this.extendedOperationHandlers.clear();
+ this.extendedOperationHandlers.addAll( handlers );
}
}
Modified: directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/jndi/ServerContextFactory.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/jndi/ServerContextFactory.java?rev=325857&r1=325856&r2=325857&view=diff
==============================================================================
--- directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/jndi/ServerContextFactory.java (original)
+++ directory/apacheds/trunk/main/src/main/java/org/apache/ldap/server/jndi/ServerContextFactory.java Mon Oct 17 01:04:54 2005
@@ -40,6 +40,7 @@
import org.apache.ldap.common.util.PropertiesUtils;
import org.apache.ldap.server.DirectoryService;
import org.apache.ldap.server.configuration.ServerStartupConfiguration;
+import org.apache.ldap.server.protocol.ExtendedOperationHandler;
import org.apache.ldap.server.protocol.LdapProtocolProvider;
import org.apache.mina.common.TransportType;
import org.apache.mina.registry.Service;
@@ -204,9 +205,17 @@
int port = cfg.getLdapPort();
Service service = new Service( "ldap", TransportType.SOCKET, new InetSocketAddress( port ) );
+ // Register all extended operation handlers.
+ LdapProtocolProvider protocolProvider = new LdapProtocolProvider( ( Hashtable ) env.clone() );
+ for( Iterator i = cfg.getExtendedOperationHandlers().iterator(); i.hasNext(); )
+ {
+ ExtendedOperationHandler h = ( ExtendedOperationHandler ) i.next();
+ protocolProvider.addExtendedOperationHandler( h );
+ }
+
try
{
- minaRegistry.bind( service, new LdapProtocolProvider( ( Hashtable ) env.clone() ) );
+ minaRegistry.bind( service, protocolProvider );
ldapService = service;
if ( log.isInfoEnabled() )
{