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/09 09:44:14 UTC

[camel] branch master updated (ee00206 -> b60bc82)

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

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


    from ee00206  Restore ability to run Spring Boot itests with unitTestEnabled=true
     new 0f3d8e6  Fixed secret in apt compiler plugin and allow to set it via @UriPath as well
     new b7810a9  CAMEL-13845: camel-telegram - Do not show authorizationToken in uri. CAMEL-13847: camel-webhook - Should be lenient properties and fixed creating delegate uri with right set of parameters.
     new b60bc82  Upgrade migration guide

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 MIGRATION.md                                       | 11 ++++++
 .../src/main/docs/telegram-component.adoc          |  8 ++--
 .../component/telegram/TelegramComponent.java      | 21 ++++++++---
 .../component/telegram/TelegramConfiguration.java  | 32 +---------------
 .../camel/component/telegram/TelegramEndpoint.java |  2 +-
 .../component/telegram/TelegramChatBotTest.java    |  4 +-
 .../telegram/TelegramComponentParametersTest.java  |  4 +-
 .../telegram/TelegramConfigurationTest.java        |  3 +-
 .../telegram/TelegramConsumerChannelPostTest.java  |  2 +-
 .../TelegramConsumerEmptyResponseTest.java         |  2 +-
 .../TelegramConsumerFallbackConversionTest.java    |  2 +-
 .../telegram/TelegramConsumerMappingTest.java      |  2 +-
 .../TelegramConsumerMediaDocumentTest.java         |  2 +-
 .../telegram/TelegramConsumerMediaPhotoTest.java   |  2 +-
 .../telegram/TelegramConsumerMediaVideoTest.java   |  2 +-
 .../telegram/TelegramConsumerMultipleTest.java     |  2 +-
 .../telegram/TelegramConsumerServiceErrorTest.java |  2 +-
 .../telegram/TelegramConsumerSingleTest.java       |  2 +-
 .../TelegramProducerChatIdResolutionTest.java      |  2 +-
 .../telegram/TelegramProducerLocationTest.java     |  2 +-
 .../telegram/TelegramProducerMediaTest.java        |  2 +-
 .../telegram/TelegramWebhookCallTest.java          |  2 +-
 .../telegram/TelegramWebhookRegistrationTest.java  |  4 +-
 .../camel/component/webhook/WebhookComponent.java  |  5 ++-
 .../camel/component/webhook/WebhookEndpoint.java   |  5 +++
 .../dsl/TelegramEndpointBuilderFactory.java        | 44 ++++++++++++++++++++--
 .../java/org/apache/camel/util/URISupport.java     |  2 +-
 .../java/org/apache/camel/util/URISupportTest.java | 12 ++++--
 examples/camel-example-telegram/README.adoc        |  4 +-
 examples/camel-example-telegram/pom.xml            |  6 ++-
 .../apache/camel/example/telegram/Application.java |  3 +-
 .../example/telegram/TelegramRouteBuilder.java     |  4 +-
 .../tools/apt/EndpointAnnotationProcessor.java     |  4 +-
 .../main/java/org/apache/camel/spi/UriPath.java    |  5 +++
 34 files changed, 130 insertions(+), 81 deletions(-)


[camel] 02/03: CAMEL-13845: camel-telegram - Do not show authorizationToken in uri. CAMEL-13847: camel-webhook - Should be lenient properties and fixed creating delegate uri with right set of parameters.

Posted by da...@apache.org.
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

commit b7810a9f19903372cb3f2975e5b55c712eeb2889
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 9 11:42:38 2019 +0200

    CAMEL-13845: camel-telegram - Do not show authorizationToken in uri. CAMEL-13847: camel-webhook - Should be lenient properties and fixed creating delegate uri with right set of parameters.
