You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2018/02/27 04:06:31 UTC
[GitHub] merlimat closed pull request #1293: Enable multipart feature in pulsar admin and make a few fields protected to allow extension
merlimat closed pull request #1293: Enable multipart feature in pulsar admin and make a few fields protected to allow extension
URL: https://github.com/apache/incubator-pulsar/pull/1293
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/pulsar-client-admin/pom.xml b/pulsar-client-admin/pom.xml
index 0cfc9dc49..df4f4947a 100644
--- a/pulsar-client-admin/pom.xml
+++ b/pulsar-client-admin/pom.xml
@@ -56,6 +56,11 @@
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.media</groupId>
+ <artifactId>jersey-media-multipart</artifactId>
+ </dependency>
+
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
diff --git a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/PulsarAdmin.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/PulsarAdmin.java
index dfa657952..a68ff0acd 100644
--- a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/PulsarAdmin.java
+++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/PulsarAdmin.java
@@ -49,6 +49,7 @@
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.jackson.JacksonFeature;
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.bridge.SLF4JBridgeHandler;
@@ -70,9 +71,9 @@
private final Client client;
private final URL serviceUrl;
- private final WebTarget web;
+ protected final WebTarget web;
private final Lookup lookups;
- private final Authentication auth;
+ protected final Authentication auth;
static {
/**
@@ -114,6 +115,7 @@ public PulsarAdmin(URL serviceUrl, ClientConfiguration pulsarConfig) throws Puls
ClientConfig httpConfig = new ClientConfig();
httpConfig.property(ClientProperties.FOLLOW_REDIRECTS, true);
httpConfig.property(ClientProperties.ASYNC_THREADPOOL_SIZE, 8);
+ httpConfig.register(MultiPartFeature.class);
ClientBuilder clientBuilder = ClientBuilder.newBuilder().withConfig(httpConfig)
.register(JacksonConfigurator.class).register(JacksonFeature.class);
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/PulsarAdminTool.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/PulsarAdminTool.java
index f1f60cb8b..42eb2b739 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/PulsarAdminTool.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/PulsarAdminTool.java
@@ -26,6 +26,7 @@
import java.util.Map;
import java.util.Properties;
+import java.util.function.BiFunction;
import org.apache.commons.lang3.StringUtils;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.api.ClientConfiguration;
@@ -34,7 +35,7 @@
import com.beust.jcommander.Parameter;
public class PulsarAdminTool {
- private final Map<String, Class> commandMap;
+ protected final Map<String, Class> commandMap;
private final JCommander jcommander;
private final ClientConfiguration config;
@@ -81,11 +82,11 @@
commandMap.put("resource-quotas", CmdResourceQuotas.class);
}
- private void setupCommands() {
+ private void setupCommands(BiFunction<URL, ClientConfiguration, ? extends PulsarAdmin> adminFactory) {
try {
URL url = new URL(serviceUrl);
config.setAuthentication(authPluginClassName, authParams);
- PulsarAdmin admin = new PulsarAdmin(url, config);
+ PulsarAdmin admin = adminFactory.apply(url, config);
for (Map.Entry<String, Class> c : commandMap.entrySet()) {
jcommander.addCommand(c.getKey(), c.getValue().getConstructor(PulsarAdmin.class).newInstance(admin));
}
@@ -99,8 +100,20 @@ private void setupCommands() {
}
boolean run(String[] args) {
+ return run(args, (url, config) -> {
+ try {
+ return new PulsarAdmin(url, config);
+ } catch (Exception ex) {
+ System.err.println(ex.getClass() + ": " + ex.getMessage());
+ System.exit(1);
+ return null;
+ }
+ });
+ }
+
+ boolean run(String[] args, BiFunction<URL, ClientConfiguration, ? extends PulsarAdmin> adminFactory) {
if (args.length == 0) {
- setupCommands();
+ setupCommands(adminFactory);
jcommander.usage();
return false;
}
@@ -117,23 +130,23 @@ boolean run(String[] args) {
} catch (Exception e) {
System.err.println(e.getMessage());
System.err.println();
- setupCommands();
+ setupCommands(adminFactory);
jcommander.usage();
return false;
}
if (help) {
- setupCommands();
+ setupCommands(adminFactory);
jcommander.usage();
return false;
}
if (cmdPos == args.length) {
- setupCommands();
+ setupCommands(adminFactory);
jcommander.usage();
return false;
} else {
- setupCommands();
+ setupCommands(adminFactory);
String cmd = args[cmdPos];
JCommander obj = jcommander.getCommands().get(cmd);
CmdBase cmdObj = (CmdBase) obj.getObjects().get(0);
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services