Try this (mind the semi-pseudo-code):
package spring;
import org.springframework.security.ldap.server.ApacheDSContainer;
public final class EmbeddedApacheDsConfigurer implements BeanPostProcessor {
private String workingDirectory;
public void setWorkingDirectory(String workingDirectory) {
this.workingDirectory = workingDirectory;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof ApacheDSContainer) {
((ApacheDSContainer)bean).setWorkingDirectory(new File(workingDirectory));
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
}
Then in your test bean config:
<bean class="spring.EmbeddedApacheDsConfigurer" p:workingDirectory="target/apacheds" />
This assumes Maven's working dir gets set to the root of the project upon running tests.