From 3445d093c79b9b4a8a86987b13e85c4468c49622 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 17 Mar 2015 16:08:36 +0000 Subject: [PATCH] Fix RabbitAdmin so it actually finds the Declarables --- .../hystrix/amqp/HystrixStreamAutoConfiguration.java | 7 ++++++- .../netflix/turbine/amqp/TurbineAmqpAutoConfiguration.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spring-cloud-netflix-hystrix-amqp/src/main/java/org/springframework/cloud/netflix/hystrix/amqp/HystrixStreamAutoConfiguration.java b/spring-cloud-netflix-hystrix-amqp/src/main/java/org/springframework/cloud/netflix/hystrix/amqp/HystrixStreamAutoConfiguration.java index 32e39f58..931fe8b9 100644 --- a/spring-cloud-netflix-hystrix-amqp/src/main/java/org/springframework/cloud/netflix/hystrix/amqp/HystrixStreamAutoConfiguration.java +++ b/spring-cloud-netflix-hystrix-amqp/src/main/java/org/springframework/cloud/netflix/hystrix/amqp/HystrixStreamAutoConfiguration.java @@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.netflix.hystrix.HystrixConstants; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.annotation.IntegrationComponentScan; @@ -69,6 +70,9 @@ public class HystrixStreamAutoConfiguration { @Autowired(required = false) private ConnectionFactory primaryConnectionFactory; + @Autowired + private ApplicationContext context; + @Autowired(required = false) private ObjectMapper objectMapper; @@ -112,7 +116,7 @@ public class HystrixStreamAutoConfiguration { // TODO: set content type /* * .enrichHeaders(new ComponentConfigurer() { - * + * * @Override public void configure(HeaderEnricherSpec spec) { * spec.header("content-type", "application/json", true); } }) */ @@ -124,6 +128,7 @@ public class HystrixStreamAutoConfiguration { if (this.hystrixConnectionFactory != null) { RabbitAdmin amqpAdmin = new RabbitAdmin(this.hystrixConnectionFactory); hystrixStreamExchange().setAdminsThatShouldDeclare(amqpAdmin); + amqpAdmin.setApplicationContext(this.context); amqpAdmin.afterPropertiesSet(); return this.hystrixConnectionFactory; } diff --git a/spring-cloud-netflix-turbine-amqp/src/main/java/org/springframework/cloud/netflix/turbine/amqp/TurbineAmqpAutoConfiguration.java b/spring-cloud-netflix-turbine-amqp/src/main/java/org/springframework/cloud/netflix/turbine/amqp/TurbineAmqpAutoConfiguration.java index d672736d..da12f58c 100644 --- a/spring-cloud-netflix-turbine-amqp/src/main/java/org/springframework/cloud/netflix/turbine/amqp/TurbineAmqpAutoConfiguration.java +++ b/spring-cloud-netflix-turbine-amqp/src/main/java/org/springframework/cloud/netflix/turbine/amqp/TurbineAmqpAutoConfiguration.java @@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.netflix.hystrix.HystrixConstants; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; @@ -60,6 +61,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; @ConditionalOnProperty(value = "turbine.amqp.enabled", matchIfMissing = true) public class TurbineAmqpAutoConfiguration { + @Autowired + private ApplicationContext context; + @Autowired(required = false) @TurbineConnectionFactory private ConnectionFactory turbineConnectionFactory; @@ -110,6 +114,7 @@ public class TurbineAmqpAutoConfiguration { hystrixStreamExchange().setAdminsThatShouldDeclare(amqpAdmin); localTurbineAmqpQueueBinding().setAdminsThatShouldDeclare(amqpAdmin); hystrixStreamQueue().setAdminsThatShouldDeclare(amqpAdmin); + amqpAdmin.setApplicationContext(this.context); amqpAdmin.afterPropertiesSet(); return this.turbineConnectionFactory; }