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));
}