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 <[email protected]>
AuthorDate: Thu Oct 1 17:29:38 2026 +0800

    fix(aliyun): preserve lite consumer group topics (#5111)
    
    Co-authored-by: 艾克斯光年 <[email protected]>
---
 .../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

Reply via email to