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 db74ce33eb994581543d5bc3ac0150825c517d41
Author: Nicolas Filotto <[email protected]>
AuthorDate: Tue Mar 29 15:27:45 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-iec60870
---
 .../component/iec60870/client/iec60870-client.json |  6 +++++
 .../component/iec60870/server/iec60870-server.json |  8 +++++++
 .../src/main/docs/iec60870-client-component.adoc   |  3 +++
 .../src/main/docs/iec60870-server-component.adoc   |  4 +++-
 .../apache/camel/component/iec60870/Constants.java | 27 ++++++++++++++++++++++
 .../component/iec60870/client/ClientEndpoint.java  |  6 +++--
 .../component/iec60870/server/ServerConsumer.java  | 13 ++++++-----
 .../component/iec60870/server/ServerEndpoint.java  |  6 +++--
 8 files changed, 62 insertions(+), 11 deletions(-)

diff --git 
a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
 
b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
index 07768f0..a4732ba 100644
--- 
a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
+++ 
b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
@@ -27,6 +27,12 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Whether the producer 
should be started lazy (on the first message). By starting lazy you can use 
this to allow CamelContext and routes to startup in situations where a producer 
may otherwise fail during star [...]
     "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": {
+    "CamelIec60870Value": { "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "Object", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The value" },
+    "CamelIec60870Timestamp": { "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "long", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The timestamp of the value" },
+    "CamelIec60870Quality": { "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": 
"org.eclipse.neoscada.protocol.iec60870.asdu.types.QualityInformation", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The quality information of the value" },
+    "CamelIec60870Overflow": { "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "boolean", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Is overflow" }
+  },
   "properties": {
     "uriPath": { "kind": "path", "displayName": "Uri Path", "group": "common", 
"label": "", "required": true, "type": "object", "javaType": 
"org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
object information address" },
     "dataModuleOptions": { "kind": "parameter", "displayName": "Data Module 
Options", "group": "common", "label": "", "required": false, "type": "object", 
"javaType": 
"org.eclipse.neoscada.protocol.iec60870.client.data.DataModuleOptions", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.iec60870.client.ClientOptions", 
"configurationField": "connectionOptions", "description": "Data module options" 
},
diff --git 
a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
 
b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
index a35ebbb..5f2726c 100644
--- 
a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
+++ 
b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
@@ -27,6 +27,14 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Whether the producer 
should be started lazy (on the first message). By starting lazy you can use 
this to allow CamelContext and routes to startup in situations where a producer 
may otherwise fail during star [...]
     "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": {
+    "address": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": 
"org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
address as ObjectAddress" },
+    "value": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "Object", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The value" },
+    "informationObjectAddress": { "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"org.eclipse.neoscada.protocol.iec60870.asdu.types.InformationObjectAddress", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The address as InformationObjectAddress" },
+    "asduHeader": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": 
"org.eclipse.neoscada.protocol.iec60870.asdu.ASDUHeader", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
ASDU header" },
+    "type": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "byte", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The type" },
+    "execute": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Is execute" }
+  },
   "properties": {
     "uriPath": { "kind": "path", "displayName": "Uri Path", "group": "common", 
"label": "", "required": true, "type": "object", "javaType": 
"org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
object information address" },
     "dataModuleOptions": { "kind": "parameter", "displayName": "Data Module 
Options", "group": "common", "label": "", "required": false, "type": "object", 
"javaType": 
"org.eclipse.neoscada.protocol.iec60870.client.data.DataModuleOptions", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.iec60870.client.ClientOptions", 
"configurationField": "connectionOptions", "description": "Data module options" 
},
diff --git 
a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc 
b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
index 118c018..863ff89 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
@@ -71,5 +71,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git 
a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc 
b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
index 8de026c..cb95ee5 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
@@ -55,6 +55,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
index 65d2b31..63ce3fa 100644
--- 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
+++ 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
@@ -16,15 +16,42 @@
  */
 package org.apache.camel.component.iec60870;
 
+import org.apache.camel.spi.Metadata;
+
 public interface Constants {
+
+    String SCHEME_SERVER = "iec60870-server";
+    String SCHEME_CLIENT = "iec60870-client";
+
     String PARAM_DATA_MODULE_OPTIONS = "dataModuleOptions";
 
     String PARAM_PROTOCOL_OPTIONS = "protocolOptions";
 
     String PARAM_CONNECTION_OPTIONS = "connectionOptions";
 
+    @Metadata(label = "consumer", description = "The value", javaType = 
"Object", applicableFor = SCHEME_CLIENT)
     String IEC60870_VALUE = "CamelIec60870Value";
+    @Metadata(label = "consumer", description = "The timestamp of the value", 
javaType = "long", applicableFor = SCHEME_CLIENT)
     String IEC60870_TIMESTAMP = "CamelIec60870Timestamp";
+    @Metadata(label = "consumer", description = "The quality information of 
the value",
+              javaType = 
"org.eclipse.neoscada.protocol.iec60870.asdu.types.QualityInformation", 
applicableFor = SCHEME_CLIENT)
     String IEC60870_QUALITY = "CamelIec60870Quality";
+    @Metadata(label = "consumer", description = "Is overflow", javaType = 
"boolean", applicableFor = SCHEME_CLIENT)
     String IEC60870_OVERFLOW = "CamelIec60870Overflow";
+    @Metadata(label = "consumer", description = "The address as ObjectAddress",
+              javaType = "org.apache.camel.component.iec60870.ObjectAddress", 
applicableFor = SCHEME_SERVER)
+    String ADDRESS = "address";
+    @Metadata(label = "consumer", description = "The value", javaType = 
"Object", applicableFor = SCHEME_SERVER)
+    String VALUE = "value";
+    @Metadata(label = "consumer", description = "The address as 
InformationObjectAddress",
+              javaType = 
"org.eclipse.neoscada.protocol.iec60870.asdu.types.InformationObjectAddress",
+              applicableFor = SCHEME_SERVER)
+    String INFORMATION_OBJECT_ADDRESS = "informationObjectAddress";
+    @Metadata(label = "consumer", description = "The ASDU header",
+              javaType = 
"org.eclipse.neoscada.protocol.iec60870.asdu.ASDUHeader", applicableFor = 
SCHEME_SERVER)
+    String ASDU_HEADER = "asduHeader";
+    @Metadata(label = "consumer", description = "The type", javaType = "byte", 
applicableFor = SCHEME_SERVER)
+    String TYPE = "type";
+    @Metadata(label = "consumer", description = "Is execute", javaType = 
"boolean", applicableFor = SCHEME_SERVER)
+    String EXECUTE = "execute";
 }
diff --git 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
index c5f23d3..d4092a4 100644
--- 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
+++ 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
@@ -21,17 +21,19 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.iec60870.AbstractIecEndpoint;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.support.DefaultComponent;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.camel.component.iec60870.Constants.SCHEME_CLIENT;
 
 /**
  * IEC 60870 supervisory control and data acquisition (SCADA) client using 
NeoSCADA implementation.
  */
-@UriEndpoint(firstVersion = "2.20.0", scheme = "iec60870-client", syntax = 
"iec60870-client:uriPath",
-             title = "IEC 60870 Client", category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_CLIENT, syntax = 
"iec60870-client:uriPath",
+             title = "IEC 60870 Client", category = { Category.IOT }, 
headersClass = Constants.class)
 public class ClientEndpoint extends 
AbstractIecEndpoint<ClientConnectionMultiplexor> {
 
     public ClientEndpoint(final String uri, final DefaultComponent component, 
final ClientConnectionMultiplexor connection,
diff --git 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
index 2444361..78cbf28 100644
--- 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
+++ 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
@@ -22,6 +22,7 @@ import java.util.concurrent.CompletionStage;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.support.DefaultConsumer;
 import org.apache.camel.support.DefaultMessage;
@@ -98,12 +99,12 @@ public class ServerConsumer extends DefaultConsumer {
 
         message.setBody(request);
 
-        message.setHeader("address", 
ObjectAddress.valueOf(request.getHeader().getAsduAddress(), 
request.getAddress()));
-        message.setHeader("value", request.getValue());
-        message.setHeader("informationObjectAddress", request.getAddress());
-        message.setHeader("asduHeader", request.getHeader());
-        message.setHeader("type", request.getType());
-        message.setHeader("execute", request.isExecute());
+        message.setHeader(Constants.ADDRESS, 
ObjectAddress.valueOf(request.getHeader().getAsduAddress(), 
request.getAddress()));
+        message.setHeader(Constants.VALUE, request.getValue());
+        message.setHeader(Constants.INFORMATION_OBJECT_ADDRESS, 
request.getAddress());
+        message.setHeader(Constants.ASDU_HEADER, request.getHeader());
+        message.setHeader(Constants.TYPE, request.getType());
+        message.setHeader(Constants.EXECUTE, request.isExecute());
 
         return message;
     }
diff --git 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
index 063ca8f..f453c87 100644
--- 
a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
+++ 
b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
@@ -21,18 +21,20 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.iec60870.AbstractIecEndpoint;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultComponent;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.camel.component.iec60870.Constants.SCHEME_SERVER;
 
 /**
  * IEC 60870 supervisory control and data acquisition (SCADA) server using 
NeoSCADA implementation.
  */
-@UriEndpoint(firstVersion = "2.20.0", scheme = "iec60870-server", syntax = 
"iec60870-server:uriPath",
-             title = "IEC 60870 Server", category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_SERVER, syntax = 
"iec60870-server:uriPath",
+             title = "IEC 60870 Server", category = { Category.IOT }, 
headersClass = Constants.class)
 public class ServerEndpoint extends 
AbstractIecEndpoint<ServerConnectionMultiplexor> {
 
     /**

Reply via email to