From 7f660f042858b486732d807cfb0c80c6e3610128 Mon Sep 17 00:00:00 2001 From: ZhangJian He Date: Wed, 6 Mar 2024 20:44:12 +0800 Subject: [PATCH] fix partitioned topic list bug Signed-off-by: ZhangJian He --- embedded-pulsar-core/pom.xml | 2 +- .../pulsar/core/EmbeddedPulsarServer.java | 2 +- .../embedded/pulsar/core/PulsarEngine.java | 28 ++++++++++--------- .../pulsar/core/module/TopicInfo.java | 4 +++ pom.xml | 2 +- 5 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/module/TopicInfo.java diff --git a/embedded-pulsar-core/pom.xml b/embedded-pulsar-core/pom.xml index df0d8c8..fe8aaa6 100644 --- a/embedded-pulsar-core/pom.xml +++ b/embedded-pulsar-core/pom.xml @@ -5,7 +5,7 @@ embedded-pulsar-parent io.github.embedded-middleware - 0.0.6 + 0.0.7 4.0.0 diff --git a/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/EmbeddedPulsarServer.java b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/EmbeddedPulsarServer.java index f91115f..1db536e 100644 --- a/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/EmbeddedPulsarServer.java +++ b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/EmbeddedPulsarServer.java @@ -163,7 +163,7 @@ private void handleGetPartitionedTopicInfo(RoutingContext context) { public void handleGetAllPartitionedTopics(RoutingContext context) { String tenant = context.pathParam("tenant"); String namespace = context.pathParam("namespace"); - List partitionedTopics = pulsarEngine.getAllPartitionedTopics(tenant, namespace); + List partitionedTopics = pulsarEngine.getPartitionedTopics(tenant, namespace); if (partitionedTopics == null) { partitionedTopics = new ArrayList<>(); } diff --git a/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/PulsarEngine.java b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/PulsarEngine.java index 20b0ff3..05ee157 100644 --- a/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/PulsarEngine.java +++ b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/PulsarEngine.java @@ -3,6 +3,7 @@ import io.github.embedded.pulsar.core.module.NamespaceInfo; import io.github.embedded.pulsar.core.module.PartitionedTopicInfo; import io.github.embedded.pulsar.core.module.TenantInfo; +import io.github.embedded.pulsar.core.module.TopicInfo; import java.util.ArrayList; import java.util.Collections; @@ -16,6 +17,10 @@ public class PulsarEngine { private final ConcurrentHashMap> namespaces = new ConcurrentHashMap<>(); + private final ConcurrentHashMap>> topics = + new ConcurrentHashMap<>(); + private final ConcurrentHashMap>> partitionedTopics = new ConcurrentHashMap<>(); @@ -56,6 +61,16 @@ public List getTenantNamespaces(String tenant) { return tenantNamespaces == null ? Collections.emptyList() : new ArrayList<>(tenantNamespaces.keySet()); } + public List getTopics(String tenant, String namespace) { + ConcurrentHashMap> tenantNamespaces = + topics.get(tenant); + if (tenantNamespaces != null) { + ConcurrentHashMap namespaceTopics = tenantNamespaces.get(namespace); + return namespaceTopics == null ? Collections.emptyList() : new ArrayList<>(namespaceTopics.keySet()); + } + return Collections.emptyList(); + } + public void createPartitionedTopic(String tenant, String namespace, String topic, int numPartitions) { partitionedTopics.computeIfAbsent(tenant, k -> new ConcurrentHashMap<>()) .computeIfAbsent(namespace, k -> new ConcurrentHashMap<>()) @@ -94,17 +109,4 @@ public PartitionedTopicInfo getPartitionedTopicInfo(String tenant, String namesp } return null; } - - public List getAllPartitionedTopics(String tenant, String namespace) { - ConcurrentHashMap> tenantNamespaces = - partitionedTopics.get(tenant); - if (tenantNamespaces != null) { - ConcurrentHashMap namespaceTopics = tenantNamespaces.get(namespace); - if (namespaceTopics != null) { - return new ArrayList<>(namespaceTopics.values()); - } - } - return Collections.emptyList(); - } - } diff --git a/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/module/TopicInfo.java b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/module/TopicInfo.java new file mode 100644 index 0000000..9864dc4 --- /dev/null +++ b/embedded-pulsar-core/src/main/java/io/github/embedded/pulsar/core/module/TopicInfo.java @@ -0,0 +1,4 @@ +package io.github.embedded.pulsar.core.module; + +public class TopicInfo { +} diff --git a/pom.xml b/pom.xml index c868bae..b594bd4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.embedded-middleware embedded-pulsar-parent - 0.0.6 + 0.0.7 embedded-pulsar-core