Disable auto-config of Narayana's JMS support when JMS module absent

Closes gh-9844
This commit is contained in:
Andy Wilkinson 2017-07-24 10:42:40 +01:00
parent be535103a7
commit 8f877dcee2
3 changed files with 24 additions and 1 deletions

View File

@ -597,6 +597,11 @@
<artifactId>jooq</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jboss.narayana.jta</groupId>
<artifactId>jms</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jboss.narayana.jta</groupId>
<artifactId>jta</artifactId>

View File

@ -23,6 +23,7 @@ import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import com.arjuna.ats.jbossatx.jta.RecoveryManagerService;
import org.jboss.narayana.jta.jms.TransactionHelper;
import org.jboss.tm.XAResourceRecoveryRegistry;
import org.springframework.beans.factory.ObjectProvider;
@ -150,7 +151,7 @@ public class NarayanaJtaConfiguration {
}
@Configuration
@ConditionalOnClass(Message.class)
@ConditionalOnClass({ Message.class, TransactionHelper.class })
static class NarayanaJtaJmsConfiguration {
@Bean

View File

@ -31,6 +31,7 @@ import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import javax.transaction.xa.XAResource;
import com.arjuna.ats.jbossatx.jta.RecoveryManagerService;
import com.atomikos.icatch.config.UserTransactionService;
import com.atomikos.icatch.jta.UserTransactionManager;
import com.atomikos.jms.AtomikosConnectionFactoryBean;
@ -52,6 +53,8 @@ import org.springframework.boot.jta.atomikos.AtomikosProperties;
import org.springframework.boot.jta.bitronix.BitronixDependentBeanFactoryPostProcessor;
import org.springframework.boot.jta.bitronix.PoolingConnectionFactoryBean;
import org.springframework.boot.jta.bitronix.PoolingDataSourceBean;
import org.springframework.boot.jta.narayana.NarayanaBeanFactoryPostProcessor;
import org.springframework.boot.jta.narayana.NarayanaConfigurationBean;
import org.springframework.boot.test.util.EnvironmentTestUtils;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
@ -137,6 +140,20 @@ public class JtaAutoConfigurationTests {
this.context.getBean(JtaTransactionManager.class);
}
@Test
public void narayanaSanityCheck() throws Exception {
this.context = new AnnotationConfigApplicationContext(JtaProperties.class,
NarayanaJtaConfiguration.class);
this.context.getBean(NarayanaConfigurationBean.class);
this.context.getBean(UserTransaction.class);
this.context.getBean(TransactionManager.class);
this.context.getBean(XADataSourceWrapper.class);
this.context.getBean(XAConnectionFactoryWrapper.class);
this.context.getBean(NarayanaBeanFactoryPostProcessor.class);
this.context.getBean(JtaTransactionManager.class);
this.context.getBean(RecoveryManagerService.class);
}
@Test
public void defaultBitronixServerId() throws UnknownHostException {
this.context = new AnnotationConfigApplicationContext(