You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by qu...@apache.org on 2018/05/30 14:13:18 UTC
[camel] branch camel-2.21.x updated: CAMEL-12360: Added
retryAttemptedLogInterval to RedeliveryPolicy
This is an automated email from the ASF dual-hosted git repository.
quinn pushed a commit to branch camel-2.21.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.21.x by this push:
new 347f8b1 CAMEL-12360: Added retryAttemptedLogInterval to RedeliveryPolicy
347f8b1 is described below
commit 347f8b15d94839ba2eacb51050a5bd016ecdba11
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 d7938f0..9bfcd4b 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;
}
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 3ff146c..2e3ccd5 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
@@ -128,6 +131,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));
}
@@ -272,6 +278,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
quinn@apache.org.