added a fix to start the server on a available port when the configured port is already in use


git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/branches/cidit@900681 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java b/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
index 056a505..dce24bc 100644
--- a/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
+++ b/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
@@ -32,6 +32,7 @@
 import org.apache.directory.server.core.partition.ldif.LdifPartition;
 import org.apache.directory.server.core.schema.SchemaPartition;
 import org.apache.directory.server.ldap.LdapServer;
+import org.apache.directory.server.protocol.shared.transport.Transport;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.ldif.extractor.SchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
@@ -39,6 +40,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.SchemaLoader;
 import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.mina.util.AvailablePortFinder;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -122,6 +124,18 @@
         server = cpReader.getLdapServer();
         server.setDirectoryService( dirService );
 
+        // this is a hack to use a different port than the one
+        // configured in the actual configuration data
+        // in case the configured port is already in use during the test run
+        Transport[] transports = server.getTransports();
+        for( Transport t : transports )
+        {
+            int port = t.getPort();
+            port = AvailablePortFinder.getNextAvailable( port );
+            t.setPort( port );
+            t.init();
+        }
+
         server.start();
     }