You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/09/26 15:50:11 UTC

[camel] branch master updated: CAMEL-15579: UriFactory to know more about endpoints in the generated source code.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 1192e28  CAMEL-15579: UriFactory to know more about endpoints in the generated source code.
1192e28 is described below

commit 1192e281c6adf51243ee10e636f804a37c837fc0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Sep 26 17:49:38 2020 +0200

    CAMEL-15579: UriFactory to know more about endpoints in the generated source code.
---
 .../camel/component/as2/AS2EndpointUriFactory.java | 20 +++++-
 .../camel/component/box/BoxEndpointUriFactory.java | 72 +++++++++++++++++++++-
 .../braintree/BraintreeEndpointUriFactory.java     | 31 +++++++++-
 .../catalog/CustomEndpointUriFactoryTest.java      | 31 ++++++++++
 .../packaging/EndpointUriFactoryGenerator.java     | 12 ++++
 5 files changed, 163 insertions(+), 3 deletions(-)

diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
index 8f06f48..db94742 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
@@ -18,7 +18,7 @@ public class AS2EndpointUriFactory extends org.apache.camel.support.component.En
 
     private static final Set<String> PROPERTY_NAMES;
     static {
-        Set<String> set = new HashSet<>(34);
+        Set<String> set = new HashSet<>(52);
         set.add("apiName");
         set.add("methodName");
         set.add("as2From");
@@ -53,6 +53,24 @@ public class AS2EndpointUriFactory extends org.apache.camel.support.component.En
         set.add("lazyStartProducer");
         set.add("basicPropertyBinding");
         set.add("synchronous");
+        set.add("as2From");
+        set.add("as2MessageStructure");
+        set.add("as2To");
+        set.add("compressionAlgorithm");
+        set.add("dispositionNotificationTo");
+        set.add("ediMessage");
+        set.add("ediMessageContentType");
+        set.add("ediMessageTransferEncoding");
+        set.add("encryptingAlgorithm");
+        set.add("encryptingCertificateChain");
+        set.add("from");
+        set.add("requestUri");
+        set.add("requestUriPattern");
+        set.add("signedReceiptMicAlgorithms");
+        set.add("signingAlgorithm");
+        set.add("signingCertificateChain");
+        set.add("signingPrivateKey");
+        set.add("subject");
         PROPERTY_NAMES = set;
     }
 
diff --git a/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxEndpointUriFactory.java b/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxEndpointUriFactory.java
index 650f8b1..f740f4b 100644
--- a/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxEndpointUriFactory.java
+++ b/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxEndpointUriFactory.java
@@ -18,7 +18,7 @@ public class BoxEndpointUriFactory extends org.apache.camel.support.component.En
 
     private static final Set<String> PROPERTY_NAMES;
     static {
-        Set<String> set = new HashSet<>(23);
+        Set<String> set = new HashSet<>(93);
         set.add("apiName");
         set.add("methodName");
         set.add("clientId");
@@ -42,6 +42,76 @@ public class BoxEndpointUriFactory extends org.apache.camel.support.component.En
         set.add("sslContextParameters");
         set.add("userName");
         set.add("userPassword");
+        set.add("access");
+        set.add("action");
+        set.add("after");
+        set.add("assignTo");
+        set.add("before");
+        set.add("check");
+        set.add("collaborationId");
+        set.add("collaborator");
+        set.add("commentId");
+        set.add("content");
+        set.add("created");
+        set.add("description");
+        set.add("destinationFolderId");
+        set.add("dueAt");
+        set.add("email");
+        set.add("emailAliasId");
+        set.add("externalSyncIdentifier");
+        set.add("fields");
+        set.add("fileContent");
+        set.add("fileId");
+        set.add("fileName");
+        set.add("fileSize");
+        set.add("fileType");
+        set.add("filterTerm");
+        set.add("folderId");
+        set.add("folderName");
+        set.add("force");
+        set.add("groupId");
+        set.add("groupInfo");
+        set.add("groupMembershipId");
+        set.add("info");
+        set.add("invitabilityLevel");
+        set.add("limit");
+        set.add("listener");
+        set.add("login");
+        set.add("maxHeight");
+        set.add("maxWidth");
+        set.add("memberViewabilityLevel");
+        set.add("message");
+        set.add("metadata");
+        set.add("minHeight");
+        set.add("minWidth");
+        set.add("modified");
+        set.add("name");
+        set.add("newFileName");
+        set.add("newFolderName");
+        set.add("newName");
+        set.add("notifyUser");
+        set.add("offset");
+        set.add("output");
+        set.add("params");
+        set.add("parentFolderId");
+        set.add("path");
+        set.add("permissions");
+        set.add("position");
+        set.add("provenance");
+        set.add("query");
+        set.add("rangeEnd");
+        set.add("rangeStart");
+        set.add("role");
+        set.add("size");
+        set.add("sourceUserId");
+        set.add("startingPosition");
+        set.add("taskAssignmentId");
+        set.add("taskId");
+        set.add("typeName");
+        set.add("types");
+        set.add("unshareDate");
+        set.add("userId");
+        set.add("version");
         PROPERTY_NAMES = set;
     }
 
