From bf178360eebaf6eb00ff48bbbfc5c1a182b6f22b Mon Sep 17 00:00:00 2001 From: Marius Bogoevici Date: Thu, 10 Dec 2015 12:36:53 -0500 Subject: [PATCH] Remove autoconfig Ensure that the autoconfig and the cloud config don't overlap Removed SeedConfiguration --- .../config/KafkaMessageChannelBinderConfiguration.java | 4 ++++ .../RabbitMessageChannelBinderConfiguration.java | 4 ++++ .../rabbit/config/RabbitServiceAutoConfiguration.java | 7 +++++++ .../config/RedisMessageChannelBinderConfiguration.java | 5 +++++ .../redis/config/RedisServiceAutoConfiguration.java | 5 +++++ .../cloud/stream/binder/DefaultBinderFactory.java | 10 ---------- 6 files changed, 25 insertions(+), 10 deletions(-) diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/config/KafkaMessageChannelBinderConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/config/KafkaMessageChannelBinderConfiguration.java index 63bd0a4e2..ef3800aa5 100644 --- a/spring-cloud-stream-binders/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/config/KafkaMessageChannelBinderConfiguration.java +++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/config/KafkaMessageChannelBinderConfiguration.java @@ -17,11 +17,14 @@ package org.springframework.cloud.stream.binder.kafka.config; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder; +import org.springframework.cloud.stream.config.codec.kryo.KryoCodecAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.integration.codec.Codec; import org.springframework.integration.kafka.support.ZookeeperConnect; import org.springframework.util.ObjectUtils; @@ -34,6 +37,7 @@ import org.springframework.util.StringUtils; */ @Configuration @EnableConfigurationProperties(KafkaBinderConfigurationProperties.class) +@Import({KryoCodecAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class}) @ConfigurationProperties(prefix = "spring.cloud.stream.binder.kafka") public class KafkaMessageChannelBinderConfiguration { 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 98a9df371..07d697b34 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 @@ -25,14 +25,18 @@ import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.support.postprocessor.DelegatingDecompressingPostProcessor; import org.springframework.amqp.support.postprocessor.GZipPostProcessor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.stream.binder.rabbit.ConnectionFactorySettings; import org.springframework.cloud.stream.binder.rabbit.RabbitMessageChannelBinder; +import org.springframework.cloud.stream.config.codec.kryo.KryoCodecAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.integration.codec.Codec; @Configuration +@Import({PropertyPlaceholderAutoConfiguration.class, KryoCodecAutoConfiguration.class}) @EnableConfigurationProperties({RabbitBinderConfigurationProperties.class}) public class RabbitMessageChannelBinderConfiguration { diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java index eb6d12941..a809cfa27 100644 --- a/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java +++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java @@ -61,4 +61,11 @@ public class RabbitServiceAutoConfiguration { return cloud.getSingletonServiceConnector(ConnectionFactory.class, null); } } + + @Configuration + @Profile("!cloud") + @Import(RabbitAutoConfiguration.class) + protected static class NoCloudConfig { + + } } diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisMessageChannelBinderConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisMessageChannelBinderConfiguration.java index 9a640c19c..8c1087b3d 100644 --- a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisMessageChannelBinderConfiguration.java +++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisMessageChannelBinderConfiguration.java @@ -17,11 +17,15 @@ package org.springframework.cloud.stream.binder.redis.config; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.stream.binder.redis.RedisMessageChannelBinder; +import org.springframework.cloud.stream.config.codec.kryo.KryoCodecAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.integration.codec.Codec; @@ -30,6 +34,7 @@ import org.springframework.integration.codec.Codec; */ @Configuration @EnableConfigurationProperties(RedisBinderConfigurationProperties.class) +@Import({PropertyPlaceholderAutoConfiguration.class, KryoCodecAutoConfiguration.class}) @ConfigurationProperties(prefix = "spring.cloud.stream.binder.redis") public class RedisMessageChannelBinderConfiguration { diff --git a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java index cb0252fcb..ee9048244 100644 --- a/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java +++ b/spring-cloud-stream-binders/spring-cloud-stream-binder-redis/src/main/java/org/springframework/cloud/stream/binder/redis/config/RedisServiceAutoConfiguration.java @@ -61,4 +61,9 @@ public class RedisServiceAutoConfiguration { } } + @Profile("!cloud") + @Import(RedisAutoConfiguration.class) + protected static class NoCloudConfig { + } + } diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultBinderFactory.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultBinderFactory.java index 43d090038..5fd1e2282 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultBinderFactory.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/DefaultBinderFactory.java @@ -23,7 +23,6 @@ import java.util.Properties; import org.springframework.beans.factory.DisposableBean; import org.springframework.boot.Banner.Mode; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.EnvironmentAware; @@ -115,7 +114,6 @@ public class DefaultBinderFactory implements BinderFactory, DisposableBean SpringApplicationBuilder springApplicationBuilder = new SpringApplicationBuilder() .sources(binderConfiguration.getBinderType().getConfigurationClasses()) - .sources(SeedConfiguration.class) .bannerMode(Mode.OFF) .web(false); ConfigurableApplicationContext binderProducingContext = @@ -151,12 +149,4 @@ public class DefaultBinderFactory implements BinderFactory, DisposableBean return binderContext; } } - - /** - * Configuration class that enables autoconfiguration for the binders - */ - // TODO: Reconsider the use of autoconfiguration as part of binder configuration refactoring - @EnableAutoConfiguration - public static class SeedConfiguration { - } }