From c3a056ee947434f0a411555094ad0126acd7d8fa Mon Sep 17 00:00:00 2001 From: tison Date: Wed, 28 Dec 2022 14:15:34 +0800 Subject: [PATCH 1/2] [fix][doc] Rename LedgerInfo to avoid swagger docs conflict Signed-off-by: tison --- .../apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 3 ++- .../pulsar/broker/service/persistent/PersistentTopic.java | 8 ++++---- .../apache/pulsar/broker/admin/AdminApiSchemaTest.java | 5 +++-- .../common/policies/data/ManagedLedgerInternalStats.java | 4 ++-- .../policies/data/PersistentTopicInternalStats.java | 8 ++++---- .../org/apache/pulsar/admin/cli/PulsarAdminToolTest.java | 6 +++--- .../main/java/org/apache/pulsar/admin/cli/CmdTopics.java | 7 ++++--- .../java/org/apache/pulsar/admin/cli/TestCmdTopics.java | 8 ++++---- .../apache/pulsar/tests/integration/admin/AdminTest.java | 4 ++-- .../pulsar/tests/integration/offload/TestBaseOffload.java | 7 +++---- 10 files changed, 31 insertions(+), 29 deletions(-) diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java index c849a347c7d8e..e9e4d11943fb9 100644 --- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java +++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java @@ -4254,7 +4254,8 @@ public CompletableFuture getManagedLedgerInternalSta FutureUtil.waitForAll(ledgerMetadataFutures.values()).thenAccept(__ -> { stats.ledgers = new ArrayList(); ledgersInfos.forEach(li -> { - ManagedLedgerInternalStats.LedgerInfo info = new ManagedLedgerInternalStats.LedgerInfo(); + ManagedLedgerInternalStats.InternalLedgerInfo info = + new ManagedLedgerInternalStats.InternalLedgerInfo(); info.ledgerId = li.getLedgerId(); info.entries = li.getEntries(); info.size = li.getSize(); diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java index 42f73a7032835..073bcdf1e6a17 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java @@ -134,7 +134,7 @@ import org.apache.pulsar.common.policies.data.ClusterData.ClusterUrl; import org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode; import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.CursorStats; -import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.LedgerInfo; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.InternalLedgerInfo; import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats; import org.apache.pulsar.common.policies.data.Policies; import org.apache.pulsar.common.policies.data.RetentionPolicies; @@ -2204,7 +2204,7 @@ public CompletableFuture getInternalStats(boolean statFuture.completeExceptionally(e); } else { ml.getLedgersInfo().forEach((id, li) -> { - LedgerInfo info = new LedgerInfo(); + InternalLedgerInfo info = new InternalLedgerInfo(); info.ledgerId = li.getLedgerId(); info.entries = li.getEntries(); info.size = li.getSize(); @@ -2232,7 +2232,7 @@ public CompletableFuture getInternalStats(boolean ); // Add ledger info for compacted topic ledger if exist. - LedgerInfo info = new LedgerInfo(); + InternalLedgerInfo info = new InternalLedgerInfo(); info.ledgerId = -1; info.entries = -1; info.size = -1; @@ -2316,7 +2316,7 @@ public CompletableFuture getInternalStats(boolean } if (metadataFuture != null) { metadataFuture.thenAccept(metadata -> { - LedgerInfo schemaLedgerInfo = new LedgerInfo(); + InternalLedgerInfo schemaLedgerInfo = new InternalLedgerInfo(); schemaLedgerInfo.ledgerId = metadata.getLedgerId(); schemaLedgerInfo.entries = metadata.getLastEntryId() + 1; schemaLedgerInfo.size = metadata.getLength(); diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaTest.java index 0795a9a6cc053..b3d1436247fb1 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaTest.java @@ -45,6 +45,7 @@ import org.apache.pulsar.client.impl.schema.SchemaInfoImpl; import org.apache.pulsar.client.impl.schema.StringSchema; import org.apache.pulsar.common.policies.data.ClusterData; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats; import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats; import org.apache.pulsar.common.policies.data.SchemaAutoUpdateCompatibilityStrategy; import org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy; @@ -384,9 +385,9 @@ public long getCToken() { } })).when(mockBookKeeper).getLedgerMetadata(anyLong()); PersistentTopicInternalStats persistentTopicInternalStats = admin.topics().getInternalStats(topicName); - List list = persistentTopicInternalStats.schemaLedgers; + List list = persistentTopicInternalStats.schemaLedgers; assertEquals(list.size(), 1); - PersistentTopicInternalStats.LedgerInfo ledgerInfo = list.get(0); + ManagedLedgerInternalStats.InternalLedgerInfo ledgerInfo = list.get(0); assertEquals(ledgerInfo.ledgerId, ledgerId); assertEquals(ledgerInfo.entries, entryId + 1); assertEquals(ledgerInfo.size, length); diff --git a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ManagedLedgerInternalStats.java b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ManagedLedgerInternalStats.java index 95a45d37d9556..0ee01bd952708 100644 --- a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ManagedLedgerInternalStats.java +++ b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ManagedLedgerInternalStats.java @@ -62,7 +62,7 @@ public class ManagedLedgerInternalStats { public String state; /** The ordered list of all ledgers for this topic holding messages. */ - public List ledgers; + public List ledgers; /** The list of all cursors on this topic. Each subscription in the topic stats has a cursor. */ public Map cursors; @@ -70,7 +70,7 @@ public class ManagedLedgerInternalStats { /** * Ledger information. */ - public static class LedgerInfo { + public static class InternalLedgerInfo { public long ledgerId; public long entries; public long size; diff --git a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.java b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.java index c4e4471962044..de053bc6a3e24 100644 --- a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.java +++ b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.java @@ -23,10 +23,10 @@ /** * Persistent topic internal statistics. */ -public class PersistentTopicInternalStats extends ManagedLedgerInternalStats{ +public class PersistentTopicInternalStats extends ManagedLedgerInternalStats { - public List schemaLedgers; + public List schemaLedgers; - // LedgerInfo for compacted topic if exist. - public LedgerInfo compactedLedger; + // LedgerInfo for compacted topic if existed. + public InternalLedgerInfo compactedLedger; } diff --git a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java index 940e96911165f..5fdcfd7d8ca60 100644 --- a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java +++ b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java @@ -97,7 +97,7 @@ import org.apache.pulsar.common.policies.data.FailureDomain; import org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode; import org.apache.pulsar.common.policies.data.InactiveTopicPolicies; -import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.LedgerInfo; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.InternalLedgerInfo; import org.apache.pulsar.common.policies.data.OffloadPoliciesImpl; import org.apache.pulsar.common.policies.data.OffloadedReadPriority; import org.apache.pulsar.common.policies.data.PersistencePolicies; @@ -1981,8 +1981,8 @@ public boolean matches(Long timestamp) { } - private static LedgerInfo newLedger(long id, long entries, long size) { - LedgerInfo l = new LedgerInfo(); + private static InternalLedgerInfo newLedger(long id, long entries, long size) { + InternalLedgerInfo l = new InternalLedgerInfo(); l.ledgerId = id; l.entries = entries; l.size = size; diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java index eb8bee3bb8452..c3b96ac1c51c1 100644 --- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java +++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java @@ -67,6 +67,7 @@ import org.apache.pulsar.common.policies.data.DispatchRate; import org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode; import org.apache.pulsar.common.policies.data.InactiveTopicPolicies; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats; import org.apache.pulsar.common.policies.data.OffloadPoliciesImpl; import org.apache.pulsar.common.policies.data.OffloadedReadPriority; import org.apache.pulsar.common.policies.data.PersistencePolicies; @@ -1428,13 +1429,13 @@ void run() throws PulsarAdminException { } } - static MessageId findFirstLedgerWithinThreshold(List ledgers, + static MessageId findFirstLedgerWithinThreshold(List ledgers, long sizeThreshold) { long suffixSize = 0L; ledgers = Lists.reverse(ledgers); long previousLedger = ledgers.get(0).ledgerId; - for (PersistentTopicInternalStats.LedgerInfo l : ledgers) { + for (ManagedLedgerInternalStats.InternalLedgerInfo l : ledgers) { suffixSize += l.size; if (suffixSize > sizeThreshold) { return new MessageIdImpl(previousLedger, 0L, -1); @@ -1464,7 +1465,7 @@ void run() throws PulsarAdminException { throw new PulsarAdminException("Topic doesn't have any data"); } - LinkedList ledgers = new LinkedList(stats.ledgers); + LinkedList ledgers = new LinkedList(stats.ledgers); ledgers.get(ledgers.size() - 1).size = stats.currentLedgerSize; // doesn't get filled in now it seems MessageId messageId = findFirstLedgerWithinThreshold(ledgers, sizeThreshold); diff --git a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java index a1c3d6f902cad..292a2419498e0 100644 --- a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java +++ b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdTopics.java @@ -43,7 +43,7 @@ import org.apache.pulsar.client.admin.Topics; import org.apache.pulsar.client.impl.MessageIdImpl; import org.apache.pulsar.common.naming.TopicDomain; -import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.LedgerInfo; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats.InternalLedgerInfo; import org.mockito.Mockito; import org.testng.Assert; import org.testng.annotations.AfterMethod; @@ -78,8 +78,8 @@ public void cleanup() throws IOException { //NOTHING FOR NOW } - private static LedgerInfo newLedger(long id, long entries, long size) { - LedgerInfo l = new LedgerInfo(); + private static InternalLedgerInfo newLedger(long id, long entries, long size) { + InternalLedgerInfo l = new InternalLedgerInfo(); l.ledgerId = id; l.entries = entries; l.size = size; @@ -88,7 +88,7 @@ private static LedgerInfo newLedger(long id, long entries, long size) { @Test public void testFindFirstLedgerWithinThreshold() throws Exception { - List ledgers = new ArrayList<>(); + List ledgers = new ArrayList<>(); ledgers.add(newLedger(0, 10, 1000)); ledgers.add(newLedger(1, 10, 2000)); ledgers.add(newLedger(2, 10, 3000)); diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/admin/AdminTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/admin/AdminTest.java index 86d4dbf23261c..a9bbb7ff7faea 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/admin/AdminTest.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/admin/AdminTest.java @@ -19,7 +19,6 @@ package org.apache.pulsar.tests.integration.admin; import static org.testng.Assert.assertNotNull; - import java.util.function.Supplier; import lombok.Cleanup; import lombok.extern.slf4j.Slf4j; @@ -28,6 +27,7 @@ import org.apache.pulsar.client.api.Producer; import org.apache.pulsar.client.api.PulsarClient; import org.apache.pulsar.client.api.Schema; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats; import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats; import org.apache.pulsar.tests.integration.messaging.MessagingBase; import org.testng.Assert; @@ -68,7 +68,7 @@ public void testUnderReplicatedState(Supplier serviceUrl, Supplier 0); - for (PersistentTopicInternalStats.LedgerInfo ledger : stats.ledgers) { + for (ManagedLedgerInternalStats.InternalLedgerInfo ledger : stats.ledgers) { Assert.assertFalse(ledger.underReplicated); } } diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/offload/TestBaseOffload.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/offload/TestBaseOffload.java index 7d38aa77bf027..e4fa7152f6d2f 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/offload/TestBaseOffload.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/offload/TestBaseOffload.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; - import lombok.extern.slf4j.Slf4j; import org.apache.bookkeeper.client.BKException; import org.apache.bookkeeper.client.BookKeeper; @@ -32,7 +31,7 @@ import org.apache.pulsar.client.api.Message; import org.apache.pulsar.client.api.Producer; import org.apache.pulsar.client.api.PulsarClient; -import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats; +import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats; import org.apache.pulsar.tests.integration.suites.PulsarTieredStorageTestSuite; import org.awaitility.Awaitility; import org.testng.Assert; @@ -214,7 +213,7 @@ protected void testPublishOffloadAndConsumeViaThreshold(String serviceUrl, Strin } } - private boolean ledgerOffloaded(List ledgers, long ledgerId) { + private boolean ledgerOffloaded(List ledgers, long ledgerId) { return ledgers.stream().filter(l -> l.ledgerId == ledgerId) .map(l -> l.offloaded).findFirst().get(); } @@ -236,7 +235,7 @@ private long writeAndWaitForOffload(String serviceUrl, String adminUrl, String t ? topic + "-partition-" + partitionNum : topic; - List ledgers = admin.topics() + List ledgers = admin.topics() .getInternalStats(topicToCheck).ledgers; long currentLedger = ledgers.get(ledgers.size() - 1).ledgerId; From 4ee21fa71bfd20bc28855dd08478eb77758355ed Mon Sep 17 00:00:00 2001 From: tison Date: Wed, 28 Dec 2022 22:42:36 +0800 Subject: [PATCH 2/2] try always generate ApiModel description Signed-off-by: tison --- .../org/apache/pulsar/common/functions/UpdateOptionsImpl.java | 4 +++- .../apache/pulsar/common/policies/data/TenantInfoImpl.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/UpdateOptionsImpl.java b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/UpdateOptionsImpl.java index c7c02453fff47..8e9dfd66361d7 100644 --- a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/UpdateOptionsImpl.java +++ b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/UpdateOptionsImpl.java @@ -26,9 +26,11 @@ /** * Options while updating the sink. */ +@ApiModel( + value = "UpdateOptions", + description = "Options while updating the sink") @Data @NoArgsConstructor -@ApiModel(value = "UpdateOptions", description = "Options while updating the sink") public class UpdateOptionsImpl implements UpdateOptions { @ApiModelProperty( value = "Whether or not to update the auth data", diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/TenantInfoImpl.java b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/TenantInfoImpl.java index 2e45b9c199f12..d0f602d9d9c81 100644 --- a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/TenantInfoImpl.java +++ b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/TenantInfoImpl.java @@ -29,10 +29,12 @@ /** * Information of admin roles and allowed clusters for tenant. */ +@ApiModel( + value = "TenantInfo", + description = "Information of adminRoles and allowedClusters for tenant") @Data @AllArgsConstructor @NoArgsConstructor -@ApiModel(value = "TenantInfo", description = "Information of adminRoles and allowedClusters for tenant") public class TenantInfoImpl implements TenantInfo { /** * List of role enabled as admin for this tenant.