|  | @@ -35,8 +35,13 @@ import javax.naming.directory.DirContext;
 | 
	
		
			
				|  |  |  import java.util.Properties;
 | 
	
		
			
				|  |  |  import java.util.Set;
 | 
	
		
			
				|  |  |  import java.util.HashSet;
 | 
	
		
			
				|  |  | +import java.io.File;
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  | + * An embedded LDAP test server, complete with test data for running the
 | 
	
		
			
				|  |  | + * unit tests against.
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  |   * @author Luke Taylor
 | 
	
		
			
				|  |  |   * @version $Id$
 | 
	
		
			
				|  |  |   */
 | 
	
	
		
			
				|  | @@ -48,6 +53,11 @@ public class LdapTestServer {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private StartupConfiguration cfg;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // Move the working dir to the temp directory
 | 
	
		
			
				|  |  | +    private File workingDir = new File( System.getProperty("java.io.tmpdir")
 | 
	
		
			
				|  |  | +            + File.separator + "apacheds-work" );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      //~ Constructors ================================================================
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -66,12 +76,17 @@ public class LdapTestServer {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void startLdapServer(boolean embedded) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if(embedded) {
 | 
	
		
			
				|  |  |              cfg = new MutableStartupConfiguration();
 | 
	
		
			
				|  |  | +            ((MutableStartupConfiguration)cfg).setWorkingDirectory(workingDir);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              cfg = new MutableServerStartupConfiguration();
 | 
	
		
			
				|  |  | +            ((MutableServerStartupConfiguration)cfg).setWorkingDirectory(workingDir);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        System.out.println("Working directory is " + workingDir.getAbsolutePath());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          initConfiguration();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Properties env = new Properties();
 | 
	
	
		
			
				|  | @@ -82,7 +97,6 @@ public class LdapTestServer {
 | 
	
		
			
				|  |  |          env.putAll( cfg.toJndiEnvironment() );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            // TODO: Remove all children on startup
 | 
	
		
			
				|  |  |              serverContext = new InitialDirContext( env );
 | 
	
		
			
				|  |  |          } catch (NamingException e) {
 | 
	
		
			
				|  |  |              System.err.println("Failed to start Apache DS");
 | 
	
	
		
			
				|  | @@ -182,7 +196,7 @@ public class LdapTestServer {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              serverContext.createSubcontext( "cn="+cn+",ou=groups", group );
 | 
	
		
			
				|  |  |          } catch(NameAlreadyBoundException ignore) {
 | 
	
		
			
				|  |  | -            System.out.println(" group " + cn + " already exists.");
 | 
	
		
			
				|  |  | +//            System.out.println(" group " + cn + " already exists.");
 | 
	
		
			
				|  |  |          } catch (NamingException ne) {
 | 
	
		
			
				|  |  |              System.err.println("Failed to create group.");
 | 
	
		
			
				|  |  |              ne.printStackTrace();
 | 
	
	
		
			
				|  | @@ -190,6 +204,8 @@ public class LdapTestServer {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void initConfiguration() {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // Create the partition for the acegi tests
 | 
	
		
			
				|  |  |          MutableDirectoryPartitionConfiguration acegiDit = new MutableDirectoryPartitionConfiguration();
 | 
	
		
			
				|  |  |          acegiDit.setName("acegisecurity");
 | 
	
		
			
				|  |  |          acegiDit.setSuffix("dc=acegisecurity,dc=org");
 |