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

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


The following commit(s) were added to refs/heads/main by this push:
     new af25bde4a34 CAMEL-17339 - Avoid List<String> as configuration 
parameter types in Endpoint configurations - Camel Web3j (#18701)
af25bde4a34 is described below

commit af25bde4a348d0f1bb3d1da6d90b71c0d8e3adad
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Jul 23 15:46:31 2025 +0200

    CAMEL-17339 - Avoid List<String> as configuration parameter types in 
Endpoint configurations - Camel Web3j (#18701)
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../org/apache/camel/catalog/components/web3j.json |   8 +-
 .../component/web3j/Web3jComponentConfigurer.java  |  18 +--
 .../component/web3j/Web3jEndpointConfigurer.java   |  18 +--
 .../org/apache/camel/component/web3j/web3j.json    |   8 +-
 .../camel/component/web3j/Web3jConfiguration.java  |  52 ++++++---
 .../camel/component/web3j/Web3jConsumer.java       |   4 +-
 .../camel/component/web3j/Web3jProducer.java       |   2 +-
 .../ROOT/pages/camel-4x-upgrade-guide-4_14.adoc    |   4 +
 .../dsl/Web3jComponentBuilderFactory.java          |  19 ++--
 .../endpoint/dsl/Web3jEndpointBuilderFactory.java  | 123 +++------------------
 10 files changed, 82 insertions(+), 174 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/web3j.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/web3j.json
index 079a6e6c43b..7e87d745661 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/web3j.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/web3j.json
@@ -24,13 +24,13 @@
     "remote": true
   },
   "componentProperties": {
-    "addresses": { "index": 0, "kind": "property", "displayName": "Addresses", 
"group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a list of addresses." },
+    "addresses": { "index": 0, "kind": "property", "displayName": "Addresses", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a comma separated list of 
addresses." },
     "configuration": { "index": 1, "kind": "property", "displayName": 
"Configuration", "group": "common", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.web3j.Web3jConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Default configuration" },
     "fromAddress": { "index": 2, "kind": "property", "displayName": "From 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is send from" },
     "fromBlock": { "index": 3, "kind": "property", "displayName": "From 
Block", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for  [...]
     "fullTransactionObjects": { "index": 4, "kind": "property", "displayName": 
"Full Transaction Objects", "group": "common", "label": "common", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.web3j.Web3jConfiguration", 
"configurationField": "configuration", "description": "If true it returns the 
full transaction objects, if false only the hashes [...]
     "gasLimit": { "index": 5, "kind": "property", "displayName": "Gas Limit", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "java.math.BigInteger", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The maximum gas allowed in this block." },
-    "privateFor": { "index": 6, "kind": "property", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A transaction privateFor nodes with public 
keys in a Quorum network" },
+    "privateFor": { "index": 6, "kind": "property", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A comma separated transaction privateFor nodes 
with public keys in a Quorum network" },
     "quorumAPI": { "index": 7, "kind": "property", "displayName": "Quorum 
API", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true, this will support Quorum API." },
     "toAddress": { "index": 8, "kind": "property", "displayName": "To 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is directed to." },
     "toBlock": { "index": 9, "kind": "property", "displayName": "To Block", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for not  [...]
@@ -105,12 +105,12 @@
   },
   "properties": {
     "nodeAddress": { "index": 0, "kind": "path", "displayName": "Node 
Address", "group": "common", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Sets the node address used 
to communicate" },
-    "addresses": { "index": 1, "kind": "parameter", "displayName": 
"Addresses", "group": "common", "label": "common", "required": false, "type": 
"array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a list of addresses." },
+    "addresses": { "index": 1, "kind": "parameter", "displayName": 
"Addresses", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a comma separated list of 
addresses." },
     "fromAddress": { "index": 2, "kind": "parameter", "displayName": "From 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is send from" },
     "fromBlock": { "index": 3, "kind": "parameter", "displayName": "From 
Block", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for [...]
     "fullTransactionObjects": { "index": 4, "kind": "parameter", 
"displayName": "Full Transaction Objects", "group": "common", "label": 
"common", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true it returns the full transaction 
objects, if false only the hashe [...]
     "gasLimit": { "index": 5, "kind": "parameter", "displayName": "Gas Limit", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "java.math.BigInteger", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The maximum gas allowed in this block." },
-    "privateFor": { "index": 6, "kind": "parameter", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A transaction privateFor nodes with public 
keys in a Quorum network" },
+    "privateFor": { "index": 6, "kind": "parameter", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A comma separated transaction privateFor nodes 
with public keys in a Quorum network" },
     "quorumAPI": { "index": 7, "kind": "parameter", "displayName": "Quorum 
API", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true, this will support Quorum API." },
     "toAddress": { "index": 8, "kind": "parameter", "displayName": "To 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is directed to." },
     "toBlock": { "index": 9, "kind": "parameter", "displayName": "To Block", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for not [...]
diff --git 
a/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jComponentConfigurer.java
 
b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jComponentConfigurer.java
index bf0dd5c210c..40eb94e6105 100644
--- 
a/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jComponentConfigurer.java
+++ 
b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jComponentConfigurer.java
@@ -31,7 +31,7 @@ public class Web3jComponentConfigurer extends 
PropertyConfigurerSupport implemen
         Web3jComponent target = (Web3jComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "address": 
getOrCreateConfiguration(target).setAddress(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "addresses": 
getOrCreateConfiguration(target).setAddresses(property(camelContext, 
java.util.List.class, value)); return true;
+        case "addresses": 
getOrCreateConfiguration(target).setAddresses(property(camelContext, 
java.lang.String.class, value)); return true;
         case "atblock":
         case "atBlock": 
getOrCreateConfiguration(target).setAtBlock(property(camelContext, 
java.lang.String.class, value)); return true;
         case "autowiredenabled":
@@ -73,7 +73,7 @@ public class Web3jComponentConfigurer extends 
PropertyConfigurerSupport implemen
         case "position": 
getOrCreateConfiguration(target).setPosition(property(camelContext, 
java.math.BigInteger.class, value)); return true;
         case "priority": 
getOrCreateConfiguration(target).setPriority(property(camelContext, 
java.math.BigInteger.class, value)); return true;
         case "privatefor":
-        case "privateFor": 
getOrCreateConfiguration(target).setPrivateFor(property(camelContext, 
java.util.List.class, value)); return true;
+        case "privateFor": 
getOrCreateConfiguration(target).setPrivateFor(property(camelContext, 
java.lang.String.class, value)); return true;
         case "quorumapi":
         case "quorumAPI": 
getOrCreateConfiguration(target).setQuorumAPI(property(camelContext, 
boolean.class, value)); return true;
         case "sha3hashofdatatosign":
@@ -100,7 +100,7 @@ public class Web3jComponentConfigurer extends 
PropertyConfigurerSupport implemen
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "address": return java.lang.String.class;
-        case "addresses": return java.util.List.class;
+        case "addresses": return java.lang.String.class;
         case "atblock":
         case "atBlock": return java.lang.String.class;
         case "autowiredenabled":
@@ -142,7 +142,7 @@ public class Web3jComponentConfigurer extends 
PropertyConfigurerSupport implemen
         case "position": return java.math.BigInteger.class;
         case "priority": return java.math.BigInteger.class;
         case "privatefor":
-        case "privateFor": return java.util.List.class;
+        case "privateFor": return java.lang.String.class;
         case "quorumapi":
         case "quorumAPI": return boolean.class;
         case "sha3hashofdatatosign":
@@ -234,15 +234,5 @@ public class Web3jComponentConfigurer extends 
PropertyConfigurerSupport implemen
         default: return null;
         }
     }
-
-    @Override
-    public Object getCollectionValueType(Object target, String name, boolean 
ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "addresses": return java.lang.String.class;
-        case "privatefor":
-        case "privateFor": return java.lang.String.class;
-        default: return null;
-        }
-    }
 }
 
diff --git 
a/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jEndpointConfigurer.java
 
b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jEndpointConfigurer.java
index 05e645e3e02..29cf7f10a3e 100644
--- 
a/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jEndpointConfigurer.java
+++ 
b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jEndpointConfigurer.java
@@ -24,7 +24,7 @@ public class Web3jEndpointConfigurer extends 
PropertyConfigurerSupport implement
         Web3jEndpoint target = (Web3jEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "address": 
target.getConfiguration().setAddress(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "addresses": 
target.getConfiguration().setAddresses(property(camelContext, 
java.util.List.class, value)); return true;
+        case "addresses": 
target.getConfiguration().setAddresses(property(camelContext, 
java.lang.String.class, value)); return true;
         case "atblock":
         case "atBlock": 
target.getConfiguration().setAtBlock(property(camelContext, 
java.lang.String.class, value)); return true;
         case "blockhash":
@@ -67,7 +67,7 @@ public class Web3jEndpointConfigurer extends 
PropertyConfigurerSupport implement
         case "position": 
target.getConfiguration().setPosition(property(camelContext, 
java.math.BigInteger.class, value)); return true;
         case "priority": 
target.getConfiguration().setPriority(property(camelContext, 
java.math.BigInteger.class, value)); return true;
         case "privatefor":
-        case "privateFor": 
target.getConfiguration().setPrivateFor(property(camelContext, 
java.util.List.class, value)); return true;
+        case "privateFor": 
target.getConfiguration().setPrivateFor(property(camelContext, 
java.lang.String.class, value)); return true;
         case "quorumapi":
         case "quorumAPI": 
target.getConfiguration().setQuorumAPI(property(camelContext, boolean.class, 
value)); return true;
         case "sha3hashofdatatosign":
@@ -94,7 +94,7 @@ public class Web3jEndpointConfigurer extends 
PropertyConfigurerSupport implement
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "address": return java.lang.String.class;
-        case "addresses": return java.util.List.class;
+        case "addresses": return java.lang.String.class;
         case "atblock":
         case "atBlock": return java.lang.String.class;
         case "blockhash":
@@ -137,7 +137,7 @@ public class Web3jEndpointConfigurer extends 
PropertyConfigurerSupport implement
         case "position": return java.math.BigInteger.class;
         case "priority": return java.math.BigInteger.class;
         case "privatefor":
-        case "privateFor": return java.util.List.class;
+        case "privateFor": return java.lang.String.class;
         case "quorumapi":
         case "quorumAPI": return boolean.class;
         case "sha3hashofdatatosign":
@@ -230,15 +230,5 @@ public class Web3jEndpointConfigurer extends 
PropertyConfigurerSupport implement
         default: return null;
         }
     }
-
-    @Override
-    public Object getCollectionValueType(Object target, String name, boolean 
ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "addresses": return java.lang.String.class;
-        case "privatefor":
-        case "privateFor": return java.lang.String.class;
-        default: return null;
-        }
-    }
 }
 
diff --git 
a/components/camel-web3j/src/generated/resources/META-INF/org/apache/camel/component/web3j/web3j.json
 
b/components/camel-web3j/src/generated/resources/META-INF/org/apache/camel/component/web3j/web3j.json
index 079a6e6c43b..7e87d745661 100644
--- 
a/components/camel-web3j/src/generated/resources/META-INF/org/apache/camel/component/web3j/web3j.json
+++ 
b/components/camel-web3j/src/generated/resources/META-INF/org/apache/camel/component/web3j/web3j.json
@@ -24,13 +24,13 @@
     "remote": true
   },
   "componentProperties": {
-    "addresses": { "index": 0, "kind": "property", "displayName": "Addresses", 
"group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a list of addresses." },
+    "addresses": { "index": 0, "kind": "property", "displayName": "Addresses", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a comma separated list of 
addresses." },
     "configuration": { "index": 1, "kind": "property", "displayName": 
"Configuration", "group": "common", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.web3j.Web3jConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Default configuration" },
     "fromAddress": { "index": 2, "kind": "property", "displayName": "From 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is send from" },
     "fromBlock": { "index": 3, "kind": "property", "displayName": "From 
Block", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for  [...]
     "fullTransactionObjects": { "index": 4, "kind": "property", "displayName": 
"Full Transaction Objects", "group": "common", "label": "common", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.web3j.Web3jConfiguration", 
"configurationField": "configuration", "description": "If true it returns the 
full transaction objects, if false only the hashes [...]
     "gasLimit": { "index": 5, "kind": "property", "displayName": "Gas Limit", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "java.math.BigInteger", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The maximum gas allowed in this block." },
-    "privateFor": { "index": 6, "kind": "property", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A transaction privateFor nodes with public 
keys in a Quorum network" },
+    "privateFor": { "index": 6, "kind": "property", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A comma separated transaction privateFor nodes 
with public keys in a Quorum network" },
     "quorumAPI": { "index": 7, "kind": "property", "displayName": "Quorum 
API", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true, this will support Quorum API." },
     "toAddress": { "index": 8, "kind": "property", "displayName": "To 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is directed to." },
     "toBlock": { "index": 9, "kind": "property", "displayName": "To Block", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for not  [...]
@@ -105,12 +105,12 @@
   },
   "properties": {
     "nodeAddress": { "index": 0, "kind": "path", "displayName": "Node 
Address", "group": "common", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Sets the node address used 
to communicate" },
-    "addresses": { "index": 1, "kind": "parameter", "displayName": 
"Addresses", "group": "common", "label": "common", "required": false, "type": 
"array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a list of addresses." },
+    "addresses": { "index": 1, "kind": "parameter", "displayName": 
"Addresses", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "Contract address or a comma separated list of 
addresses." },
     "fromAddress": { "index": 2, "kind": "parameter", "displayName": "From 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is send from" },
     "fromBlock": { "index": 3, "kind": "parameter", "displayName": "From 
Block", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for [...]
     "fullTransactionObjects": { "index": 4, "kind": "parameter", 
"displayName": "Full Transaction Objects", "group": "common", "label": 
"common", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true it returns the full transaction 
objects, if false only the hashe [...]
     "gasLimit": { "index": 5, "kind": "parameter", "displayName": "Gas Limit", 
"group": "common", "label": "", "required": false, "type": "object", 
"javaType": "java.math.BigInteger", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The maximum gas allowed in this block." },
-    "privateFor": { "index": 6, "kind": "parameter", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A transaction privateFor nodes with public 
keys in a Quorum network" },
+    "privateFor": { "index": 6, "kind": "parameter", "displayName": "Private 
For", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "A comma separated transaction privateFor nodes 
with public keys in a Quorum network" },
     "quorumAPI": { "index": 7, "kind": "parameter", "displayName": "Quorum 
API", "group": "common", "label": "common", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "If true, this will support Quorum API." },
     "toAddress": { "index": 8, "kind": "parameter", "displayName": "To 
Address", "group": "common", "label": "common", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The address the transaction is directed to." },
     "toBlock": { "index": 9, "kind": "parameter", "displayName": "To Block", 
"group": "common", "label": "common", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "latest", "configurationClass": 
"org.apache.camel.component.web3j.Web3jConfiguration", "configurationField": 
"configuration", "description": "The block number, or the string latest for the 
last mined block or pending, earliest for not [...]
diff --git 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConfiguration.java
 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConfiguration.java
index ced2535296d..a6dd8aef0d1 100644
--- 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConfiguration.java
+++ 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConfiguration.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.web3j;
 
 import java.math.BigInteger;
-import java.util.Arrays;
 import java.util.List;
 
 import org.apache.camel.RuntimeCamelException;
@@ -41,13 +40,13 @@ public class Web3jConfiguration implements Cloneable {
     private String atBlock;
 
     @UriParam(label = "common")
-    private List<String> addresses;
+    private String addresses;
 
     @UriParam(label = "producer")
     private String address;
 
     @UriParam(label = "common", javaType = "java.lang.String")
-    private List<String> topics;
+    private String topics;
 
     @UriParam(label = "producer")
     private BigInteger position;
@@ -128,16 +127,24 @@ public class Web3jConfiguration implements Cloneable {
     private boolean quorumAPI;
 
     @UriParam(label = "common")
-    private List<String> privateFor;
+    private String privateFor;
 
-    public List<String> getPrivateFor() {
+    public String getPrivateFor() {
         return privateFor;
     }
 
+    public List<String> getPrivateForAsList() {
+        if (privateFor != null) {
+            return List.of(privateFor.split(","));
+        } else {
+            return null;
+        }
+    }
+
     /**
-     * A transaction privateFor nodes with public keys in a Quorum network
+     * A comma separated transaction privateFor nodes with public keys in a 
Quorum network
      */
-    public void setPrivateFor(List<String> privateFor) {
+    public void setPrivateFor(String privateFor) {
         this.privateFor = privateFor;
     }
 
@@ -452,31 +459,42 @@ public class Web3jConfiguration implements Cloneable {
         this.atBlock = atBlock;
     }
 
-    public List<String> getAddresses() {
+    public String getAddresses() {
         return addresses;
     }
 
+    public List<String> getAddressesAsList() {
+        if (addresses != null) {
+            return List.of(addresses.split(","));
+        } else {
+            return null;
+        }
+    }
+
     /**
-     * Contract address or a list of addresses.
+     * Contract address or a comma separated list of addresses.
      */
-    public void setAddresses(List<String> addresses) {
+    public void setAddresses(String addresses) {
         this.addresses = addresses;
     }
 
-    public List<String> getTopics() {
+    public String getTopics() {
         return topics;
     }
 
+    public List<String> getTopicsAsList() {
+        if (topics != null) {
+            return List.of(topics.split(","));
+        } else {
+            return null;
+        }
+    }
+
     /**
      * Topics are order-dependent. Each topic can also be a list of topics. 
Specify multiple topics separated by comma.
      */
-    public void setTopics(List<String> topics) {
-        this.topics = topics;
-    }
-
     public void setTopics(String topics) {
-        String[] arr = topics.split(",");
-        this.topics = Arrays.asList(arr);
+        this.topics = topics;
     }
 
     public String getAddress() {
diff --git 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java
 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java
index 8ae27134ac4..1716ab9e8ef 100644
--- 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java
+++ 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java
@@ -61,8 +61,8 @@ public class Web3jConsumer extends DefaultConsumer {
         switch (configuration.getOperation()) {
             case Web3jConstants.ETH_LOG_OBSERVABLE:
                 EthFilter ethFilter = 
Web3jEndpoint.buildEthFilter(toDefaultBlockParameter(configuration.getFromBlock()),
-                        toDefaultBlockParameter(configuration.getToBlock()), 
configuration.getAddresses(),
-                        configuration.getTopics());
+                        toDefaultBlockParameter(configuration.getToBlock()), 
configuration.getAddressesAsList(),
+                        configuration.getTopicsAsList());
                 subscription = web3j.ethLogFlowable(ethFilter).subscribe(
                         this::ethLogObservable,
                         t -> processError(t, 
Web3jConstants.ETH_LOG_OBSERVABLE),
diff --git 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
index fcfb859954b..fd4ab876b38 100644
--- 
a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
+++ 
b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
@@ -975,7 +975,7 @@ public class Web3jProducer extends HeaderSelectorProducer {
         BigInteger gasLimit = message.getHeader(Web3jConstants.GAS_LIMIT, 
configuration::getGasLimit, BigInteger.class);
         BigInteger value = message.getHeader(Web3jConstants.VALUE, 
configuration::getValue, BigInteger.class);
         String data = message.getHeader(Web3jConstants.DATA, 
configuration::getData, String.class);
-        List<String> privateFor = 
message.getHeader(Web3jConstants.PRIVATE_FOR, configuration::getPrivateFor, 
List.class);
+        List<String> privateFor = 
message.getHeader(Web3jConstants.PRIVATE_FOR, 
configuration::getPrivateForAsList, List.class);
         String privateFrom = message.getHeader(Web3jConstants.PRIVATE_FROM, 
String.class);
         PrivateTransaction transaction
                 = new PrivateTransaction(fromAddress, nonce, gasLimit, 
toAddress, value, data, privateFrom, privateFor);
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
index b060534da84..8ccc0635239 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
@@ -46,3 +46,7 @@ The availableZones parameter for camel-huawei-dms has been 
defined as String ins
 
 The ids parameter for camel-weather has been defined as String instead of 
List<String>. For the migration users will need to, eventually, define ids as a 
comma separated list of id instead of a List instance. For more information the 
related issue is CAMEL-17339.
 
+=== camel-web3j
+
+The addresses, privateFor and Topics parameters for camel-web3j have been 
defined as String instead of List<String>. For the migration users will need 
to, eventually, define addresses, privateFor or topics  as a comma separated 
list of addresses, privateFor or topics instead of a List instance. For more 
information the related issue is CAMEL-17339.
+
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Web3jComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Web3jComponentBuilderFactory.java
index a6240b6e176..ba277e04355 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Web3jComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Web3jComponentBuilderFactory.java
@@ -51,17 +51,16 @@ public interface Web3jComponentBuilderFactory {
     interface Web3jComponentBuilder extends ComponentBuilder<Web3jComponent> {
     
         /**
-         * Contract address or a list of addresses.
+         * Contract address or a comma separated list of addresses.
          * 
-         * The option is a:
-         * 
&lt;code&gt;java.util.List&amp;lt;java.lang.String&amp;gt;&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
          * Group: common
          * 
          * @param addresses the value to set
          * @return the dsl builder
          */
-        default Web3jComponentBuilder 
addresses(java.util.List<java.lang.String> addresses) {
+        default Web3jComponentBuilder addresses(java.lang.String addresses) {
             doSetProperty("addresses", addresses);
             return this;
         }
@@ -149,17 +148,17 @@ public interface Web3jComponentBuilderFactory {
         }
     
         /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
+         * A comma separated transaction privateFor nodes with public keys in a
+         * Quorum network.
          * 
-         * The option is a:
-         * 
&lt;code&gt;java.util.List&amp;lt;java.lang.String&amp;gt;&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
          * Group: common
          * 
          * @param privateFor the value to set
          * @return the dsl builder
          */
-        default Web3jComponentBuilder 
privateFor(java.util.List<java.lang.String> privateFor) {
+        default Web3jComponentBuilder privateFor(java.lang.String privateFor) {
             doSetProperty("privateFor", privateFor);
             return this;
         }
@@ -696,13 +695,13 @@ public interface Web3jComponentBuilderFactory {
                 String name,
                 Object value) {
             switch (name) {
-            case "addresses": getOrCreateConfiguration((Web3jComponent) 
component).setAddresses((java.util.List) value); return true;
+            case "addresses": getOrCreateConfiguration((Web3jComponent) 
component).setAddresses((java.lang.String) value); return true;
             case "configuration": ((Web3jComponent) 
component).setConfiguration((org.apache.camel.component.web3j.Web3jConfiguration)
 value); return true;
             case "fromAddress": getOrCreateConfiguration((Web3jComponent) 
component).setFromAddress((java.lang.String) value); return true;
             case "fromBlock": getOrCreateConfiguration((Web3jComponent) 
component).setFromBlock((java.lang.String) value); return true;
             case "fullTransactionObjects": 
getOrCreateConfiguration((Web3jComponent) 
component).setFullTransactionObjects((boolean) value); return true;
             case "gasLimit": getOrCreateConfiguration((Web3jComponent) 
component).setGasLimit((java.math.BigInteger) value); return true;
-            case "privateFor": getOrCreateConfiguration((Web3jComponent) 
component).setPrivateFor((java.util.List) value); return true;
+            case "privateFor": getOrCreateConfiguration((Web3jComponent) 
component).setPrivateFor((java.lang.String) value); return true;
             case "quorumAPI": getOrCreateConfiguration((Web3jComponent) 
component).setQuorumAPI((boolean) value); return true;
             case "toAddress": getOrCreateConfiguration((Web3jComponent) 
component).setToAddress((java.lang.String) value); return true;
             case "toBlock": getOrCreateConfiguration((Web3jComponent) 
component).setToBlock((java.lang.String) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Web3jEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Web3jEndpointBuilderFactory.java
index 90b646d8f88..c4d2a3f4cb3 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Web3jEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Web3jEndpointBuilderFactory.java
@@ -44,25 +44,9 @@ public interface Web3jEndpointBuilderFactory {
             return (AdvancedWeb3jEndpointConsumerBuilder) this;
         }
         /**
-         * Contract address or a list of addresses.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param addresses the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointConsumerBuilder addresses(List<java.lang.String> 
addresses) {
-            doSetProperty("addresses", addresses);
-            return this;
-        }
-        /**
-         * Contract address or a list of addresses.
+         * Contract address or a comma separated list of addresses.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 
@@ -165,25 +149,10 @@ public interface Web3jEndpointBuilderFactory {
             return this;
         }
         /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param privateFor the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointConsumerBuilder privateFor(List<java.lang.String> 
privateFor) {
-            doSetProperty("privateFor", privateFor);
-            return this;
-        }
-        /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
+         * A comma separated transaction privateFor nodes with public keys in a
+         * Quorum network.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 
@@ -439,25 +408,9 @@ public interface Web3jEndpointBuilderFactory {
         }
 
         /**
-         * Contract address or a list of addresses.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param addresses the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointProducerBuilder addresses(List<java.lang.String> 
addresses) {
-            doSetProperty("addresses", addresses);
-            return this;
-        }
-        /**
-         * Contract address or a list of addresses.
+         * Contract address or a comma separated list of addresses.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 
@@ -560,25 +513,10 @@ public interface Web3jEndpointBuilderFactory {
             return this;
         }
         /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param privateFor the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointProducerBuilder privateFor(List<java.lang.String> 
privateFor) {
-            doSetProperty("privateFor", privateFor);
-            return this;
-        }
-        /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
+         * A comma separated transaction privateFor nodes with public keys in a
+         * Quorum network.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 
@@ -1198,25 +1136,9 @@ public interface Web3jEndpointBuilderFactory {
         }
 
         /**
-         * Contract address or a list of addresses.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param addresses the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointBuilder addresses(List<java.lang.String> 
addresses) {
-            doSetProperty("addresses", addresses);
-            return this;
-        }
-        /**
-         * Contract address or a list of addresses.
+         * Contract address or a comma separated list of addresses.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 
@@ -1319,25 +1241,10 @@ public interface Web3jEndpointBuilderFactory {
             return this;
         }
         /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
-         * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: common
-         * 
-         * @param privateFor the value to set
-         * @return the dsl builder
-         */
-        default Web3jEndpointBuilder privateFor(List<java.lang.String> 
privateFor) {
-            doSetProperty("privateFor", privateFor);
-            return this;
-        }
-        /**
-         * A transaction privateFor nodes with public keys in a Quorum network.
+         * A comma separated transaction privateFor nodes with public keys in a
+         * Quorum network.
          * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: common
          * 

Reply via email to