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 2010/10/25 16:05:48 UTC

svn commit: r1027126 - in /directory: apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ apacheds/bra...

Author: elecharny
Date: Mon Oct 25 14:05:47 2010
New Revision: 1027126

URL: http://svn.apache.org/viewvc?rev=1027126&view=rev
Log:
Made the DS config reader be almost happy

Modified:
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ChangePasswordServerBean.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/JdbmPartitionBean.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/PartitionBean.java
    directory/apacheds/branches/apacheds-config/server-config/src/main/resources/config.ldif
    directory/apacheds/branches/apacheds-config/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
    directory/shared/branches/shared-config/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.250.ldif

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java Mon Oct 25 14:05:47 2010
@@ -31,6 +31,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -852,6 +853,12 @@ public class ConfigPartitionReader
             // Get the entry attribute for this field
             EntryAttribute fieldAttr = entry.get( fieldName );
             
+            if ( ( fieldAttr == null ) && ( mandatory ) )
+            {
+                System.out.println( "!!! Attribute " + fieldName + " is mandatory and is not present for the Entry " + entry.getDn() );
+                continue;
+            }
+            
             AttributeType beanAT = schemaManager.getAttributeType( fieldName );
             
             // Check if this AT has the ads-compositeElement as a superior
@@ -892,7 +899,7 @@ public class ConfigPartitionReader
                     // We have to remove the 's' at the end of the field name
                     String attributeName = fieldName.substring( 0, fieldName.length() - 1 );
                     
-                    List<AdsBaseBean> beans = read( newBase, attributeName, SearchScope.ONELEVEL, mandatory );
+                    Collection<AdsBaseBean> beans = read( newBase, attributeName, SearchScope.ONELEVEL, mandatory );
                     beanField.set( bean, beans );
                 }
             }

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ChangePasswordServerBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ChangePasswordServerBean.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ChangePasswordServerBean.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/ChangePasswordServerBean.java Mon Oct 25 14:05:47 2010
@@ -228,7 +228,7 @@ public class ChangePasswordServerBean ex
         StringBuilder sb = new StringBuilder();
         
         sb.append( tabs ).append( "ChangePasswordServer :\n" );
-        sb.append( super.toString( tabs ) );
+        sb.append( super.toString( tabs + "  " ) );
         sb.append( toString( tabs, "  change password service principal", chgpwdserviceprincipal ) );
         sb.append( toString( tabs, "  KRB primary realm", krbprimaryrealm ) );
         

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java Mon Oct 25 14:05:47 2010
@@ -20,8 +20,8 @@
 package org.apache.directory.server.config.beans;
 
 
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.directory.server.core.authn.PasswordPolicyConfiguration;
 
@@ -67,13 +67,13 @@ public class DirectoryServiceBean extend
     private JournalBean journal;
 
     /** The servers */
-    private Set<ServerBean> servers;
+    private List<ServerBean> servers = new ArrayList<ServerBean>();
 
     /** The list of declared interceptors */
-    private List<InterceptorBean> interceptors;
+    private List<InterceptorBean> interceptors = new ArrayList<InterceptorBean>();
 
     /** The set of associated partitions */
-    private List<PartitionBean> partitions;
+    private List<PartitionBean> partitions = new ArrayList<PartitionBean>();
 
     /** The reference to the Password Policy component */
     private PasswordPolicyConfiguration passwordpolicy;
@@ -157,6 +157,20 @@ public class DirectoryServiceBean extend
 
 
     /**
+     * Adds the interceptors in the server.
+     *
+     * @param interceptors the interceptors to be added in the server.
+     */
+    public void addinterceptors( InterceptorBean... interceptors )
+    {
+        for ( InterceptorBean interceptor : interceptors )
+        {
+            this.interceptors.add( interceptor );
+        }
+    }
+
+
+    /**
      * @return the dsAccessControlEnabled
      */
     public boolean isDsAccessControlEnabled()
