You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2019/05/10 07:47:55 UTC

[rocketmq-spring] branch master updated: [ISSUE #51]raise a warning log message if no property 'rocketmq.name-server' is defined in application.property (#69)

This is an automated email from the ASF dual-hosted git repository.

dinglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-spring.git


The following commit(s) were added to refs/heads/master by this push:
     new 05412ae  [ISSUE #51]raise a warning log message if no property 'rocketmq.name-server' is defined in application.property (#69)
05412ae is described below

commit 05412aeb0a229356835d7e91b319b91bea7e6686
Author: Kevin Wang <wi...@gmail.com>
AuthorDate: Fri May 10 15:47:51 2019 +0800

    [ISSUE #51]raise a warning log message if no property 'rocketmq.name-server' is defined in application.property (#69)
    
     ISSUE #45 #51  raise a warning log message if no property 'rocketmq.name-server' is defined in application.property
---
 .../autoconfigure/RocketMQAutoConfiguration.java   | 22 +++++++++++++++++++++-
 .../RocketMQAutoConfigurationTest.java             |  7 +------
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
index f1a2aba..dbbd8f0 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
@@ -26,6 +26,9 @@ import org.apache.rocketmq.spring.config.RocketMQConfigUtils;
 import org.apache.rocketmq.spring.config.RocketMQTransactionAnnotationProcessor;
 import org.apache.rocketmq.spring.config.TransactionHandlerRegistry;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@@ -39,16 +42,33 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.Role;
+import org.springframework.core.env.Environment;
 import org.springframework.util.Assert;
 import org.springframework.util.StringUtils;
 
+import javax.annotation.PostConstruct;
+
 @Configuration
 @EnableConfigurationProperties(RocketMQProperties.class)
 @ConditionalOnClass({ MQAdmin.class, ObjectMapper.class })
-@ConditionalOnProperty(prefix = "rocketmq", value = "name-server")
+@ConditionalOnProperty(prefix = "rocketmq", value = "name-server", matchIfMissing = true)
 @Import({ JacksonFallbackConfiguration.class, ListenerContainerConfiguration.class, ExtProducerResetConfiguration.class })
 @AutoConfigureAfter(JacksonAutoConfiguration.class)
 public class RocketMQAutoConfiguration {
+    private static final Logger log = LoggerFactory.getLogger(RocketMQAutoConfiguration.class);
+
+    @Autowired
+    private Environment environment;
+
+    @PostConstruct
+    public void checkProperties() {
+        String nameServer = environment.getProperty("rocketmq.name-server", String.class);
+        log.debug("rocketmq.nameServer = {}", nameServer);
+        if (nameServer == null) {
+            log.warn("The necessary spring property 'rocketmq.name-server' is not defined, all rockertmq beans creation are skipped!");
+        }
+    }
+
 
     @Bean
     @ConditionalOnMissingBean(DefaultMQProducer.class)
diff --git a/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java b/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
index e6113a8..5fbe752 100644
--- a/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
+++ b/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
@@ -43,13 +43,8 @@ public class RocketMQAutoConfigurationTest {
 
 
     @Test(expected = NoSuchBeanDefinitionException.class)
-    public void testRocketMQAutoConfigurationNotCreatedByDefault() {
-        runner.run(context -> context.getBean(RocketMQAutoConfiguration.class));
-    }
-
-
-    @Test(expected = NoSuchBeanDefinitionException.class)
     public void testDefaultMQProducerNotCreatedByDefault() {
+        // You will see the WARN log message about missing rocketmq.name-server spring property when running this test case.
         runner.run(context -> context.getBean(DefaultMQProducer.class));
     }