---
 .../src/main/docs/telegram-component.adoc          |  8 ++--
 .../component/telegram/TelegramComponent.java      | 19 +++++++---
 .../component/telegram/TelegramConfiguration.java  | 32 +---------------
 .../camel/component/telegram/TelegramEndpoint.java |  2 +-
 .../component/telegram/TelegramChatBotTest.java    |  4 +-
 .../telegram/TelegramComponentParametersTest.java  |  4 +-
 .../telegram/TelegramConfigurationTest.java        |  3 +-
 .../telegram/TelegramConsumerChannelPostTest.java  |  2 +-
 .../TelegramConsumerEmptyResponseTest.java         |  2 +-
 .../TelegramConsumerFallbackConversionTest.java    |  2 +-
 .../telegram/TelegramConsumerMappingTest.java      |  2 +-
 .../TelegramConsumerMediaDocumentTest.java         |  2 +-
 .../telegram/TelegramConsumerMediaPhotoTest.java   |  2 +-
 .../telegram/TelegramConsumerMediaVideoTest.java   |  2 +-
 .../telegram/TelegramConsumerMultipleTest.java     |  2 +-
 .../telegram/TelegramConsumerServiceErrorTest.java |  2 +-
 .../telegram/TelegramConsumerSingleTest.java       |  2 +-
 .../TelegramProducerChatIdResolutionTest.java      |  2 +-
 .../telegram/TelegramProducerLocationTest.java     |  2 +-
 .../telegram/TelegramProducerMediaTest.java        |  2 +-
 .../telegram/TelegramWebhookCallTest.java          |  2 +-
 .../telegram/TelegramWebhookRegistrationTest.java  |  4 +-
 .../camel/component/webhook/WebhookComponent.java  |  5 ++-
 .../camel/component/webhook/WebhookEndpoint.java   |  5 +++
 .../dsl/TelegramEndpointBuilderFactory.java        | 44 ++++++++++++++++++++--
 .../java/org/apache/camel/util/URISupport.java     |  2 +-
 .../java/org/apache/camel/util/URISupportTest.java | 12 ++++--
 examples/camel-example-telegram/README.adoc        |  4 +-
 examples/camel-example-telegram/pom.xml            |  6 ++-
 .../apache/camel/example/telegram/Application.java |  3 +-
 .../example/telegram/TelegramRouteBuilder.java     |  4 +-
 31 files changed, 111 insertions(+), 78 deletions(-)

diff --git a/components/camel-telegram/src/main/docs/telegram-component.adoc b/components/camel-telegram/src/main/docs/telegram-component.adoc
index ca5c81c..a373813 100644
--- a/components/camel-telegram/src/main/docs/telegram-component.adoc
+++ b/components/camel-telegram/src/main/docs/telegram-component.adoc
@@ -63,23 +63,22 @@ The Telegram component supports 3 options, which are listed below.
 The Telegram endpoint is configured using URI syntax:
 
 ----
-telegram:type/authorizationToken
+telegram:type
 ----
 
 with the following path and query parameters:
 
