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/08/09 17:05:37 UTC

[camel] branch camel-3.4.x updated (5708df5 -> a21b97e)

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

davsclaus pushed a change to branch camel-3.4.x
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 5708df5  [CAMEL-15370] CxfRsProducer: All but last value of query parameter with multiple values are lost (#4076)
     new fb81686  CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties
     new f400bad  CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties
     new a21b97e  Regen

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../salesforce/SalesforceComponentConfigurer.java  |  4 +--
 .../camel/component/salesforce/salesforce.json     |  2 +-
 .../src/main/docs/salesforce-component.adoc        |  2 +-
 .../component/salesforce/SalesforceComponent.java  | 32 +++++++++++++++-------
 .../dsl/SalesforceComponentBuilderFactory.java     |  9 +++---
 .../modules/ROOT/pages/pgevent-component.adoc      |  2 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |  2 +-
 7 files changed, 33 insertions(+), 20 deletions(-)


[camel] 02/03: CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f400badf14d8da1b39f5e3e4e4168d78e1576beb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Aug 9 17:34:48 2020 +0200

    CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties
---
 docs/components/modules/ROOT/pages/salesforce-component.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/components/modules/ROOT/pages/salesforce-component.adoc b/docs/components/modules/ROOT/pages/salesforce-component.adoc
index 280fc02..7c94784 100644
--- a/docs/components/modules/ROOT/pages/salesforce-component.adoc
+++ b/docs/components/modules/ROOT/pages/salesforce-component.adoc
@@ -691,7 +691,7 @@ The Salesforce component supports 72 options, which are listed below.
 | *notifyForOperationUndelete* (common) | Notify for un-delete operation, defaults to false (API version = 29.0) |  | Boolean
 | *notifyForOperationUpdate* (common) | Notify for update operation, defaults to false (API version = 29.0) |  | Boolean
 | *objectMapper* (common) | Custom Jackson ObjectMapper to use when serializing/deserializing Salesforce objects. |  | ObjectMapper
-| *packages* (common) | In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters/header values. |  | String[]
+| *packages* (common) | In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters/header values. Multiple packages can be separated by comma. |  | String
 | *rawPayload* (common) | Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default | false | boolean
 | *reportId* (common) | Salesforce1 Analytics report Id |  | String
 | *reportMetadata* (common) | Salesforce1 Analytics report metadata for filtering |  | ReportMetadata


[camel] 01/03: CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit fb81686dff1a95c613f43d3e95aa1446d65bb085
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Aug 9 17:33:49 2020 +0200

    CAMEL-15387: camel-salesforce: Can't set Salesforce packages via application properties
---
 .../salesforce/SalesforceComponentConfigurer.java  |  4 +--
 .../camel/component/salesforce/salesforce.json     |  2 +-
 .../src/main/docs/salesforce-component.adoc        |  2 +-
 .../component/salesforce/SalesforceComponent.java  | 32 +++++++++++++++-------
 .../dsl/SalesforceComponentBuilderFactory.java     |  9 +++---
 5 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java b/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
index 15188e4..d239777 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
@@ -126,7 +126,7 @@ public class SalesforceComponentConfigurer extends PropertyConfigurerSupport imp
         case "notifyForOperations": getOrCreateConfiguration(target).setNotifyForOperations(property(camelContext, org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum.class, value)); return true;
         case "objectmapper":
         case "objectMapper": getOrCreateConfiguration(target).setObjectMapper(property(camelContext, com.fasterxml.jackson.databind.ObjectMapper.class, value)); return true;
-        case "packages": target.setPackages(property(camelContext, java.lang.String[].class, value)); return true;
+        case "packages": target.setPackages(property(camelContext, java.lang.String.class, value)); return true;
         case "password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
         case "rawpayload":
         case "rawPayload": getOrCreateConfiguration(target).setRawPayload(property(camelContext, boolean.class, value)); return true;
@@ -223,7 +223,7 @@ public class SalesforceComponentConfigurer extends PropertyConfigurerSupport imp
         answer.put("notifyForOperationUpdate", java.lang.Boolean.class);
         answer.put("notifyForOperations", org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum.class);
         answer.put("objectMapper", com.fasterxml.jackson.databind.ObjectMapper.class);
-        answer.put("packages", java.lang.String[].class);
+        answer.put("packages", java.lang.String.class);
         answer.put("password", java.lang.String.class);
         answer.put("rawPayload", boolean.class);
         answer.put("refreshToken", java.lang.String.class);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
index ea36b85..9f1aeae 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
+++ b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
@@ -49,7 +49,7 @@
     "notifyForOperationUndelete": { "kind": "property", "displayName": "Notify For Operation Undelete", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Notify for un-delete operation, defaults to false (API version = 29.0)" },
     "notifyForOperationUpdate": { "kind": "property", "displayName": "Notify For Operation Update", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Notify for update operation, defaults to false (API version = 29.0)" },
     "objectMapper": { "kind": "property", "displayName": "Object Mapper", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.fasterxml.jackson.databind.ObjectMapper", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Custom Jackson ObjectMapper to use when serializing\/deserializing Salesforce objects." },
-    "packages": { "kind": "property", "displayName": "Packages", "group": "common", "label": "common", "required": false, "type": "array", "javaType": "java.lang.String[]", "deprecated": false, "secret": false, "description": "In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters\/header values." },
+    "packages": { "kind": "property", "displayName": "Packages", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters\/header values. Multiple packages can be s [...]
     "rawPayload": { "kind": "property", "displayName": "Raw Payload", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default" },
     "reportId": { "kind": "property", "displayName": "Report Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Salesforce1 Analytics report Id" },
     "reportMetadata": { "kind": "property", "displayName": "Report Metadata", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpointConfig", "configurationField": "config", "description": "Salesforce1 Analytics report metadata for filtering" },
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index f3168a2..c83d9a9 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -689,7 +689,7 @@ The Salesforce component supports 72 options, which are listed below.
 | *notifyForOperationUndelete* (common) | Notify for un-delete operation, defaults to false (API version = 29.0) |  | Boolean
 | *notifyForOperationUpdate* (common) | Notify for update operation, defaults to false (API version = 29.0) |  | Boolean
 | *objectMapper* (common) | Custom Jackson ObjectMapper to use when serializing/deserializing Salesforce objects. |  | ObjectMapper
-| *packages* (common) | In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters/header values. |  | String[]
+| *packages* (common) | In what packages are the generated DTO classes. Typically the classes would be generated using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short SObject names in parameters/header values. Multiple packages can be separated by comma. |  | String
 | *rawPayload* (common) | Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default | false | boolean
 | *reportId* (common) | Salesforce1 Analytics report Id |  | String
 | *reportMetadata* (common) | Salesforce1 Analytics report metadata for filtering |  | ReportMetadata
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index 3dd25b4..14a553f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.StringJoiner;
 import java.util.function.Supplier;
 import java.util.regex.Pattern;
 
@@ -207,8 +208,8 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
 
     @Metadata(description = "In what packages are the generated DTO classes. Typically the classes would be generated"
                             + " using camel-salesforce-maven-plugin. Set it if using the generated DTOs to gain the benefit of using short "
-                            + " SObject names in parameters/header values.", label = "common")
-    private String[] packages;
+                            + " SObject names in parameters/header values. Multiple packages can be separated by comma.", javaType = "java.lang.String", label = "common")
+    private String packages;
 
     // component state
     private SalesforceHttpClient httpClient;
@@ -290,7 +291,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
 
     private Map<String, Class<?>> parsePackages() {
         Map<String, Class<?>> result = new HashMap<>();
-        Set<Class<?>> classes = getCamelContext().adapt(ExtendedCamelContext.class).getPackageScanClassResolver().findImplementations(AbstractSObjectBase.class, packages);
+        Set<Class<?>> classes = getCamelContext().adapt(ExtendedCamelContext.class).getPackageScanClassResolver().findImplementations(AbstractSObjectBase.class, getPackagesAsArray());
         for (Class<?> aClass : classes) {
             // findImplementations also returns AbstractSObjectBase for some
             // reason!!!
@@ -362,10 +363,10 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
             ServiceHelper.startService(session);
         }
 
-        if (packages != null && packages.length > 0) {
+        if (packages != null) {
             // parse the packages to create SObject name to class map
             classMap = parsePackages();
-            LOG.info("Found {} generated classes in packages: {}", classMap.size(), Arrays.asList(packages));
+            LOG.info("Found {} generated classes in packages: {}", classMap.size(), packages);
         } else {
             // use an empty map to avoid NPEs later
             LOG.warn("Missing property packages, getSObject* operations will NOT work without property rawPayload=true");
@@ -658,18 +659,29 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
         this.httpProxyUseDigestAuth = httpProxyUseDigestAuth;
     }
 
-    public String[] getPackages() {
+    public String getPackages() {
         return packages;
     }
 
-    public void setPackages(String[] packages) {
+    public void setPackages(String packages) {
         this.packages = packages;
     }
 
-    public void setPackages(String packages) {
-        // split using comma
+    /**
+     * @deprecated use {@link #setPackages(String)}
+     */
+    @Deprecated
+    public void setPackages(String[] packages) {
         if (packages != null) {
-            setPackages(packages.split(","));
+            this.packages = String.join(",", packages);
+        }
+    }
+
+    public String[] getPackagesAsArray() {
+        if (packages != null) {
+            return packages.split(",");
+        } else {
+            return null;
         }
     }
 
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
index 9641d95..00b35c3 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
@@ -399,13 +399,14 @@ public interface SalesforceComponentBuilderFactory {
          * In what packages are the generated DTO classes. Typically the classes
          * would be generated using camel-salesforce-maven-plugin. Set it if
          * using the generated DTOs to gain the benefit of using short SObject
-         * names in parameters/header values.
+         * names in parameters/header values. Multiple packages can be separated
+         * by comma.
          * 
-         * The option is a: <code>java.lang.String[]</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          */
-        default SalesforceComponentBuilder packages(java.lang.String[] packages) {
+        default SalesforceComponentBuilder packages(java.lang.String packages) {
             doSetProperty("packages", packages);
             return this;
         }
@@ -1056,7 +1057,7 @@ public interface SalesforceComponentBuilderFactory {
             case "notifyForOperationUndelete": getOrCreateConfiguration((SalesforceComponent) component).setNotifyForOperationUndelete((java.lang.Boolean) value); return true;
             case "notifyForOperationUpdate": getOrCreateConfiguration((SalesforceComponent) component).setNotifyForOperationUpdate((java.lang.Boolean) value); return true;
             case "objectMapper": getOrCreateConfiguration((SalesforceComponent) component).setObjectMapper((com.fasterxml.jackson.databind.ObjectMapper) value); return true;
-            case "packages": ((SalesforceComponent) component).setPackages((java.lang.String[]) value); return true;
+            case "packages": ((SalesforceComponent) component).setPackages((java.lang.String) value); return true;
             case "rawPayload": getOrCreateConfiguration((SalesforceComponent) component).setRawPayload((boolean) value); return true;
             case "reportId": getOrCreateConfiguration((SalesforceComponent) component).setReportId((java.lang.String) value); return true;
             case "reportMetadata": getOrCreateConfiguration((SalesforceComponent) component).setReportMetadata((org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata) value); return true;


[camel] 03/03: Regen

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a21b97ef090222ce46d197df394fd6566269b76f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Aug 9 19:04:54 2020 +0200

    Regen
---
 docs/components/modules/ROOT/pages/pgevent-component.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/components/modules/ROOT/pages/pgevent-component.adoc b/docs/components/modules/ROOT/pages/pgevent-component.adoc
index b3fb80c..ca0e787 100644
--- a/docs/components/modules/ROOT/pages/pgevent-component.adoc
+++ b/docs/components/modules/ROOT/pages/pgevent-component.adoc
@@ -80,7 +80,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *host* | To connect using hostname and port to the database. | localhost | String
 | *port* | To connect using hostname and port to the database. | 5432 | Integer
-| *database* | *Required* The database name |  | String
+| *database* | *Required* The database name. The database name can take any characters because it is sent as a quoted identifier. It is part of the endpoint URI, so diacritical marks and non-Latin letters have to be URL encoded. |  | String
 | *channel* | *Required* The channel name |  | String
 |===