summaryrefslogtreecommitdiffstats
path: root/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/directory/apacheds/testing/setup/ADSEmbeddedConnectionTemplate.java
blob: 7977f605456c777132966e468f48c0fe724b1487 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */
package org.apache.directory.apacheds.testing.setup;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;

import org.apache.directory.server.core.configuration.MutableStartupConfiguration;
import org.apache.directory.server.core.configuration.ShutdownConfiguration;
import org.apache.log4j.PropertyConfigurator;

/**
 * The Class JNDIEmbeddedConnectionTemplate.
 */
public abstract class ADSEmbeddedConnectionTemplate
extends JNDIConnectionTemplate
{
    public void tearDown() throws NamingException, Exception
    {
        Hashtable<String,Object> env = 
        	new Hashtable<String,Object>();
        
        env = createEnvironment(env);
        
        env.put( 
        		Context.PROVIDER_URL, 
        		SYSTEM_PROVIDER_PATH);
        env.put( 
        		Context.INITIAL_CONTEXT_FACTORY, 
        		"org.apache.directory.server.core.jndi.CoreContextFactory" );
        env.putAll( 
        		new ShutdownConfiguration().toJndiEnvironment() );
        
        new InitialContext( env );
        Runtime.getRuntime().gc();
        super.tearDown();
    }
    
    
    
    public void setUp() throws Exception
    {
    	PropertyConfigurator.
    	configure(NLOG4J_CONFIGURATION_FILEPATH);
        super.setUp();
    }
    
	/**
	 * Connect to an embedded ApacheDS server.
	 * 
	 * @param providerPath the provider path ("ou=schema", ou="system", etc.)
	 * 
	 * @return the ldap context
	 * 
	 * @throws NamingException the naming exception
	 */
	public LdapContext connect( String providerPath ) throws NamingException
	{
		 MutableStartupConfiguration mutableStartupConfiguration = 
	    		new MutableStartupConfiguration();
		 
	    Hashtable<String,Object> adminEnv  =
	    	new Hashtable<String,Object>( );
	    
	    adminEnv.putAll( 
	    			mutableStartupConfiguration.
	    			toJndiEnvironment());
	    
	    adminEnv.put( 
	    		Context.PROVIDER_URL, 
	    		SYSTEM_PROVIDER_PATH);
	    adminEnv.put( 
	    		Context.SECURITY_PRINCIPAL, 
	    		DEFAULT_SECURITY_PRINCIPAL_VALUE);
	    adminEnv.put( 
	    		Context.SECURITY_CREDENTIALS, 
	    		DEFAULT_SECURITY_CREDENTIALS_VALUE);
	    adminEnv.put( 
	    		Context.SECURITY_AUTHENTICATION, 
	    		SIMPLE_SECURITY_AUTHENTICATION_VALUE );
   		new InitialLdapContext( adminEnv, null );

   		
   		
	    Hashtable<String,Object> env            = 
	    	new Hashtable<String,Object>();
	    
	    env.put( 
	    		Context.INITIAL_CONTEXT_FACTORY, 
	    		"org.apache.directory.server.core.jndi.CoreContextFactory" );
	    env.put( 	    		
	    		Context.SECURITY_PRINCIPAL, 
	    		DEFAULT_SECURITY_PRINCIPAL_VALUE);
	    env.put( 
	    		Context.SECURITY_CREDENTIALS, 
	    		DEFAULT_SECURITY_CREDENTIALS_VALUE);
	    env.put( 
	    		Context.SECURITY_AUTHENTICATION, 
	    		SIMPLE_SECURITY_AUTHENTICATION_VALUE );
	    env.put( Context.PROVIDER_URL, providerPath );
	    
	    env.put( Context.PROVIDER_URL, providerPath );
		
	    return new InitialLdapContext( env, null );
		
	}
}