@@ -337,6 +351,48 @@ public class DirectoryServiceBean extend
 
 
     /**
+     * @param partitions the partitions to add
+     */
+    public void addpartitions( PartitionBean... partitions )
+    {
+        for ( PartitionBean partition : partitions )
+        {
+            this.partitions.add( partition );
+        }
+    }
+
+
+    /**
+     * @return the servers
+     */
+    public List<ServerBean> getServers()
+    {
+        return servers;
+    }
+
+
+    /**
+     * @param servers the servers to set
+     */
+    public void setServers( List<ServerBean> servers )
+    {
+        this.servers = servers;
+    }
+
+
+    /**
+     * @param servers the servers to add
+     */
+    public void addservers( ServerBean... servers )
+    {
+        for ( ServerBean server : servers )
+        {
+            this.servers.add( server );
+        }
+    }
+
+    
+    /**
      * @return the passwordPolicy
      */
     public PasswordPolicyConfiguration getPasswordPolicy()
@@ -386,9 +442,17 @@ public class DirectoryServiceBean extend
         sb.append( "  directoryService ID : " ).append( directoryserviceid ).append( '\n' );
         sb.append( "  replica ID : " ).append( dsreplicaid ).append( '\n' );
         sb.append( "  working directory : " ).append( dsworkingdirectory ).append( '\n' );
+        sb.append( toString( "  ", "accessControl enabled", dsaccesscontrolenabled ) );
+        sb.append( toString( "  ", "allow anonymous access", dsallowanonymousaccess ) );
+        sb.append( toString( "  ", "denormalized attributes enabled", dsdenormalizeopattrsenabled ) );
+        sb.append( toString( "  ", "password hidden", dspasswordhidden ) );
+        sb.append( "  max PDU size : " ).append( dsmaxpdusize ).append( '\n' );
+        sb.append( "  sync period millisecond : " ).append( dssyncperiodmillis ).append( '\n' );
+        sb.append( toString( "  ", "test entries", dstestentries ) );
+        
         sb.append( "  interceptors : \n" );
         