diff --git a/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeEndpointUriFactory.java b/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeEndpointUriFactory.java
index d1b3810..ce0b57d 100644
--- a/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeEndpointUriFactory.java
+++ b/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeEndpointUriFactory.java
@@ -18,7 +18,7 @@ public class BraintreeEndpointUriFactory extends org.apache.camel.support.compon
 
     private static final Set<String> PROPERTY_NAMES;
     static {
-        Set<String> set = new HashSet<>(17);
+        Set<String> set = new HashSet<>(46);
         set.add("apiName");
         set.add("methodName");
         set.add("environment");
@@ -36,6 +36,35 @@ public class BraintreeEndpointUriFactory extends org.apache.camel.support.compon
         set.add("accessToken");
         set.add("privateKey");
         set.add("publicKey");
+        set.add("amount");
+        set.add("associationFilterId");
+        set.add("challenge");
+        set.add("cloneRequest");
+        set.add("content");
+        set.add("currencyRequest");
+        set.add("customerId");
+        set.add("deleteRequest");
+        set.add("disputeId");
+        set.add("documentId");
+        set.add("evidenceId");
+        set.add("fileEvidenceRequest");
+        set.add("grantRequest");
+        set.add("groupByCustomField");
+        set.add("id");
+        set.add("page");
+        set.add("payload");
+        set.add("paymentMethodNonce");
+        set.add("paymentMethodToken");
+        set.add("query");
+        set.add("refundRequest");
+        set.add("request");
+        set.add("searchRequest");
+        set.add("settlementDate");
+        set.add("signature");
+        set.add("submitForSettlement");
+        set.add("subscriptionId");
+        set.add("textEvidenceRequest");
+        set.add("token");
         PROPERTY_NAMES = set;
     }
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/catalog/CustomEndpointUriFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/catalog/CustomEndpointUriFactoryTest.java
index 68c0343..c9f37ee 100644
--- a/core/camel-core/src/test/java/org/apache/camel/catalog/CustomEndpointUriFactoryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/catalog/CustomEndpointUriFactoryTest.java
@@ -20,6 +20,7 @@ import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.ExtendedCamelContext;
@@ -234,6 +235,16 @@ public class CustomEndpointUriFactoryTest extends ContextTestSupport {
             return uri;
         }
 
+        @Override
+        public Set<String> propertyNames() {
+            return null;
+        }
+
+        @Override
+        public boolean isLenientProperties() {
+            return false;
+        }
+
     }
 
     private class MySecondAssembler extends EndpointUriFactorySupport implements EndpointUriFactory {
@@ -261,6 +272,16 @@ public class CustomEndpointUriFactoryTest extends ContextTestSupport {
             return uri;
         }
 
+        @Override
+        public Set<String> propertyNames() {
+            return null;
+        }
+
+        @Override
+        public boolean isLenientProperties() {
+            return false;
+        }
+
     }
 
     private class MyJmsAssembler extends EndpointUriFactorySupport implements EndpointUriFactory {
@@ -284,6 +305,16 @@ public class CustomEndpointUriFactoryTest extends ContextTestSupport {
             return uri;
         }
 
+        @Override
+        public Set<String> propertyNames() {
+            return null;
+        }
+
+        @Override
+        public boolean isLenientProperties() {
+            return false;
+        }
+
     }
 
 }
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointUriFactoryGenerator.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointUriFactoryGenerator.java
index e0c54d5..e35bfb7 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointUriFactoryGenerator.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointUriFactoryGenerator.java
@@ -18,7 +18,9 @@ package org.apache.camel.maven.packaging;
 
 import java.io.IOException;
 import java.io.Writer;
+import java.util.Set;
 import java.util.StringJoiner;
+import java.util.TreeSet;
 
 import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
@@ -104,12 +106,22 @@ public final class EndpointUriFactoryGenerator {
 
     private static String generatePropertyNames(ComponentModel model) {
         int size = model.getEndpointOptions().size();
+        // use sorted set so the code is always generated the same way
+        Set<String> apis = new TreeSet<>();
+        if (model.isApi()) {
+            // gather all the option names from the api (they can be duplicated as the same name can be used by multiple methods)
+            model.getApiOptions().forEach(a -> a.getMethods().forEach(m -> m.getOptions().forEach(o -> apis.add(o.getName()))));
+            size += apis.size();
+        }
         StringBuilder sb = new StringBuilder();
         sb.append("    static {\n");
         sb.append("        Set<String> set = new HashSet<>(").append(size).append(");\n");
         for (ComponentModel.EndpointOptionModel option : model.getEndpointOptions()) {
             sb.append("        set.add(\"").append(option.getName()).append("\");\n");
         }
+        for (String name : apis) {
+            sb.append("        set.add(\"").append(name).append("\");\n");
+        }
         sb.append("        PROPERTY_NAMES = set;\n");
         sb.append("    }\n");
         return sb.toString();