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 2019/08/10 06:08:17 UTC

[camel] branch master updated: Fixed camel-atmos and polished

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

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


The following commit(s) were added to refs/heads/master by this push:
     new abcd877  Fixed camel-atmos and polished
abcd877 is described below

commit abcd87774de9759f9cb782814ec3d81434da4a77
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Aug 10 08:08:04 2019 +0200

    Fixed camel-atmos and polished
---
 .../camel-atmos/src/main/docs/atmos-component.adoc |  10 +-
 .../camel/component/atmos/AtmosComponent.java      |   8 +-
 .../camel/component/atmos/AtmosConfiguration.java  |  22 +-
 .../camel/component/atmos/AtmosEndpoint.java       |   2 -
 .../camel/component/atmos/AtmosComponentTest.java  |   6 +-
 .../camel/component/atmos/AtmosConsumerTest.java   |  15 +-
 .../endpoint/dsl/AtmosEndpointBuilderFactory.java  | 309 ++++++++++-----------
 .../springboot/AtmosComponentConfiguration.java    |   2 +-
 8 files changed, 186 insertions(+), 188 deletions(-)

diff --git a/components/camel-atmos/src/main/docs/atmos-component.adoc b/components/camel-atmos/src/main/docs/atmos-component.adoc
index 6593aef..cf38b30 100644
--- a/components/camel-atmos/src/main/docs/atmos-component.adoc
+++ b/components/camel-atmos/src/main/docs/atmos-component.adoc
@@ -24,7 +24,7 @@ The Atmos component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *fullTokenId* (security) | The token id to pass to the Atmos client |  | String
-| *secretKey* (security) | The secret key to pass to the Atmos client |  | String
+| *secretKey* (security) | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
 | *uri* (advanced) | The URI of the server for the Atmos client to connect to |  | String
 | *sslValidation* (security) | Whether the Atmos client should perform SSL validation | false | boolean
 | *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
@@ -60,20 +60,20 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *enableSslValidation* (common) | Atmos SSL validation | false | boolean
-| *fullTokenId* (common) | Atmos client fullTokenId |  | String
 | *localPath* (common) | Local path to put files |  | String
 | *newRemotePath* (common) | New path on Atmos when moving files |  | String
 | *query* (common) | Search query on Atmos |  | String
 | *remotePath* (common) | Where to put files on Atmos |  | String
