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 <claus.ib...@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();