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 2023/05/24 12:59:26 UTC

[camel] branch main updated (513c41cc980 -> 86efe9b6d4c)

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

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


    from 513c41cc980 Regen for commit aef3b6b990477e826e42938657fa0be181939dcd
     new 8d92c3ba968 CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack
     new 86efe9b6d4c CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack

The 2 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:
 .../org/apache/camel/catalog/components/slack.json    |  2 +-
 .../component/slack/SlackEndpointConfigurer.java      |  2 +-
 .../org/apache/camel/component/slack/slack.json       |  2 +-
 .../apache/camel/component/slack/SlackConsumer.java   |  2 ++
 .../apache/camel/component/slack/SlackEndpoint.java   | 19 +++++++++++++++++++
 .../modules/ROOT/pages/camel-4-migration-guide.adoc   |  4 ++++
 .../endpoint/dsl/SlackEndpointBuilderFactory.java     |  4 ++--
 7 files changed, 30 insertions(+), 5 deletions(-)


[camel] 01/02: CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack

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

commit 8d92c3ba96835642d9bc7c4391e6a7f21d8c82eb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed May 24 14:57:54 2023 +0200

    CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack
---
 .../org/apache/camel/catalog/components/slack.json    |  2 +-
 .../component/slack/SlackEndpointConfigurer.java      |  2 +-
 .../org/apache/camel/component/slack/slack.json       |  2 +-
 .../apache/camel/component/slack/SlackConsumer.java   |  2 ++
 .../apache/camel/component/slack/SlackEndpoint.java   | 19 +++++++++++++++++++
 .../endpoint/dsl/SlackEndpointBuilderFactory.java     |  4 ++--
 6 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/slack.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/slack.json
index 60f0e77af67..f7df2053c1c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/slack.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/slack.json
@@ -48,7 +48,7 @@
     "backoffErrorThreshold": { "index": 16, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
     "backoffIdleThreshold": { "index": 17, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
     "backoffMultiplier": { "index": 18, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...]
-    "delay": { "index": 19, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "delay": { "index": 19, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "description": "Milliseconds before the next poll." },
     "greedy": { "index": 20, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
     "initialDelay": { "index": 21, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
     "repeatCount": { "index": 22, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
diff --git a/components/camel-slack/src/generated/java/org/apache/camel/component/slack/SlackEndpointConfigurer.java b/components/camel-slack/src/generated/java/org/apache/camel/component/slack/SlackEndpointConfigurer.java
index 64b78d4527b..f3b7bfb111c 100644
--- a/components/camel-slack/src/generated/java/org/apache/camel/component/slack/SlackEndpointConfigurer.java
+++ b/components/camel-slack/src/generated/java/org/apache/camel/component/slack/SlackEndpointConfigurer.java
@@ -31,7 +31,7 @@ public class SlackEndpointConfigurer extends PropertyConfigurerSupport implement
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "conversationtype":
         case "conversationType": target.setConversationType(property(camelContext, com.slack.api.model.ConversationType.class, value)); return true;
-        case "delay": target.setDelay(property(camelContext, long.class, value)); return true;
+        case "delay": target.setDelay(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         case "exceptionhandler":
         case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
         case "exchangepattern":
diff --git a/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json b/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json
index 60f0e77af67..f7df2053c1c 100644
--- a/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json
+++ b/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json
@@ -48,7 +48,7 @@
     "backoffErrorThreshold": { "index": 16, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
     "backoffIdleThreshold": { "index": 17, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
     "backoffMultiplier": { "index": 18, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...]
-    "delay": { "index": 19, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "delay": { "index": 19, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "description": "Milliseconds before the next poll." },
     "greedy": { "index": 20, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
     "initialDelay": { "index": 21, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
     "repeatCount": { "index": 22, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackConsumer.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackConsumer.java
index f0b860d3873..fdac796fda8 100644
--- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackConsumer.java
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackConsumer.java
@@ -41,6 +41,8 @@ import org.apache.camel.util.ObjectHelper;
 
 public class SlackConsumer extends ScheduledBatchPollingConsumer {
 
+    public static final long DEFAULT_CONSUMER_DELAY = 10 * 1000L;
+
     private static final int CONVERSATIONS_LIST_LIMIT = 200;
     private final SlackEndpoint slackEndpoint;
     private Slack slack;
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
index b86ab50605e..ac1076f8f0c 100644
--- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
@@ -36,6 +36,11 @@ import org.apache.camel.util.ObjectHelper;
              category = { Category.SOCIAL })
 public class SlackEndpoint extends ScheduledPollEndpoint {
 
+    @UriParam(defaultValue = "" + SlackConsumer.DEFAULT_CONSUMER_DELAY, javaType = "java.time.Duration",
+              label = "consumer,scheduler",
+              description = "Milliseconds before the next poll.")
+    private long delay = SlackConsumer.DEFAULT_CONSUMER_DELAY;
+
     @UriPath
     @Metadata(required = true)
     private String channel;
@@ -75,6 +80,10 @@ public class SlackEndpoint extends ScheduledPollEndpoint {
         this.webhookUrl = component.getWebhookUrl();
         this.token = component.getToken();
         this.channel = channelName;
+
+        // ScheduledPollConsumer default delay is 500 millis and that is too often for polling slack,
+        // so we override with a new default value. End user can override this value by providing a delay parameter
+        setDelay(SlackConsumer.DEFAULT_CONSUMER_DELAY);
     }
 
     @Override
@@ -211,4 +220,14 @@ public class SlackEndpoint extends ScheduledPollEndpoint {
     public ConversationType getConversationType() {
         return conversationType;
     }
+
+    /**
+     * Milliseconds before the next poll.
+     */
+    @Override
+    public void setDelay(long delay) {
+        super.setDelay(delay);
+        this.delay = delay;
+    }
+
 }
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SlackEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SlackEndpointBuilderFactory.java
index 83ef6f689e7..b2b04717adf 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SlackEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SlackEndpointBuilderFactory.java
@@ -300,7 +300,7 @@ public interface SlackEndpointBuilderFactory {
          * 
          * The option is a: &lt;code&gt;long&lt;/code&gt; type.
          * 
-         * Default: 500
+         * Default: 10000
          * Group: scheduler
          * 
          * @param delay the value to set
@@ -315,7 +315,7 @@ public interface SlackEndpointBuilderFactory {
          * 
          * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
          * 
-         * Default: 500
+         * Default: 10000
          * Group: scheduler
          * 
          * @param delay the value to set


[camel] 02/02: CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack

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

commit 86efe9b6d4c2ecb964ee4845f9da9112877f13c4
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed May 24 14:59:12 2023 +0200

    CAMEL-18177: camel-slack - Changed default delay from 0.5s to 10s to avoid rate limited by slack
---
 docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
index 83e8aba6e3b..20a4d17d57c 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
@@ -323,6 +323,10 @@ Solver Daemon solutions should be migrated to use SolverManager.
 
 If the route or consumer is suspended then http status 503 is now returned instead of 404.
 
+=== camel-slack
+
+The default delay (on slack consumer) is changed from 0.5s to 10s to avoid being rate limited to often by Slack.
+
 
 == Camel Spring Boot