diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java index 41fa481b..e09e3a45 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java @@ -199,4 +199,9 @@ public class ContextSourceAndDataSourceTransactionManager extends "Transaction manager [" + getClass().getName() + "] does not support transaction suspension"); } + + public void afterPropertiesSet() { + super.afterPropertiesSet(); + ldapManagerDelegate.checkRenamingStrategy(); + } } \ No newline at end of file diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java index fdf588b3..45e9565b 100755 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java @@ -17,7 +17,6 @@ package org.springframework.ldap.transaction.compensating.manager; import org.springframework.ldap.core.ContextSource; import org.springframework.ldap.transaction.compensating.TempEntryRenamingStrategy; -import org.springframework.ldap.transaction.compensating.manager.ContextSourceTransactionManagerDelegate; import org.springframework.orm.hibernate3.HibernateTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionException; @@ -199,5 +198,9 @@ public class ContextSourceAndHibernateTransactionManager extends HibernateTransa "Transaction manager [" + getClass().getName() + "] does not support transaction suspension"); } - + + public void afterPropertiesSet() { + super.afterPropertiesSet(); + ldapManagerDelegate.checkRenamingStrategy(); + } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java index 7f0b1716..b5ad9fd8 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java @@ -15,6 +15,7 @@ */ package org.springframework.ldap.transaction.compensating.manager; +import org.springframework.beans.factory.InitializingBean; import org.springframework.ldap.core.ContextSource; import org.springframework.ldap.transaction.compensating.TempEntryRenamingStrategy; import org.springframework.ldap.transaction.compensating.UnbindOperationExecutor; @@ -111,7 +112,7 @@ import org.springframework.transaction.support.DefaultTransactionStatus; * @since 1.2 */ public class ContextSourceTransactionManager extends - AbstractPlatformTransactionManager { + AbstractPlatformTransactionManager implements InitializingBean { private static final long serialVersionUID = 7138208218687237856L; @@ -187,4 +188,8 @@ public class ContextSourceTransactionManager extends public void setRenamingStrategy(TempEntryRenamingStrategy renamingStrategy) { delegate.setRenamingStrategy(renamingStrategy); } + + public void afterPropertiesSet() throws Exception { + delegate.checkRenamingStrategy(); + } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java index b197a20d..bc26dc76 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java @@ -15,9 +15,6 @@ */ package org.springframework.ldap.transaction.compensating.manager; -import javax.naming.NamingException; -import javax.naming.directory.DirContext; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.ldap.core.ContextSource; @@ -28,6 +25,9 @@ import org.springframework.transaction.compensating.support.AbstractCompensating import org.springframework.transaction.compensating.support.CompensatingTransactionHolderSupport; import org.springframework.transaction.compensating.support.DefaultCompensatingTransactionOperationManager; +import javax.naming.NamingException; +import javax.naming.directory.DirContext; + /** * This delegate performs all the work for the * {@link ContextSourceTransactionManager}. The work is delegated in order to @@ -118,4 +118,11 @@ public class ContextSourceTransactionManagerDelegate extends public void setRenamingStrategy(TempEntryRenamingStrategy renamingStrategy) { this.renamingStrategy = renamingStrategy; } + + void checkRenamingStrategy() { + if(renamingStrategy instanceof DefaultTempEntryRenamingStrategy) { + log.warn("Using DefaultTempEntryRenamingStrategy. This is not advised for more complex use; " + + "see reference documentation for additional information on how to configure TempEntryRenamingStrategy."); + } + } } diff --git a/test/integration-tests/src/test/java/org/springframework/ldap/AbstractLdapTemplateIntegrationTest.java b/test/integration-tests/src/test/java/org/springframework/ldap/AbstractLdapTemplateIntegrationTest.java index 45caca27..aed4fbc7 100644 --- a/test/integration-tests/src/test/java/org/springframework/ldap/AbstractLdapTemplateIntegrationTest.java +++ b/test/integration-tests/src/test/java/org/springframework/ldap/AbstractLdapTemplateIntegrationTest.java @@ -19,6 +19,7 @@ import org.junit.Before; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.springframework.ldap.core.ContextSource; import org.springframework.ldap.core.DistinguishedName; import org.springframework.ldap.test.LdapTestUtils; @@ -28,7 +29,6 @@ import javax.naming.NamingException; import java.io.IOException; public abstract class AbstractLdapTemplateIntegrationTest extends AbstractJUnit4SpringContextTests { - private static final ClassPathResource LDIF_FILE_RESOURCE = new ClassPathResource("/setup_data.ldif"); @Autowired @Qualifier("contextSource") @@ -36,13 +36,11 @@ public abstract class AbstractLdapTemplateIntegrationTest extends AbstractJUnit4 @Before public void cleanAndSetup() throws NamingException, IOException { - if (cleanBefore()) { - LdapTestUtils.cleanAndSetup(contextSource, getRoot(), LDIF_FILE_RESOURCE); - } + LdapTestUtils.cleanAndSetup(contextSource, getRoot(), getLdifFileResource()); } - protected boolean cleanBefore() { - return true; + protected Resource getLdifFileResource() { + return new ClassPathResource("/setup_data.ldif"); } protected DistinguishedName getRoot() { diff --git a/test/integration-tests/src/test/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerSubtreeIntegrationTest.java b/test/integration-tests/src/test/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerSubtreeIntegrationTest.java index 8033ad7c..624f8235 100644 --- a/test/integration-tests/src/test/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerSubtreeIntegrationTest.java +++ b/test/integration-tests/src/test/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerSubtreeIntegrationTest.java @@ -15,12 +15,12 @@ */ package org.springframework.ldap.transaction.compensating.manager; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.springframework.ldap.AbstractLdapTemplateIntegrationTest; import org.springframework.ldap.NameNotFoundException; import org.springframework.ldap.core.LdapTemplate; @@ -41,8 +41,6 @@ import static junit.framework.Assert.fail; @ContextConfiguration(locations = { "/conf/ldapTemplateTransactionSubtreeTestContext.xml" }) public class ContextSourceTransactionManagerSubtreeIntegrationTest extends AbstractLdapTemplateIntegrationTest { - private static Log log = LogFactory.getLog(ContextSourceTransactionManagerSubtreeIntegrationTest.class); - @Autowired @Qualifier("dummyDao") private DummyDao dummyDao; @@ -57,9 +55,8 @@ public class ContextSourceTransactionManagerSubtreeIntegrationTest extends Abstr } } - @Override - protected boolean cleanBefore() { - return false; + protected Resource getLdifFileResource() { + return new ClassPathResource("/setup_data_subtree.ldif"); } @Test