You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by ji...@apache.org on 2022/03/25 02:27:51 UTC

[rocketmq-spring] branch master updated: [ISSUE #439] Fix the wrong comment description of the default value in the keepalivetime field of the RocketMQTransactionListener annotation.

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

jinrongtong 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 acd0ee9  [ISSUE #439] Fix the wrong comment description of the default value in the keepalivetime field of the RocketMQTransactionListener annotation.
acd0ee9 is described below

commit acd0ee9342a9e633faca89e68893ab4280c7bdf4
Author: yanghao888 <35...@users.noreply.github.com>
AuthorDate: Fri Mar 25 10:27:47 2022 +0800

    [ISSUE #439] Fix the wrong comment description of the default value in the keepalivetime field of the RocketMQTransactionListener annotation.
---
 .../rocketmq/spring/annotation/RocketMQTransactionListener.java  | 8 +++++++-
 .../spring/autoconfigure/RocketMQTransactionConfiguration.java   | 2 +-
 .../spring/autoconfigure/RocketMQAutoConfigurationTest.java      | 9 ++++++++-
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/RocketMQTransactionListener.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/RocketMQTransactionListener.java
index 0faa57a..79438b8 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/RocketMQTransactionListener.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/RocketMQTransactionListener.java
@@ -22,6 +22,7 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.util.concurrent.TimeUnit;
 import org.springframework.stereotype.Component;
 
 /**
@@ -51,7 +52,12 @@ public @interface RocketMQTransactionListener {
     /**
      * Set ExecutorService params -- keepAliveTime
      */
-    long keepAliveTime() default 1000 * 60; //60ms
+    long keepAliveTime() default 1000 * 60;
+
+    /**
+     * Set ExecutorService params -- keepAliveTimeUnit
+     */
+    TimeUnit keepAliveTimeUnit() default TimeUnit.MILLISECONDS;
 
     /**
      * Set ExecutorService params -- blockingQueueSize
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQTransactionConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQTransactionConfiguration.java
index 74badbb..e471275 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQTransactionConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQTransactionConfiguration.java
@@ -69,7 +69,7 @@ public class RocketMQTransactionConfiguration implements ApplicationContextAware
             throw new IllegalStateException(annotation.rocketMQTemplateBeanName() + " already exists RocketMQLocalTransactionListener");
         }
         ((TransactionMQProducer) rocketMQTemplate.getProducer()).setExecutorService(new ThreadPoolExecutor(annotation.corePoolSize(), annotation.maximumPoolSize(),
-            annotation.keepAliveTime(), TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>(annotation.blockingQueueSize())));
+            annotation.keepAliveTime(), annotation.keepAliveTimeUnit(), new LinkedBlockingDeque<>(annotation.blockingQueueSize())));
         ((TransactionMQProducer) rocketMQTemplate.getProducer()).setTransactionListener(RocketMQUtil.convert((RocketMQLocalTransactionListener) bean));
         log.debug("RocketMQLocalTransactionListener {} register to {} success", clazz.getName(), annotation.rocketMQTemplateBeanName());
     }
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 9f31b09..03614f7 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
@@ -20,9 +20,12 @@ package org.apache.rocketmq.spring.autoconfigure;
 import java.util.ArrayList;
 import java.util.List;
 
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer;
 import org.apache.rocketmq.client.producer.DefaultMQProducer;
 import org.apache.rocketmq.client.producer.SendResult;
+import org.apache.rocketmq.client.producer.TransactionMQProducer;
 import org.apache.rocketmq.spring.annotation.ExtRocketMQConsumerConfiguration;
 import org.apache.rocketmq.spring.annotation.ExtRocketMQTemplateConfiguration;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -168,6 +171,10 @@ public class RocketMQAutoConfigurationTest {
             withUserConfiguration(TestTransactionListenerConfig.class).
             run((context) -> {
                 assertThat(context).hasSingleBean(TestRocketMQLocalTransactionListener.class);
+                RocketMQTransactionListener annotation = TestRocketMQLocalTransactionListener.class.getAnnotation(RocketMQTransactionListener.class);
+                RocketMQTemplate rocketMQTemplate = (RocketMQTemplate) context.getBean(annotation.rocketMQTemplateBeanName());
+                ThreadPoolExecutor executor = (ThreadPoolExecutor) ((TransactionMQProducer) rocketMQTemplate.getProducer()).getExecutorService();
+                assertThat(executor.getKeepAliveTime(TimeUnit.SECONDS)).isEqualTo(50);
             });
     }
 
@@ -351,7 +358,7 @@ public class RocketMQAutoConfigurationTest {
 
     }
 
-    @RocketMQTransactionListener
+    @RocketMQTransactionListener(keepAliveTime = 50, keepAliveTimeUnit = TimeUnit.SECONDS)
     static class TestRocketMQLocalTransactionListener implements RocketMQLocalTransactionListener {
 
         @Override