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/06/11 04:38:57 UTC
svn commit: r190061 - in /directory/apacheds/branches/direve-158:
core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java
main/project.properties main/project.xml main/server.properties
main/server.xml main/src/main/java/org/apache/ldap/server/ServerMain.java
project.properties
Author: trustin
Date: Fri Jun 10 19:38:56 2005
New Revision: 190061
URL: http://svn.apache.org/viewcvs?rev=190061&view=rev
Log:
* Added AttributesPropertyEditor to integrate with Spring Framework
* Finished migrating apacheds/main to Spring Framework
* Set default sourcer version to 1.4
Added:
directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java (with props)
directory/apacheds/branches/direve-158/main/server.xml
Removed:
directory/apacheds/branches/direve-158/main/server.properties
Modified:
directory/apacheds/branches/direve-158/main/project.properties
directory/apacheds/branches/direve-158/main/project.xml
directory/apacheds/branches/direve-158/main/src/main/java/org/apache/ldap/server/ServerMain.java
directory/apacheds/branches/direve-158/project.properties
Added: directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java?rev=190061&view=auto
==============================================================================
--- directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java (added)
+++ directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java Fri Jun 10 19:38:56 2005
@@ -0,0 +1,149 @@
+package org.apache.ldap.server.configuration;
+
+import java.beans.PropertyEditorSupport;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttributes;
+
+import org.apache.commons.collections.MultiHashMap;
+import org.apache.ldap.common.ldif.LdifComposer;
+import org.apache.ldap.common.ldif.LdifComposerImpl;
+import org.apache.ldap.common.ldif.LdifParser;
+import org.apache.ldap.common.ldif.LdifParserImpl;
+import org.apache.ldap.common.util.MultiMap;
+
+public class AttributesPropertyEditor extends PropertyEditorSupport
+{
+
+ public AttributesPropertyEditor()
+ {
+ super();
+ }
+
+ public AttributesPropertyEditor( Object source )
+ {
+ super( source );
+ }
+
+ public String getAsText()
+ {
+ LdifComposer composer = new LdifComposerImpl();
+ MultiMap map = new MultiMap()
+ {
+ private final MultiHashMap map = new MultiHashMap();
+
+ public Object remove( Object arg0, Object arg1 )
+ {
+ return map.remove( arg0, arg1 );
+ }
+
+ public int size()
+ {
+ return map.size();
+ }
+
+ public Object get( Object arg0 )
+ {
+ return map.get( arg0 );
+ }
+
+ public boolean containsValue( Object arg0 )
+ {
+ return map.containsValue( arg0 );
+ }
+
+ public Object put( Object arg0, Object arg1 )
+ {
+ return map.put( arg0, arg1 );
+ }
+
+ public Object remove( Object arg0 )
+ {
+ return map.remove( arg0 );
+ }
+
+ public Collection values()
+ {
+ return map.values();
+ }
+
+ public boolean isEmpty()
+ {
+ return map.isEmpty();
+ }
+
+ public boolean containsKey( Object key )
+ {
+ return map.containsKey( key );
+ }
+
+ public void putAll( Map arg0 )
+ {
+ map.putAll( arg0 );
+ }
+
+ public void clear()
+ {
+ map.clear();
+ }
+
+ public Set keySet()
+ {
+ return map.keySet();
+ }
+
+ public Set entrySet()
+ {
+ return map.entrySet();
+ }
+ };
+
+ Attributes attrs = ( Attributes ) getValue();
+ try
+ {
+ NamingEnumeration e = attrs.getAll();
+ while( e.hasMore() )
+ {
+ Attribute attr = ( Attribute ) e.next();
+ NamingEnumeration e2 = attr.getAll();
+ while( e2.hasMoreElements() )
+ {
+ Object value = e2.next();
+ map.put( attr.getID(), value );
+ }
+ }
+
+ return composer.compose( map );
+ }
+ catch( Exception e )
+ {
+ throw new ConfigurationException( e );
+ }
+ }
+
+ public void setAsText( String text ) throws IllegalArgumentException
+ {
+ if( text == null )
+ {
+ text = "";
+ }
+
+ Attributes attrs = new BasicAttributes( true );
+ LdifParser parser = new LdifParserImpl();
+ try
+ {
+ parser.parse( attrs, text.trim() );
+ setValue( attrs );
+ }
+ catch( NamingException e )
+ {
+ throw ( IllegalArgumentException ) new IllegalArgumentException().initCause( e );
+ }
+ }
+}
Propchange: directory/apacheds/branches/direve-158/core/src/main/java/org/apache/ldap/server/configuration/AttributesPropertyEditor.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Modified: directory/apacheds/branches/direve-158/main/project.properties
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/main/project.properties?rev=190061&r1=190060&r2=190061&view=diff
==============================================================================
--- directory/apacheds/branches/direve-158/main/project.properties (original)
+++ directory/apacheds/branches/direve-158/main/project.properties Fri Jun 10 19:38:56 2005
@@ -1,5 +1,4 @@
-
#
# Javaapp plugin properties
#
Modified: directory/apacheds/branches/direve-158/main/project.xml
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/main/project.xml?rev=190061&r1=190060&r2=190061&view=diff
==============================================================================
--- directory/apacheds/branches/direve-158/main/project.xml (original)
+++ directory/apacheds/branches/direve-158/main/project.xml Fri Jun 10 19:38:56 2005
@@ -151,6 +151,12 @@
<version>1.2.1</version>
<url>http://www.springframework.com/</url>
</dependency>
+ <dependency>
+ <groupId>springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>1.2.1</version>
+ <url>http://www.springframework.com/</url>
+ </dependency>
</dependencies>
<reports>
Added: directory/apacheds/branches/direve-158/main/server.xml
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/main/server.xml?rev=190061&view=auto
==============================================================================
--- directory/apacheds/branches/direve-158/main/server.xml (added)
+++ directory/apacheds/branches/direve-158/main/server.xml Fri Jun 10 19:38:56 2005
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
+ "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+ <bean id="environment" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
+ <property name="properties">
+ <props>
+ <prop key="asn.1.berlib.provider">org.apache.ldap.common.berlib.asn1.SnickersProvider</prop>
+ <prop key="java.naming.security.authentication">simple</prop>
+ <prop key="java.naming.security.principal">uid=admin,ou=system</prop>
+ <prop key="java.naming.security.credentials">secret</prop>
+ <!--
+ <prop key="java.naming.ldap.attributes.binary"></prop>
+ -->
+ </props>
+ </property>
+ </bean>
+
+ <bean id="configuration" class="org.apache.ldap.server.configuration.MutableServerStartupConfiguration">
+ <property name="workingDirectory"><value>apache.org</value></property>
+ <property name="allowAnonymousAccess"><value>false</value></property>
+ <property name="ldapPort"><value>10389</value></property>
+ <property name="contextPartitionConfigurations">
+ <set>
+ <ref bean="apachePartitionConfiguration"/>
+ </set>
+ </property>
+ <property name="bootstrapSchemas">
+ <set>
+ <bean class="org.apache.ldap.server.schema.bootstrap.AutofsSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.CorbaSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.CoreSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.CosineSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.ApacheSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.InetorgpersonSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.JavaSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.Krb5kdcSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.NisSchema"/>
+ <bean class="org.apache.ldap.server.schema.bootstrap.SystemSchema"/>
+ </set>
+ </property>
+ </bean>
+
+ <bean id="apachePartitionConfiguration" class="org.apache.ldap.server.configuration.MutableContextPartitionConfiguration">
+ <property name="name"><value>apache</value></property>
+ <property name="suffix"><value>dc=apache,dc=org</value></property>
+ <property name="indexedAttributes">
+ <set>
+ <value>objectClass</value>
+ <value>ou</value>
+ <value>uid</value>
+ </set>
+ </property>
+ <property name="contextEntry">
+ <value>
+ objectClass: top
+ objectClass: domain
+ objectClass: extensibleObject
+ dc: apache
+ </value>
+ </property>
+ </bean>
+
+ <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
+ <property name="customEditors">
+ <map>
+ <entry key="javax.naming.directory.Attributes">
+ <bean class="org.apache.ldap.server.configuration.AttributesPropertyEditor"/>
+ </entry>
+ </map>
+ </property>
+ </bean>
+</beans>
\ No newline at end of file
Modified: directory/apacheds/branches/direve-158/main/src/main/java/org/apache/ldap/server/ServerMain.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/main/src/main/java/org/apache/ldap/server/ServerMain.java?rev=190061&r1=190060&r2=190061&view=diff
==============================================================================
--- directory/apacheds/branches/direve-158/main/src/main/java/org/apache/ldap/server/ServerMain.java (original)
+++ directory/apacheds/branches/direve-158/main/src/main/java/org/apache/ldap/server/ServerMain.java Fri Jun 10 19:38:56 2005
@@ -17,14 +17,17 @@
package org.apache.ldap.server;
-import java.io.File;
import java.util.Properties;
import javax.naming.Context;
-import javax.naming.NamingException;
import javax.naming.directory.InitialDirContext;
-import org.apache.ldap.common.util.PropertiesUtils;
+import org.apache.ldap.server.configuration.MutableServerStartupConfiguration;
+import org.apache.ldap.server.configuration.ServerStartupConfiguration;
+import org.apache.ldap.server.configuration.SyncConfiguration;
+import org.apache.ldap.server.jndi.ServerContextFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.FileSystemXmlApplicationContext;
/**
@@ -42,39 +45,31 @@
*
* @param args the arguments
*/
- public static void main( String[] args )
+ public static void main( String[] args ) throws Exception
{
long startTime = System.currentTimeMillis();
Properties env;
+ ServerStartupConfiguration cfg;
if ( args.length > 0 )
{
- System.out.println( "server: loading properties from " + args[0] );
- env = PropertiesUtils.getProperties( new File( args[0] ) );
+ System.out.println( "server: loading settings from " + args[0] );
+ ApplicationContext factory = new FileSystemXmlApplicationContext( args[0] );
+ cfg = ( ServerStartupConfiguration ) factory.getBean( "configuration" );
+ env = ( Properties ) factory.getBean( "environment" );
}
else
{
- System.out.println( "server: using default properties ..." );
+ System.out.println( "server: using default settings ..." );
env = new Properties();
- }
-
- if ( ! env.containsKey( EnvKeys.LDAP_PORT ) )
- {
- int port = LDAP_PORT;
- env.setProperty( EnvKeys.LDAP_PORT, String.valueOf( port ) );
+ cfg = new MutableServerStartupConfiguration();
}
env.setProperty( Context.PROVIDER_URL, "ou=system" );
- env.setProperty( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.ServerContextFactory" );
+ env.setProperty( Context.INITIAL_CONTEXT_FACTORY, ServerContextFactory.class.getName() );
+ env.putAll( cfg.toJndiEnvironment() );
- try
- {
- new InitialDirContext( env );
- }
- catch ( NamingException e )
- {
- e.printStackTrace();
- }
+ new InitialDirContext( env );
System.out.println( "server: started in "
+ ( System.currentTimeMillis() - startTime )
@@ -86,21 +81,13 @@
{
// this is a big time cludge for now to just play
Thread.sleep( 20000 );
-
- try
- {
- env.setProperty( EnvKeys.SYNC, "true" );
- new InitialDirContext( env );
- }
- catch ( NamingException e )
- {
- e.printStackTrace();
- }
}
catch ( InterruptedException e )
{
- e.printStackTrace();
}
+
+ env.putAll( new SyncConfiguration().toJndiEnvironment() );
+ new InitialDirContext( env );
}
}
}
Modified: directory/apacheds/branches/direve-158/project.properties
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/direve-158/project.properties?rev=190061&r1=190060&r2=190061&view=diff
==============================================================================
--- directory/apacheds/branches/direve-158/project.properties (original)
+++ directory/apacheds/branches/direve-158/project.properties Fri Jun 10 19:38:56 2005
@@ -1,3 +1,6 @@
+maven.compile.source = 1.4
+maven.compile.target = 1.4
+
maven.junit.fork=yes
maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory