This is an automated email from the ASF dual-hosted git repository. sijie pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new 6a05513 Fix: function-cli avoid arg-type check and class-loading for file url (#2257) 6a05513 is described below commit 6a05513f8cbcb5f9414af034a8f1e14754b94045 Author: Rajan Dhabalia <rdhaba...@apache.org> AuthorDate: Mon Jul 30 11:31:31 2018 -0700 Fix: function-cli avoid arg-type check and class-loading for file url (#2257) --- .../src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java | 9 ++++++++- .../java/org/apache/pulsar/functions/utils/FunctionConfig.java | 1 - .../apache/pulsar/functions/utils/validation/ValidatorImpls.java | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java index 2a38c81..15aa086 100644 --- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java +++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java @@ -545,7 +545,14 @@ public class CmdFunctions extends CmdBase { Class<?>[] typeArgs = null; if (functionConfig.getRuntime() == FunctionConfig.Runtime.JAVA) { - typeArgs = Utils.getFunctionTypes(functionConfig); + if (functionConfig.getJar().startsWith(Utils.FILE)) { + // server derives the arg-type by loading a class + if (isBlank(functionConfig.getClassName())) { + throw new ParameterException("Class-name must be present for jar with file-url"); + } + } else { + typeArgs = Utils.getFunctionTypes(functionConfig); + } } FunctionDetails.Builder functionDetailsBuilder = FunctionDetails.newBuilder(); diff --git a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionConfig.java b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionConfig.java index 3140f95..0cd922e 100644 --- a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionConfig.java +++ b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionConfig.java @@ -69,7 +69,6 @@ public class FunctionConfig { @NotNull private String name; @NotNull - @isImplementationOfClasses(implementsClasses = {Function.class, java.util.function.Function.class}) private String className; @isListEntryCustom(entryValidatorClasses = {ValidatorImpls.TopicNameValidator.class}) private Collection<String> inputs; diff --git a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/validation/ValidatorImpls.java b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/validation/ValidatorImpls.java index 297a2f2..925f7bc 100644 --- a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/validation/ValidatorImpls.java +++ b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/validation/ValidatorImpls.java @@ -502,7 +502,9 @@ public class ValidatorImpls { FunctionConfig functionConfig = (FunctionConfig) o; doCommonChecks(functionConfig); if (functionConfig.getRuntime() == FunctionConfig.Runtime.JAVA) { - doJavaChecks(functionConfig, name); + if (!functionConfig.getJar().startsWith(Utils.FILE)) { + doJavaChecks(functionConfig, name); + } } else { doPythonChecks(functionConfig, name); }