-        if ( interceptors != null )
+        if ( ( interceptors != null ) && ( interceptors.size() > 0 ) )
         {
             for ( InterceptorBean interceptor : interceptors )
             {
@@ -398,33 +462,14 @@ public class DirectoryServiceBean extend
         
         sb.append( "  partitions : \n" );
         
-        if ( partitions != null )
+        if ( ( partitions != null ) && ( partitions.size() > 0 ) )
         {
             for ( PartitionBean partition : partitions )
             {
                 sb.append( partition.toString( "    " ) );
             }
         }
-        
-        
-        sb.append( "  servers : \n" );
-        
-        if ( servers != null )
-        {
-            for ( ServerBean server : servers )
-            {
-                sb.append( server.toString( "    " ) );
-            }
-        }
 
-        sb.append( toString( "  ", "accessControl enabled", dsaccesscontrolenabled ) );
-        sb.append( toString( "  ", "allow anonymous access", dsallowanonymousaccess ) );
-        sb.append( toString( "  ", "denormalized attributes enabled", dsdenormalizeopattrsenabled ) );
-        sb.append( toString( "  ", "password hidden", dspasswordhidden ) );
-        sb.append( "  max PDU size : " ).append( dsmaxpdusize ).append( '\n' );
-        sb.append( "  sync period millisecond : " ).append( dssyncperiodmillis ).append( '\n' );
-        sb.append( "  test entries : " ).append( dstestentries ).append( '\n' );
-        
         if ( journal != null )
         {
             sb.append( "  journal : \n" );
@@ -441,6 +486,16 @@ public class DirectoryServiceBean extend
             sb.append( passwordpolicy.toString( "    " ) );
         }
         
+        sb.append( "  servers : \n" );
+        
+        if ( ( servers != null ) && ( servers.size() > 0 ) )
+        {
+            for ( ServerBean server : servers )
+            {
+                sb.append( server.toString( "    " ) );
+            }
+        }
+
         sb.append( '\n' );
 
         return sb.toString();

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java Mon Oct 25 14:05:47 2010
@@ -26,7 +26,7 @@ package org.apache.directory.server.conf
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class InterceptorBean implements Comparable<InterceptorBean>
+public class InterceptorBean extends AdsBaseBean implements Comparable<InterceptorBean>
 {
     /** The Interceptor ID */
     private String interceptorid;
@@ -128,9 +128,9 @@ public class InterceptorBean implements 
     {
         StringBuilder sb = new StringBuilder();
         
-        sb.append( tabs ).append( "interceptor[" );
-        sb.append( interceptorid ).append( "] ID : " ).append(  interceptorid ).append( '\n' );
-        sb.append( tabs ).append( "class name : " ).append(  interceptorclassname ).append( '\n' );
+        sb.append( tabs ).append( "interceptor[" ).append( interceptororder ).append( "] : " ).append( '\n' );
+        sb.append( tabs ).append( "  interceptor id : " ).append( interceptorid ).append( '\n' );
+        sb.append( tabs ).append( "  class name : " ).append(  interceptorclassname ).append( '\n' );
         
         return sb.toString();
     }

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/JdbmPartitionBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/JdbmPartitionBean.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/JdbmPartitionBean.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/JdbmPartitionBean.java Mon Oct 25 14:05:47 2010
@@ -94,8 +94,8 @@ public class JdbmPartitionBean extends P
         StringBuilder sb = new StringBuilder();
         
         sb.append( tabs ).append( "JdbmPartitionBean :\n" );
-        sb.append( super.toString( tabs + "  " ) );
-        sb.append( tabs ).append( "  partition cache size" ).append( partitioncachesize ).append( '\n' );
+        sb.append( super.toString( tabs ) );
+        sb.append( tabs ).append( "  partition cache size : " ).append( partitioncachesize ).append( '\n' );
         sb.append( toString( tabs, "  jdbm partition optimizer enabled", jdbmpartitionoptimizerenabled ) );
         
         return sb.toString();

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/PartitionBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/PartitionBean.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/PartitionBean.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/java/org/apache/directory/server/config/beans/PartitionBean.java Mon Oct 25 14:05:47 2010
@@ -21,8 +21,6 @@ package org.apache.directory.server.conf
 
 import java.util.List;
 
-import org.apache.directory.shared.ldap.name.DN;
-
 /**
  * A class used to store the Partition configuration. It can't be instanciated
  *
@@ -34,7 +32,7 @@ public abstract class PartitionBean exte
     private String partitionid;
     
     /** The Partition suffix */
-    private DN partitionsuffix;
+    private String partitionsuffix;
     
     /** Tells if the data should be flushed to disk immediately */
     private boolean partitionsynconwrite;
@@ -71,7 +69,7 @@ public abstract class PartitionBean exte
     /**
      * @return the partitionSuffix
      */
-    public DN getPartitionSuffix()
+    public String getPartitionSuffix()
     {
         return partitionsuffix;
     }
@@ -80,7 +78,7 @@ public abstract class PartitionBean exte
     /**
      * @param partitionSuffix the partitionSuffix to set
      */
-    public void setPartitionSuffix( DN partitionSuffix )
+    public void setPartitionSuffix( String partitionSuffix )
     {
         this.partitionsuffix = partitionSuffix;
     }
@@ -130,7 +128,7 @@ public abstract class PartitionBean exte
         StringBuilder sb = new StringBuilder();
         
         sb.append( super.toString( tabs + "  " ) );
-        sb.append( tabs ).append( "  partition ID" ).append( partitionid ).append( '\n' );
+        sb.append( tabs ).append( "  partition ID : " ).append( partitionid ).append( '\n' );
         sb.append( tabs ).append( "  suffix : " ).append( partitionsuffix ).append( '\n' );
         sb.append( toString( tabs, "  sync on write", partitionsynconwrite ) );
         

Modified: directory/apacheds/branches/apacheds-config/server-config/src/main/resources/config.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/main/resources/config.ldif?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/main/resources/config.ldif (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/main/resources/config.ldif Mon Oct 25 14:05:47 2010
@@ -19,6 +19,7 @@ ads-dsmaxpdusize: 2000000
 ads-dsallowanonymousaccess: true
 ads-dsaccesscontrolenabled: false
 ads-dsdenormalizeopattrsenabled: false
+ads-dsWorkingDirectory: /tmp
 ads-servers: changepasswordserver
 ads-servers: dns
 ads-servers: httpserver
@@ -188,7 +189,7 @@ objectclass: organizationalUnit
 objectclass: top
 
 dn: ads-partitionId=system,ou=partitions,ads-directoryServiceId=default,ou=config
-ads-partitionsuffix: ou=system
+ads-partitionSuffix: ou=system
 ads-jdbmpartitionoptimizerenabled: true
 ads-partitioncachesize: 100
 ads-partitionsynconwrite: true
@@ -284,7 +285,7 @@ objectclass: top
 ads-enabled: true
 
 dn: ads-partitionId=example,ou=partitions,ads-directoryServiceId=default,ou=config
-ads-partitionsuffix: dc=example,dc=com
+ads-partitionSuffix: dc=example,dc=com
 ads-jdbmpartitionoptimizerenabled: true
 ads-partitioncachesize: 100
 ads-partitionsynconwrite: true

Modified: directory/apacheds/branches/apacheds-config/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-config/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-config/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java (original)
+++ directory/apacheds/branches/apacheds-config/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java Mon Oct 25 14:05:47 2010
@@ -22,6 +22,7 @@ package org.apache.directory.server.conf
 
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
@@ -31,6 +32,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.directory.junit.tools.Concurrent;
 import org.apache.directory.junit.tools.ConcurrentJunitRunner;
 import org.apache.directory.server.config.beans.ConfigBean;
+import org.apache.directory.server.config.beans.DirectoryServiceBean;
 import org.apache.directory.server.core.DirectoryService;
 import org.apache.directory.server.core.partition.ldif.SingleFileLdifPartition;
 import org.apache.directory.server.ldap.LdapServer;
@@ -64,6 +66,8 @@ public class ConfigPartitionReaderTest
 
     private static SchemaManager schemaManager;
 
+    private static File workDir = new File( System.getProperty( "java.io.tmpdir" ) + "/server-work" );
+
 
     @BeforeClass
     public static void readConfig() throws Exception
@@ -99,9 +103,23 @@ public class ConfigPartitionReaderTest
             throw new Exception( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
         }
 
+    }
+
+
+    @AfterClass
+    public static void cleanup() throws Exception
+    {
+        server.stop();
+        dirService.shutdown();
+    }
+
+
+    @Test
+    public void testDirService() throws Exception
+    {
         File configDir = new File( workDir, "config" ); // could be any directory, cause the config is now in a single file
         
-        String configFile = LdifConfigExtractor.extractSingleFileConfig( configDir, true );
+        String configFile = LdifConfigExtractor.extractSingleFileConfig( configDir, "config.ldif", true );
 
         SingleFileLdifPartition configPartition = new SingleFileLdifPartition( configFile );
         configPartition.setId( "config" );
@@ -113,6 +131,10 @@ public class ConfigPartitionReaderTest
         ConfigPartitionReader cpReader = new ConfigPartitionReader( configPartition, workDir );
         
         ConfigBean configBean = cpReader.readConfig( new DN( "ou=config" ), ConfigSchemaConstants.ADS_DIRECTORY_SERVICE_OC.getValue() );
+
+        assertNotNull( configBean );
+        DirectoryServiceBean directoryServiceBean = (DirectoryServiceBean)configBean.getDirectoryServiceBeans().get( 0 );
+        assertNotNull( directoryServiceBean );
         /*
         dirService = createDirectoryService( configBean );
 
@@ -146,20 +168,7 @@ public class ConfigPartitionReaderTest
 
         server.start();
         */
-    }
 
-
-    @AfterClass
-    public static void cleanup() throws Exception
-    {
-        server.stop();
-        dirService.shutdown();
-    }
-
-
-    @Test
-    public void testDirService()
-    {
         assertTrue( dirService.isStarted() );
         assertEquals( "default", dirService.getInstanceId() );
     }

Modified: directory/shared/branches/shared-config/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.250.ldif
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-config/ldap-schema/src/main/resources/schema/ou%3Dschema/cn%3Dadsconfig/ou%3Dobjectclasses/m-oid%3D1.3.6.1.4.1.18060.0.4.1.3.250.ldif?rev=1027126&r1=1027125&r2=1027126&view=diff
==============================================================================
--- directory/shared/branches/shared-config/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.250.ldif (original)
+++ directory/shared/branches/shared-config/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.250.ldif Mon Oct 25 14:05:47 2010
@@ -13,4 +13,4 @@ createtimestamp: 20100111145218Z
 creatorsname: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
 entrycsn: 20100111202218.063000Z#000000#000#000000
 m-must: ads-serverId
-m-must: ads-transports
+m-may: ads-transports