-=== Path Parameters (2 parameters):
+=== Path Parameters (1 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *type* | *Required* The endpoint type. Currently, only the 'bots' type is supported. |  | String
-| *authorizationToken* | *Required* The authorization token for using the bot (ask the BotFather) |  | String
 |===
 
 
-=== Query Parameters (26 parameters):
+=== Query Parameters (27 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -111,6 +110,7 @@ with the following path and query parameters:
 | *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
 | *proxyHost* (proxy) | HTTP proxy host which could be used when sending out the message. |  | String
 | *proxyPort* (proxy) | HTTP proxy port which could be used when sending out the message. |  | Integer
+| *authorizationToken* (security) | *Required* The authorization token for using the bot (ask the BotFather) |  | String
 |===
 // endpoint options: END
 // spring-boot-auto-configure options: START
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
index 7ef7232..1242b69 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
@@ -24,9 +24,6 @@ import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.util.ObjectHelper;
 
-/**
- * The Camel component for Telegram.
- */
 @Component("telegram")
 public class TelegramComponent extends DefaultComponent {
 
@@ -39,9 +36,21 @@ public class TelegramComponent extends DefaultComponent {
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         TelegramConfiguration configuration = new TelegramConfiguration();
+
+        // ignore trailing slash
+        if (remaining.endsWith("/")) {
+            remaining = remaining.substring(0, remaining.length() - 1);
+        }
+
+        configuration.setType(remaining);
+
         setProperties(configuration, parameters);
-        if (ObjectHelper.isNotEmpty(remaining)) {
-            configuration.updatePathConfig(remaining, this.getAuthorizationToken());
+        if (configuration.getAuthorizationToken() == null) {
+            configuration.setAuthorizationToken(authorizationToken);
+        }
+
+        if (configuration.getAuthorizationToken() == null) {
+            throw new IllegalArgumentException("AuthorizationToken must be configured on either component or endpoint for telegram: " + uri);
         }
 
         if (TelegramConfiguration.ENDPOINT_TYPE_BOTS.equals(configuration.getType())) {
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
index bc34976..4e07e64 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
@@ -33,7 +33,7 @@ public class TelegramConfiguration {
     @Metadata(required = true)
     private String type;
 
-    @UriPath(description = "The authorization token for using the bot (ask the BotFather)", label = "security", secret = true)
+    @UriParam(description = "The authorization token for using the bot (ask the BotFather)", label = "security", secret = true)
     @Metadata(required = true)
     private String authorizationToken;
 
@@ -59,36 +59,6 @@ public class TelegramConfiguration {
     public TelegramConfiguration() {
     }
 
-    /**
-     * Sets the remaining configuration parameters available in the URI.
-     *
-     * @param remaining the URI part after the scheme
-     * @param defaultAuthorizationToken the default authorization token to use if not present in the URI
-     */
-    public void updatePathConfig(String remaining, String defaultAuthorizationToken) {
-        String[] parts = remaining.split("/");
-        if (parts.length == 0 || parts.length > 2) {
-            throw new IllegalArgumentException("Unexpected URI format. Expected 'bots' or 'bots/<authorizationToken>', found '" + remaining + "'");
-        }
-
-        String type = parts[0];
-        if (!type.equals(ENDPOINT_TYPE_BOTS)) {
-            throw new IllegalArgumentException("Unexpected endpoint type. Expected 'bots', found '" + type + "'");
-        }
-
-        String authorizationToken = defaultAuthorizationToken;
-        if (parts.length > 1) {
-            authorizationToken = parts[1];
-        }
-
-        if (authorizationToken == null || authorizationToken.trim().length() == 0) {
-            throw new IllegalArgumentException("The authorization token must be provided and cannot be empty");
-        }
-
-        this.type = type;
-        this.authorizationToken = authorizationToken;
-    }
-
     public String getType() {
         return type;
     }
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
index e3e662c..4396f6e 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
@@ -39,7 +39,7 @@ import static org.apache.camel.component.telegram.util.TelegramMessageHelper.pop
 /**
  * The telegram component provides access to the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.
  */
-@UriEndpoint(firstVersion = "2.18.0", scheme = "telegram", title = "Telegram", syntax = "telegram:type/authorizationToken", label = "chat")
+@UriEndpoint(firstVersion = "2.18.0", scheme = "telegram", title = "Telegram", syntax = "telegram:type", label = "chat")
 public class TelegramEndpoint extends ScheduledPollEndpoint implements WebhookCapableEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(TelegramEndpoint.class);
 
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
index 0f46a13..fc97188 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
@@ -105,10 +105,10 @@ public class TelegramChatBotTest extends TelegramTestSupport {
             @Override
             public void configure() throws Exception {
 
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .bean(TelegramChatBotTest.this, "chatBotProcess1")
                         .bean(TelegramChatBotTest.this, "chatBotProcess2")
-                        .to("telegram:bots/mock-token");
+                        .to("telegram:bots?authorizationToken=mock-token");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
index 745bf49..a26e071 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
@@ -31,10 +31,10 @@ public class TelegramComponentParametersTest extends TelegramTestSupport {
         TelegramEndpoint ep1 = (TelegramEndpoint) component.createEndpoint("telegram:bots");
         assertEquals("DEFAULT", ep1.getConfiguration().getAuthorizationToken());
 
-        TelegramEndpoint ep2 = (TelegramEndpoint) component.createEndpoint("telegram:bots/CUSTOM");
+        TelegramEndpoint ep2 = (TelegramEndpoint) component.createEndpoint("telegram:bots?authorizationToken=CUSTOM");
         assertEquals("CUSTOM", ep2.getConfiguration().getAuthorizationToken());
 
-        TelegramEndpoint ep3 = (TelegramEndpoint) component.createEndpoint("telegram:bots/ANOTHER?chatId=123");
+        TelegramEndpoint ep3 = (TelegramEndpoint) component.createEndpoint("telegram:bots?authorizationToken=ANOTHER&chatId=123");
         assertEquals("ANOTHER", ep3.getConfiguration().getAuthorizationToken());
     }
 
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
index 31925e4..8051eda 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
  */
 public class TelegramConfigurationTest extends TelegramTestSupport {
 
-
     @Test
     public void testChatBotResult() throws Exception {
         TelegramEndpoint endpoint = (TelegramEndpoint) context().getEndpoints().stream().filter(e -> e instanceof TelegramEndpoint).findAny().get();
@@ -50,7 +49,7 @@ public class TelegramConfigurationTest extends TelegramTestSupport {
             public void configure() throws Exception {
 
                 from("direct:telegram")
-                        .to("telegram:bots/mock-token?chatId=12345&delay=2000&timeout=10&limit=60&proxyHost=127.0.0.1&proxyPort=1234");
+                        .to("telegram:bots/?authorizationToken=mock-token&chatId=12345&delay=2000&timeout=10&limit=60&proxyHost=127.0.0.1&proxyPort=1234");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
index d544ca7..32e0928 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
@@ -84,7 +84,7 @@ public class TelegramConsumerChannelPostTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .to("mock:telegram");
             }
         };
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
index a7bd949..6aeeab7 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
@@ -58,7 +58,7 @@ public class TelegramConsumerEmptyResponseTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token").to("mock:telegram");
+                from("telegram:bots?authorizationToken=mock-token").to("mock:telegram");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
index 8401b3e..1efe3bf 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
@@ -66,7 +66,7 @@ public class TelegramConsumerFallbackConversionTest extends TelegramTestSupport
             @Override
             public void configure() throws Exception {
                 from("direct:message")
-                        .to("telegram:bots/mock-token?chatId=1234");
+                        .to("telegram:bots?authorizationToken=mock-token&chatId=1234");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
index 8df8568..611bcac 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
@@ -122,7 +122,7 @@ public class TelegramConsumerMappingTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token").to("mock:telegram");
+                from("telegram:bots?authorizationToken=mock-token").to("mock:telegram");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
index 6c9cc5f..0efcdf3 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
@@ -79,7 +79,7 @@ public class TelegramConsumerMediaDocumentTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .to("mock:telegram");
             }
         };
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
index f124290..c1b678f 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
@@ -69,7 +69,7 @@ public class TelegramConsumerMediaPhotoTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .to("mock:telegram");
             }
         };
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
index 5e1b02a..a904eef 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
@@ -80,7 +80,7 @@ public class TelegramConsumerMediaVideoTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .to("mock:telegram");
             }
         };
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
index 98f8765..e694397 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
@@ -65,7 +65,7 @@ public class TelegramConsumerMultipleTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .convertBodyTo(String.class)
                         .to("mock:telegram");
             }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
index 8df6bf0..f6aa98d 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
@@ -68,7 +68,7 @@ public class TelegramConsumerServiceErrorTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .convertBodyTo(String.class)
                         .to("mock:telegram");
             }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
index c85378a..16ddb62 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
@@ -63,7 +63,7 @@ public class TelegramConsumerSingleTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("telegram:bots/mock-token")
+                from("telegram:bots?authorizationToken=mock-token")
                         .convertBodyTo(String.class)
                         .to("mock:telegram");
             }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
index af99e43..cec6081 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
@@ -77,7 +77,7 @@ public class TelegramProducerChatIdResolutionTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+                from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
index 3dc6cbc..7ae0fb4 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
@@ -110,7 +110,7 @@ public class TelegramProducerLocationTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+                from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
index 413784f..873b56b 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
@@ -240,7 +240,7 @@ public class TelegramProducerMediaTest extends TelegramTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+                from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
             }
         };
     }
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
index 738ff31..6c77784 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
@@ -64,7 +64,7 @@ public class TelegramWebhookCallTest extends TelegramTestSupport {
                         .host("localhost")
                         .port(port);
 
-                from("webhook:telegram:bots/mock-token?webhookAutoRegister=false")
+                from("webhook:telegram:bots?authorizationToken=mock-token&webhookAutoRegister=false")
                         .id("webhook")
                         .convertBodyTo(String.class)
                         .to("mock:endpoint");
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
index 026fad1..168d252 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
@@ -40,7 +40,7 @@ public class TelegramWebhookRegistrationTest extends TelegramTestSupport {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("webhook:telegram:bots/mock-token").to("mock:endpoint");
+                from("webhook:telegram:bots?authorizationToken=mock-token").to("mock:endpoint");
             }
         });
         context().start();
