You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2022/04/06 15:22:48 UTC
[camel] 11/20: CAMEL-17792: Add doc about the message headers of camel-web3j
This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers
in repository https://gitbox.apache.org/repos/asf/camel.git
commit f52fe6b951bee3fdd0f0ac4603ee8f21617003a8
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Apr 6 15:17:57 2022 +0200
CAMEL-17792: Add doc about the message headers of camel-web3j
---
.../org/apache/camel/component/web3j/web3j.json | 39 ++++++++++++
.../camel-web3j/src/main/docs/web3j-component.adoc | 13 ++--
.../camel/component/web3j/Web3jConstants.java | 72 ++++++++++++++++++++++
.../camel/component/web3j/Web3jConsumer.java | 4 +-
.../camel/component/web3j/Web3jEndpoint.java | 2 +-
5 files changed, 118 insertions(+), 12 deletions(-)
diff --git a/components/camel-web3j/src/generated/resources/org/apache/camel/component/web3j/web3j.json b/components/camel-web3j/src/generated/resources/org/apache/camel/component/web3j/web3j.json
index b5ac0346b18..bbf383320f5 100644
--- a/components/camel-web3j/src/generated/resources/org/apache/camel/component/web3j/web3j.json
+++ b/components/camel-web3j/src/generated/resources/org/apache/camel/component/web3j/web3j.json
@@ -61,6 +61,45 @@
"value": { "kind": "property", "displayName": "Value", "group": "producer", "label": "producer", "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 value sent within a transaction." },
"autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
},
+ "headers": {
+ "ETH_HASHRATE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A hexadecimal string representation (32 bytes) of the hash rate." },
+ "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The id" },
+ "AT_BLOCK": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions." },
+ "ADDRESS": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Contract address." },
+ "ADDRESSES": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Contract address or a list of addresses." },
+ "FROM_ADDRESS": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The address the transaction is send from" },
+ "TO_ADDRESS": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The address the transaction is directed to" },
+ "POSITION": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The transaction index position withing a block." },
+ "BLOCK_HASH": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hash of the block where this transaction was in." },
+ "TRANSACTION_HASH": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The information about a transaction requested by transaction hash." },
+ "SHA3_HASH_OF_DATA_TO_SIGN": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Message to sign by calculating an Ethereum specific signature." },
+ "SIGNED_TRANSACTION_DATA": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The signed transaction data for a new message call transaction or a contract creation for signed transactions." },
+ "FULL_TRANSACTION_OBJECTS": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If true it returns the full transaction objects, if false only the hashes of the transactions." },
+ "INDEX": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The transactions\/uncle index position in the block." },
+ "SOURCE_CODE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The source code to compile." },
+ "FILTER_ID": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The filter id to use." },
+ "DATABASE_NAME": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The local database name." },
+ "KEY_NAME": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key name in the database." },
+ "NONCE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The nonce found (64 bits) used for submitting a proof-of-work solution." },
+ "HEADER_POW_HASH": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The header's pow-hash (256 bits) used for submitting a proof-of-work solution." },
+ "MIX_DIGEST": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The mix digest (256 bits) used for submitting a proof-of-work solution." },
+ "CLIENT_ID": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A random hexadecimal(32 bytes) ID identifying the client." },
+ "GAS_PRICE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Gas price used for each paid gas." },
+ "GAS_LIMIT": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum gas allowed in this block." },
+ "VALUE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value sent within a transaction." },
+ "DATA": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The compiled code of a contract OR the hash of the invoked method signature and encoded parameters." },
+ "FROM_BLOCK": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions." },
+ "TO_BLOCK": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions." },
+ "TOPICS": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Topics are order-dependent. Each topic can also be a list of topics. Specify multiple topics separated by comma." },
+ "PRIORITY": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The priority of a whisper message." },
+ "TTL": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.math.BigInteger", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time to live in seconds of a whisper message." },
+ "PRIVATE_FOR": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A transaction privateFor nodes with public keys in a Quorum network" },
+ "ERROR_CODE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The error code" },
+ "ERROR_DATA": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The error data" },
+ "ERROR_MESSAGE": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The error message" },
+ "status": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The status of the operation" },
+ "operation": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation" }
+ },
"properties": {
"nodeAddress": { "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": { "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." },
diff --git a/components/camel-web3j/src/main/docs/web3j-component.adoc b/components/camel-web3j/src/main/docs/web3j-component.adoc
index 148a41f868c..fa1a81a51b7 100644
--- a/components/camel-web3j/src/main/docs/web3j-component.adoc
+++ b/components/camel-web3j/src/main/docs/web3j-component.adoc
@@ -51,16 +51,11 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
-== Message Headers
-
-[width="100%",cols="10%,90%",options="header",]
-|=======================================================================
-|Header |Description
-
-|`All URI options` |All URI options can also be set as exchange headers.
-
-|=======================================================================
+All URI options can also be set as exchange headers.
== Samples
diff --git a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConstants.java b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConstants.java
index c770556ec59..1385f9ad3ca 100644
--- a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConstants.java
+++ b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConstants.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.web3j;
+import org.apache.camel.spi.Metadata;
+
public interface Web3jConstants {
String WEB3_CLIENT_VERSION = "WEB3_CLIENT_VERSION";
String WEB3_SHA3 = "WEB3_SHA3";
@@ -26,6 +28,8 @@ public interface Web3jConstants {
String ETH_COINBASE = "ETH_COINBASE";
String ETH_SYNCING = "ETH_SYNCING";
String ETH_MINING = "ETH_MINING";
+ @Metadata(label = "producer", description = "A hexadecimal string representation (32 bytes) of the hash rate.",
+ javaType = "String")
String ETH_HASHRATE = "ETH_HASHRATE";
String ETH_GAS_PRICE = "ETH_GAS_PRICE";
String ETH_ACCOUNTS = "ETH_ACCOUNTS";
@@ -106,41 +110,109 @@ public interface Web3jConstants {
String CATCH_UP_TO_LATEST_AND_SUBSCRIBE_TO_NEW_TRANSACTIONS_OBSERVABLE
= "CATCH_UP_TO_LATEST_AND_SUBSCRIBE_TO_NEW_TRANSACTIONS_OBSERVABLE";
+ @Metadata(label = "producer", description = "The id", javaType = "Long")
String ID = "ID";
String OPERATION = "OPERATION";
String TRANSACTION = "TRANSACTION";
+ /**
+ * The block number, or the string "latest" for the last mined block or "pending", "earliest" for not yet mined
+ * transactions.
+ */
+ @Metadata(label = "producer", javaType = "String")
String AT_BLOCK = "AT_BLOCK";
+ @Metadata(label = "producer", description = "Contract address.", javaType = "String")
String ADDRESS = "ADDRESS";
+ @Metadata(label = "producer", description = "Contract address or a list of addresses.", javaType = "List<String>")
String ADDRESSES = "ADDRESSES";
+ @Metadata(label = "producer", description = "The address the transaction is send from", javaType = "String")
String FROM_ADDRESS = "FROM_ADDRESS";
+ @Metadata(label = "producer", description = "The address the transaction is directed to", javaType = "String")
String TO_ADDRESS = "TO_ADDRESS";
+ @Metadata(label = "producer", description = "The transaction index position withing a block.", javaType = "String")
String POSITION = "POSITION";
+ @Metadata(label = "producer", description = "Hash of the block where this transaction was in.", javaType = "String")
String BLOCK_HASH = "BLOCK_HASH";
+ @Metadata(label = "producer", description = "The information about a transaction requested by transaction hash.",
+ javaType = "String")
String TRANSACTION_HASH = "TRANSACTION_HASH";
+ @Metadata(label = "producer", description = "Message to sign by calculating an Ethereum specific signature.",
+ javaType = "String")
String SHA3_HASH_OF_DATA_TO_SIGN = "SHA3_HASH_OF_DATA_TO_SIGN";
+ @Metadata(label = "producer",
+ description = "The signed transaction data for a new message call transaction or a contract creation for signed transactions.",
+ javaType = "String")
String SIGNED_TRANSACTION_DATA = "SIGNED_TRANSACTION_DATA";
+ @Metadata(label = "producer",
+ description = "If true it returns the full transaction objects, if false only the hashes of the transactions.",
+ javaType = "Boolean")
String FULL_TRANSACTION_OBJECTS = "FULL_TRANSACTION_OBJECTS";
+ @Metadata(label = "producer", description = "The transactions/uncle index position in the block.", javaType = "String")
String INDEX = "INDEX";
+ @Metadata(label = "producer", description = "The source code to compile.", javaType = "String")
String SOURCE_CODE = "SOURCE_CODE";
+ @Metadata(label = "producer", description = "The filter id to use.", javaType = "java.math.BigInteger")
String FILTER_ID = "FILTER_ID";
+ @Metadata(label = "producer", description = "The local database name.", javaType = "String")
String DATABASE_NAME = "DATABASE_NAME";
+ @Metadata(label = "producer", description = "The key name in the database.", javaType = "String")
String KEY_NAME = "KEY_NAME";
+ @Metadata(label = "producer", description = "The nonce found (64 bits) used for submitting a proof-of-work solution.",
+ javaType = "java.math.BigInteger")
String NONCE = "NONCE";
+ @Metadata(label = "producer",
+ description = "The header's pow-hash (256 bits) used for submitting a proof-of-work solution.",
+ javaType = "String")
String HEADER_POW_HASH = "HEADER_POW_HASH";
+ @Metadata(label = "producer", description = "The mix digest (256 bits) used for submitting a proof-of-work solution.",
+ javaType = "String")
String MIX_DIGEST = "MIX_DIGEST";
+ @Metadata(label = "producer", description = "A random hexadecimal(32 bytes) ID identifying the client.",
+ javaType = "String")
String CLIENT_ID = "CLIENT_ID";
+ @Metadata(label = "producer", description = "Gas price used for each paid gas.", javaType = "java.math.BigInteger")
String GAS_PRICE = "GAS_PRICE";
+ @Metadata(label = "producer", description = "The maximum gas allowed in this block.", javaType = "java.math.BigInteger")
String GAS_LIMIT = "GAS_LIMIT";
+ @Metadata(label = "producer", description = "The value sent within a transaction.", javaType = "java.math.BigInteger")
String VALUE = "VALUE";
+ @Metadata(label = "producer",
+ description = "The compiled code of a contract OR the hash of the invoked method signature and encoded parameters.",
+ javaType = "String")
String DATA = "DATA";
+ /**
+ * The block number, or the string "latest" for the last mined block or "pending", "earliest" for not yet mined
+ * transactions.
+ */
+ @Metadata(label = "producer", javaType = "String")
String FROM_BLOCK = "FROM_BLOCK";
+ /**
+ * The block number, or the string "latest" for the last mined block or "pending", "earliest" for not yet mined
+ * transactions.
+ */
+ @Metadata(label = "producer", javaType = "String")
String TO_BLOCK = "TO_BLOCK";
+ @Metadata(label = "producer", description = "Topics are order-dependent. Each topic can also be a list of topics. " +
+ "Specify multiple topics separated by comma.",
+ javaType = "List<String>")
String TOPICS = "TOPICS";
+ @Metadata(label = "producer", description = "The priority of a whisper message.", javaType = "java.math.BigInteger")
String PRIORITY = "PRIORITY";
+ @Metadata(label = "producer", description = "The time to live in seconds of a whisper message.",
+ javaType = "java.math.BigInteger")
String TTL = "TTL";
+ @Metadata(label = "producer", description = "A transaction privateFor nodes with public keys in a Quorum network",
+ javaType = "List<String>")
String PRIVATE_FOR = "PRIVATE_FOR";
+ @Metadata(label = "producer", description = "The error code", javaType = "int")
String ERROR_CODE = "ERROR_CODE";
+ @Metadata(label = "producer", description = "The error data", javaType = "String")
String ERROR_DATA = "ERROR_DATA";
+ @Metadata(label = "producer", description = "The error message", javaType = "String")
String ERROR_MESSAGE = "ERROR_MESSAGE";
+
+ @Metadata(label = "consumer", description = "The status of the operation", javaType = "String")
+ String HEADER_STATUS = "status";
+ @Metadata(label = "consumer", description = "The operation", javaType = "String")
+ String HEADER_OPERATION = "operation";
}
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 b88a7b488d5..ca4ae170ea3 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
@@ -213,8 +213,8 @@ public class Web3jConsumer extends DefaultConsumer {
private void processDone(String operation) {
LOG.debug("processDone for operation: {}", operation);
Exchange exchange = this.getEndpoint().createExchange();
- exchange.getIn().setHeader("status", "done");
- exchange.getIn().setHeader("operation", operation);
+ exchange.getIn().setHeader(Web3jConstants.HEADER_STATUS, "done");
+ exchange.getIn().setHeader(Web3jConstants.HEADER_OPERATION, operation);
processEvent(exchange);
}
diff --git a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jEndpoint.java b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jEndpoint.java
index 0fc98e4e173..5b4a8c51592 100644
--- a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jEndpoint.java
+++ b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jEndpoint.java
@@ -44,7 +44,7 @@ import org.web3j.quorum.Quorum;
* Interact with Ethereum nodes using web3j client API.
*/
@UriEndpoint(firstVersion = "2.22.0", scheme = "web3j", title = "Web3j Ethereum Blockchain", syntax = "web3j:nodeAddress",
- category = { Category.BITCOIN, Category.BLOCKCHAIN, Category.API })
+ category = { Category.BITCOIN, Category.BLOCKCHAIN, Category.API }, headersClass = Web3jConstants.class)
public class Web3jEndpoint extends DefaultEndpoint {
private static final Logger LOG = LoggerFactory.getLogger(Web3jEndpoint.class);