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

quinn pushed a commit to branch camel-2.20.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-2.20.x by this push:
     new 7ff38a2  CAMEL-12360: Added retryAttemptedLogInterval to 
RedeliveryPolicy
7ff38a2 is described below

commit 7ff38a225a2de0f3b87ac5cbcfaab0a5648b3378
Author: Quinn Stevenson <qu...@apache.org>
AuthorDate: Tue May 29 12:58:52 2018 -0600

    CAMEL-12360: Added retryAttemptedLogInterval to RedeliveryPolicy
---
 .../camel/builder/DefaultErrorHandlerBuilder.java  | 10 +++++++++
 .../camel/model/RedeliveryPolicyDefinition.java    | 24 ++++++++++++++++++++++
 .../camel/processor/RedeliveryErrorHandler.java    | 12 +++++++++++
 .../apache/camel/processor/RedeliveryPolicy.java   | 22 ++++++++++++++++++++
 .../AbstractCamelRedeliveryPolicyFactoryBean.java  | 14 +++++++++++++
 5 files changed, 82 insertions(+)

diff --git 
a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
 
b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
index 58cd118..97ef0b9 100644
--- 
a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
+++ 
b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
@@ -185,6 +185,11 @@ public class DefaultErrorHandlerBuilder extends 
ErrorHandlerBuilderSupport {
         return this;
     }
 
