This is an automated email from the ASF dual-hosted git repository.
rdhabalia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 6a4d66c Fix: function-cli avoid arg-type check and class-loading for
file url (#2257)
6a4d66c is described below
commit 6a4d66cf49ea597929d3c7a21f708a82b6323e79
Author: Rajan Dhabalia <[email protected]>
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 3092fd7..6948cff 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 42c829c..bcbdd72 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);
}