diff --git a/.typos.toml b/.typos.toml new file mode 100644 index 0000000..1de3c18 --- /dev/null +++ b/.typos.toml @@ -0,0 +1,3 @@ +[default.extend-words] +# abbr +"vertx" = "vertx" diff --git a/pom.xml b/pom.xml index 1d23fab..89b396d 100644 --- a/pom.xml +++ b/pom.xml @@ -51,6 +51,10 @@ 1.7.0 4.8.6.2 2.43.0 + 5.3.1 + 4.1.112.Final + 4.12.0 + 4.5.10 @@ -62,6 +66,13 @@ pom import + + io.netty + netty-transport-native-epoll + linux-x86_64 + ${netty.version} + test + @@ -92,6 +103,12 @@ ${junit.version} test + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + test + org.apache.logging.log4j log4j-slf4j-impl diff --git a/pulsar-admin-api/pom.xml b/pulsar-admin-api/pom.xml index d5f4c42..7976e56 100644 --- a/pulsar-admin-api/pom.xml +++ b/pulsar-admin-api/pom.xml @@ -10,5 +10,11 @@ pulsar-admin-api - + + + io.github.openfacade + http-facade + ${http-facade.version} + + diff --git a/pulsar-admin-api/src/main/java/io/github/protocol/pulsar/admin/api/Configuration.java b/pulsar-admin-api/src/main/java/io/github/protocol/pulsar/admin/api/Configuration.java index 56fb18d..c35e592 100644 --- a/pulsar-admin-api/src/main/java/io/github/protocol/pulsar/admin/api/Configuration.java +++ b/pulsar-admin-api/src/main/java/io/github/protocol/pulsar/admin/api/Configuration.java @@ -1,5 +1,7 @@ package io.github.protocol.pulsar.admin.api; +import io.github.openfacade.http.HttpClientEngine; + public class Configuration { public String host = "localhost"; @@ -9,6 +11,8 @@ public class Configuration { public TlsConfig tlsConfig; + public HttpClientEngine engine; + public Configuration() { } @@ -31,4 +35,9 @@ public Configuration tlsConfig(TlsConfig tlsConfig) { this.tlsConfig = tlsConfig; return this; } + + public Configuration engine(HttpClientEngine engine) { + this.engine = engine; + return this; + } } diff --git a/pulsar-admin/pom.xml b/pulsar-admin/pom.xml index e78ad0f..7901006 100644 --- a/pulsar-admin/pom.xml +++ b/pulsar-admin/pom.xml @@ -22,6 +22,23 @@ http-facade ${http-facade.version} + + org.apache.httpcomponents.client5 + httpclient5 + ${apache-http-client.version} + test + + + com.squareup.okhttp3 + okhttp + ${okhttp.version} + test + + + io.vertx + vertx-web-client + ${vertx.version} + diff --git a/pulsar-admin/src/main/java/io/github/protocol/pulsar/admin/jdk/InnerHttpClient.java b/pulsar-admin/src/main/java/io/github/protocol/pulsar/admin/jdk/InnerHttpClient.java index 8883300..458a22b 100644 --- a/pulsar-admin/src/main/java/io/github/protocol/pulsar/admin/jdk/InnerHttpClient.java +++ b/pulsar-admin/src/main/java/io/github/protocol/pulsar/admin/jdk/InnerHttpClient.java @@ -29,7 +29,7 @@ public class InnerHttpClient { public InnerHttpClient(Configuration conf) { HttpClientConfig.Builder clientConfigBuilder = new HttpClientConfig.Builder(); - clientConfigBuilder.engine(HttpClientEngine.Java); + clientConfigBuilder.engine(conf.engine == null ? HttpClientEngine.Java : conf.engine); if (conf.tlsEnabled) { TlsConfig.Builder tlsConfigBuilder = new TlsConfig.Builder(); io.github.protocol.pulsar.admin.api.TlsConfig tlsConfig = conf.tlsConfig; diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BaseTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BaseTest.java new file mode 100644 index 0000000..523f2b6 --- /dev/null +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BaseTest.java @@ -0,0 +1,56 @@ +package io.github.protocol.pulsar.admin.jdk; + +import io.github.embedded.pulsar.core.EmbeddedPulsarServer; +import io.github.openfacade.http.HttpClientEngine; +import io.github.protocol.pulsar.admin.api.Configuration; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.params.provider.Arguments; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class BaseTest { + protected EmbeddedPulsarServer server; + protected List pulsarAdmins; + + @BeforeAll + public void setup() throws Exception { + server = new EmbeddedPulsarServer(); + server.start(); + pulsarAdmins = initPulsarAdmins(); + } + + @AfterAll + public void teardown() throws Exception { + server.close(); + } + + protected int getPort() { + return server.getWebPort(); + } + + protected List initPulsarAdmins() { + List pulsarAdmins = new ArrayList<>(); + for (HttpClientEngine engine: HttpClientEngine.values()) { + // async and jetty client has dependency conflicts with embedded pulsar core, skip it. + if (engine.equals(HttpClientEngine.Async) || engine.equals(HttpClientEngine.Jetty)) { + continue; + } + Configuration conf = new Configuration(); + conf.host("localhost"); + conf.port(getPort()); + conf.engine(engine); + PulsarAdminImpl pulsarAdmin = new PulsarAdminImpl(conf); + pulsarAdmins.add(pulsarAdmin); + } + return pulsarAdmins; + } + + protected Stream providePulsarAdmins() { + return pulsarAdmins.stream().map(pulsarAdmin -> Arguments.arguments(pulsarAdmin)); + } +} diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BrokersTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BrokersTest.java index c99ca19..2d61f1c 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BrokersTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/BrokersTest.java @@ -1,32 +1,18 @@ package io.github.protocol.pulsar.admin.jdk; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -public class BrokersTest { - private static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); - } +public class BrokersTest extends BaseTest{ @Test public void testHealthCheckV1() throws PulsarAdminException { - PulsarAdmin pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); + PulsarAdmin pulsarAdmin = PulsarAdmin.builder().port(getPort()).build(); pulsarAdmin.brokers().healthcheck(TopicVersion.V1); } @Test public void testHealthCheckV2() throws PulsarAdminException { - PulsarAdmin pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); + PulsarAdmin pulsarAdmin = PulsarAdmin.builder().port(getPort()).build(); pulsarAdmin.brokers().healthcheck(TopicVersion.V2); } } diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/ClustersTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/ClustersTest.java index 5053bc9..f55b7c7 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/ClustersTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/ClustersTest.java @@ -1,31 +1,15 @@ package io.github.protocol.pulsar.admin.jdk; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.util.Arrays; -public class ClustersTest { - - private static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); - } - +public class ClustersTest extends BaseTest{ @Test public void getClustersTest() throws PulsarAdminException { Assertions.assertEquals(Arrays.asList("standalone"), - PulsarAdmin.builder().port(SERVER.getWebPort()).build().clusters().getClusters()); + PulsarAdmin.builder().port(getPort()).build().clusters().getClusters()); } } diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NamespacesTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NamespacesTest.java index 4904b3a..0cf83cd 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NamespacesTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NamespacesTest.java @@ -1,41 +1,24 @@ package io.github.protocol.pulsar.admin.jdk; import com.google.common.collect.ImmutableMap; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.HashSet; import java.util.TreeMap; -public class NamespacesTest { - - private static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - +public class NamespacesTest extends BaseTest { private static final String CLUSTER_STANDALONE = "standalone"; private static final TenantInfo initialTenantInfo = (new TenantInfo.TenantInfoBuilder()) .adminRoles(new HashSet<>(0)) .allowedClusters(new HashSet<>(Arrays.asList(CLUSTER_STANDALONE))).build(); - private static PulsarAdmin pulsarAdmin; - - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); - } - - @Test - public void namespaceTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespaceTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); @@ -52,8 +35,9 @@ public void namespaceTest() throws PulsarAdminException { Assertions.assertEquals(Arrays.asList(), pulsarAdmin.namespaces().getTenantNamespaces(tenant)); } - @Test - public void namespacesBacklogQuotaTest() throws PulsarAdminException, InterruptedException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespacesBacklogQuotaTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException, InterruptedException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); @@ -86,8 +70,9 @@ public void namespacesBacklogQuotaTest() throws PulsarAdminException, Interrupte new TreeMap<>(pulsarAdmin.namespaces().getBacklogQuotaMap(tenant, namespace))); } - @Test - public void namespacesClearBacklogTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespacesClearBacklogTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); @@ -97,8 +82,9 @@ public void namespacesClearBacklogTest() throws PulsarAdminException { tenant, namespace, RandomUtil.randomString(), false); } - @Test - public void namespacesRetentionTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespacesRetentionTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); @@ -113,8 +99,9 @@ public void namespacesRetentionTest() throws PulsarAdminException { Assertions.assertNull(pulsarAdmin.namespaces().getRetention(tenant, namespace)); } - @Test - public void namespacesMessageTTLTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespacesMessageTTLTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); @@ -126,8 +113,9 @@ public void namespacesMessageTTLTest() throws PulsarAdminException { Assertions.assertNull(pulsarAdmin.namespaces().getNamespaceMessageTTL(tenant, namespace)); } - @Test - public void namespacesCompactionThresholdTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void namespacesCompactionThresholdTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenant = RandomUtil.randomString(); String namespace = RandomUtil.randomString(); pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NonPersistentTopicsTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NonPersistentTopicsTest.java index 2f691d2..6354b1b 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NonPersistentTopicsTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/NonPersistentTopicsTest.java @@ -1,41 +1,31 @@ package io.github.protocol.pulsar.admin.jdk; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.HashSet; -public class NonPersistentTopicsTest { - - private static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - +public class NonPersistentTopicsTest extends BaseTest{ private static final String CLUSTER_STANDALONE = "standalone"; private static final String tenant = RandomUtil.randomString(); - private static PulsarAdmin pulsarAdmin; - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); + public void setup() throws Exception { + super.setup(); + // create one tenant is enough TenantInfo initialTenantInfo = (new TenantInfo.TenantInfoBuilder()) .adminRoles(new HashSet<>(0)) .allowedClusters(new HashSet<>(Arrays.asList(CLUSTER_STANDALONE))).build(); - pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); + pulsarAdmins.get(0).tenants().createTenant(tenant, initialTenantInfo); } - @Test - public void partitionedTopicsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void partitionedTopicsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -57,8 +47,9 @@ public void partitionedTopicsTest() throws PulsarAdminException { pulsarAdmin.nonPersistentTopics().getList(tenant, namespace, null, false)); } - @Test - public void getPartitionedStatsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void getPartitionedStatsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -67,8 +58,9 @@ public void getPartitionedStatsTest() throws PulsarAdminException { topic, false)); } - @Test - public void nonPartitionedTopicsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void nonPartitionedTopicsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -82,8 +74,9 @@ public void nonPartitionedTopicsTest() throws PulsarAdminException { pulsarAdmin.nonPersistentTopics().getList(tenant, namespace, null, false)); } - @Test - public void getLastMessageIdTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void getLastMessageIdTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/PersistentTopicsTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/PersistentTopicsTest.java index 6ab88cb..ac9b06f 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/PersistentTopicsTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/PersistentTopicsTest.java @@ -1,44 +1,34 @@ package io.github.protocol.pulsar.admin.jdk; import com.google.common.collect.ImmutableMap; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; import org.awaitility.Awaitility; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.HashSet; import java.util.TreeMap; -public class PersistentTopicsTest { - - private static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - +public class PersistentTopicsTest extends BaseTest { private static final String CLUSTER_STANDALONE = "standalone"; private static final String tenant = RandomUtil.randomString(); - private static PulsarAdmin pulsarAdmin; - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); + public void setup() throws Exception { + super.setup(); + // create one tenant is enough TenantInfo initialTenantInfo = (new TenantInfo.TenantInfoBuilder()) .adminRoles(new HashSet<>(0)) .allowedClusters(new HashSet<>(Arrays.asList(CLUSTER_STANDALONE))).build(); - pulsarAdmin.tenants().createTenant(tenant, initialTenantInfo); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); + pulsarAdmins.get(0).tenants().createTenant(tenant, initialTenantInfo); } - @Test - public void partitionedTopicsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void partitionedTopicsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -70,8 +60,9 @@ public void partitionedTopicsTest() throws PulsarAdminException { } - @Test - public void nonPartitionedTopicsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void nonPartitionedTopicsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -85,8 +76,9 @@ public void nonPartitionedTopicsTest() throws PulsarAdminException { pulsarAdmin.persistentTopics().getList(tenant, namespace, null, false)); } - @Test - public void createMissedPartitionsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void createMissedPartitionsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -106,8 +98,9 @@ public void createMissedPartitionsTest() throws PulsarAdminException { pulsarAdmin.persistentTopics().getList(tenant, namespace, null, false)); } - @Test - public void getLastMessageIdTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void getLastMessageIdTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -118,8 +111,9 @@ public void getLastMessageIdTest() throws PulsarAdminException { Assertions.assertNotNull(pulsarAdmin.persistentTopics().getLastMessageId(tenant, namespace, topic, false)); } - @Test - public void backLogQuotaTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void backLogQuotaTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -162,8 +156,9 @@ public void backLogQuotaTest() throws PulsarAdminException { Assertions.assertNotNull(pulsarAdmin.persistentTopics().getBacklog(tenant, namespace, topic, false)); } - @Test - public void retentionTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void retentionTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); @@ -192,8 +187,9 @@ public void retentionTest() throws PulsarAdminException { false, false, false)); } - @Test - public void getPartitionedStatsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void getPartitionedStatsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String namespace = RandomUtil.randomString(); String topic = RandomUtil.randomString(); pulsarAdmin.namespaces().createNamespace(tenant, namespace); diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TenantsTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TenantsTest.java index 8f168aa..3497580 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TenantsTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TenantsTest.java @@ -1,35 +1,20 @@ package io.github.protocol.pulsar.admin.jdk; -import io.github.embedded.pulsar.core.EmbeddedPulsarServer; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.HashSet; -public class TenantsTest { - - protected static final EmbeddedPulsarServer SERVER = new EmbeddedPulsarServer(); - +public class TenantsTest extends BaseTest { protected static final String CLUSTER_STANDALONE = "standalone"; protected static PulsarAdmin pulsarAdmin; - @BeforeAll - public static void setup() throws Exception { - SERVER.start(); - pulsarAdmin = PulsarAdmin.builder().port(SERVER.getWebPort()).build(); - } - - @AfterAll - public static void teardown() throws Exception { - SERVER.close(); - } - - @Test - public void tenantsTest() throws PulsarAdminException { + @ParameterizedTest + @MethodSource("providePulsarAdmins") + public void tenantsTest(PulsarAdmin pulsarAdmin) throws PulsarAdminException { String tenantName = RandomUtil.randomString(); TenantInfo initialTenantInfo = (new TenantInfo.TenantInfoBuilder()) .adminRoles(new HashSet<>(0)) diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientTest.java index bb66cf8..d3fa523 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientTest.java @@ -9,10 +9,7 @@ import java.io.File; -public class TlsClientTest { - - private static EmbeddedPulsarServer server; - +public class TlsClientTest extends BaseTest { private static final String CLIENT_KEYSTORE_FILE = TlsClientTest.class.getClassLoader().getResource("pulsar_client_key.jks").getFile(); private static final String CLIENT_TRUSTSTORE_FILE = @@ -28,7 +25,7 @@ public class TlsClientTest { private static final String SERVER_CERT_PASSWORD = "pulsar_server_pwd"; @BeforeAll - public static void setup() throws Exception { + public void setup() throws Exception { EmbeddedPulsarConfig config = new EmbeddedPulsarConfig(); config.enableTls(true); config.serverKeyStorePath(new File(SERVER_KEYSTORE_FILE).getAbsolutePath()); @@ -45,7 +42,7 @@ public static void setup() throws Exception { private PulsarAdmin createPulsarAdmin(TlsConfig tlsConfig) throws PulsarAdminException { return PulsarAdmin.builder() - .port(server.getWebPort()) + .port(getPort()) .tlsEnabled(true) .tlsConfig(tlsConfig) .build(); @@ -134,7 +131,7 @@ public void testTlsByVerifyAndHostnameVerification() throws PulsarAdminException } @AfterAll - public static void teardown() throws Exception { + public void teardown() throws Exception { server.close(); } } diff --git a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientWrongHostTest.java b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientWrongHostTest.java index bb7c5dc..b4898cd 100644 --- a/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientWrongHostTest.java +++ b/pulsar-admin/src/test/java/io/github/protocol/pulsar/admin/jdk/TlsClientWrongHostTest.java @@ -10,10 +10,7 @@ import java.io.File; -public class TlsClientWrongHostTest { - - private static EmbeddedPulsarServer server; - +public class TlsClientWrongHostTest extends BaseTest{ private static final String CLIENT_KEYSTORE_FILE = TlsClientWrongHostTest.class.getClassLoader().getResource("pulsar_client_key_wrong_host.jks").getFile(); private static final String CLIENT_TRUSTSTORE_FILE = @@ -29,7 +26,7 @@ public class TlsClientWrongHostTest { private static final String SERVER_CERT_PASSWORD = "pulsar_server_pwd"; @BeforeAll - public static void setup() throws Exception { + public void setup() throws Exception { EmbeddedPulsarConfig config = new EmbeddedPulsarConfig(); config.enableTls(true); config.serverKeyStorePath(new File(SERVER_KEYSTORE_FILE).getAbsolutePath()); @@ -57,7 +54,7 @@ public void testTlsByVerifyAndNoHostnameVerification() throws PulsarAdminExcepti null ); PulsarAdmin pulsarAdmin = PulsarAdmin.builder() - .port(server.getWebPort()) + .port(getPort()) .tlsEnabled(true) .tlsConfig(tlsConfig) .build(); @@ -65,7 +62,7 @@ public void testTlsByVerifyAndNoHostnameVerification() throws PulsarAdminExcepti } @AfterAll - public static void teardown() throws Exception { + public void teardown() throws Exception { server.close(); } }