Can you send a copy of the LDAP error 80?
I start and stop ApacheDS for quite a few unit tests without seeing the
problem you mention.
My startup code is identical to yours, more or less, but for the
shutdown I don't bother accessing a shutdown configuration object from
the Spring context:
public static void shutdownApacheEve() throws NamingException
{
Hashtable env = new ShutdownConfiguration().toJndiEnvironment();
env.put(Context.INITIAL_CONTEXT_FACTORY,
CoreContextFactory.class.getName());
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
env.put(Context.SECURITY_CREDENTIALS, "secret");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.PROVIDER_URL, "ou=system");
new InitialDirContext(env);
}
In both my shutdown and startup util methods I specify the
CoreContextFactory as the JDNI context factory, not the
ServerContextFactory .
On a side note, I've been working haphazardly on a memory partition for
exactly this sort of testing. It takes way too long to write to the file
system when you want to start and stop ApacheDS in hundreds of unit
tests. The memory partition should be out available pretty soon (fingers
crossed).
Cheers,
Nick
Gianmaria Clerici wrote:
I am trying to start and stop apache 0.9.2 from my JUnit tests.
This is the code I have.
It starts just fine, and it seems to stop just fine.
But then I start it again, even if there are no errors, it doesn’t
seem to work properly.
I get some weird LDAP error 80.
Can you suggest a better way to shut it down ?
Am I missing something ?
private void startApacheDS() throws NamingException {
Properties env;
ApplicationContext factory = new
FileSystemXmlApplicationContext("config/server.bridgestream.xml");
ServerStartupConfiguration cfg = (ServerStartupConfiguration)
factory.getBean("configuration");
env = (Properties) factory.getBean("environment");
env.setProperty(Context.PROVIDER_URL, "ou=system");
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
ServerContextFactory.class.getName());
env.putAll(cfg.toJndiEnvironment());
new InitialDirContext(env);
}
private void stopApacheDs() throws NamingException {
Properties env;
ApplicationContext factory = new
FileSystemXmlApplicationContext("config/server.bridgestream.xml");
ShutdownConfiguration cfg = (ShutdownConfiguration)
factory.getBean("shutdownConfiguration");
env = (Properties) factory.getBean("environment");
env.setProperty(Context.PROVIDER_URL, "ou=system");
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
ServerContextFactory.class.getName());
env.putAll(cfg.toJndiEnvironment());
new InitialDirContext(env);
}
Of course I added the bean for the shutdownConfiguration to the XML file:
<bean id="shutdownConfiguration"
class="org.apache.ldap.server.configuration.ShutdownConfiguration">
<constructor-arg value="default"/>
</bean>