Commit ff79138a authored by Dave Syer's avatar Dave Syer

Alternative fix for Rabbit listener transactions

Never inject a transaction manager (user can create his own
"rabbitListenerContainerFactory" bean if he wants an actual
non-JTA transaction manager.

See gh-3432
parent 67933ab0
...@@ -20,12 +20,10 @@ import org.springframework.amqp.rabbit.annotation.EnableRabbit; ...@@ -20,12 +20,10 @@ import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.amqp.rabbit.config.RabbitListenerConfigUtils; import org.springframework.amqp.rabbit.config.RabbitListenerConfigUtils;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;
/** /**
* Configuration for Spring AMQP annotation driven endpoints. * Configuration for Spring AMQP annotation driven endpoints.
...@@ -37,19 +35,12 @@ import org.springframework.transaction.PlatformTransactionManager; ...@@ -37,19 +35,12 @@ import org.springframework.transaction.PlatformTransactionManager;
@ConditionalOnClass(EnableRabbit.class) @ConditionalOnClass(EnableRabbit.class)
class RabbitAnnotationDrivenConfiguration { class RabbitAnnotationDrivenConfiguration {
@Autowired(required = false)
private PlatformTransactionManager transactionManager;
@Bean @Bean
@ConditionalOnMissingBean(name = "rabbitListenerContainerFactory") @ConditionalOnMissingBean(name = "rabbitListenerContainerFactory")
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory( public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(
ConnectionFactory connectionFactory, RabbitProperties config) { ConnectionFactory connectionFactory, RabbitProperties config) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory); factory.setConnectionFactory(connectionFactory);
if (this.transactionManager != null
&& config.getListener().isUseTransactionManager()) {
factory.setTransactionManager(this.transactionManager);
}
return factory; return factory;
} }
......
...@@ -62,12 +62,6 @@ public class RabbitProperties { ...@@ -62,12 +62,6 @@ public class RabbitProperties {
*/ */
private String addresses; private String addresses;
private Listener listener = new Listener();
public Listener getListener() {
return this.listener;
}
public String getHost() { public String getHost() {
if (this.addresses == null) { if (this.addresses == null) {
return this.host; return this.host;
...@@ -162,16 +156,4 @@ public class RabbitProperties { ...@@ -162,16 +156,4 @@ public class RabbitProperties {
this.virtualHost = ("".equals(virtualHost) ? "/" : virtualHost); this.virtualHost = ("".equals(virtualHost) ? "/" : virtualHost);
} }
public static class Listener {
private boolean useTransactionManager = false;
public boolean isUseTransactionManager() {
return this.useTransactionManager;
}
public void setUseTransactionManager(boolean useTransactionManager) {
this.useTransactionManager = useTransactionManager;
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment