diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/pom.xml b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/pom.xml
index 062050a59..69fef2ddb 100644
--- a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/pom.xml
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/pom.xml
@@ -32,9 +32,15 @@
spring-boot-autoconfigure
true
+
+ org.springframework.cloud
+ spring-cloud-lattice-connector
+ true
+
org.springframework.cloud
spring-cloud-stream-binder-test
+ test
org.springframework.boot
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitBinderConfigurationProperties.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitBinderConfigurationProperties.java
index b8379283d..490598197 100644
--- a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitBinderConfigurationProperties.java
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitBinderConfigurationProperties.java
@@ -31,7 +31,7 @@ class RabbitBinderConfigurationProperties {
private int backOffMaxInterval;
- private int backOffMultiplier;
+ private double backOffMultiplier;
private boolean transacted;
@@ -97,11 +97,11 @@ class RabbitBinderConfigurationProperties {
this.backOffMaxInterval = backOffMaxInterval;
}
- public int getBackOffMultiplier() {
+ public double getBackOffMultiplier() {
return backOffMultiplier;
}
- public void setBackOffMultiplier(int backOffMultiplier) {
+ public void setBackOffMultiplier(double backOffMultiplier) {
this.backOffMultiplier = backOffMultiplier;
}
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitMessageChannelBinderConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitMessageChannelBinderConfiguration.java
index 868750f36..d02b8b666 100644
--- a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitMessageChannelBinderConfiguration.java
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitMessageChannelBinderConfiguration.java
@@ -35,7 +35,7 @@ import org.springframework.integration.codec.Codec;
@Configuration
@Import(CodecConfiguration.class)
-@EnableConfigurationProperties({RabbitBinderConfigurationProperties.class, SpringRabbitMQProperties.class})
+@EnableConfigurationProperties({RabbitBinderConfigurationProperties.class})
public class RabbitMessageChannelBinderConfiguration {
@Autowired
@@ -96,4 +96,9 @@ public class RabbitMessageChannelBinderConfiguration {
ConnectionFactorySettings rabbitConnectionFactorySettings() {
return new ConnectionFactorySettings();
}
+
+ @Bean
+ SpringRabbitMQProperties springRabbitMQProperties() {
+ return new SpringRabbitMQProperties();
+ }
}
diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RabbitServiceConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java
similarity index 89%
rename from spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RabbitServiceConfiguration.java
rename to spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java
index 315f35ead..5a2e680f4 100644
--- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RabbitServiceConfiguration.java
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java
@@ -14,13 +14,14 @@
* limitations under the License.
*/
-package org.springframework.cloud.stream.config;
+package org.springframework.cloud.stream.binder.rabbit.config;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.Cloud;
import org.springframework.cloud.CloudFactory;
+import org.springframework.cloud.stream.binder.Binder;
import org.springframework.cloud.stream.binder.rabbit.RabbitMessageChannelBinder;
import org.springframework.cloud.stream.binder.rabbit.config.RabbitMessageChannelBinderConfiguration;
import org.springframework.context.annotation.Bean;
@@ -36,13 +37,13 @@ import org.springframework.context.annotation.PropertySource;
* @author Dave Syer
* @author Glenn Renfro
* @author David Turanski
+ * @author Eric Bottard
*/
@Configuration
-@ConditionalOnClass(RabbitMessageChannelBinder.class)
-@ConditionalOnMissingBean(RabbitMessageChannelBinder.class)
+@ConditionalOnMissingBean(Binder.class)
@Import(RabbitMessageChannelBinderConfiguration.class)
@PropertySource("classpath:/META-INF/spring-cloud-stream/rabbit-binder.properties")
-public class RabbitServiceConfiguration {
+public class RabbitServiceAutoConfiguration {
@Configuration
@Profile("cloud")
protected static class CloudConfig {
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/SpringRabbitMQProperties.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/SpringRabbitMQProperties.java
index 8d9651b34..00fa4cec1 100644
--- a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/SpringRabbitMQProperties.java
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/SpringRabbitMQProperties.java
@@ -24,11 +24,11 @@ import org.springframework.core.io.Resource;
@ConfigurationProperties(prefix = "spring.rabbitmq")
class SpringRabbitMQProperties {
- private String[] addresses;
+ private String[] addresses = new String[0];
- private String[] adminAdresses;
+ private String[] adminAdresses = new String[0];
- private String[] nodes;
+ private String[] nodes = new String[0];
private String username;
diff --git a/spring-cloud-stream/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties
similarity index 90%
rename from spring-cloud-stream/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties
rename to spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties
index d7f95153d..6a8091cb9 100644
--- a/spring-cloud-stream/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring-cloud-stream/rabbit-binder.properties
@@ -9,7 +9,7 @@ spring.cloud.stream.binder.rabbit.default.batchSize: 100
spring.cloud.stream.binder.rabbit.default.batchTimeout: 5000
spring.cloud.stream.binder.rabbit.default.compress: false
spring.cloud.stream.binder.rabbit.default.concurrency: 1
-spring.cloud.stream.binder.rabbit.default.deliveryMode: PERSISTENT
+spring.cloud.stream.binder.rabbit.default.defaultDeliveryMode: PERSISTENT
spring.cloud.stream.binder.rabbit.default.durableSubscription: false
spring.cloud.stream.binder.rabbit.default.maxAttempts: 3
spring.cloud.stream.binder.rabbit.default.maxConcurrency: 1
@@ -18,6 +18,6 @@ spring.cloud.stream.binder.rabbit.default.prefetch: 1
spring.cloud.stream.binder.rabbit.default.replyHeaderPatterns: STANDARD_REPLY_HEADERS,*
spring.cloud.stream.binder.rabbit.default.republishToDLQ: false
spring.cloud.stream.binder.rabbit.default.requestHeaderPatterns: STANDARD_REQUEST_HEADERS,*
-spring.cloud.stream.binder.rabbit.default.requeue: true
+spring.cloud.stream.binder.rabbit.default.defaultRequeueRejected: true
spring.cloud.stream.binder.rabbit.default.transacted:false
spring.cloud.stream.binder.rabbit.default.txSize: 1
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring.factories b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..cde4a6309
--- /dev/null
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration:\
+org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/pom.xml b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/pom.xml
index 642ec3740..accdcf6f5 100644
--- a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/pom.xml
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/pom.xml
@@ -32,9 +32,15 @@
spring-boot-autoconfigure
true
+
+ org.springframework.cloud
+ spring-cloud-lattice-connector
+ true
+
org.springframework.cloud
spring-cloud-stream-binder-test
+ test
org.springframework.boot
diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RedisServiceConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java
similarity index 77%
rename from spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RedisServiceConfiguration.java
rename to spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java
index 174d1db47..6f6271226 100644
--- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/RedisServiceConfiguration.java
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java
@@ -14,18 +14,16 @@
* limitations under the License.
*/
-package org.springframework.cloud.stream.config;
+package org.springframework.cloud.stream.binder.redis.config;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.Cloud;
import org.springframework.cloud.CloudFactory;
+import org.springframework.cloud.stream.binder.Binder;
import org.springframework.cloud.stream.binder.redis.RedisMessageChannelBinder;
-import org.springframework.cloud.stream.binder.redis.config.RedisMessageChannelBinderConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.Profile;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.redis.connection.RedisConnectionFactory;
@@ -36,14 +34,13 @@ import org.springframework.data.redis.connection.RedisConnectionFactory;
* @author Mark Fisher
* @author Dave Syer
* @author David Turanski
+ * @author Eric Bottard
*/
@Configuration
-@ConditionalOnClass(RedisMessageChannelBinder.class)
-@ConditionalOnMissingBean(RedisMessageChannelBinder.class)
+@ConditionalOnMissingBean(Binder.class)
@Import(RedisMessageChannelBinderConfiguration.class)
-@ImportResource("classpath*:/META-INF/spring-xd/analytics/redis-analytics.xml")
@PropertySource("classpath:/META-INF/spring-cloud-stream/redis-binder.properties")
-public class RedisServiceConfiguration {
+public class RedisServiceAutoConfiguration {
@Configuration
@Profile("cloud")
diff --git a/spring-cloud-stream/src/main/resources/META-INF/spring-cloud-stream/redis-binder.properties b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/resources/META-INF/spring-cloud-stream/redis-binder.properties
similarity index 100%
rename from spring-cloud-stream/src/main/resources/META-INF/spring-cloud-stream/redis-binder.properties
rename to spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/resources/META-INF/spring-cloud-stream/redis-binder.properties
diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/resources/META-INF/spring.factories b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..acd5c3a0c
--- /dev/null
+++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration:\
+org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration
diff --git a/spring-cloud-stream/pom.xml b/spring-cloud-stream/pom.xml
index 6b1fb51eb..cc49b8513 100644
--- a/spring-cloud-stream/pom.xml
+++ b/spring-cloud-stream/pom.xml
@@ -50,6 +50,7 @@
org.springframework.cloud
spring-cloud-stream-binder-redis
+ true
org.springframework.cloud
diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/EnableModule.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/EnableModule.java
index db18b30e1..5f1b25f0b 100644
--- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/EnableModule.java
+++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/EnableModule.java
@@ -27,14 +27,14 @@ import org.springframework.cloud.stream.config.AggregateBuilderConfiguration;
import org.springframework.cloud.stream.config.ChannelBindingAdapterConfiguration;
import org.springframework.cloud.stream.config.ModuleRegistrar;
import org.springframework.cloud.stream.config.ChannelBindingAdapterRunner;
-import org.springframework.cloud.stream.config.RabbitServiceConfiguration;
-import org.springframework.cloud.stream.config.RedisServiceConfiguration;
+import org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.integration.annotation.MessageEndpoint;
/**
* Annotation that identifies a class as a module.
+ *
* @author Dave Syer
* @author Marius Bogoevici
* @author David Turanski
@@ -45,7 +45,7 @@ import org.springframework.integration.annotation.MessageEndpoint;
@Inherited
@Configuration
@MessageEndpoint
-@Import({RedisServiceConfiguration.class, RabbitServiceConfiguration.class,
+@Import({
ChannelBindingAdapterConfiguration.class, ChannelBindingAdapterRunner.class,
AggregateBuilderConfiguration.class, ModuleRegistrar.class})
public @interface EnableModule {