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 25de40e0917e0db1ce9d3909ac90050fec657671
Author: Nicolas Filotto <[email protected]>
AuthorDate: Thu Mar 31 14:40:52 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-milo
---
 .../camel/component/milo/browse/milo-browse.json   |  3 ++
 .../camel/component/milo/client/milo-client.json   |  4 +++
 .../src/main/docs/milo-browse-component.adoc       |  4 ++-
 .../src/main/docs/milo-client-component.adoc       |  4 ++-
 .../apache/camel/component/milo/MiloConstants.java | 37 ++++++++++++++++++++++
 .../org/apache/camel/component/milo/NodeIds.java   |  2 --
 .../component/milo/browse/MiloBrowseEndpoint.java  |  7 ++--
 .../component/milo/browse/MiloBrowseProducer.java  |  2 +-
 .../component/milo/client/MiloClientEndpoint.java  |  7 ++--
 .../component/milo/client/MiloClientProducer.java  |  5 +--
 .../component/milo/server/MiloServerEndpoint.java  |  4 ++-
 .../component/milo/browse/BrowseServerTest.java    | 16 ++++++----
 12 files changed, 76 insertions(+), 19 deletions(-)

diff --git 
a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
 
b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
index d3100dc..9abfd0f 100644
--- 
a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
+++ 
b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
@@ -47,6 +47,9 @@
     "sessionName": { "kind": "property", "displayName": "Session Name", 
"group": "client", "label": "client", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
     "sessionTimeout": { "kind": "property", "displayName": "Session Timeout", 
"group": "client", "label": "client", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session timeout in 
milliseconds" }
   },
+  "headers": {
+    "CamelMiloNodeIds": { "kind": "header", "displayName": "", "group": 
"producer", "label": "producer", "required": false, "javaType": "List", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The node ids." }
+  },
   "properties": {
     "endpointUri": { "kind": "path", "displayName": "Endpoint Uri", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The OPC UA server endpoint" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "A virtual client id to 
force the creation of a new connection instance" },
diff --git 
a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
 
b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
index 5b5fe01..e6a1813 100644
--- 
a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
+++ 
b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
@@ -48,6 +48,10 @@
     "sessionName": { "kind": "property", "displayName": "Session Name", 
"group": "client", "label": "client", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
     "sessionTimeout": { "kind": "property", "displayName": "Session Timeout", 
"group": "client", "label": "client", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session timeout in 
milliseconds" }
   },
+  "headers": {
+    "CamelMiloNodeIds": { "kind": "header", "displayName": "", "group": 
"producer", "label": "producer", "required": false, "javaType": "List", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The node ids." },
+    "await": { "kind": "header", "displayName": "", "group": "producer", 
"label": "producer", "required": false, "javaType": "Boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The \"await\" setting for writes." }
+  },
   "properties": {
     "endpointUri": { "kind": "path", "displayName": "Endpoint Uri", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The OPC UA server endpoint" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": 
"common", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "A virtual client id to 
force the creation of a new connection instance" },
diff --git a/components/camel-milo/src/main/docs/milo-browse-component.adoc 
b/components/camel-milo/src/main/docs/milo-browse-component.adoc
index e259f0e..c5ac894 100644
--- a/components/camel-milo/src/main/docs/milo-browse-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-browse-component.adoc
@@ -54,7 +54,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Client
 
diff --git a/components/camel-milo/src/main/docs/milo-client-component.adoc 
b/components/camel-milo/src/main/docs/milo-client-component.adoc
index 25ce4b7..0efb881 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -69,7 +69,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Discovery
 
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java
new file mode 100644
index 0000000..96ac561
--- /dev/null
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.milo;
+
+import org.apache.camel.spi.Metadata;
+
+public final class MiloConstants {
+
+    // The schemes
+    public static final String SCHEME_BROWSE = "milo-browse";
+    public static final String SCHEME_CLIENT = "milo-client";
+    public static final String SCHEME_SERVER = "milo-server";
+
+    @Metadata(label = "producer", description = "The node ids.", javaType = 
"List")
+    public static final String HEADER_NODE_IDS = "CamelMiloNodeIds";
+    @Metadata(label = "producer", description = "The \"await\" setting for 
writes.", javaType = "Boolean",
+              applicableFor = SCHEME_CLIENT)
+    public static final String HEADER_AWAIT = "await";
+
+    private MiloConstants() {
+
+    }
+}
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
index f964cbd..315135e 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
@@ -34,8 +34,6 @@ import static 
org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned.
  */
 public final class NodeIds {
 
-    public static final String HEADER_NODE_IDS = "CamelMiloNodeIds";
-
     private NodeIds() {
     }
 
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
index 6a3c95a..b8faeeb 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.component.milo.client.MiloClientConfiguration;
 import org.apache.camel.component.milo.client.MiloClientConnection;
 import org.apache.camel.component.milo.client.MiloClientConnectionManager;
@@ -37,11 +38,13 @@ import 
org.eclipse.milo.opcua.stack.core.types.enumerated.NodeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_BROWSE;
+
 /**
  * Connect to OPC UA servers using the binary protocol for browsing the node 
tree.
  */
-@UriEndpoint(firstVersion = "3.15.0", scheme = "milo-browse", syntax = 
"milo-browse:endpointUri", title = "OPC UA Browser",
-             category = { Category.IOT }, producerOnly = true)
+@UriEndpoint(firstVersion = "3.15.0", scheme = SCHEME_BROWSE, syntax = 
"milo-browse:endpointUri", title = "OPC UA Browser",
+             category = { Category.IOT }, producerOnly = true, headersClass = 
MiloConstants.class)
 public class MiloBrowseEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(MiloBrowseEndpoint.class);
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
index bfbbf4d..ea4c0d8 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
@@ -36,7 +36,7 @@ import 
org.eclipse.milo.opcua.stack.core.types.structured.ReferenceDescription;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.milo.NodeIds.HEADER_NODE_IDS;
+import static org.apache.camel.component.milo.MiloConstants.HEADER_NODE_IDS;
 
 public class MiloBrowseProducer extends DefaultAsyncProducer {
 
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
index 286a451..a1b25db 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -29,11 +30,13 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_CLIENT;
+
 /**
  * Connect to OPC UA servers using the binary protocol for acquiring telemetry 
data.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "milo-client", syntax = 
"milo-client:endpointUri", title = "OPC UA Client",
-             category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_CLIENT, syntax = 
"milo-client:endpointUri", title = "OPC UA Client",
+             category = { Category.IOT }, headersClass = MiloConstants.class)
 public class MiloClientEndpoint extends DefaultEndpoint {
 
     private final MiloClientConnectionManager connectionManager;
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
index 2b2e82c..e7e4bb9 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
@@ -23,11 +23,12 @@ import java.util.stream.Collectors;
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.support.DefaultAsyncProducer;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
 
 import static java.lang.Boolean.TRUE;
-import static org.apache.camel.component.milo.NodeIds.HEADER_NODE_IDS;
+import static org.apache.camel.component.milo.MiloConstants.HEADER_NODE_IDS;
 
 public class MiloClientProducer extends DefaultAsyncProducer {
 
@@ -87,7 +88,7 @@ public class MiloClientProducer extends DefaultAsyncProducer {
             future = this.connection.call(this.nodeId, this.methodId, value);
         }
 
-        final Boolean await = msg.getHeader("await", this.defaultAwaitWrites, 
Boolean.class);
+        final Boolean await = msg.getHeader(MiloConstants.HEADER_AWAIT, 
this.defaultAwaitWrites, Boolean.class);
 
         if (TRUE.equals(await)) {
             future.whenComplete((v, ex) -> async.done(false));
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
index 027eb58..5a37426 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
@@ -27,10 +27,12 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_SERVER;
+
 /**
  * Make telemetry data available as an OPC UA server.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "milo-server", syntax = 
"milo-server:itemId", title = "OPC UA Server",
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_SERVER, syntax = 
"milo-server:itemId", title = "OPC UA Server",
              category = { Category.IOT })
 public class MiloServerEndpoint extends DefaultEndpoint {
 
diff --git 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
index f4ea89e..d047def 100644
--- 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
+++ 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
@@ -32,7 +32,7 @@ import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.ExchangeBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.milo.AbstractMiloServerTest;
-import org.apache.camel.component.milo.NodeIds;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.eclipse.milo.opcua.stack.core.Identifiers;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
@@ -220,7 +220,7 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         final Map<ExpandedNodeId, BrowseResult> browseResults = 
(Map<ExpandedNodeId, BrowseResult>) message.getBody(Map.class);
         assertNotNull(browseResults);
 
-        final List<?> nodes = message.getHeader(NodeIds.HEADER_NODE_IDS, 
List.class);
+        final List<?> nodes = message.getHeader(MiloConstants.HEADER_NODE_IDS, 
List.class);
         assertNotNull(nodes);
 
         assertEquals(expectedNumberOfResults, browseResults.keySet().size());
@@ -269,7 +269,8 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         mock1.expectedMessagesMatches(assertPredicate(e -> 
assertBrowseResult(e.getMessage(),
                 "ObjectTypes", "VariableTypes", "DataTypes", "ReferenceTypes", 
"EventTypes")));
         producer1.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS,
+                        
Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock1);
     }
@@ -338,7 +339,8 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         mock5.setExpectedCount(1);
         mock5.expectedMessagesMatches(assertPredicate(e -> 
assertBrowseResult(e.getMessage(), "Root")));
         producer5.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS,
+                        
Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock5);
     }
@@ -349,7 +351,7 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         mock1.reset();
         mock1.setExpectedCount(0);
         final Exchange exchange = 
producer1.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, 
Collections.singletonList("invalidNodeId"))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, 
Collections.singletonList("invalidNodeId"))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock1);
         assertNotNull(exchange.getException());
@@ -362,7 +364,7 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         mock6.setExpectedCount(1);
         mock6.expectedMessagesMatches(assertPredicate(e -> 
assertBrowseResults(e.getMessage(), 9, 9)));
         producer6.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.String.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.String.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock6);
     }
@@ -374,7 +376,7 @@ public class BrowseServerTest extends 
AbstractMiloServerTest {
         mock7.setExpectedCount(1);
         mock7.expectedMessagesMatches(assertPredicate(e -> 
assertBrowseResults(e.getMessage(), 1, 0)));
         producer7.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.String.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, 
Collections.singletonList(Identifiers.String.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock7);
     }

Reply via email to