You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/12/25 16:05:42 UTC

[camel-spring-boot] branch main updated: CAMEL-17319: Regen

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 3fb8526  CAMEL-17319: Regen
3fb8526 is described below

commit 3fb852630ea6691aedd9fc3dfe5909565e855287
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Dec 25 17:05:28 2021 +0100

    CAMEL-17319: Regen
---
 .../camel/springboot/catalog/components.properties |   1 +
 .../springboot/catalog/components/milo-browse.json |  82 +++++
 .../camel-milo-starter/src/main/docs/milo.json     | 172 ++++++++++
 .../MiloBrowseComponentAutoConfiguration.java      |  79 +++++
 .../MiloBrowseComponentConfiguration.java          | 348 +++++++++++++++++++++
 .../springboot/MiloBrowseComponentConverter.java   |  67 ++++
 .../src/main/resources/META-INF/spring.factories   |   6 +-
 tooling/camel-spring-boot-dependencies/pom.xml     |   5 +
 8 files changed, 759 insertions(+), 1 deletion(-)

diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
index 0f63441..8f68d0c 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
@@ -219,6 +219,7 @@ lumberjack
 master
 metrics
 micrometer
+milo-browse
 milo-client
 milo-server
 mina
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/milo-browse.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/milo-browse.json
new file mode 100644
index 0000000..293e0fb
--- /dev/null
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/milo-browse.json
@@ -0,0 +1,82 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "milo-browse",
+    "title": "OPC UA Browser",
+    "description": "Connect to OPC UA servers using the binary protocol for browsing the node tree.",
+    "deprecated": false,
+    "firstVersion": "3.15.0",
+    "label": "iot",
+    "javaType": "org.apache.camel.component.milo.browse.MiloBrowseComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-milo-starter",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "milo-browse",
+    "extendsScheme": "",
+    "syntax": "milo-browse:endpointUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "clientId": { "kind": "property", "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" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.milo.client.MiloClientConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "All default options for client configurations" },
+    "discoveryEndpointSuffix": { "kind": "property", "displayName": "Discovery Endpoint Suffix", "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 suffix for endpoint URI when discovering" },
+    "discoveryEndpointUri": { "kind": "property", "displayName": "Discovery Endpoint Uri", "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": "An alternative discovery URI" },
+    "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 [...]
+    "allowedSecurityPolicies": { "kind": "property", "displayName": "Allowed Security Policies", "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": "A set of allowed security policy URIs. Default is to accept all and use the highest." },
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for Eclipse Milo", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The application name" },
+    "applicationUri": { "kind": "property", "displayName": "Application Uri", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo\/Client", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The application URI" },
+    "channelLifetime": { "kind": "property", "displayName": "Channel Lifetime", "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": "Channel lifetime in milliseconds" },
+    "keyAlias": { "kind": "property", "displayName": "Key Alias", "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": "The name of the key in the keystore file" },
+    "keyPassword": { "kind": "property", "displayName": "Key Password", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The key password" },
+    "keyStorePassword": { "kind": "property", "displayName": "Key Store Password", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The keystore password" },
+    "keyStoreType": { "kind": "property", "displayName": "Key Store Type", "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": "The key store type" },
+    "keyStoreUrl": { "kind": "property", "displayName": "Key Store Url", "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": "The URL where the key should be loaded from" },
+    "maxPendingPublishRequests": { "kind": "property", "displayName": "Max Pending Publish Requests", "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": "The maximum number of pending publish requests" },
+    "maxResponseMessageSize": { "kind": "property", "displayName": "Max Response Message Size", "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": "The maximum number of bytes a response message may have" },
+    "miloClientConnectionManager": { "kind": "property", "displayName": "Milo Client Connection Manager", "group": "client", "label": "client", "required": false, "type": "object", "javaType": "org.apache.camel.component.milo.client.MiloClientConnectionManager", "deprecated": false, "autowired": true, "secret": false, "description": "Instance for managing client connections" },
+    "overrideHost": { "kind": "property", "displayName": "Override Host", "group": "client", "label": "client", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Override the server reported endpoint host with the host from the endpoint URI." },
+    "productUri": { "kind": "property", "displayName": "Product Uri", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The product URI" },
+    "requestedPublishingInterval": { "kind": "property", "displayName": "Requested Publishing Interval", "group": "client", "label": "client", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1_000.0", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The requested publishing interval in milliseconds" },
+    "requestTimeout": { "kind": "property", "displayName": "Request 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": "Request timeout in milliseconds" },
+    "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" }
+  },
+  "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" },
+    "depth": { "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3, "description": "When browsing recursively into sub-types, what's the maximum search depth for diving into the tree. Default value notice: Maximum depth for browsing recursively (only if recursive = true)" },
+    "direction": { "kind": "parameter", "displayName": "Direction", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.eclipse.milo.opcua.stack.core.types.enumerated.BrowseDirection", "enum": [ "Forward", "Inverse", "Both" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Forward", "description": "The direction to browse (forward, inverse, ...). Default value notice: The direction to browse; see org.eclipse.milo.opcua.stack [...]
+    "discoveryEndpointSuffix": { "kind": "parameter", "displayName": "Discovery Endpoint Suffix", "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 suffix for endpoint URI when discovering" },
+    "discoveryEndpointUri": { "kind": "parameter", "displayName": "Discovery Endpoint Uri", "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": "An alternative discovery URI" },
+    "filter": { "kind": "parameter", "displayName": "Filter", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "None", "description": "Filter out node ids to limit browsing. Default value notice: Regular filter expression matching node ids" },
+    "includeSubTypes": { "kind": "parameter", "displayName": "Include Sub Types", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to include sub-types for browsing; only applicable for non-recursive browsing" },
+    "lazyStartProducer": { "kind": "parameter", "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 sta [...]
+    "maxNodeIdsPerRequest": { "kind": "parameter", "displayName": "Max Node Ids Per Request", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "description": "The maximum number node ids requested per server call. Default value notice: Maximum number of node ids requested per browse call (applies to browsing sub-types only; only if recursive = true)" },
+    "node": { "kind": "parameter", "displayName": "Node", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ns=0;id=84", "description": "The node definition (see Node ID). Default value notice: Root folder as per OPC-UA spec" },
+    "nodeClasses": { "kind": "parameter", "displayName": "Node Classes", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Variable,Object,DataType", "description": "The mask indicating the node classes of interest in browsing. Default value notice: Comma-separated node class list; see org.eclipse.milo.opcua.stack.core.types.enumerated.NodeClass" },
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to browse recursively into sub-types, ignores includeSubTypes setting as it's implied to be set to true. Default value notice: Whether to recursively browse sub-types: truefalse" },
+    "allowedSecurityPolicies": { "kind": "parameter", "displayName": "Allowed Security Policies", "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": "A set of allowed security policy URIs. Default is to accept all and use the highest." },
+    "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for Eclipse Milo", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The application name" },
+    "applicationUri": { "kind": "parameter", "displayName": "Application Uri", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo\/Client", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The application URI" },
+    "channelLifetime": { "kind": "parameter", "displayName": "Channel Lifetime", "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": "Channel lifetime in milliseconds" },
+    "keyAlias": { "kind": "parameter", "displayName": "Key Alias", "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": "The name of the key in the keystore file" },
+    "keyPassword": { "kind": "parameter", "displayName": "Key Password", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The key password" },
+    "keyStorePassword": { "kind": "parameter", "displayName": "Key Store Password", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The keystore password" },
+    "keyStoreType": { "kind": "parameter", "displayName": "Key Store Type", "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": "The key store type" },
+    "keyStoreUrl": { "kind": "parameter", "displayName": "Key Store Url", "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": "The URL where the key should be loaded from" },
+    "maxPendingPublishRequests": { "kind": "parameter", "displayName": "Max Pending Publish Requests", "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": "The maximum number of pending publish requests" },
+    "maxResponseMessageSize": { "kind": "parameter", "displayName": "Max Response Message Size", "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": "The maximum number of bytes a response message may have" },
+    "overrideHost": { "kind": "parameter", "displayName": "Override Host", "group": "client", "label": "client", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Override the server reported endpoint host with the host from the endpoint URI." },
+    "productUri": { "kind": "parameter", "displayName": "Product Uri", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The product URI" },
+    "requestedPublishingInterval": { "kind": "parameter", "displayName": "Requested Publishing Interval", "group": "client", "label": "client", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1_000.0", "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "The requested publishing interval in milliseconds" },
+    "requestTimeout": { "kind": "parameter", "displayName": "Request 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": "Request timeout in milliseconds" },
+    "sessionName": { "kind": "parameter", "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": "parameter", "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" }
+  }
+}
diff --git a/components-starter/camel-milo-starter/src/main/docs/milo.json b/components-starter/camel-milo-starter/src/main/docs/milo.json
index 4a33d84..e33a3a8 100644
--- a/components-starter/camel-milo-starter/src/main/docs/milo.json
+++ b/components-starter/camel-milo-starter/src/main/docs/milo.json
@@ -1,6 +1,17 @@
 {
   "groups": [
     {
+      "name": "camel.component.milo-browse",
+      "type": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
       "name": "camel.component.milo-client",
       "type": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
       "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
@@ -25,6 +36,167 @@
   ],
   "properties": [
     {
+      "name": "camel.component.milo-browse.allowed-security-policies",
+      "type": "java.lang.String",
+      "description": "A set of allowed security policy URIs. Default is to accept all and use the highest.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.application-name",
+      "type": "java.lang.String",
+      "description": "The application name",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": "Apache Camel adapter for Eclipse Milo"
+    },
+    {
+      "name": "camel.component.milo-browse.application-uri",
+      "type": "java.lang.String",
+      "description": "The application URI",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo\/Client"
+    },
+    {
+      "name": "camel.component.milo-browse.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.milo-browse.channel-lifetime",
+      "type": "java.lang.Long",
+      "description": "Channel lifetime in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.client-id",
+      "type": "java.lang.String",
+      "description": "A virtual client id to force the creation of a new connection instance",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.configuration",
+      "type": "org.apache.camel.component.milo.client.MiloClientConfiguration",
+      "description": "All default options for client configurations. The option is a org.apache.camel.component.milo.client.MiloClientConfiguration type.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.milo-browse.discovery-endpoint-suffix",
+      "type": "java.lang.String",
+      "description": "A suffix for endpoint URI when discovering",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.discovery-endpoint-uri",
+      "type": "java.lang.String",
+      "description": "An alternative discovery URI",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the milo-browse component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.key-alias",
+      "type": "java.lang.String",
+      "description": "The name of the key in the keystore file",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.key-password",
+      "type": "java.lang.String",
+      "description": "The key password",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.key-store-password",
+      "type": "java.lang.String",
+      "description": "The keystore password",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.key-store-type",
+      "type": "java.lang.String",
+      "description": "The key store type",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.key-store-url",
+      "type": "java.lang.String",
+      "description": "The URL where the key should be loaded from",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the [...]
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-browse.max-pending-publish-requests",
+      "type": "java.lang.Long",
+      "description": "The maximum number of pending publish requests",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.max-response-message-size",
+      "type": "java.lang.Long",
+      "description": "The maximum number of bytes a response message may have",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.milo-client-connection-manager",
+      "type": "org.apache.camel.component.milo.client.MiloClientConnectionManager",
+      "description": "Instance for managing client connections. The option is a org.apache.camel.component.milo.client.MiloClientConnectionManager type.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.override-host",
+      "type": "java.lang.Boolean",
+      "description": "Override the server reported endpoint host with the host from the endpoint URI.",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-browse.product-uri",
+      "type": "java.lang.String",
+      "description": "The product URI",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo"
+    },
+    {
+      "name": "camel.component.milo-browse.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Request timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.requested-publishing-interval",
+      "type": "java.lang.Double",
+      "description": "The requested publishing interval in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.session-name",
+      "type": "java.lang.String",
+      "description": "Session name",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-browse.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConfiguration"
+    },
+    {
       "name": "camel.component.milo-client.allowed-security-policies",
       "type": "java.lang.String",
       "description": "A set of allowed security policy URIs. Default is to accept all and use the highest.",
diff --git a/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentAutoConfiguration.java b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentAutoConfiguration.java
new file mode 100644
index 0000000..1aa72fe
--- /dev/null
+++ b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentAutoConfiguration.java
@@ -0,0 +1,79 @@
+/*
+ * 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.browse.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+import org.apache.camel.component.milo.browse.MiloBrowseComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+@Configuration(proxyBeanMethods = false)
+@Conditional(ConditionalOnCamelContextAndAutoConfigurationBeans.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,MiloBrowseComponentConfiguration.class})
+@ConditionalOnHierarchicalProperties({"camel.component", "camel.component.milo-browse"})
+@AutoConfigureAfter({CamelAutoConfiguration.class, MiloBrowseComponentConverter.class})
+public class MiloBrowseComponentAutoConfiguration {
+
+    @Autowired
+    private ApplicationContext applicationContext;
+    private final CamelContext camelContext;
+    @Autowired
+    private MiloBrowseComponentConfiguration configuration;
+
+    public MiloBrowseComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    @Lazy
+    @Bean
+    public ComponentCustomizer configureMiloBrowseComponent() {
+        return new ComponentCustomizer() {
+            @Override
+            public void configure(String name, Component target) {
+                CamelPropertiesHelper.copyProperties(camelContext, configuration, target);
+            }
+            @Override
+            public boolean isEnabled(String name, Component target) {
+                return HierarchicalPropertiesEvaluator.evaluate(
+                        applicationContext,
+                        "camel.component.customizer",
+                        "camel.component.milo-browse.customizer")
+                    && target instanceof MiloBrowseComponent;
+            }
+        };
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConfiguration.java b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConfiguration.java
new file mode 100644
index 0000000..9f2e1ac
--- /dev/null
+++ b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConfiguration.java
@@ -0,0 +1,348 @@
+/*
+ * 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.browse.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.component.milo.client.MiloClientConfiguration;
+import org.apache.camel.component.milo.client.MiloClientConnectionManager;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Connect to OPC UA servers using the binary protocol for browsing the node
+ * tree.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+@ConfigurationProperties(prefix = "camel.component.milo-browse")
+public class MiloBrowseComponentConfiguration
+        extends
+            ComponentConfigurationPropertiesCommon {
+
+    /**
+     * Whether to enable auto configuration of the milo-browse component. This
+     * is enabled by default.
+     */
+    private Boolean enabled;
+    /**
+     * A virtual client id to force the creation of a new connection instance
+     */
+    private String clientId;
+    /**
+     * All default options for client configurations. The option is a
+     * org.apache.camel.component.milo.client.MiloClientConfiguration type.
+     */
+    private MiloClientConfiguration configuration;
+    /**
+     * A suffix for endpoint URI when discovering
+     */
+    private String discoveryEndpointSuffix;
+    /**
+     * An alternative discovery URI
+     */
+    private String discoveryEndpointUri;
+    /**
+     * 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 starting
+     * and cause the route to fail being started. By deferring this startup to
+     * be lazy then the startup failure can be handled during routing messages
+     * via Camel's routing error handlers. Beware that when the first message is
+     * processed then creating and starting the producer may take a little time
+     * and prolong the total processing time of the processing.
+     */
+    private Boolean lazyStartProducer = false;
+    /**
+     * 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
+     * then gets configured on the component. This can be used for automatic
+     * configuring JDBC data sources, JMS connection factories, AWS Clients,
+     * etc.
+     */
+    private Boolean autowiredEnabled = true;
+    /**
+     * A set of allowed security policy URIs. Default is to accept all and use
+     * the highest.
+     */
+    private String allowedSecurityPolicies;
+    /**
+     * The application name
+     */
+    private String applicationName = "Apache Camel adapter for Eclipse Milo";
+    /**
+     * The application URI
+     */
+    private String applicationUri = "http://camel.apache.org/EclipseMilo/Client";
+    /**
+     * Channel lifetime in milliseconds
+     */
+    private Long channelLifetime;
+    /**
+     * The name of the key in the keystore file
+     */
+    private String keyAlias;
+    /**
+     * The key password
+     */
+    private String keyPassword;
+    /**
+     * The keystore password
+     */
+    private String keyStorePassword;
+    /**
+     * The key store type
+     */
+    private String keyStoreType;
+    /**
+     * The URL where the key should be loaded from
+     */
+    private String keyStoreUrl;
+    /**
+     * The maximum number of pending publish requests
+     */
+    private Long maxPendingPublishRequests;
+    /**
+     * The maximum number of bytes a response message may have
+     */
+    private Long maxResponseMessageSize;
+    /**
+     * Instance for managing client connections. The option is a
+     * org.apache.camel.component.milo.client.MiloClientConnectionManager type.
+     */
+    private MiloClientConnectionManager miloClientConnectionManager;
+    /**
+     * Override the server reported endpoint host with the host from the
+     * endpoint URI.
+     */
+    private Boolean overrideHost = false;
+    /**
+     * The product URI
+     */
+    private String productUri = "http://camel.apache.org/EclipseMilo";
+    /**
+     * The requested publishing interval in milliseconds
+     */
+    private Double requestedPublishingInterval;
+    /**
+     * Request timeout in milliseconds
+     */
+    private Long requestTimeout;
+    /**
+     * Session name
+     */
+    private String sessionName;
+    /**
+     * Session timeout in milliseconds
+     */
+    private Long sessionTimeout;
+
+    public String getClientId() {
+        return clientId;
+    }
+
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    public MiloClientConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public void setConfiguration(MiloClientConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    public String getDiscoveryEndpointSuffix() {
+        return discoveryEndpointSuffix;
+    }
+
+    public void setDiscoveryEndpointSuffix(String discoveryEndpointSuffix) {
+        this.discoveryEndpointSuffix = discoveryEndpointSuffix;
+    }
+
+    public String getDiscoveryEndpointUri() {
+        return discoveryEndpointUri;
+    }
+
+    public void setDiscoveryEndpointUri(String discoveryEndpointUri) {
+        this.discoveryEndpointUri = discoveryEndpointUri;
+    }
+
+    public Boolean getLazyStartProducer() {
+        return lazyStartProducer;
+    }
+
+    public void setLazyStartProducer(Boolean lazyStartProducer) {
+        this.lazyStartProducer = lazyStartProducer;
+    }
+
+    public Boolean getAutowiredEnabled() {
+        return autowiredEnabled;
+    }
+
+    public void setAutowiredEnabled(Boolean autowiredEnabled) {
+        this.autowiredEnabled = autowiredEnabled;
+    }
+
+    public String getAllowedSecurityPolicies() {
+        return allowedSecurityPolicies;
+    }
+
+    public void setAllowedSecurityPolicies(String allowedSecurityPolicies) {
+        this.allowedSecurityPolicies = allowedSecurityPolicies;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationUri() {
+        return applicationUri;
+    }
+
+    public void setApplicationUri(String applicationUri) {
+        this.applicationUri = applicationUri;
+    }
+
+    public Long getChannelLifetime() {
+        return channelLifetime;
+    }
+
+    public void setChannelLifetime(Long channelLifetime) {
+        this.channelLifetime = channelLifetime;
+    }
+
+    public String getKeyAlias() {
+        return keyAlias;
+    }
+
+    public void setKeyAlias(String keyAlias) {
+        this.keyAlias = keyAlias;
+    }
+
+    public String getKeyPassword() {
+        return keyPassword;
+    }
+
+    public void setKeyPassword(String keyPassword) {
+        this.keyPassword = keyPassword;
+    }
+
+    public String getKeyStorePassword() {
+        return keyStorePassword;
+    }
+
+    public void setKeyStorePassword(String keyStorePassword) {
+        this.keyStorePassword = keyStorePassword;
+    }
+
+    public String getKeyStoreType() {
+        return keyStoreType;
+    }
+
+    public void setKeyStoreType(String keyStoreType) {
+        this.keyStoreType = keyStoreType;
+    }
+
+    public String getKeyStoreUrl() {
+        return keyStoreUrl;
+    }
+
+    public void setKeyStoreUrl(String keyStoreUrl) {
+        this.keyStoreUrl = keyStoreUrl;
+    }
+
+    public Long getMaxPendingPublishRequests() {
+        return maxPendingPublishRequests;
+    }
+
+    public void setMaxPendingPublishRequests(Long maxPendingPublishRequests) {
+        this.maxPendingPublishRequests = maxPendingPublishRequests;
+    }
+
+    public Long getMaxResponseMessageSize() {
+        return maxResponseMessageSize;
+    }
+
+    public void setMaxResponseMessageSize(Long maxResponseMessageSize) {
+        this.maxResponseMessageSize = maxResponseMessageSize;
+    }
+
+    public MiloClientConnectionManager getMiloClientConnectionManager() {
+        return miloClientConnectionManager;
+    }
+
+    public void setMiloClientConnectionManager(
+            MiloClientConnectionManager miloClientConnectionManager) {
+        this.miloClientConnectionManager = miloClientConnectionManager;
+    }
+
+    public Boolean getOverrideHost() {
+        return overrideHost;
+    }
+
+    public void setOverrideHost(Boolean overrideHost) {
+        this.overrideHost = overrideHost;
+    }
+
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    public Double getRequestedPublishingInterval() {
+        return requestedPublishingInterval;
+    }
+
+    public void setRequestedPublishingInterval(
+            Double requestedPublishingInterval) {
+        this.requestedPublishingInterval = requestedPublishingInterval;
+    }
+
+    public Long getRequestTimeout() {
+        return requestTimeout;
+    }
+
+    public void setRequestTimeout(Long requestTimeout) {
+        this.requestTimeout = requestTimeout;
+    }
+
+    public String getSessionName() {
+        return sessionName;
+    }
+
+    public void setSessionName(String sessionName) {
+        this.sessionName = sessionName;
+    }
+
+    public Long getSessionTimeout() {
+        return sessionTimeout;
+    }
+
+    public void setSessionTimeout(Long sessionTimeout) {
+        this.sessionTimeout = sessionTimeout;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConverter.java b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConverter.java
new file mode 100644
index 0000000..fa7b05f
--- /dev/null
+++ b/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/browse/springboot/MiloBrowseComponentConverter.java
@@ -0,0 +1,67 @@
+/*
+ * 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.browse.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+import org.springframework.stereotype.Component;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+@Configuration(proxyBeanMethods = false)
+@ConfigurationPropertiesBinding
+@Component
+public class MiloBrowseComponentConverter implements GenericConverter {
+
+    @Autowired
+    private ApplicationContext applicationContext;
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.milo.client.MiloClientConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.milo.client.MiloClientConnectionManager.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.milo.client.MiloClientConfiguration": return applicationContext.getBean(ref, org.apache.camel.component.milo.client.MiloClientConfiguration.class);
+            case "org.apache.camel.component.milo.client.MiloClientConnectionManager": return applicationContext.getBean(ref, org.apache.camel.component.milo.client.MiloClientConnectionManager.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories b/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
index 44db65b..9f71769 100644
--- a/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
+++ b/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
@@ -18,7 +18,11 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 org.apache.camel.component.milo.server.springboot.MiloServerComponentAutoConfiguration,\
 org.apache.camel.component.milo.client.springboot.MiloClientComponentAutoConfiguration,\
 org.apache.camel.component.milo.server.springboot.MiloServerComponentConverter,\
-org.apache.camel.component.milo.client.springboot.MiloClientComponentConverter
+org.apache.camel.component.milo.client.springboot.MiloClientComponentConverter,\
+org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentConverter,\
+org.apache.camel.component.milo.browse.springboot.MiloBrowseComponentAutoConfiguration
+
+
 
 
 
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml b/tooling/camel-spring-boot-dependencies/pom.xml
index 37d633c..a018724 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -3130,6 +3130,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-jsh-dsl</artifactId>
+        <version>3.15.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-jslt</artifactId>
         <version>3.15.0-SNAPSHOT</version>
       </dependency>