+    public DefaultErrorHandlerBuilder retryAttemptedLogInterval(int 
retryAttemptedLogInterval) {
+        
getRedeliveryPolicy().setRetryAttemptedLogInterval(retryAttemptedLogInterval);
+        return this;
+    }
+
     public DefaultErrorHandlerBuilder logStackTrace(boolean logStackTrace) {
         getRedeliveryPolicy().setLogStackTrace(logStackTrace);
         return this;
@@ -210,6 +215,11 @@ public class DefaultErrorHandlerBuilder extends 
ErrorHandlerBuilderSupport {
         return this;
     }
 
+    public DefaultErrorHandlerBuilder logRetryAttempted(boolean 
logRetryAttempted) {
+        getRedeliveryPolicy().setLogRetryAttempted(logRetryAttempted);
+        return this;
+    }
+
     public DefaultErrorHandlerBuilder logExhaustedMessageHistory(boolean 
logExhaustedMessageHistory) {
         
getRedeliveryPolicy().setLogExhaustedMessageHistory(logExhaustedMessageHistory);
         return this;
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
index cfba6e9..11a2966 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
@@ -58,6 +58,8 @@ public class RedeliveryPolicyDefinition {
     @XmlAttribute
     private LoggingLevel retryAttemptedLogLevel;
     @XmlAttribute
+    private String retryAttemptedLogInterval;
+    @XmlAttribute
     private String logRetryAttempted;
     @XmlAttribute
     private String logStackTrace;
@@ -113,6 +115,9 @@ public class RedeliveryPolicyDefinition {
             if (retryAttemptedLogLevel != null) {
                 answer.setRetryAttemptedLogLevel(retryAttemptedLogLevel);
             }
+            if (retryAttemptedLogInterval != null) {
+                
answer.setRetryAttemptedLogInterval(CamelContextHelper.parseInteger(context, 
retryAttemptedLogInterval));
+            }
             if (backOffMultiplier != null) {
                 
answer.setBackOffMultiplier(CamelContextHelper.parseDouble(context, 
backOffMultiplier));
             }
@@ -313,6 +318,17 @@ public class RedeliveryPolicyDefinition {
     }
 
     /**
+     * Sets the interval to use for logging retry attempts
+     *
+     * @param retryAttemptedLogInterval  the retry logging interval
+     * @return the builder
+     */
+    public RedeliveryPolicyDefinition retryAttemptedLogInterval(String 
retryAttemptedLogInterval) {
+        setRetryAttemptedLogInterval(retryAttemptedLogInterval);
+        return this;
+    }
+
+    /**
      * Sets whether stack traces should be logged.
      * Can be used to include or reduce verbose.
      *
@@ -714,6 +730,14 @@ public class RedeliveryPolicyDefinition {
         this.retryAttemptedLogLevel = retryAttemptedLogLevel;
     }
 
+    public String getRetryAttemptedLogInterval() {
+        return retryAttemptedLogInterval;
+    }
+
+    public void setRetryAttemptedLogInterval(String retryAttemptedLogInterval) 
{
+        this.retryAttemptedLogInterval = retryAttemptedLogInterval;
+    }
+
     public String getLogRetryAttempted() {
         return logRetryAttempted;
     }
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
 
b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index 65fec63..29e95f8 100644
--- 
a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ 
b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -1219,6 +1219,18 @@ public abstract class RedeliveryErrorHandler extends 
ErrorHandlerSupport impleme
                 return;
             }
 
+            if (!newException && shouldRedeliver) {
+                if (data.currentRedeliveryPolicy.isLogRetryAttempted()) {
+                    if 
((data.currentRedeliveryPolicy.getRetryAttemptedLogInterval() > 1) && 
(data.redeliveryCounter % 
data.currentRedeliveryPolicy.getRetryAttemptedLogInterval()) != 0) {
+                        // do not log retry attempt because it is excluded by 
the retryAttemptedLogInterval
+                        return;
+                    }
+                } else {
+                    // do not log retry attempts
+                    return;
+                }
+            }
+
             if (!newException && !shouldRedeliver && 
!data.currentRedeliveryPolicy.isLogExhausted()) {
                 // do not log exhausted
                 return;
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java 
b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
index 8b835f2..c6cd928 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
@@ -44,6 +44,7 @@ import org.slf4j.LoggerFactory;
  *   <li>useCollisionAvoidance = false</li>
  *   <li>retriesExhaustedLogLevel = LoggingLevel.ERROR</li>
  *   <li>retryAttemptedLogLevel = LoggingLevel.DEBUG</li>
+ *   <li>retryAttemptedLogInterval = 1</li>
  *   <li>logRetryAttempted = true</li>
  *   <li>logRetryStackTrace = false</li>
  *   <li>logStackTrace = true</li>
@@ -91,6 +92,7 @@ public class RedeliveryPolicy implements Cloneable, 
Serializable {
     protected boolean useCollisionAvoidance;
     protected LoggingLevel retriesExhaustedLogLevel = LoggingLevel.ERROR;
     protected LoggingLevel retryAttemptedLogLevel = LoggingLevel.DEBUG;
+    protected int retryAttemptedLogInterval = 1;
     protected boolean logStackTrace = true;
     protected boolean logRetryStackTrace;
     protected boolean logHandled;
@@ -117,6 +119,7 @@ public class RedeliveryPolicy implements Cloneable, 
Serializable {
             + ", allowRedeliveryWhileStopping=" + allowRedeliveryWhileStopping
             + ", retriesExhaustedLogLevel=" + retriesExhaustedLogLevel
             + ", retryAttemptedLogLevel=" + retryAttemptedLogLevel
+            + ", retryAttemptedLogInterval=" + retryAttemptedLogInterval
             + ", logRetryAttempted=" + logRetryAttempted
             + ", logStackTrace=" + logStackTrace
             + ", logRetryStackTrace=" + logRetryStackTrace
@@ -351,6 +354,14 @@ public class RedeliveryPolicy implements Cloneable, 
Serializable {
     }
 
     /**
+     * Sets the interval to log retry attempts
+     */
+    public RedeliveryPolicy retryAttemptedLogInterval(int 
logRetryAttemptedInterval) {
+        setRetryAttemptedLogInterval(logRetryAttemptedInterval);
+        return this;
+    }
+
+    /**
      * Sets whether to log retry attempts
      */
     public RedeliveryPolicy logRetryAttempted(boolean logRetryAttempted) {
@@ -608,6 +619,17 @@ public class RedeliveryPolicy implements Cloneable, 
Serializable {
         return retryAttemptedLogLevel;
     }
 
+    public int getRetryAttemptedLogInterval() {
+        return retryAttemptedLogInterval;
+    }
+
+    /**
+     * Sets the interval to log retry attempts
+     */
+    public void setRetryAttemptedLogInterval(int retryAttemptedLogInterval) {
+        this.retryAttemptedLogInterval = retryAttemptedLogInterval;
+    }
+
     public String getDelayPattern() {
         return delayPattern;
     }
diff --git 
a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
 
b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
index 4431dc6..590e265 100644
--- 
a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
+++ 
b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
@@ -67,6 +67,9 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
     @Metadata(defaultValue = "DEBUG", description = "Sets the logging level to 
use for log messages when retries are attempted.")
     private LoggingLevel retryAttemptedLogLevel;
     @XmlAttribute
+    @Metadata(defaultValue = "0", description = "Sets the interval for log 
messages when retries are attempted.")
+    private String retryAttemptedLogInterval;
+    @XmlAttribute
     @Metadata(defaultValue = "true", description = "Sets whether to log retry 
attempts")
     private String logRetryAttempted;
     @XmlAttribute
@@ -122,6 +125,9 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
         if (retryAttemptedLogLevel != null) {
             answer.setRetryAttemptedLogLevel(retryAttemptedLogLevel);
         }
+        if (retryAttemptedLogInterval != null) {
+            
answer.setRetryAttemptedLogInterval(CamelContextHelper.parseInteger(context, 
retryAttemptedLogInterval));
+        }
         if (backOffMultiplier != null) {
             
answer.setBackOffMultiplier(CamelContextHelper.parseDouble(context, 
backOffMultiplier));
         }
@@ -260,6 +266,14 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
         this.retryAttemptedLogLevel = retryAttemptedLogLevel;
     }
 
+    public String getRetryAttemptedLogInterval() {
+        return retryAttemptedLogInterval;
+    }
+
+    public void setRetryAttemptedLogInterval(String retryAttemptedLogInterval) 
{
+        this.retryAttemptedLogInterval = retryAttemptedLogInterval;
+    }
+
     public String getLogRetryAttempted() {
         return logRetryAttempted;
     }

-- 
To stop receiving notification emails like this one, please contact
qu...@apache.org.

Reply via email to