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 qu...@apache.org.