rdhabalia closed pull request #1423: Refactor pulsar function admin api location URL: https://github.com/apache/incubator-pulsar/pull/1423
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 df4f4947a..029dbce55 100644 --- a/pulsar-client-admin/pom.xml +++ b/pulsar-client-admin/pom.xml @@ -80,5 +80,15 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + + <!-- functions related dependencies (begin) --> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pulsar-functions-runtime-shaded</artifactId> + <version>${project.version}</version> + </dependency> + + <!-- functions related dependencies (end) --> </dependencies> </project> diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/admin/Functions.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Functions.java similarity index 100% rename from pulsar-client-tools/src/main/java/org/apache/pulsar/client/admin/Functions.java rename to pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Functions.java 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 435548084..2e4f6256a 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 @@ -32,6 +32,7 @@ import org.apache.pulsar.client.admin.internal.BrokerStatsImpl; import org.apache.pulsar.client.admin.internal.BrokersImpl; import org.apache.pulsar.client.admin.internal.ClustersImpl; +import org.apache.pulsar.client.admin.internal.FunctionsImpl; import org.apache.pulsar.client.admin.internal.JacksonConfigurator; import org.apache.pulsar.client.admin.internal.LookupImpl; import org.apache.pulsar.client.admin.internal.NamespacesImpl; @@ -70,6 +71,7 @@ private final PersistentTopics persistentTopics; private final NonPersistentTopics nonPersistentTopics; private final ResourceQuotas resourceQuotas; + private final Functions functions; private final Client client; private final URL serviceUrl; @@ -181,6 +183,7 @@ public PulsarAdmin(URL serviceUrl, ClientConfigurationData pulsarConfig) throws this.persistentTopics = new PersistentTopicsImpl(root, auth); this.nonPersistentTopics = new NonPersistentTopicsImpl(root, auth); this.resourceQuotas = new ResourceQuotasImpl(root, auth); + this.functions = new FunctionsImpl(root, auth); this.lookups = new LookupImpl(root, auth, pulsarConfig.isUseTls()); } @@ -285,6 +288,14 @@ public ResourceQuotas resourceQuotas() { return resourceQuotas; } + /** + * @return the functions management object + */ + public Functions functions() { + return functions; + } + + /** * @return does a looks up for the broker serving the topic */ diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java similarity index 94% rename from pulsar-client-tools/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java rename to pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java index 73948230a..8002d957d 100644 --- a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java +++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java @@ -18,11 +18,20 @@ */ package org.apache.pulsar.client.admin.internal; -import lombok.extern.slf4j.Slf4j; +import java.io.File; +import java.util.List; + +import javax.ws.rs.ClientErrorException; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + import org.apache.pulsar.client.admin.Functions; import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.client.api.Authentication; -import org.apache.pulsar.common.policies.data.*; +import org.apache.pulsar.common.policies.data.ErrorData; import org.apache.pulsar.functions.proto.Function.FunctionConfig; import org.apache.pulsar.functions.proto.InstanceCommunication.FunctionStatusList; import org.apache.pulsar.functions.utils.Utils; @@ -30,14 +39,7 @@ import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; -import javax.ws.rs.ClientErrorException; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.File; -import java.util.List; +import lombok.extern.slf4j.Slf4j; @Slf4j public class FunctionsImpl extends BaseResource implements Functions { @@ -103,9 +105,8 @@ public void createFunction(FunctionConfig functionConfig, String fileName) throw mp.bodyPart(new FileDataBodyPart("data", new File(fileName), MediaType.APPLICATION_OCTET_STREAM_TYPE)); - mp.bodyPart(new FormDataBodyPart("functionConfig", - Utils.printJson(functionConfig), - MediaType.APPLICATION_JSON_TYPE)); + mp.bodyPart(new FormDataBodyPart("functionConfig", Utils.printJson(functionConfig), + MediaType.APPLICATION_JSON_TYPE)); request(functions.path(functionConfig.getTenant()).path(functionConfig.getNamespace()).path(functionConfig.getName())) .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA), ErrorData.class); } catch (Exception e) { @@ -130,9 +131,8 @@ public void updateFunction(FunctionConfig functionConfig, String fileName) throw if (fileName != null) { mp.bodyPart(new FileDataBodyPart("data", new File(fileName), MediaType.APPLICATION_OCTET_STREAM_TYPE)); } - mp.bodyPart(new FormDataBodyPart("functionConfig", - Utils.printJson(functionConfig), - MediaType.APPLICATION_JSON_TYPE)); + mp.bodyPart(new FormDataBodyPart("functionConfig", Utils.printJson(functionConfig), + MediaType.APPLICATION_JSON_TYPE)); request(functions.path(functionConfig.getTenant()).path(functionConfig.getNamespace()).path(functionConfig.getName())) .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA), ErrorData.class); } catch (Exception e) { ---------------------------------------------------------------- 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: us...@infra.apache.org With regards, Apache Git Services