-| *secretKey* (common) | Atmos shared secret |  | String
-| *uri* (common) | Atomos server uri |  | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *lazyStartProducer* (producer) | 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 [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| *uri* (advanced) | Atomos server uri |  | String
+| *fullTokenId* (security) | Atmos client fullTokenId |  | String
+| *secretKey* (security) | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
+| *sslValidation* (security) | Atmos SSL validation | false | boolean
 |===
 // endpoint options: END
 // spring-boot-auto-configure options: START
diff --git a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosComponent.java b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosComponent.java
index b1254d1..455caf0 100644
--- a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosComponent.java
+++ b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosComponent.java
@@ -28,9 +28,9 @@ import org.apache.camel.support.DefaultComponent;
 @Component("atmos")
 public class AtmosComponent extends DefaultComponent {
 
-    @Metadata(label = "security")
+    @Metadata(label = "security", secret = true)
     private String fullTokenId;
-    @Metadata(label = "security")
+    @Metadata(label = "security", secret = true)
     private String secretKey;
     @Metadata(label = "advanced")
     private String uri;
@@ -73,7 +73,7 @@ public class AtmosComponent extends DefaultComponent {
         configuration.setFullTokenId(parameters.get("fullTokenId") == null
                 ? this.fullTokenId
                 : (String) parameters.get("fullTokenId"));
-        configuration.setEnableSslValidation(this.sslValidation);
+        configuration.setSslValidation(this.sslValidation);
 
         //pass validation test
         AtmosConfigurationValidator.validate(configuration);
@@ -100,7 +100,7 @@ public class AtmosComponent extends DefaultComponent {
     }
 
     /**
-     * The secret key to pass to the Atmos client
+     * The secret key to pass to the Atmos client (should be base64 encoded)
      */
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
diff --git a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
index 71346ac..f003d0f 100644
--- a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
+++ b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
@@ -38,7 +38,7 @@ public class AtmosConfiguration {
     private String name;
     @UriPath @Metadata(required = true)
     private AtmosOperation operation;
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String secretKey;
     @UriParam
     private String localPath;
@@ -48,12 +48,12 @@ public class AtmosConfiguration {
     private String newRemotePath;
     @UriParam
     private String query;
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String fullTokenId;
-    @UriParam
+    @UriParam(label = "advanced")
     private String uri;
-    @UriParam
-    private boolean enableSslValidation;
+    @UriParam(label = "security")
+    private boolean sslValidation;
 
     public void setClient(AtmosApi client) {
         this.client = client;
@@ -76,7 +76,7 @@ public class AtmosConfiguration {
             throw new AtmosException("wrong syntax for Atmos URI!", use);
         }
         
-        if (!enableSslValidation) {
+        if (!sslValidation) {
             config.setDisableSslValidation(true);
         }
         AtmosApi atmosclient = new AtmosApiClient(config);
@@ -100,7 +100,7 @@ public class AtmosConfiguration {
     }
 
     /**
-     * Atmos shared secret
+     * The secret key to pass to the Atmos client (should be base64 encoded)
      */
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
@@ -183,15 +183,15 @@ public class AtmosConfiguration {
         return uri;
     }
     
-    public boolean isEnableSslValidation() {
-        return enableSslValidation;
+    public boolean isSslValidation() {
+        return sslValidation;
     }
 
     /**
      * Atmos SSL validation
      */
-    public void setEnableSslValidation(boolean enableSslValidation) {
-        this.enableSslValidation = enableSslValidation;
+    public void setSslValidation(boolean sslValidation) {
+        this.sslValidation = sslValidation;
     }
     
 }
diff --git a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
index 7f1371e..c0b7a32 100644
--- a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
+++ b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
@@ -62,7 +62,6 @@ public class AtmosEndpoint extends DefaultEndpoint {
      * Create one of the camel producer available based on the configuration
      *
      * @return the camel producer
-     * @throws Exception
      */
     @Override
     public Producer createProducer() throws Exception {
@@ -86,7 +85,6 @@ public class AtmosEndpoint extends DefaultEndpoint {
      *
      * @param processor the given processor
      * @return the camel consumer
-     * @throws Exception
      */
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
diff --git a/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosComponentTest.java b/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosComponentTest.java
index 20ab324..b4eb5bc 100644
--- a/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosComponentTest.java
+++ b/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosComponentTest.java
@@ -59,7 +59,7 @@ public class AtmosComponentTest {
 
         assertEquals(FAKE_TOKEN, configuration.getFullTokenId());
         assertEquals(FAKE_SECRET, configuration.getSecretKey());
-        assertEquals(false, configuration.isEnableSslValidation());
+        assertEquals(false, configuration.isSslValidation());
         assertEquals(FAKE_URI, configuration.getUri());
     }
 
@@ -77,7 +77,7 @@ public class AtmosComponentTest {
         parameters.put("remotePath", FAKE_REMOTE_PATH);
         parameters.put("fullTokenId", FAKE_TOKEN);
         parameters.put("secretKey", FAKE_SECRET);
-        parameters.put("enableSslValidation", false);
+        parameters.put("sslValidation", false);
         parameters.put("uri", FAKE_URI);
 
         String uri = URISupport.appendParametersToURI("atmos://foo", parameters);
@@ -86,7 +86,7 @@ public class AtmosComponentTest {
 
         assertEquals(FAKE_TOKEN, configuration.getFullTokenId());
         assertEquals(FAKE_SECRET, configuration.getSecretKey());
-        assertEquals(false, configuration.isEnableSslValidation());
+        assertEquals(false, configuration.isSslValidation());
         assertEquals(FAKE_URI, configuration.getUri());
     }
 }
diff --git a/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosConsumerTest.java b/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosConsumerTest.java
index a5f4522..f3e40c5 100644
--- a/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosConsumerTest.java
+++ b/components/camel-atmos/src/test/java/org/apache/camel/component/atmos/AtmosConsumerTest.java
@@ -16,8 +16,9 @@
  */
 package org.apache.camel.component.atmos;
 
+import java.util.Base64;
+
 import org.apache.camel.Consumer;
-import org.apache.camel.EndpointInject;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.atmos.integration.consumer.AtmosScheduledPollGetConsumer;
 import org.apache.camel.test.junit4.CamelTestSupport;
@@ -26,15 +27,14 @@ import org.junit.Test;
 
 public class AtmosConsumerTest extends CamelTestSupport {
 
-    @EndpointInject("atmos:foo/get?remotePath=/path&fullTokenId=fakeToken&secretKey=fakeSecret&uri=https://fake/uri")
-    private AtmosEndpoint atmosEndpoint;
+    private String fake = Base64.getEncoder().encodeToString("fakeSecret".getBytes());
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(atmosEndpoint)
+                fromF("atmos:foo/get?remotePath=/path&fullTokenId=fakeToken&secretKey=%sSecret&uri=https://fake/uri", fake)
                     .to("mock:test");
             }
         };
@@ -42,9 +42,12 @@ public class AtmosConsumerTest extends CamelTestSupport {
 
     @Test
     public void shouldCreateGetConsumer() throws Exception {
-        Consumer consumer = atmosEndpoint.createConsumer(null);
+        AtmosEndpoint endpoint = (AtmosEndpoint) context.getEndpoints().stream().filter(e -> e instanceof AtmosEndpoint).findFirst().orElse(null);
+        assertNotNull(endpoint);
+
+        Consumer consumer = endpoint.createConsumer(null);
         Assert.assertTrue(consumer instanceof AtmosScheduledPollGetConsumer);
-        assertEquals("foo", atmosEndpoint.getConfiguration().getName());
+        assertEquals("foo", endpoint.getConfiguration().getName());
     }
 
 }
\ No newline at end of file
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/AtmosEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/AtmosEndpointBuilderFactory.java
index b57c83e..c472489 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/AtmosEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/AtmosEndpointBuilderFactory.java
@@ -42,41 +42,6 @@ public interface AtmosEndpointBuilderFactory {
             return (AdvancedAtmosEndpointConsumerBuilder) this;
         }
         /**
-         * Atmos SSL validation.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointConsumerBuilder enableSslValidation(
-                boolean enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos SSL validation.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointConsumerBuilder enableSslValidation(
-                String enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos client fullTokenId.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointConsumerBuilder fullTokenId(String fullTokenId) {
-            setProperty("fullTokenId", fullTokenId);
-            return this;
-        }
-        /**
          * Local path to put files.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -121,28 +86,6 @@ public interface AtmosEndpointBuilderFactory {
             return this;
         }
         /**
-         * Atmos shared secret.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointConsumerBuilder secretKey(String secretKey) {
-            setProperty("secretKey", secretKey);
-            return this;
-        }
-        /**
-         * Atomos server uri.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointConsumerBuilder uri(String uri) {
-            setProperty("uri", uri);
-            return this;
-        }
-        /**
          * Allows for bridging the consumer to the Camel routing Error Handler,
          * which mean any exceptions occurred while the consumer is trying to
          * pickup incoming messages, or the likes, will now be processed as a
@@ -178,6 +121,51 @@ public interface AtmosEndpointBuilderFactory {
             setProperty("bridgeErrorHandler", bridgeErrorHandler);
             return this;
         }
+        /**
+         * Atmos client fullTokenId.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointConsumerBuilder fullTokenId(String fullTokenId) {
+            setProperty("fullTokenId", fullTokenId);
+            return this;
+        }
+        /**
+         * The secret key to pass to the Atmos client (should be base64
+         * encoded).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointConsumerBuilder secretKey(String secretKey) {
+            setProperty("secretKey", secretKey);
+            return this;
+        }
+        /**
+         * Atmos SSL validation.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointConsumerBuilder sslValidation(boolean sslValidation) {
+            setProperty("sslValidation", sslValidation);
+            return this;
+        }
+        /**
+         * Atmos SSL validation.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointConsumerBuilder sslValidation(String sslValidation) {
+            setProperty("sslValidation", sslValidation);
+            return this;
+        }
     }
 
     /**
@@ -298,6 +286,17 @@ public interface AtmosEndpointBuilderFactory {
             setProperty("synchronous", synchronous);
             return this;
         }
+        /**
+         * Atomos server uri.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: advanced
+         */
+        default AdvancedAtmosEndpointConsumerBuilder uri(String uri) {
+            setProperty("uri", uri);
+            return this;
+        }
     }
 
     /**
@@ -310,41 +309,6 @@ public interface AtmosEndpointBuilderFactory {
             return (AdvancedAtmosEndpointProducerBuilder) this;
         }
         /**
-         * Atmos SSL validation.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointProducerBuilder enableSslValidation(
-                boolean enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos SSL validation.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointProducerBuilder enableSslValidation(
-                String enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos client fullTokenId.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointProducerBuilder fullTokenId(String fullTokenId) {
-            setProperty("fullTokenId", fullTokenId);
-            return this;
-        }
-        /**
          * Local path to put files.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -389,28 +353,6 @@ public interface AtmosEndpointBuilderFactory {
             return this;
         }
         /**
-         * Atmos shared secret.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointProducerBuilder secretKey(String secretKey) {
-            setProperty("secretKey", secretKey);
-            return this;
-        }
-        /**
-         * Atomos server uri.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointProducerBuilder uri(String uri) {
-            setProperty("uri", uri);
-            return this;
-        }
-        /**
          * 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
@@ -450,6 +392,51 @@ public interface AtmosEndpointBuilderFactory {
             setProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
+        /**
+         * Atmos client fullTokenId.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointProducerBuilder fullTokenId(String fullTokenId) {
+            setProperty("fullTokenId", fullTokenId);
+            return this;
+        }
+        /**
+         * The secret key to pass to the Atmos client (should be base64
+         * encoded).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointProducerBuilder secretKey(String secretKey) {
+            setProperty("secretKey", secretKey);
+            return this;
+        }
+        /**
+         * Atmos SSL validation.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointProducerBuilder sslValidation(boolean sslValidation) {
+            setProperty("sslValidation", sslValidation);
+            return this;
+        }
+        /**
+         * Atmos SSL validation.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointProducerBuilder sslValidation(String sslValidation) {
+            setProperty("sslValidation", sslValidation);
+            return this;
+        }
     }
 
     /**
@@ -513,6 +500,17 @@ public interface AtmosEndpointBuilderFactory {
             setProperty("synchronous", synchronous);
             return this;
         }
+        /**
+         * Atomos server uri.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: advanced
+         */
+        default AdvancedAtmosEndpointProducerBuilder uri(String uri) {
+            setProperty("uri", uri);
+            return this;
+        }
     }
 
     /**
@@ -525,41 +523,6 @@ public interface AtmosEndpointBuilderFactory {
             return (AdvancedAtmosEndpointBuilder) this;
         }
         /**
-         * Atmos SSL validation.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointBuilder enableSslValidation(
-                boolean enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos SSL validation.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointBuilder enableSslValidation(
-                String enableSslValidation) {
-            setProperty("enableSslValidation", enableSslValidation);
-            return this;
-        }
-        /**
-         * Atmos client fullTokenId.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default AtmosEndpointBuilder fullTokenId(String fullTokenId) {
-            setProperty("fullTokenId", fullTokenId);
-            return this;
-        }
-        /**
          * Local path to put files.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -604,25 +567,48 @@ public interface AtmosEndpointBuilderFactory {
             return this;
         }
         /**
-         * Atmos shared secret.
+         * Atmos client fullTokenId.
          * 
          * The option is a: <code>java.lang.String</code> type.
          * 
-         * Group: common
+         * Group: security
+         */
+        default AtmosEndpointBuilder fullTokenId(String fullTokenId) {
+            setProperty("fullTokenId", fullTokenId);
+            return this;
+        }
+        /**
+         * The secret key to pass to the Atmos client (should be base64
+         * encoded).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
          */
         default AtmosEndpointBuilder secretKey(String secretKey) {
             setProperty("secretKey", secretKey);
             return this;
         }
         /**
-         * Atomos server uri.
+         * Atmos SSL validation.
          * 
-         * The option is a: <code>java.lang.String</code> type.
+         * The option is a: <code>boolean</code> type.
          * 
-         * Group: common
+         * Group: security
          */
-        default AtmosEndpointBuilder uri(String uri) {
-            setProperty("uri", uri);
+        default AtmosEndpointBuilder sslValidation(boolean sslValidation) {
+            setProperty("sslValidation", sslValidation);
+            return this;
+        }
+        /**
+         * Atmos SSL validation.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: security
+         */
+        default AtmosEndpointBuilder sslValidation(String sslValidation) {
+            setProperty("sslValidation", sslValidation);
             return this;
         }
     }
@@ -686,6 +672,17 @@ public interface AtmosEndpointBuilderFactory {
             setProperty("synchronous", synchronous);
             return this;
         }
+        /**
+         * Atomos server uri.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: advanced
+         */
+        default AdvancedAtmosEndpointBuilder uri(String uri) {
+            setProperty("uri", uri);
+            return this;
+        }
     }
     /**
      * Atmos (camel-atmos)
diff --git a/platforms/spring-boot/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentConfiguration.java
index 3514a84..c6fa400 100644
--- a/platforms/spring-boot/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentConfiguration.java
@@ -41,7 +41,7 @@ public class AtmosComponentConfiguration
      */
     private String fullTokenId;
     /**
-     * The secret key to pass to the Atmos client
+     * The secret key to pass to the Atmos client (should be base64 encoded)
      */
     private String secretKey;
     /**