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

quinn 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 60d285f  CAMEL-12360: Added retryAttemptedLogInterval to 
RedeliveryPolicy
60d285f is described below

commit 60d285f55dd0ba1139256932e5b0a09608ecaf14
Author: Quinn Stevenson <[email protected]>
AuthorDate: Tue May 29 12:58:52 2018 -0600

    CAMEL-12360: Added retryAttemptedLogInterval to RedeliveryPolicy
---
 .../camel/builder/DefaultErrorHandlerBuilder.java  | 10 ++++++++++
 .../camel/processor/RedeliveryErrorHandler.java    | 12 ++++++++++++
 .../apache/camel/processor/RedeliveryPolicy.java   | 22 ++++++++++++++++++++++
 3 files changed, 44 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/processor/RedeliveryErrorHandler.java
 
b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index a2f5727..9072aef 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 24c05c9..5beda01 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>
@@ -92,6 +93,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;
@@ -118,6 +120,7 @@ public class RedeliveryPolicy implements Cloneable, 
Serializable {
             + ", allowRedeliveryWhileStopping=" + allowRedeliveryWhileStopping
             + ", retriesExhaustedLogLevel=" + retriesExhaustedLogLevel
             + ", retryAttemptedLogLevel=" + retryAttemptedLogLevel
+            + ", retryAttemptedLogInterval=" + retryAttemptedLogInterval
             + ", logRetryAttempted=" + logRetryAttempted
             + ", logStackTrace=" + logStackTrace
             + ", logRetryStackTrace=" + logRetryStackTrace
@@ -352,6 +355,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) {
@@ -609,6 +620,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;
     }

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to