@@ -55,7 +55,7 @@ public class TelegramWebhookRegistrationTest extends TelegramTestSupport {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("webhook:telegram:bots/mock-token?webhookAutoRegister=false").to("mock:endpoint");
+                from("webhook:telegram:bots?authorizationToken=mock-token&webhookAutoRegister=false").to("mock:endpoint");
             }
         });
         context().start();
diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
index 845011c..681fef4 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
@@ -24,6 +24,7 @@ import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
 
 /**
  * A Camel meta-component for exposing other components through webhooks.
@@ -51,8 +52,8 @@ public class WebhookComponent extends DefaultComponent {
         configuration.setRestConfiguration(restConfig);
 
         // we need to apply the params here
-        if (parameters != null && parameters.size() > 0) {
-            delegateUri = delegateUri + "?" + uri.substring(uri.indexOf('?') + 1);
+        if (parameters != null && !parameters.isEmpty()) {
+            delegateUri = delegateUri + "?" + URISupport.createQueryString(parameters);
         }
         configuration.setEndpointUri(delegateUri);
 
diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
index a1c0f63..a8fa0c0 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
@@ -97,4 +97,9 @@ public class WebhookEndpoint extends DefaultEndpoint implements DelegateEndpoint
     public WebhookCapableEndpoint getEndpoint() {
         return delegateEndpoint;
     }
+
+    @Override
+    public boolean isLenientProperties() {
+        return true;
+    }
 }
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
index f04090b..698399d 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
@@ -545,6 +545,19 @@ public interface TelegramEndpointBuilderFactory {
             setProperty("proxyPort", proxyPort);
             return this;
         }
+        /**
+         * The authorization token for using the bot (ask the BotFather).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Required: true
+         * Group: security
+         */
+        default TelegramEndpointConsumerBuilder authorizationToken(
+                String authorizationToken) {
+            setProperty("authorizationToken", authorizationToken);
+            return this;
+        }
     }
 
     /**
@@ -798,6 +811,19 @@ public interface TelegramEndpointBuilderFactory {
             setProperty("proxyPort", proxyPort);
             return this;
         }
+        /**
+         * The authorization token for using the bot (ask the BotFather).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Required: true
+         * Group: security
+         */
+        default TelegramEndpointProducerBuilder authorizationToken(
+                String authorizationToken) {
+            setProperty("authorizationToken", authorizationToken);
+            return this;
+        }
     }
 
     /**
@@ -906,6 +932,19 @@ public interface TelegramEndpointBuilderFactory {
             setProperty("proxyPort", proxyPort);
             return this;
         }
+        /**
+         * The authorization token for using the bot (ask the BotFather).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Required: true
+         * Group: security
+         */
+        default TelegramEndpointBuilder authorizationToken(
+                String authorizationToken) {
+            setProperty("authorizationToken", authorizationToken);
+            return this;
+        }
     }
 
     /**
@@ -976,14 +1015,11 @@ public interface TelegramEndpointBuilderFactory {
      * Available as of version: 2.18
      * Maven coordinates: org.apache.camel:camel-telegram
      * 
-     * Syntax: <code>telegram:type/authorizationToken</code>
+     * Syntax: <code>telegram:type</code>
      * 
      * Path parameter: type (required)
      * The endpoint type. Currently, only the 'bots' type is supported.
      * The value can be one of: bots
-     * 
-     * Path parameter: authorizationToken (required)
-     * The authorization token for using the bot (ask the BotFather)
      */
     default TelegramEndpointBuilder telegram(String path) {
         class TelegramEndpointBuilderImpl extends AbstractEndpointBuilder implements TelegramEndpointBuilder, AdvancedTelegramEndpointBuilder {
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
index a3c8f0c..b3dcc2b 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
@@ -39,7 +39,7 @@ public final class URISupport {
     // Match any key-value pair in the URI query string whose key contains
     // "passphrase" or "password" or secret key (case-insensitive).
     // First capture group is the key, second is the value.
-    private static final Pattern SECRETS = Pattern.compile("([?&][^=]*(?:passphrase|password|secretKey|accessToken|clientSecret)[^=]*)=(RAW[({].*[)}]|[^&]*)", Pattern.CASE_INSENSITIVE);
+    private static final Pattern SECRETS = Pattern.compile("([?&][^=]*(?:passphrase|password|secretKey|accessToken|clientSecret|authorizationToken)[^=]*)=(RAW[({].*[)}]|[^&]*)", Pattern.CASE_INSENSITIVE);
 
     // Match the user password in the URI as second capture group
     // (applies to URI with authority component and userinfo token in the form
diff --git a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
index 69340e1..ca23e2b 100644
--- a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
+++ b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
@@ -138,7 +138,7 @@ public class URISupportTest {
     }
 
     @Test
-    public void testParseParametersURLEncodeddValue() throws Exception {
+    public void testParseParametersURLEncodedValue() throws Exception {
         String out = URISupport.normalizeUri("http://www.google.com?q=S%C3%B8ren+Hansen");
         URI uri = new URI(out);
 
@@ -149,13 +149,13 @@ public class URISupportTest {
     }
 
     @Test
-    public void testNormalizeUriWhereParamererIsFaulty() throws Exception {
+    public void testNormalizeUriWhereParameterIsFaulty() throws Exception {
         String out = URISupport.normalizeUri("stream:uri?file:///d:/temp/data/log/quickfix.log&scanStream=true");
         assertNotNull(out);
     }
 
     @Test
-    public void testCreateRemaingURI() throws Exception {
+    public void testCreateRemainingURI() throws Exception {
         URI original = new URI("http://camel.apache.org");
         Map<String, Object> param = new HashMap<>();
         param.put("foo", "123");
@@ -246,6 +246,12 @@ public class URISupportTest {
     }
 
     @Test
+    public void testSanitizeAuthorizationToken() throws Exception {
+        String out1 = URISupport.sanitizeUri("telegram:bots?authorizationToken=1234567890:AABBCOhEaqprrk6qqQtsSPFYS3Njgv2ljW2");
+        assertEquals("telegram:bots?authorizationToken=xxxxxx", out1);
+    }
+
+    @Test
     public void testSanitizeUriWithUserInfo() {
         String uri = "jt400://GEORGE:HARRISON@LIVERPOOL/QSYS.LIB/BEATLES.LIB/PENNYLANE.DTAQ";
         String expected = "jt400://GEORGE:xxxxxx@LIVERPOOL/QSYS.LIB/BEATLES.LIB/PENNYLANE.DTAQ";
diff --git a/examples/camel-example-telegram/README.adoc b/examples/camel-example-telegram/README.adoc
index 9f7fd23..e4b4734 100644
--- a/examples/camel-example-telegram/README.adoc
+++ b/examples/camel-example-telegram/README.adoc
@@ -1,8 +1,8 @@
-# Telegram API Example
+= Telegram API Example
 
 This example shows how to use Telegram API.
 
-= How to run
+== How to run
 
 You can run this example using
 
diff --git a/examples/camel-example-telegram/pom.xml b/examples/camel-example-telegram/pom.xml
index 4b02b39..41abfc0 100644
--- a/examples/camel-example-telegram/pom.xml
+++ b/examples/camel-example-telegram/pom.xml
@@ -45,9 +45,13 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management-impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-telegram</artifactId>
-            <version>${camel.version}</version>
         </dependency>
+
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
diff --git a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
index cca64c4..ad82017 100644
--- a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
+++ b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
@@ -42,12 +42,13 @@ public final class Application {
     }
 
     private Application() {
-
+        // noop
     }
 
     public static void main(String[] args) throws Exception {
         CamelContext context = new DefaultCamelContext();
         context.start();
+
         context.addRoutes(new TelegramRouteBuilder());
         context.addStartupListener(new TelegramExamplesRunner());
     }
diff --git a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
index 350f226..2916a7d 100644
--- a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
+++ b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
@@ -19,8 +19,10 @@ package org.apache.camel.example.telegram;
 import org.apache.camel.builder.RouteBuilder;
 
 public class TelegramRouteBuilder extends RouteBuilder {
+
     @Override
     public void configure() {
-        from("direct:start").to("telegram:bots/" + Application.AUTHORIZATION_TOKEN + "?chatId=" + Application.CHAT_ID);
+        from("direct:start")
+                .toF("telegram:bots/?authorizationToken=%s&chatId=%s", Application.AUTHORIZATION_TOKEN, Application.CHAT_ID);
     }
 }


[camel] 03/03: Upgrade migration guide

Posted by da...@apache.org.
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

commit b60bc8251bfe502534842732bb43a173265b820a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 9 11:43:54 2019 +0200

    Upgrade migration guide
---
 MIGRATION.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/MIGRATION.md b/MIGRATION.md
index 94cbd57..c70a538 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -239,6 +239,17 @@ The component `camel-aws` has been split into multiple components:
 
 So you'll have to add explicitly the dependencies for these components. From the OSGi perspective, there is still a `camel-aws` Karaf feature, which includes all the components features.
 
+### Telegram
+
+The `camel-telegram` component has moved the authorization token from uri-path to a query parameter instead, eg migrate
+
+    telegram:bots/myTokenHere 
+
+to
+
+    telegram:bots?authorizationToken=myTokenHere
+        
+
 ### JMX
 
 If you run Camel standalone with just `camel-core` as a dependency, and you want JMX enabled out of the box, then you need to add `camel-management-impl` as a dependency.


[camel] 01/03: Fixed secret in apt compiler plugin and allow to set it via @UriPath as well

Posted by da...@apache.org.
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

commit 0f3d8e6b7d7b8577bbda9fe65a4bcf5e7d44d45f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 9 11:07:43 2019 +0200

    Fixed secret in apt compiler plugin and allow to set it via @UriPath as well
---
 .../java/org/apache/camel/component/telegram/TelegramComponent.java  | 2 +-
 .../org/apache/camel/component/telegram/TelegramConfiguration.java   | 2 +-
 .../java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java | 4 ++--
 .../spi-annotations/src/main/java/org/apache/camel/spi/UriPath.java  | 5 +++++
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
index 398df40..7ef7232 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
@@ -30,7 +30,7 @@ import org.apache.camel.util.ObjectHelper;
 @Component("telegram")
 public class TelegramComponent extends DefaultComponent {
 
-    @Metadata(label = "security")
+    @Metadata(label = "security", secret = true)
     private String authorizationToken;
 
     public TelegramComponent() {
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
index acfa728..bc34976 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
@@ -33,7 +33,7 @@ public class TelegramConfiguration {
     @Metadata(required = true)
     private String type;
 
-    @UriPath(description = "The authorization token for using the bot (ask the BotFather)", label = "security")
+    @UriPath(description = "The authorization token for using the bot (ask the BotFather)", label = "security", secret = true)
     @Metadata(required = true)
     private String authorizationToken;
 
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index bbad5b7..262cbef 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -697,8 +697,8 @@ public class EndpointAnnotationProcessor extends AbstractCamelAnnotationProcesso
                         fieldTypeName = path.javaType();
                     }
 
+                    boolean isSecret = secret != null && secret || path.secret();
                     String group = EndpointHelper.labelAsGroupName(label, componentModel.isConsumerOnly(), componentModel.isProducerOnly());
-                    boolean isSecret = secret != null ? secret : false;
                     EndpointPath ep = new EndpointPath(name, displayName, fieldTypeName, required, defaultValue, docComment, deprecated, deprecationNote,
                         isSecret, group, label, isEnum, enums);
                     endpointPaths.add(ep);
@@ -792,7 +792,7 @@ public class EndpointAnnotationProcessor extends AbstractCamelAnnotationProcesso
                             fieldTypeName = param.javaType();
                         }
 
-                        boolean isSecret = secret != null ? secret : param.secret();
+                        boolean isSecret = secret != null && secret || param.secret();
                         String group = EndpointHelper.labelAsGroupName(label, componentModel.isConsumerOnly(), componentModel.isProducerOnly());
                         EndpointOption option = new EndpointOption(name, displayName, fieldTypeName, required, defaultValue, defaultValueNote,
                                 docComment.trim(), paramOptionalPrefix, paramPrefix, multiValue, deprecated, deprecationNote, isSecret, group, label, isEnum, enums);
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriPath.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriPath.java
index 24e2953..2bcdfc9 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriPath.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriPath.java
@@ -87,6 +87,11 @@ public @interface UriPath {
     String label() default "";
 
     /**
+     * Whether the option is secret/sensitive information such as a password.
+     */
+    boolean secret() default false;
+
+    /**
      * To re-associate the preferred Java type of this parameter.
      * <p/>
      * This is used for parameters which are of a specialized type but can be configured by another Java type, such as from a String.