Skip to content

Commit 6525edb

Browse files
author
ZhangJian He
authored
fix: fix non-persistent topic impl bug (#22)
Signed-off-by: ZhangJian He <shoothzj@gmail.com>
1 parent f0dbc40 commit 6525edb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+112
-105
lines changed

pom.xml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424
<jackson.version>2.17.2</jackson.version>
2525
<junit.version>5.11.0</junit.version>
2626
<log4j.version>2.20.0</log4j.version>
27+
<lombok.version>1.18.34</lombok.version>
2728
<!-- plugin -->
2829
<compiler-plugin.version>3.10.1</compiler-plugin.version>
2930
<checkstyle-plugin.version>3.2.0</checkstyle-plugin.version>
3031
<javadoc-plugin.version>3.4.1</javadoc-plugin.version>
31-
<lombok.version>1.18.34</lombok.version>
32+
<lombok-maven-plugin.version>1.18.20.0</lombok-maven-plugin.version>
33+
<maven-gpg-plugin.version>3.2.4</maven-gpg-plugin.version>
3234
<nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
3335
<puppycrawl.version>10.18.0</puppycrawl.version>
3436
<release-plugin.version>3.0.0-M6</release-plugin.version>
@@ -243,7 +245,7 @@
243245

244246
<developers>
245247
<developer>
246-
<name>ShootHzj</name>
248+
<name>shootHzj</name>
247249
<email>shoothzj@gmail.com</email>
248250
</developer>
249251
</developers>
@@ -280,7 +282,7 @@
280282
<plugin>
281283
<groupId>org.apache.maven.plugins</groupId>
282284
<artifactId>maven-gpg-plugin</artifactId>
283-
<version>3.0.1</version>
285+
<version>${maven-gpg-plugin.version}</version>
284286
<executions>
285287
<execution>
286288
<id>sign-artifacts</id>
@@ -311,12 +313,12 @@
311313
<plugin>
312314
<groupId>org.projectlombok</groupId>
313315
<artifactId>lombok-maven-plugin</artifactId>
314-
<version>1.18.20.0</version>
316+
<version>${lombok-maven-plugin.version}</version>
315317
<dependencies>
316318
<dependency>
317319
<groupId>org.projectlombok</groupId>
318320
<artifactId>lombok</artifactId>
319-
<version>1.18.24</version>
321+
<version>${lombok.version}</version>
320322
</dependency>
321323
</dependencies>
322324
<executions>

pulsar-admin-jdk/pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,15 @@
1111

1212
<artifactId>pulsar-admin-jdk</artifactId>
1313

14+
<build>
15+
<testResources>
16+
<testResource>
17+
<directory>src/test/resources</directory>
18+
<includes>
19+
<include>**.jks</include>
20+
</includes>
21+
</testResource>
22+
</testResources>
23+
</build>
24+
1425
</project>

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/NonPersistentTopicsImpl.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/BacklogQuota.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/BacklogQuota.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.protocol.pulsar;
1+
package io.github.protocol.pulsar.admin.jdk;
22

33
import lombok.AllArgsConstructor;
44
import lombok.Builder;

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/BacklogQuotaType.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/BacklogQuotaType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.protocol.pulsar;
1+
package io.github.protocol.pulsar.admin.jdk;
22

33
public enum BacklogQuotaType {
44

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/PersistentTopicsImpl.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/BaseTopicsImpl.java

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.protocol.pulsar;
1+
package io.github.protocol.pulsar.admin.jdk;
22

33
import com.fasterxml.jackson.core.type.TypeReference;
44

@@ -7,25 +7,20 @@
77
import java.util.List;
88
import java.util.Map;
99

10-
public class PersistentTopicsImpl implements Topics {
10+
public abstract class BaseTopicsImpl implements Topics {
1111

1212
protected final InnerHttpClient httpClient;
1313

14-
private static final String BASE_URL_PERSISTENT_DOMAIN = "/admin/v2" + "/persistent";
15-
16-
public PersistentTopicsImpl(InnerHttpClient httpClient) {
14+
public BaseTopicsImpl(InnerHttpClient httpClient) {
1715
this.httpClient = httpClient;
1816
}
1917

20-
public String getDomainBaseUrl() {
21-
return "/admin/v2" + "/persistent";
22-
}
18+
protected abstract String getDomainBaseUrl();
2319

2420
@Override
2521
public void createPartitionedTopic(String tenant, String namespace, String encodedTopic, int numPartitions,
2622
boolean createLocalTopicOnly) throws PulsarAdminException {
27-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
28-
"/partitions");
23+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic, "/partitions");
2924
try {
3025
HttpResponse<String> response = httpClient.put(url, numPartitions, "createLocalTopicOnly",
3126
String.valueOf(createLocalTopicOnly));
@@ -42,8 +37,7 @@ public void createPartitionedTopic(String tenant, String namespace, String encod
4237
@Override
4338
public void deletePartitionedTopic(String tenant, String namespace, String encodedTopic, boolean force,
4439
boolean authoritative) throws PulsarAdminException {
45-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
46-
"/partitions");
40+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic, "/partitions");
4741
try {
4842
HttpResponse<String> response = httpClient.delete(url, "force", String.valueOf(force),
4943
"authoritative", String.valueOf(authoritative));
@@ -61,8 +55,7 @@ public void deletePartitionedTopic(String tenant, String namespace, String encod
6155
public void updatePartitionedTopic(String tenant, String namespace, String encodedTopic,
6256
boolean updateLocalTopicOnly, boolean authoritative,
6357
boolean force, int numPartitions) throws PulsarAdminException {
64-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
65-
"/partitions");
58+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic, "/partitions");
6659
try {
6760
HttpResponse<String> response = httpClient.post(url, numPartitions, "updateLocalTopicOnly",
6861
String.valueOf(updateLocalTopicOnly),
@@ -82,8 +75,7 @@ public void updatePartitionedTopic(String tenant, String namespace, String encod
8275
public PartitionedTopicMetadata getPartitionedMetadata(String tenant, String namespace, String encodedTopic,
8376
boolean checkAllowAutoCreation, boolean authoritative)
8477
throws PulsarAdminException {
85-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent",
86-
tenant, namespace, encodedTopic, "/partitions");
78+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic, "/partitions");
8779
try {
8880
HttpResponse<String> response = httpClient.get(url,
8981
"checkAllowAutoCreation", String.valueOf(checkAllowAutoCreation),
@@ -102,7 +94,7 @@ public PartitionedTopicMetadata getPartitionedMetadata(String tenant, String nam
10294
@Override
10395
public void createNonPartitionedTopic(String tenant, String namespace, String encodedTopic, boolean authoritative,
10496
Map<String, String> properties) throws PulsarAdminException {
105-
String url = String.format("%s/%s/%s/%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic);
97+
String url = String.format("%s/%s/%s/%s", getDomainBaseUrl(), tenant, namespace, encodedTopic);
10698
try {
10799
HttpResponse<String> response = httpClient.put(url, properties,
108100
"authoritative", String.valueOf(authoritative));
@@ -119,7 +111,7 @@ public void createNonPartitionedTopic(String tenant, String namespace, String en
119111
@Override
120112
public void deleteTopic(String tenant, String namespace, String encodedTopic, boolean force, boolean authoritative)
121113
throws PulsarAdminException {
122-
String url = String.format("%s/%s/%s/%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic);
114+
String url = String.format("%s/%s/%s/%s", getDomainBaseUrl(), tenant, namespace, encodedTopic);
123115
try {
124116
HttpResponse<String> response = httpClient.delete(url,
125117
"force", String.valueOf(force),
@@ -137,7 +129,7 @@ public void deleteTopic(String tenant, String namespace, String encodedTopic, bo
137129
@Override
138130
public List<String> getList(String tenant, String namespace, String bundle, boolean includeSystemTopic)
139131
throws PulsarAdminException {
140-
String url = String.format("%s/%s/%s", "/admin/v2" + "/persistent", tenant, namespace);
132+
String url = String.format("%s/%s/%s", getDomainBaseUrl(), tenant, namespace);
141133
try {
142134
HttpResponse<String> response;
143135
if (bundle != null) {
@@ -164,7 +156,7 @@ public List<String> getList(String tenant, String namespace, String bundle, bool
164156
@Override
165157
public List<String> getPartitionedTopicList(String tenant, String namespace, boolean includeSystemTopic)
166158
throws PulsarAdminException {
167-
String url = String.format("%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, UrlConst.PARTITIONED);
159+
String url = String.format("%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, UrlConst.PARTITIONED);
168160
try {
169161
HttpResponse<String> response = httpClient.get(url, "includeSystemTopic",
170162
String.valueOf(includeSystemTopic));
@@ -184,7 +176,7 @@ public List<String> getPartitionedTopicList(String tenant, String namespace, boo
184176
@Override
185177
public void createMissedPartitions(String tenant, String namespace, String encodedTopic)
186178
throws PulsarAdminException {
187-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
179+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
188180
UrlConst.CREATE_MISSED_PARTITIONS);
189181
try {
190182
HttpResponse<String> response = httpClient.post(url);
@@ -202,7 +194,7 @@ public void createMissedPartitions(String tenant, String namespace, String encod
202194
@Override
203195
public MessageIdImpl getLastMessageId(String tenant, String namespace, String encodedTopic, boolean authoritative)
204196
throws PulsarAdminException {
205-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
197+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
206198
UrlConst.LAST_MESSAGE_ID);
207199
try {
208200
HttpResponse<String> response = httpClient.get(url, "authoritative", String.valueOf(authoritative));
@@ -220,7 +212,7 @@ public MessageIdImpl getLastMessageId(String tenant, String namespace, String en
220212
@Override
221213
public RetentionPolicies getRetention(String tenant, String namespace, String encodedTopic, boolean isGlobal,
222214
boolean applied, boolean authoritative) throws PulsarAdminException {
223-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
215+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
224216
UrlConst.RETENTION);
225217
try {
226218
HttpResponse<String> response = httpClient.get(url,
@@ -241,7 +233,7 @@ public RetentionPolicies getRetention(String tenant, String namespace, String en
241233
@Override
242234
public void setRetention(String tenant, String namespace, String encodedTopic, boolean authoritative,
243235
boolean isGlobal, RetentionPolicies retention) throws PulsarAdminException {
244-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
236+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
245237
UrlConst.RETENTION);
246238
try {
247239
HttpResponse<String> response = httpClient.post(url, retention,
@@ -260,7 +252,7 @@ public void setRetention(String tenant, String namespace, String encodedTopic, b
260252
@Override
261253
public void removeRetention(String tenant, String namespace, String encodedTopic, boolean authoritative)
262254
throws PulsarAdminException {
263-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
255+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
264256
UrlConst.RETENTION);
265257
try {
266258
HttpResponse<String> response = httpClient.delete(url, "authoritative", String.valueOf(authoritative));
@@ -279,7 +271,7 @@ public Map<BacklogQuotaType, BacklogQuota> getBacklogQuotaMap(String tenant, Str
279271
String encodedTopic, boolean applied,
280272
boolean authoritative, boolean isGlobal)
281273
throws PulsarAdminException {
282-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
274+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
283275
UrlConst.BACKLOG_QUOTA_MAP);
284276
try {
285277
HttpResponse<String> response = httpClient.get(url,
@@ -302,7 +294,7 @@ public Map<BacklogQuotaType, BacklogQuota> getBacklogQuotaMap(String tenant, Str
302294
public void setBacklogQuota(String tenant, String namespace, String encodedTopic, boolean authoritative,
303295
boolean isGlobal, BacklogQuotaType backlogQuotaType, BacklogQuota backlogQuota)
304296
throws PulsarAdminException {
305-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
297+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
306298
UrlConst.BACKLOG_QUOTA);
307299
try {
308300
HttpResponse<String> response = httpClient.post(url, backlogQuota,
@@ -323,7 +315,7 @@ public void setBacklogQuota(String tenant, String namespace, String encodedTopic
323315
public void removeBacklogQuota(String tenant, String namespace, String encodedTopic,
324316
BacklogQuotaType backlogQuotaType, boolean authoritative, boolean isGlobal)
325317
throws PulsarAdminException {
326-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
318+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
327319
UrlConst.BACKLOG_QUOTA);
328320
try {
329321
HttpResponse<String> response = httpClient.delete(url,
@@ -343,7 +335,7 @@ public void removeBacklogQuota(String tenant, String namespace, String encodedTo
343335
@Override
344336
public PersistentOfflineTopicStats getBacklog(String tenant, String namespace, String encodedTopic,
345337
boolean authoritative) throws PulsarAdminException {
346-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
338+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
347339
UrlConst.BACKLOG);
348340
try {
349341
HttpResponse<String> response = httpClient.get(url, "authoritative", String.valueOf(authoritative));
@@ -361,7 +353,7 @@ public PersistentOfflineTopicStats getBacklog(String tenant, String namespace, S
361353
@Override
362354
public long getBacklogSizeByMessageId(String tenant, String namespace, String encodedTopic, boolean authoritative,
363355
MessageIdImpl messageId) throws PulsarAdminException {
364-
String url = String.format("%s/%s/%s/%s%s", "/admin/v2" + "/persistent", tenant, namespace, encodedTopic,
356+
String url = String.format("%s/%s/%s/%s%s", getDomainBaseUrl(), tenant, namespace, encodedTopic,
365357
UrlConst.BACKLOG_SIZE);
366358
try {
367359
HttpResponse<String> response = httpClient.put(url, messageId, "authoritative",
@@ -376,5 +368,4 @@ public long getBacklogSizeByMessageId(String tenant, String namespace, String en
376368
throw new PulsarAdminException(e);
377369
}
378370
}
379-
380371
}

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/Brokers.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/Brokers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package io.github.protocol.pulsar;
19+
package io.github.protocol.pulsar.admin.jdk;
2020

2121
public interface Brokers {
2222
void healthcheck(TopicVersion topicVersion) throws PulsarAdminException;

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/BrokersImpl.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/BrokersImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package io.github.protocol.pulsar;
19+
package io.github.protocol.pulsar.admin.jdk;
2020

2121
import java.net.http.HttpResponse;
2222

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/Clusters.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/Clusters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.protocol.pulsar;
1+
package io.github.protocol.pulsar.admin.jdk;
22

33
import java.util.List;
44

pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/ClustersImpl.java renamed to pulsar-admin-jdk/src/main/java/io/github/protocol/pulsar/admin/jdk/ClustersImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.protocol.pulsar;
1+
package io.github.protocol.pulsar.admin.jdk;
22

33
import com.fasterxml.jackson.core.type.TypeReference;
44

0 commit comments

Comments
 (0)