You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/10/28 03:30:32 UTC
svn commit: r329026 - in /directory/standalone/trunk/osgi: ./
changepw/src/main/java/org/apache/changepw/ dns/src/main/java/org/apache/dns/
kerberos/src/main/java/org/apache/kerberos/
launcher/src/main/java/org/apache/launcher/ ldap/src/main/java/org/a...
Author: erodriguez
Date: Thu Oct 27 18:30:18 2005
New Revision: 329026
URL: http://svn.apache.org/viewcvs?rev=329026&view=rev
Log:
Cleaned-up in OSGi bundles:
o All protocols now using core configuration.
o All configuration moved to protocol providers, out of OSGi bundles.
o Common code moved to protocol-common.
o Updated MINA to 0.8.0.
o Homogenized syncronization in factories.
o Removed an unused manifest.mf file.
Removed:
directory/standalone/trunk/osgi/ntp/manifest.mf
Modified:
directory/standalone/trunk/osgi/changepw/src/main/java/org/apache/changepw/ChangepwServerFactory.java
directory/standalone/trunk/osgi/dns/src/main/java/org/apache/dns/DnsServerFactory.java
directory/standalone/trunk/osgi/kerberos/src/main/java/org/apache/kerberos/KerberosServerFactory.java
directory/standalone/trunk/osgi/launcher/src/main/java/org/apache/launcher/Launcher.java
directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapConfig.java
directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapServerFactory.java
directory/standalone/trunk/osgi/loader/src/main/java/org/apache/ldap/server/loader/LdifFileLoader.java
directory/standalone/trunk/osgi/project.xml
Modified: directory/standalone/trunk/osgi/changepw/src/main/java/org/apache/changepw/ChangepwServerFactory.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/changepw/src/main/java/org/apache/changepw/ChangepwServerFactory.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/changepw/src/main/java/org/apache/changepw/ChangepwServerFactory.java (original)
+++ directory/standalone/trunk/osgi/changepw/src/main/java/org/apache/changepw/ChangepwServerFactory.java Thu Oct 27 18:30:18 2005
@@ -17,25 +17,19 @@
package org.apache.changepw;
+import java.util.Collections;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
-import java.util.Properties;
-import javax.naming.CompoundName;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.directory.DirContext;
-import javax.naming.ldap.LdapContext;
import javax.naming.spi.InitialContextFactory;
import org.apache.kerberos.store.JndiPrincipalStoreImpl;
import org.apache.kerberos.store.PrincipalStore;
import org.apache.mina.registry.ServiceRegistry;
-import org.osgi.service.cm.Configuration;
+import org.apache.protocol.common.MapAdapter;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedServiceFactory;
@@ -48,30 +42,21 @@
/** the log for this class */
private static final Logger log = LoggerFactory.getLogger( ChangepwServerFactory.class );
- private static final String FACTORY_PID = "org.apache.changepw";
- private static final String DEFAULT_PID = FACTORY_PID + ".default";
+ private static final String DEFAULT_PID = "org.apache.changepw.default";
- private Map servers = new HashMap();
- private Object updateLock = new Object();
- private ServiceRegistry registry;
private ConfigurationAdmin cm;
+ private ServiceRegistry registry;
private InitialContextFactory factory;
- /**
- * The key of the property specifying where Kerberos users are stored. If this
- * property is not set the store defaults to performing a subtree search
- * from the DN in the {@link Context#PROVIDER_URL}. If it is present a more
- * efficient search is conducted on the more specific DN.
- */
- public static final String KDC_ENTRY_BASEDN_KEY = "kdc.entry.basedn";
+ private Map servers = Collections.synchronizedMap( new HashMap() );
public void updated( String pid, Dictionary config ) throws ConfigurationException
{
- log.debug( getName() + " updating with " + config );
+ log.debug( getName() + " (" + pid + ") updating with " + config );
- ChangepwConfig changepwConfig = new ChangepwConfig( config );
+ ChangePasswordConfiguration changepwConfig = new ChangePasswordConfiguration( new MapAdapter( config ) );
- synchronized ( updateLock )
+ synchronized ( servers )
{
if ( DEFAULT_PID.equals( pid ) && servers.size() > 0 )
{
@@ -92,88 +77,24 @@
if ( changepwServer == null || changepwServer.isDifferent( config ) )
{
deleted( pid );
- PrincipalStore store = getStore();
+ PrincipalStore store = new JndiPrincipalStoreImpl( changepwConfig, factory );
changepwServer = new ChangepwServer( changepwConfig, registry, store );
servers.put( pid, changepwServer );
}
}
}
- private PrincipalStore getStore() throws ConfigurationException
- {
- Hashtable env = new Hashtable( new ChangepwConfig().toJndiEnvironment() );
- loadEnvironment( env );
-
- LdapContext ctx = null;
-
- try
- {
- ctx = (LdapContext) factory.getInitialContext( env );
- }
- catch ( NamingException ne )
- {
- log.error( ne.getMessage(), ne );
- throw new ConfigurationException( (String) env.get( Context.PROVIDER_URL ), "Initial context load failed." );
- }
-
- Name searchBaseDn = null;
-
- if ( env.containsKey( KDC_ENTRY_BASEDN_KEY ) )
- {
- String baseDn = (String) env.get( KDC_ENTRY_BASEDN_KEY );
- searchBaseDn = getRelativeName( ctx, baseDn );
- }
-
- return new JndiPrincipalStoreImpl( ctx, searchBaseDn );
- }
-
- private Name getRelativeName( DirContext ctx, String baseDn ) throws ConfigurationException
+ public void deleted( String pid )
{
- Properties props = new Properties();
- props.setProperty( "jndi.syntax.direction", "right_to_left" );
- props.setProperty( "jndi.syntax.separator", "," );
-
- Name searchBaseDn = null;
-
- try
+ synchronized ( servers )
{
- Name ctxRoot = new CompoundName( ctx.getNameInNamespace(), props );
- searchBaseDn = new CompoundName( baseDn, props );
-
- if ( !searchBaseDn.startsWith( ctxRoot ) )
- {
- throw new ConfigurationException( baseDn, "Invalid search base for Kerberos principals." );
- }
+ ChangepwServer server = (ChangepwServer) servers.remove( pid );
- for ( int ii = 0; ii < ctxRoot.size(); ii++ )
+ if ( server != null )
{
- searchBaseDn.remove( 0 );
+ server.destroy();
}
}
- catch ( NamingException e )
- {
- throw new ConfigurationException( baseDn, "Failed to initialize search base for Kerberos principals." );
- }
-
- return searchBaseDn;
- }
-
- private void loadEnvironment( Hashtable env )
- {
- env.put( Context.PROVIDER_URL, "dc=example,dc=com" );
- env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.CoreContextFactory" );
-
- env.put( KDC_ENTRY_BASEDN_KEY, "ou=Users,dc=example,dc=com" );
- }
-
- public void deleted( String pid )
- {
- ChangepwServer server = (ChangepwServer) servers.remove( pid );
-
- if ( server != null )
- {
- server.destroy();
- }
}
public String getName()
@@ -183,28 +104,15 @@
/**
* All required services have been bound, but our service(s) are not yet
- * registered. So, we check the Config Admin service for configs or we
- * start a server with its default properties.
+ * registered. If there is no Config Admin we start a server with default properties.
*/
public void activate()
{
try
{
- Configuration[] configs = null;
-
- if ( cm != null )
- {
- String filter = "(service.factoryPid=" + FACTORY_PID + ")";
- configs = cm.listConfigurations( filter );
-
- log.debug( "filter: " + filter );
- log.debug( "configs.length: " + configs.length );
- log.debug( "configs[ 0 ]: " + configs[ 0 ] );
- }
-
- if ( cm == null || configs == null || configs.length == 0 )
+ if ( cm == null )
{
- updated( ChangepwServerFactory.DEFAULT_PID, ChangepwConfig.getDefaultConfig() );
+ updated( DEFAULT_PID, new Hashtable( ChangePasswordConfiguration.getDefaultConfig() ) );
}
}
catch ( Exception e )
@@ -223,11 +131,17 @@
*/
public void deactivate()
{
- Iterator it = servers.keySet().iterator();
-
- while ( it.hasNext() )
+ synchronized ( servers )
{
- deleted( (String) it.next() );
+ Iterator it = servers.values().iterator();
+
+ while ( it.hasNext() )
+ {
+ ChangepwServer server = (ChangepwServer) it.next();
+ server.destroy();
+ }
+
+ servers.clear();
}
}
Modified: directory/standalone/trunk/osgi/dns/src/main/java/org/apache/dns/DnsServerFactory.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/dns/src/main/java/org/apache/dns/DnsServerFactory.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/dns/src/main/java/org/apache/dns/DnsServerFactory.java (original)
+++ directory/standalone/trunk/osgi/dns/src/main/java/org/apache/dns/DnsServerFactory.java Thu Oct 27 18:30:18 2005
@@ -17,25 +17,19 @@
package org.apache.dns;
+import java.util.Collections;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
-import java.util.Properties;
-import javax.naming.CompoundName;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.directory.DirContext;
-import javax.naming.ldap.LdapContext;
import javax.naming.spi.InitialContextFactory;
import org.apache.dns.store.JndiRecordStoreImpl;
import org.apache.dns.store.RecordStore;
import org.apache.mina.registry.ServiceRegistry;
-import org.osgi.service.cm.Configuration;
+import org.apache.protocol.common.MapAdapter;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedServiceFactory;
@@ -48,30 +42,21 @@
/** the log for this class */
private static final Logger log = LoggerFactory.getLogger( DnsServerFactory.class );
- private static final String FACTORY_PID = "org.apache.dns";
- private static final String DEFAULT_PID = FACTORY_PID + ".default";
+ private static final String DEFAULT_PID = "org.apache.dns.default";
- private Map servers = new HashMap();
- private Object updateLock = new Object();
- private ServiceRegistry registry;
private ConfigurationAdmin cm;
+ private ServiceRegistry registry;
private InitialContextFactory factory;
- /**
- * The key of the property specifying where DNS records are stored. If this
- * property is not set the store defaults to performing a subtree search
- * from the DN in the {@link Context#PROVIDER_URL}. If it is present a more
- * efficient search is conducted on the more specific DN.
- */
- public static final String DNS_ENTRY_BASEDN_KEY = "dns.entry.basedn";
+ private Map servers = Collections.synchronizedMap( new HashMap() );
public void updated( String pid, Dictionary config ) throws ConfigurationException
{
- log.debug( getName() + " updating with " + config );
+ log.debug( getName() + " (" + pid + ") updating with " + config );
- DnsConfig dnsConfig = new DnsConfig( config );
+ DnsConfiguration dnsConfig = new DnsConfiguration( new MapAdapter( config ) );
- synchronized ( updateLock )
+ synchronized ( servers )
{
if ( DEFAULT_PID.equals( pid ) && servers.size() > 0 )
{
@@ -92,87 +77,23 @@
if ( dnsServer == null || dnsServer.isDifferent( config ) )
{
deleted( pid );
- RecordStore store = getStore();
+ RecordStore store = new JndiRecordStoreImpl( dnsConfig, factory );
dnsServer = new DnsServer( dnsConfig, registry, store );
servers.put( pid, dnsServer );
}
}
}
- private RecordStore getStore() throws ConfigurationException
- {
- Hashtable env = new Hashtable( new DnsConfig().toJndiEnvironment() );
- loadEnvironment( env );
-
- LdapContext ctx = null;
-
- try
- {
- ctx = (LdapContext) factory.getInitialContext( env );
- }
- catch ( NamingException ne )
- {
- log.error( ne.getMessage(), ne );
- throw new ConfigurationException( (String) env.get( Context.PROVIDER_URL ), "Initial context load failed." );
- }
-
- Name searchBaseDn = null;
-
- if ( env.containsKey( DNS_ENTRY_BASEDN_KEY ) )
- {
- String baseDn = (String) env.get( DNS_ENTRY_BASEDN_KEY );
- searchBaseDn = getRelativeName( ctx, baseDn );
- }
-
- return new JndiRecordStoreImpl( ctx, searchBaseDn );
- }
-
- private Name getRelativeName( DirContext ctx, String baseDn ) throws ConfigurationException
+ public void deleted( String pid )
{
- Properties props = new Properties();
- props.setProperty( "jndi.syntax.direction", "right_to_left" );
- props.setProperty( "jndi.syntax.separator", "," );
-
- Name searchBaseDn = null;
-
- try
+ synchronized ( servers )
{
- Name ctxRoot = new CompoundName( ctx.getNameInNamespace(), props );
- searchBaseDn = new CompoundName( baseDn, props );
+ DnsServer dnsServer = (DnsServer) servers.remove( pid );
- if ( !searchBaseDn.startsWith( ctxRoot ) )
+ if ( dnsServer != null )
{
- throw new ConfigurationException( baseDn, "Invalid search base for Apache DNS records." );
+ dnsServer.destroy();
}
-
- for ( int ii = 0; ii < ctxRoot.size(); ii++ )
- {
- searchBaseDn.remove( 0 );
- }
- }
- catch ( NamingException e )
- {
- throw new ConfigurationException( baseDn, "Failed to initialize search base for Apache DNS records." );
- }
-
- return searchBaseDn;
- }
-
- private void loadEnvironment( Hashtable env )
- {
- env.put( Context.PROVIDER_URL, "ou=forward lookup zones,ou=dns,ou=system" );
- env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.CoreContextFactory" );
-
- env.put( DNS_ENTRY_BASEDN_KEY, "ou=example.com,ou=forward lookup zones,ou=dns,ou=system" );
- }
-
- public void deleted( String pid )
- {
- DnsServer dnsServer = (DnsServer) servers.remove( pid );
-
- if ( dnsServer != null )
- {
- dnsServer.destroy();
}
}
@@ -183,28 +104,15 @@
/**
* All required services have been bound, but our service(s) are not yet
- * registered. So, we check the Config Admin service for configs or we
- * start a server with its default properties.
+ * registered. If there is no Config Admin we start a server with default properties.
*/
public void activate()
{
try
{
- Configuration[] configs = null;
-
- if ( cm != null )
- {
- String filter = "(service.factoryPid=" + FACTORY_PID + ")";
- configs = cm.listConfigurations( filter );
-
- log.debug( "filter: " + filter );
- log.debug( "configs.length: " + configs.length );
- log.debug( "configs[ 0 ]: " + configs[ 0 ] );
- }
-
- if ( cm == null || configs == null || configs.length == 0 )
+ if ( cm == null )
{
- updated( DnsServerFactory.DEFAULT_PID, DnsConfig.getDefaultConfig() );
+ updated( DEFAULT_PID, new Hashtable( DnsConfiguration.getDefaultConfig() ) );
}
}
catch ( Exception e )
@@ -223,10 +131,17 @@
*/
public void deactivate()
{
- Iterator it = servers.keySet().iterator();
- while ( it.hasNext() )
+ synchronized ( servers )
{
- deleted( (String) it.next() );
+ Iterator it = servers.values().iterator();
+
+ while ( it.hasNext() )
+ {
+ DnsServer dnsServer = (DnsServer) it.next();
+ dnsServer.destroy();
+ }
+
+ servers.clear();
}
}
Modified: directory/standalone/trunk/osgi/kerberos/src/main/java/org/apache/kerberos/KerberosServerFactory.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/kerberos/src/main/java/org/apache/kerberos/KerberosServerFactory.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/kerberos/src/main/java/org/apache/kerberos/KerberosServerFactory.java (original)
+++ directory/standalone/trunk/osgi/kerberos/src/main/java/org/apache/kerberos/KerberosServerFactory.java Thu Oct 27 18:30:18 2005
@@ -17,25 +17,21 @@
package org.apache.kerberos;
+import java.util.Collections;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
-import java.util.Properties;
-import javax.naming.CompoundName;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.directory.DirContext;
-import javax.naming.ldap.LdapContext;
import javax.naming.spi.InitialContextFactory;
+import org.apache.kerberos.kdc.KdcConfiguration;
+import org.apache.kerberos.kdc.KerberosServer;
import org.apache.kerberos.store.JndiPrincipalStoreImpl;
import org.apache.kerberos.store.PrincipalStore;
import org.apache.mina.registry.ServiceRegistry;
-import org.osgi.service.cm.Configuration;
+import org.apache.protocol.common.MapAdapter;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedServiceFactory;
@@ -48,30 +44,21 @@
/** the log for this class */
private static final Logger log = LoggerFactory.getLogger( KerberosServerFactory.class );
- private static final String FACTORY_PID = "org.apache.kerberos";
- private static final String DEFAULT_PID = FACTORY_PID + ".default";
+ private static final String DEFAULT_PID = "org.apache.kerberos.default";
- private Map servers = new HashMap();
- private Object updateLock = new Object();
- private ServiceRegistry registry;
private ConfigurationAdmin cm;
+ private ServiceRegistry registry;
private InitialContextFactory factory;
- /**
- * The key of the property specifying where Kerberos users are stored. If this
- * property is not set the store defaults to performing a subtree search
- * from the DN in the {@link Context#PROVIDER_URL}. If it is present a more
- * efficient search is conducted on the more specific DN.
- */
- public static final String KDC_ENTRY_BASEDN_KEY = "kdc.entry.basedn";
+ private Map servers = Collections.synchronizedMap( new HashMap() );
public void updated( String pid, Dictionary config ) throws ConfigurationException
{
- log.debug( getName() + " updating with " + config );
+ log.debug( getName() + " (" + pid + ") updating with " + config );
- KerberosConfig kerberosConfig = new KerberosConfig( config );
+ KdcConfiguration kerberosConfig = new KdcConfiguration( new MapAdapter( config ) );
- synchronized ( updateLock )
+ synchronized ( servers )
{
if ( DEFAULT_PID.equals( pid ) && servers.size() > 0 )
{
@@ -92,88 +79,24 @@
if ( server == null || server.isDifferent( config ) )
{
deleted( pid );
- PrincipalStore store = getStore();
+ PrincipalStore store = new JndiPrincipalStoreImpl( kerberosConfig, factory );
server = new KerberosServer( kerberosConfig, registry, store );
servers.put( pid, server );
}
}
}
- private PrincipalStore getStore() throws ConfigurationException
- {
- Hashtable env = new Hashtable( new KerberosConfig().toJndiEnvironment() );
- loadEnvironment( env );
-
- LdapContext ctx = null;
-
- try
- {
- ctx = (LdapContext) factory.getInitialContext( env );
- }
- catch ( NamingException ne )
- {
- log.error( ne.getMessage(), ne );
- throw new ConfigurationException( (String) env.get( Context.PROVIDER_URL ), "Initial context load failed." );
- }
-
- Name searchBaseDn = null;
-
- if ( env.containsKey( KDC_ENTRY_BASEDN_KEY ) )
- {
- String baseDn = (String) env.get( KDC_ENTRY_BASEDN_KEY );
- searchBaseDn = getRelativeName( ctx, baseDn );
- }
-
- return new JndiPrincipalStoreImpl( ctx, searchBaseDn );
- }
-
- private Name getRelativeName( DirContext ctx, String baseDn ) throws ConfigurationException
+ public void deleted( String pid )
{
- Properties props = new Properties();
- props.setProperty( "jndi.syntax.direction", "right_to_left" );
- props.setProperty( "jndi.syntax.separator", "," );
-
- Name searchBaseDn = null;
-
- try
+ synchronized ( servers )
{
- Name ctxRoot = new CompoundName( ctx.getNameInNamespace(), props );
- searchBaseDn = new CompoundName( baseDn, props );
-
- if ( !searchBaseDn.startsWith( ctxRoot ) )
- {
- throw new ConfigurationException( baseDn, "Invalid search base for Kerberos principals." );
- }
+ KerberosServer server = (KerberosServer) servers.remove( pid );
- for ( int ii = 0; ii < ctxRoot.size(); ii++ )
+ if ( server != null )
{
- searchBaseDn.remove( 0 );
+ server.destroy();
}
}
- catch ( NamingException e )
- {
- throw new ConfigurationException( baseDn, "Failed to initialize search base for Kerberos principals." );
- }
-
- return searchBaseDn;
- }
-
- private void loadEnvironment( Hashtable env )
- {
- env.put( Context.PROVIDER_URL, "dc=example,dc=com" );
- env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.CoreContextFactory" );
-
- env.put( KDC_ENTRY_BASEDN_KEY, "ou=Users,dc=example,dc=com" );
- }
-
- public void deleted( String pid )
- {
- KerberosServer server = (KerberosServer) servers.remove( pid );
-
- if ( server != null )
- {
- server.destroy();
- }
}
public String getName()
@@ -183,28 +106,15 @@
/**
* All required services have been bound, but our service(s) are not yet
- * registered. So, we check the Config Admin service for configs or we
- * start a server with its default properties.
+ * registered. If there is no Config Admin we start a server with default properties.
*/
public void activate()
{
try
{
- Configuration[] configs = null;
-
- if ( cm != null )
- {
- String filter = "(service.factoryPid=" + FACTORY_PID + ")";
- configs = cm.listConfigurations( filter );
-
- log.debug( "filter: " + filter );
- log.debug( "configs.length: " + configs.length );
- log.debug( "configs[ 0 ]: " + configs[ 0 ] );
- }
-
- if ( cm == null || configs == null || configs.length == 0 )
+ if ( cm == null )
{
- updated( KerberosServerFactory.DEFAULT_PID, KerberosConfig.getDefaultConfig() );
+ updated( DEFAULT_PID, new Hashtable( KdcConfiguration.getDefaultConfig() ) );
}
}
catch ( Exception e )
@@ -223,11 +133,17 @@
*/
public void deactivate()
{
- Iterator it = servers.keySet().iterator();
-
- while ( it.hasNext() )
+ synchronized ( servers )
{
- deleted( (String) it.next() );
+ Iterator it = servers.values().iterator();
+
+ while ( it.hasNext() )
+ {
+ KerberosServer server = (KerberosServer) it.next();
+ server.destroy();
+ }
+
+ servers.clear();
}
}
Modified: directory/standalone/trunk/osgi/launcher/src/main/java/org/apache/launcher/Launcher.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/launcher/src/main/java/org/apache/launcher/Launcher.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/launcher/src/main/java/org/apache/launcher/Launcher.java (original)
+++ directory/standalone/trunk/osgi/launcher/src/main/java/org/apache/launcher/Launcher.java Thu Oct 27 18:30:18 2005
@@ -30,7 +30,8 @@
import org.ungoverned.oscar.Oscar;
/**
- * Launcher.
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
*/
public class Launcher
{
@@ -38,8 +39,8 @@
private static final Logger log = LoggerFactory.getLogger( Launcher.class );
/** Description of the Field */
- private final static String DFLT_HOME_KEY = "launcher.home";
- private final static String DFLT_PROFILE = "launcher";
+ private final static String DEFAULT_HOME_KEY = "launcher.home";
+ private final static String DEFAULT_PROFILE = "launcher";
/** Array of launchable program "names", together with classes which contain their main methods */
private static String[] launchables = { "app1", "app2", "app3", "app4" };
@@ -60,7 +61,7 @@
System.err.println( "Fatal error: must specify program to launch" );
}
- launcherHome = System.getProperty( DFLT_HOME_KEY );
+ launcherHome = System.getProperty( DEFAULT_HOME_KEY );
if ( launcherHome == null )
{
throw new IllegalArgumentException( "launcher.home not set" );
@@ -214,7 +215,7 @@
*/
private static void launchVtmp( String[] argv ) throws Exception
{
- String profile = DFLT_PROFILE;
+ String profile = DEFAULT_PROFILE;
if ( argv.length > 0 )
{
profile = new String( argv[ 0 ] );
Modified: directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapConfig.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapConfig.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapConfig.java (original)
+++ directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapConfig.java Thu Oct 27 18:30:18 2005
@@ -18,29 +18,31 @@
package org.apache.ldap;
import java.util.Dictionary;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.ldap.server.DirectoryService;
import org.apache.ldap.server.configuration.Configuration;
-import org.osgi.service.cm.ConfigurationException;
+import org.apache.ldap.server.configuration.ConfigurationException;
public class LdapConfig extends Configuration
{
- private static String SERVICE_PID = "service.pid";
- private static String PID = "org.apache.ldap";
- private static String LDAP_PORT_KEY = "ldap.port";
- private static String LDAPS_PORT_KEY = "ldaps.port";
+ public static String LDAP_PORT_KEY = "ldap.port";
+ public static String LDAPS_PORT_KEY = "ldaps.port";
+
private static int LDAP_PORT_DEFAULT = 389;
private static int LDAPS_PORT_DEFAULT = 636;
+
+ private static String SERVICE_PID = "service.pid";
+ private static String PID = "org.apache.ldap";
private static String name = "Apache LDAP Service";
- private int port;
- private int securePort;
+ private Map configuration = new HashMap();
/**
* Creates a new instance with default settings.
*/
- public LdapConfig() throws ConfigurationException
+ public LdapConfig()
{
this( getDefaultConfig() );
}
@@ -49,42 +51,46 @@
* Creates a new instance with default settings that operates on the
* {@link DirectoryService} with the specified ID.
*/
- public LdapConfig( String instanceId ) throws ConfigurationException
+ public LdapConfig( String instanceId )
{
this( getDefaultConfig() );
setInstanceId( instanceId );
}
- public LdapConfig( Dictionary configuration ) throws ConfigurationException
+ public LdapConfig( Map properties )
{
- if ( configuration == null )
+ if ( properties == null )
{
configuration = getDefaultConfig();
}
+ else
+ {
+ configuration.putAll( properties );
+ }
- port = ( (Integer) configuration.get( LDAP_PORT_KEY ) ).intValue();
+ int port = getPort();
if ( port < 1 || port > 0xFFFF )
{
- throw new ConfigurationException( LDAP_PORT_KEY, "invalid value=" + port );
+ throw new ConfigurationException( "Invalid value: " + LDAP_PORT_KEY + "=" + port );
}
- securePort = ( (Integer) configuration.get( LDAPS_PORT_KEY ) ).intValue();
+ int securePort = getSecurePort();
if ( securePort < 1 || securePort > 0xFFFF )
{
- throw new ConfigurationException( LDAPS_PORT_KEY, "invalid value=" + securePort );
+ throw new ConfigurationException( "Invalid value: " + LDAPS_PORT_KEY + "=" + securePort );
}
}
public boolean isDifferent( Dictionary config )
{
- if ( port != ( (Integer) config.get( LDAP_PORT_KEY ) ).intValue() )
+ if ( getPort() != ( (Integer) config.get( LDAP_PORT_KEY ) ).intValue() )
{
return true;
}
- if ( securePort != ( (Integer) config.get( LDAPS_PORT_KEY ) ).intValue() )
+ if ( getSecurePort() != ( (Integer) config.get( LDAPS_PORT_KEY ) ).intValue() )
{
return true;
}
@@ -99,22 +105,41 @@
public int getPort()
{
- return port;
+ String key = LDAP_PORT_KEY;
+
+ if ( configuration.containsKey( key ) )
+ {
+ return Integer.parseInt( get( key ) );
+ }
+
+ return LDAP_PORT_DEFAULT;
}
public int getSecurePort()
{
- return securePort;
+ String key = LDAPS_PORT_KEY;
+
+ if ( configuration.containsKey( key ) )
+ {
+ return Integer.parseInt( get( key ) );
+ }
+
+ return LDAPS_PORT_DEFAULT;
}
- public static Dictionary getDefaultConfig()
+ public static Map getDefaultConfig()
{
- Dictionary defaults = new Hashtable();
+ Map defaults = new HashMap();
defaults.put( SERVICE_PID, PID );
defaults.put( LDAP_PORT_KEY, Integer.getInteger( LDAP_PORT_KEY, new Integer( LDAP_PORT_DEFAULT ) ) );
defaults.put( LDAPS_PORT_KEY, Integer.getInteger( LDAPS_PORT_KEY, new Integer( LDAPS_PORT_DEFAULT ) ) );
return defaults;
+ }
+
+ private String get( String key )
+ {
+ return (String) configuration.get( key );
}
}
Modified: directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapServerFactory.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapServerFactory.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapServerFactory.java (original)
+++ directory/standalone/trunk/osgi/ldap/src/main/java/org/apache/ldap/LdapServerFactory.java Thu Oct 27 18:30:18 2005
@@ -29,7 +29,7 @@
import org.apache.ldap.server.configuration.StartupConfiguration;
import org.apache.mina.registry.ServiceRegistry;
-import org.osgi.service.cm.Configuration;
+import org.apache.protocol.common.MapAdapter;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedServiceFactory;
@@ -42,8 +42,7 @@
/** the log for this class */
private static final Logger log = LoggerFactory.getLogger( LdapServerFactory.class );
- private static final String FACTORY_PID = "org.apache.ldap";
- private static final String DEFAULT_PID = FACTORY_PID + ".default";
+ private static final String DEFAULT_PID = "org.apache.ldap.default";
private Map servers = Collections.synchronizedMap( new HashMap() );
private ServiceRegistry registry;
@@ -55,7 +54,7 @@
{
log.debug( getName() + " updating with " + config );
- LdapConfig ldapConfig = new LdapConfig( config );
+ LdapConfig ldapConfig = new LdapConfig( new MapAdapter( config ) );
synchronized ( servers )
{
@@ -104,8 +103,7 @@
/**
* All required services have been bound, but our service(s) are not yet
- * registered. So, we check the Config Admin service for configs or we
- * start a server with its default properties.
+ * registered. If there is no Config Admin we start a server with default properties.
*/
public void activate()
{
@@ -114,20 +112,9 @@
env = new Hashtable( new StartupConfiguration().toJndiEnvironment() );
loadEnvironment( env );
- Configuration[] configs = null;
-
- if ( cm != null )
- {
- String filter = "(service.factoryPid=" + FACTORY_PID + ")";
- configs = cm.listConfigurations( filter );
-
- log.debug( "filter: " + filter );
- log.debug( "configs.length: " + configs.length );
- }
-
- if ( cm == null || configs == null || configs.length == 0 )
+ if ( cm == null )
{
- updated( DEFAULT_PID, LdapConfig.getDefaultConfig() );
+ updated( DEFAULT_PID, new Hashtable( LdapConfig.getDefaultConfig() ) );
}
}
catch ( Exception e )
Modified: directory/standalone/trunk/osgi/loader/src/main/java/org/apache/ldap/server/loader/LdifFileLoader.java
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/loader/src/main/java/org/apache/ldap/server/loader/LdifFileLoader.java?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/loader/src/main/java/org/apache/ldap/server/loader/LdifFileLoader.java (original)
+++ directory/standalone/trunk/osgi/loader/src/main/java/org/apache/ldap/server/loader/LdifFileLoader.java Thu Oct 27 18:30:18 2005
@@ -196,6 +196,8 @@
Properties props = new Properties();
props.setProperty( "jndi.syntax.direction", "right_to_left" );
props.setProperty( "jndi.syntax.separator", "," );
+ props.setProperty( "jndi.syntax.ignorecase", "true" );
+ props.setProperty( "jndi.syntax.trimblanks", "true" );
Name searchBaseDn = null;
Modified: directory/standalone/trunk/osgi/project.xml
URL: http://svn.apache.org/viewcvs/directory/standalone/trunk/osgi/project.xml?rev=329026&r1=329025&r2=329026&view=diff
==============================================================================
--- directory/standalone/trunk/osgi/project.xml (original)
+++ directory/standalone/trunk/osgi/project.xml Thu Oct 27 18:30:18 2005
@@ -87,6 +87,14 @@
<version>0.9.3-SNAPSHOT</version>
</dependency>
<dependency>
+ <groupId>directory-shared</groupId>
+ <artifactId>protocol-common</artifactId>
+ <version>0.5.0-SNAPSHOT</version>
+ <properties>
+ <osgi.jar.bundle>true</osgi.jar.bundle>
+ </properties>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
@@ -118,7 +126,7 @@
<dependency>
<groupId>directory-network</groupId>
<artifactId>mina</artifactId>
- <version>0.7.3-SNAPSHOT</version>
+ <version>0.8.0</version>
</dependency>
<dependency>
<groupId>maven</groupId>