You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2026/10/01 09:29:44 UTC
(rocketmq-dashboard) branch rocketmq-studio updated: fix(aliyun): preserve lite consumer group topics (#5111)
This is an automated email from the ASF dual-hosted git repository.
lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git
The following commit(s) were added to refs/heads/rocketmq-studio by this push:
new 6330597c3 fix(aliyun): preserve lite consumer group topics (#5111)
6330597c3 is described below
commit 6330597c3a124723d9e129af90f98562e65da24a
Author: Yexi Xiang <15...@163.com>
AuthorDate: Thu Oct 1 17:29:38 2026 +0800
fix(aliyun): preserve lite consumer group topics (#5111)
Co-authored-by: 艾克斯光年 <12...@user.noreply.gitee.com>
---
.../studio/provider/alibaba/AliyunConverters.java | 3 ++
.../alibaba/AliyunInstanceProviderTest.java | 32 ++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/server/src/main/java/org/apache/rocketmq/studio/provider/alibaba/AliyunConverters.java b/server/src/main/java/org/apache/rocketmq/studio/provider/alibaba/AliyunConverters.java
index a6195e721..4c8595eda 100644
--- a/server/src/main/java/org/apache/rocketmq/studio/provider/alibaba/AliyunConverters.java
+++ b/server/src/main/java/org/apache/rocketmq/studio/provider/alibaba/AliyunConverters.java
@@ -176,6 +176,9 @@ final class AliyunConverters {
// consumer groups are push consumers. Read paths (web detail, AI rmq.group.list) require
// a non-null subscriptionMode, mirroring the Apache provider invariant.
vo.setSubscriptionMode(SubscriptionMode.Push);
+ if (data.getTopicName() != null && !data.getTopicName().isBlank()) {
+ vo.setSubscribedTopics(List.of(data.getTopicName()));
+ }
vo.setGmtCreate(parseDateTime(data.getCreateTime()));
vo.setGmtModified(parseDateTime(data.getUpdateTime()));
return vo;
diff --git a/server/src/test/java/org/apache/rocketmq/studio/provider/alibaba/AliyunInstanceProviderTest.java b/server/src/test/java/org/apache/rocketmq/studio/provider/alibaba/AliyunInstanceProviderTest.java
index ca032ebd1..70a0a42fa 100644
--- a/server/src/test/java/org/apache/rocketmq/studio/provider/alibaba/AliyunInstanceProviderTest.java
+++ b/server/src/test/java/org/apache/rocketmq/studio/provider/alibaba/AliyunInstanceProviderTest.java
@@ -373,6 +373,38 @@ class AliyunInstanceProviderTest {
assertThat(groups.get(0).getInstanceId()).isEqualTo(STUDIO_INSTANCE_PK);
assertThat(groups.get(0).getConsumeType()).isEqualTo(ConsumeType.CLUSTERING);
assertThat(groups.get(0).getSubscriptionMode()).isEqualTo(SubscriptionMode.Push);
+ assertThat(groups.get(0).getSubscribedTopics()).isEmpty();
+ }
+
+ @Test
+ void listConsumerGroupsShouldPreserveLiteConsumerTopicTest() {
+ stubInstance();
+ stubCallThrough();
+ ListConsumerGroupsResponse response = ListConsumerGroupsResponse.create().toBuilder()
+ .statusCode(200)
+ .body(ListConsumerGroupsResponseBody.builder()
+ .data(ListConsumerGroupsResponseBody.Data.builder()
+ .list(java.util.List.of(ListConsumerGroupsResponseBody.List.builder()
+ .consumerGroupId("GID_lite")
+ .messageModel("LITE_SELECTIVE")
+ .topicName("lite-session-a")
+ .status("RUNNING")
+ .build()))
+ .pageNumber(1L)
+ .pageSize(100L)
+ .totalCount(1L)
+ .build())
+ .build())
+ .build();
+ when(asyncClient.listConsumerGroups(any()))
+ .thenReturn(CompletableFuture.completedFuture(response));
+
+ List<ConsumerGroupVO> groups = provider.listConsumerGroups(STUDIO_INSTANCE_ID, null);
+
+ assertThat(groups).singleElement().satisfies(group -> {
+ assertThat(group.getName()).isEqualTo("GID_lite");
+ assertThat(group.getSubscribedTopics()).containsExactly("lite-session-a");
+ });
}
@Test