This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch sandbox/camel-3.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit b617cf2d1e6c7dc10ff305b8dd846a021ac88cdb Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Mon Sep 17 15:50:19 2018 +0200 [CAMEL-4763] Remove deprecated loggingErrorHandler in favor of DeadLetterChannel --- .../org/apache/camel/builder/BuilderSupport.java | 48 ------ .../camel/builder/LoggingErrorHandlerBuilder.java | 128 --------------- .../camel/processor/LoggingErrorHandler.java | 52 ------ .../camel/builder/ContextErrorHandlerTest.java | 5 +- .../org/apache/camel/builder/ErrorHandlerTest.java | 11 +- .../builder/LoggingErrorHandlerBuilderTest.java | 176 --------------------- .../issues/AdviceWithInvalidConfiguredTest.java | 2 +- .../issues/TimerAndErrorHandlerIssueTest.java | 2 +- ...emoveRouteAndContextScopedErrorHandlerTest.java | 4 +- .../LoggingErrorHandlerOnExceptionTest.java | 70 -------- .../blueprint/CamelErrorHandlerFactoryBean.java | 9 -- .../apache/camel/blueprint/ErrorHandlerType.java | 3 - .../org/apache/camel/cdi/XmlCdiBeanFactory.java | 42 ++--- .../camel/cdi/XmlErrorHandlerFactoryBean.java | 8 - .../camel/cdi/xml/ErrorHandlerDefinition.java | 22 --- .../org/apache/camel/cdi/xml/ErrorHandlerType.java | 4 - .../camel/cdi/test/XmlErrorHandlerLoggingTest.java | 131 --------------- .../camel-context-errorHandler-logging.xml | 47 ------ .../org/apache/camel/spring/ErrorHandlerType.java | 3 - .../handler/ErrorHandlerDefinitionParserTest.java | 11 +- .../handler/ErrorHandlerDefinitionParser.xml | 2 - 21 files changed, 23 insertions(+), 757 deletions(-) diff --git a/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java b/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java index 54ef8f8..23a6012 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java +++ b/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java @@ -474,54 +474,6 @@ public abstract class BuilderSupport { } /** - * Creates an <a href="http://camel.apache.org/error-handler.html">error handler</a> - * which just logs errors - * - * @return the builder - * @deprecated use dead letter channel with a log endpoint - */ - @Deprecated - public LoggingErrorHandlerBuilder loggingErrorHandler() { - return new LoggingErrorHandlerBuilder(); - } - - /** - * Creates an <a href="http://camel.apache.org/error-handler.html">error handler</a> - * which just logs errors - * - * @return the builder - * @deprecated use dead letter channel with a log endpoint - */ - @Deprecated - public LoggingErrorHandlerBuilder loggingErrorHandler(String log) { - return loggingErrorHandler(LoggerFactory.getLogger(log)); - } - - /** - * Creates an <a href="http://camel.apache.org/error-handler.html">error handler</a> - * which just logs errors - * - * @return the builder - * @deprecated use dead letter channel with a log endpoint - */ - @Deprecated - public LoggingErrorHandlerBuilder loggingErrorHandler(Logger log) { - return new LoggingErrorHandlerBuilder(log); - } - - /** - * Creates an <a href="http://camel.apache.org/error-handler.html">error handler</a> - * which just logs errors - * - * @return the builder - * @deprecated use dead letter channel with a log endpoint - */ - @Deprecated - public LoggingErrorHandlerBuilder loggingErrorHandler(Logger log, LoggingLevel level) { - return new LoggingErrorHandlerBuilder(log, level); - } - - /** * <a href="http://camel.apache.org/dead-letter-channel.html">Dead Letter Channel EIP:</a> * is a error handler for handling messages that could not be delivered to it's intended destination. * diff --git a/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java deleted file mode 100644 index 5263373..0000000 --- a/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java +++ /dev/null @@ -1,128 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.builder; - -import org.apache.camel.LoggingLevel; -import org.apache.camel.Processor; -import org.apache.camel.processor.LoggingErrorHandler; -import org.apache.camel.processor.RedeliveryPolicy; -import org.apache.camel.spi.RouteContext; -import org.apache.camel.util.CamelLogger; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Uses the {@link Logger} as an error handler, will log at <tt>ERROR</tt> level by default. - * - * @version - * @deprecated use dead letter channel with a log endpoint - */ -@Deprecated -public class LoggingErrorHandlerBuilder extends ErrorHandlerBuilderSupport { - private Logger log = LoggerFactory.getLogger(Logger.class); - private LoggingLevel level = LoggingLevel.ERROR; - - public LoggingErrorHandlerBuilder() { - } - - public LoggingErrorHandlerBuilder(final Logger log) { - this.log = log; - } - - public LoggingErrorHandlerBuilder(final Logger log, final LoggingLevel level) { - this.log = log; - this.level = level; - } - - public boolean supportTransacted() { - return false; - } - - @Override - public ErrorHandlerBuilder cloneBuilder() { - LoggingErrorHandlerBuilder answer = new LoggingErrorHandlerBuilder(); - cloneBuilder(answer); - return answer; - } - - protected void cloneBuilder(LoggingErrorHandlerBuilder other) { - super.cloneBuilder(other); - - other.level = level; - other.log = log; - } - - public Processor createErrorHandler(final RouteContext routeContext, final Processor processor) { - CamelLogger logger = new CamelLogger(log, level); - - // configure policy to use the selected logging level, and only log exhausted - RedeliveryPolicy policy = new RedeliveryPolicy(); - policy.setLogExhausted(true); - policy.setRetriesExhaustedLogLevel(level); - policy.setLogStackTrace(true); - policy.setLogRetryAttempted(false); - policy.setRetryAttemptedLogLevel(LoggingLevel.OFF); - policy.setLogRetryStackTrace(false); - policy.setLogContinued(false); - policy.setLogHandled(false); - - LoggingErrorHandler handler = new LoggingErrorHandler(routeContext.getCamelContext(), processor, logger, - policy, getExceptionPolicyStrategy()); - configure(routeContext, handler); - return handler; - } - - public LoggingLevel getLevel() { - return level; - } - - public void setLevel(final LoggingLevel level) { - this.level = level; - } - - public Logger getLog() { - return log; - } - - public void setLog(final Logger log) { - this.log = log; - } - - public String getLogName() { - return log != null ? log.getName() : null; - } - - public void setLogName(String logName) { - this.log = LoggerFactory.getLogger(logName); - } - - public LoggingErrorHandlerBuilder level(final LoggingLevel level) { - this.level = level; - return this; - } - - public LoggingErrorHandlerBuilder log(final Logger log) { - this.log = log; - return this; - } - - public LoggingErrorHandlerBuilder logName(final String logName) { - setLogName(logName); - return this; - } - -} diff --git a/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java deleted file mode 100644 index 434e49c..0000000 --- a/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.processor; - -import org.apache.camel.CamelContext; -import org.apache.camel.Processor; -import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy; -import org.apache.camel.util.CamelLogger; - -/** - * An {@link ErrorHandler} which uses commons-logging to dump the error - * - * @version - * @deprecated use {@link DeadLetterChannel} using a log endpoint instead - */ -@Deprecated -public class LoggingErrorHandler extends DefaultErrorHandler { - - /** - * Creates the logging error handler. - * - * @param camelContext the camel context - * @param output outer processor that should use this logging error handler - * @param logger logger to use for logging failures - * @param redeliveryPolicy redelivery policy - * @param exceptionPolicyStrategy strategy for onException handling - */ - public LoggingErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger, - RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy) { - super(camelContext, output, logger, null, redeliveryPolicy, exceptionPolicyStrategy, null, null, null, null); - } - - @Override - public String toString() { - return "LoggingErrorHandler[" + output + "]"; - } - -} diff --git a/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java b/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java index df3e0f5..ed7f80b 100644 --- a/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java +++ b/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java @@ -24,7 +24,6 @@ import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.impl.EventDrivenConsumerRoute; import org.apache.camel.processor.DeadLetterChannel; -import org.apache.camel.processor.LoggingErrorHandler; import org.apache.camel.processor.RedeliveryPolicy; import org.apache.camel.processor.SendProcessor; import org.junit.Before; @@ -65,7 +64,7 @@ public class ContextErrorHandlerTest extends ContextTestSupport { RouteBuilder builder = new RouteBuilder() { public void configure() { - errorHandler(loggingErrorHandler("FOO.BAR")); + errorHandler(deadLetterChannel("log:FOO.BAR")); from("seda:a").to("seda:b"); } }; @@ -80,7 +79,7 @@ public class ContextErrorHandlerTest extends ContextTestSupport { Processor processor = consumerRoute.getProcessor(); Channel channel = unwrapChannel(processor); - assertIsInstanceOf(LoggingErrorHandler.class, channel.getErrorHandler()); + assertIsInstanceOf(DeadLetterChannel.class, channel.getErrorHandler()); SendProcessor sendProcessor = assertIsInstanceOf(SendProcessor.class, channel.getNextProcessor()); log.debug("Found sendProcessor: " + sendProcessor); } diff --git a/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerTest.java b/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerTest.java index 44a7fc4..9cbbec2 100644 --- a/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerTest.java +++ b/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerTest.java @@ -25,7 +25,6 @@ import org.apache.camel.TestSupport; import org.apache.camel.impl.EventDrivenConsumerRoute; import org.apache.camel.processor.DeadLetterChannel; import org.apache.camel.processor.FilterProcessor; -import org.apache.camel.processor.LoggingErrorHandler; import org.apache.camel.processor.RedeliveryPolicy; import org.apache.camel.processor.SendProcessor; import org.junit.After; @@ -54,7 +53,7 @@ public class ErrorHandlerTest extends TestSupport { RouteBuilder builder = new RouteBuilder() { public void configure() { // use logging error handler - errorHandler(loggingErrorHandler("com.mycompany.foo")); + errorHandler(deadLetterChannel("log:com.mycompany.foo")); // here is our regular route from("seda:a").to("seda:b"); @@ -71,7 +70,7 @@ public class ErrorHandlerTest extends TestSupport { EventDrivenConsumerRoute consumerRoute = assertIsInstanceOf(EventDrivenConsumerRoute.class, route); Channel channel = unwrapChannel(consumerRoute.getProcessor()); - assertIsInstanceOf(LoggingErrorHandler.class, channel.getErrorHandler()); + assertIsInstanceOf(DeadLetterChannel.class, channel.getErrorHandler()); Processor processor = unwrap(channel.getNextProcessor()); assertIsInstanceOf(SendProcessor.class, processor); @@ -87,7 +86,7 @@ public class ErrorHandlerTest extends TestSupport { // this route is using a nested logging error handler from("seda:a") // here we configure the logging error handler - .errorHandler(loggingErrorHandler("com.mycompany.foo")) + .errorHandler(deadLetterChannel("log:com.mycompany.foo")) // and we continue with the routing here .to("seda:b"); @@ -168,7 +167,7 @@ public class ErrorHandlerTest extends TestSupport { // START SNIPPET: e5 RouteBuilder builder = new RouteBuilder() { public void configure() { - from("seda:a").errorHandler(loggingErrorHandler("FOO.BAR")).filter(body().isInstanceOf(String.class)).to("seda:b"); + from("seda:a").errorHandler(deadLetterChannel("log:FOO.BAR")).filter(body().isInstanceOf(String.class)).to("seda:b"); } }; // END SNIPPET: e5 @@ -181,7 +180,7 @@ public class ErrorHandlerTest extends TestSupport { EventDrivenConsumerRoute consumerRoute = assertIsInstanceOf(EventDrivenConsumerRoute.class, route); Channel channel = unwrapChannel(consumerRoute.getProcessor()); - assertIsInstanceOf(LoggingErrorHandler.class, channel.getErrorHandler()); + assertIsInstanceOf(DeadLetterChannel.class, channel.getErrorHandler()); assertIsInstanceOf(FilterProcessor.class, channel.getNextProcessor()); } } diff --git a/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java b/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java deleted file mode 100644 index 3e9f278..0000000 --- a/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java +++ /dev/null @@ -1,176 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.builder; - -import org.apache.camel.ContextTestSupport; -import org.apache.camel.LoggingLevel; -import org.junit.Test; -import org.slf4j.LoggerFactory; - -/** - * @version - */ -public class LoggingErrorHandlerBuilderTest extends ContextTestSupport { - - @Override - public boolean isUseRouteBuilder() { - return false; - } - - @Test - public void testLoggingErrorHandler() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - LoggingErrorHandlerBuilder eh = loggingErrorHandler(); - eh.setLevel(LoggingLevel.ERROR); - eh.setLog(LoggerFactory.getLogger("foo")); - - assertEquals(LoggingLevel.ERROR, eh.getLevel()); - assertNotNull(eh.getLog()); - assertFalse(eh.supportTransacted()); - - errorHandler(eh); - - from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } - - @Test - public void testLoggingErrorHandler2() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - errorHandler(loggingErrorHandler().level(LoggingLevel.WARN).log(LoggerFactory.getLogger("foo"))); - - from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } - - @Test - public void testLoggingErrorHandler3() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - LoggingErrorHandlerBuilder eh = loggingErrorHandler(LoggerFactory.getLogger("foo")); - eh.setLevel(LoggingLevel.ERROR); - - assertEquals(LoggingLevel.ERROR, eh.getLevel()); - assertNotNull(eh.getLog()); - assertFalse(eh.supportTransacted()); - - errorHandler(eh); - - from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } - - @Test - public void testLoggingErrorHandler4() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - LoggingErrorHandlerBuilder eh = loggingErrorHandler(LoggerFactory.getLogger("foo"), LoggingLevel.ERROR); - - assertEquals(LoggingLevel.ERROR, eh.getLevel()); - assertNotNull(eh.getLog()); - assertFalse(eh.supportTransacted()); - - errorHandler(eh); - - from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } - - @Test - public void testLoggingErrorHandler5() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - errorHandler(loggingErrorHandler().level(LoggingLevel.ERROR).logName("foo")); - - from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } - - @Test - public void testLoggingErrorHandler6() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - errorHandler(loggingErrorHandler().level(LoggingLevel.WARN).logName("foo")); - - from("direct:start").routeId("myRoute") - .to("mock:foo") - .throwException(new IllegalArgumentException("Damn")); - } - }); - context.start(); - - try { - template.sendBody("direct:start", "Hello World"); - fail("Should have thrown an exception"); - } catch (Exception e) { - // expected - } - } -} diff --git a/camel-core/src/test/java/org/apache/camel/issues/AdviceWithInvalidConfiguredTest.java b/camel-core/src/test/java/org/apache/camel/issues/AdviceWithInvalidConfiguredTest.java index b568041..ddd8071 100644 --- a/camel-core/src/test/java/org/apache/camel/issues/AdviceWithInvalidConfiguredTest.java +++ b/camel-core/src/test/java/org/apache/camel/issues/AdviceWithInvalidConfiguredTest.java @@ -32,7 +32,7 @@ public class AdviceWithInvalidConfiguredTest extends ContextTestSupport { context.getRouteDefinition("route-a").adviceWith(context, new AdviceWithRouteBuilder() { @Override public void configure() throws Exception { - errorHandler(loggingErrorHandler()); + errorHandler(defaultErrorHandler()); interceptSendToEndpoint("direct:bar") .skipSendToOriginalEndpoint() diff --git a/camel-core/src/test/java/org/apache/camel/issues/TimerAndErrorHandlerIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/TimerAndErrorHandlerIssueTest.java index dc535f1..08b0888 100644 --- a/camel-core/src/test/java/org/apache/camel/issues/TimerAndErrorHandlerIssueTest.java +++ b/camel-core/src/test/java/org/apache/camel/issues/TimerAndErrorHandlerIssueTest.java @@ -42,7 +42,7 @@ public class TimerAndErrorHandlerIssueTest extends ContextTestSupport { public void configure() throws Exception { onException(RuntimeCamelException.class).handled(true); - errorHandler(loggingErrorHandler(getClass().getName())); + errorHandler(defaultErrorHandler()); String executionTriggerUri = "timer:executionTimer" + "?fixedRate=true" diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest.java index 0808eff..61b558e 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest.java @@ -77,8 +77,6 @@ public class ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest extends Man // and the route scoped error handler should be removed set = mbeanServer.queryNames(new ObjectName("*:type=errorhandlers,*"), null); assertEquals(1, set.size()); - // should be the context scoped logging error handler - assertTrue("Should be context scoped error handler: " + set, set.iterator().next().toString().contains("Logging")); } @Test @@ -148,7 +146,7 @@ public class ManagedRouteRemoveRouteAndContextScopedErrorHandlerTest extends Man @Override public void configure() throws Exception { // context scoped error handler - errorHandler(loggingErrorHandler("global")); + errorHandler(deadLetterChannel("log:global")); from("seda:bar").routeId("bar") .to("mock:result"); diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/LoggingErrorHandlerOnExceptionTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/LoggingErrorHandlerOnExceptionTest.java deleted file mode 100644 index e60fd9f..0000000 --- a/camel-core/src/test/java/org/apache/camel/processor/onexception/LoggingErrorHandlerOnExceptionTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.processor.onexception; - -import org.apache.camel.CamelExecutionException; -import org.apache.camel.ContextTestSupport; -import org.apache.camel.builder.RouteBuilder; -import org.junit.Test; - -/** - * @version - */ -public class LoggingErrorHandlerOnExceptionTest extends ContextTestSupport { - - @Test - public void testLoggingErrorHandler() throws Exception { - getMockEndpoint("mock:handled").expectedMessageCount(0); - - try { - template.sendBody("direct:kaboom", "Hello World"); - fail("Should have thrown an exception"); - } catch (CamelExecutionException e) { - assertEquals("Kaboom", e.getCause().getMessage()); - } - - assertMockEndpointsSatisfied(); - } - - @Test - public void testLoggingErrorHandlerOnException() throws Exception { - getMockEndpoint("mock:handled").expectedMessageCount(1); - - template.sendBody("direct:damn", "Bye World"); - - assertMockEndpointsSatisfied(); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - @Override - public void configure() throws Exception { - context.setTracing(true); - - errorHandler(loggingErrorHandler("org.apache.camel.MyLogger")); - - onException(IllegalArgumentException.class) - .handled(true) - .to("mock:handled"); - - from("direct:kaboom").to("log:kaboom").throwException(new Exception("Kaboom")); - from("direct:damn").to("log:damn").throwException(new IllegalArgumentException("Damn")); - } - }; - } -} diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java index 2965f93..6ef3122 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelErrorHandlerFactoryBean.java @@ -29,7 +29,6 @@ import org.apache.camel.LoggingLevel; import org.apache.camel.Processor; import org.apache.camel.builder.DefaultErrorHandlerBuilder; import org.apache.camel.builder.ErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.core.xml.AbstractCamelFactoryBean; import org.apache.camel.model.RedeliveryPolicyDefinition; import org.apache.camel.processor.RedeliveryPolicy; @@ -103,14 +102,6 @@ public class CamelErrorHandlerFactoryBean extends AbstractCamelFactoryBean<Error if (executorServiceRef != null) { handler.setExecutorServiceRef(executorServiceRef); } - } else if (errorHandler instanceof LoggingErrorHandlerBuilder) { - LoggingErrorHandlerBuilder handler = (LoggingErrorHandlerBuilder) errorHandler; - if (level != null) { - handler.setLevel(level); - } - if (logName != null) { - handler.setLogName(logName); - } } return errorHandler; } diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java index 8fb3eae..c65df31 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ErrorHandlerType.java @@ -22,7 +22,6 @@ import javax.xml.bind.annotation.XmlType; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.DefaultErrorHandlerBuilder; import org.apache.camel.builder.ErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.builder.NoErrorHandlerBuilder; /** @@ -47,8 +46,6 @@ public enum ErrorHandlerType { return DefaultErrorHandlerBuilder.class; case DeadLetterChannel: return DeadLetterChannelBuilder.class; - case LoggingErrorHandler: - return LoggingErrorHandlerBuilder.class; case NoErrorHandler: return NoErrorHandlerBuilder.class; default: diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlCdiBeanFactory.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlCdiBeanFactory.java index 549a322..291f1ab 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlCdiBeanFactory.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlCdiBeanFactory.java @@ -27,13 +27,6 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Stream; -import static java.lang.String.format; -import static java.util.Collections.addAll; -import static java.util.Collections.emptySet; -import static java.util.Collections.singleton; -import static java.util.Objects.requireNonNull; -import static java.util.stream.Collectors.toSet; - import javax.enterprise.inject.CreationException; import javax.enterprise.inject.spi.AnnotatedType; import javax.enterprise.inject.spi.Bean; @@ -60,6 +53,12 @@ import org.apache.camel.model.rest.RestDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static java.lang.String.format; +import static java.util.Collections.addAll; +import static java.util.Collections.emptySet; +import static java.util.Collections.singleton; +import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.toSet; import static org.apache.camel.cdi.AnyLiteral.ANY; import static org.apache.camel.cdi.ApplicationScopedLiteral.APPLICATION_SCOPED; import static org.apache.camel.cdi.CdiSpiHelper.createCamelContextWithTCCL; @@ -403,58 +402,41 @@ final class XmlCdiBeanFactory { } if (isNotEmpty(definition.getUseOriginalMessage()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("useOriginalMessage", type, definition.getId()); } if (isNotEmpty(definition.getOnRedeliveryRef()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("onRedeliveryRef", type, definition.getId()); } if (isNotEmpty(definition.getOnExceptionOccurredRef()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("onExceptionOccurredRef", type, definition.getId()); } if (isNotEmpty(definition.getOnPrepareFailureRef()) && (type.equals(ErrorHandlerType.TransactionErrorHandler) - || type.equals(ErrorHandlerType.LoggingErrorHandler) || type.equals(ErrorHandlerType.NoErrorHandler))) { throw attributeNotSupported("onPrepareFailureRef", type, definition.getId()); } if (isNotEmpty(definition.getRetryWhileRef()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("retryWhileRef", type, definition.getId()); } if (isNotEmpty(definition.getOnRedeliveryRef()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("redeliveryPolicyRef", type, definition.getId()); } if (isNotEmpty(definition.getExecutorServiceRef()) - && (type.equals(ErrorHandlerType.LoggingErrorHandler) - || type.equals(ErrorHandlerType.NoErrorHandler))) { + && type.equals(ErrorHandlerType.NoErrorHandler)) { throw attributeNotSupported("executorServiceRef", type, definition.getId()); } - if (isNotEmpty(definition.getLogName()) - && (!type.equals(ErrorHandlerType.LoggingErrorHandler))) { - throw attributeNotSupported("logName", type, definition.getId()); - } - - if (isNotEmpty(definition.getLevel()) - && (!type.equals(ErrorHandlerType.LoggingErrorHandler))) { - throw attributeNotSupported("level", type, definition.getId()); - } - return new XmlErrorHandlerFactoryBean(manager, new SyntheticAnnotated(type.getTypeAsClass(), manager.createAnnotatedType(type.getTypeAsClass()).getTypeClosure(), diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlErrorHandlerFactoryBean.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlErrorHandlerFactoryBean.java index f88f7b6..507ad6a 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlErrorHandlerFactoryBean.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/XmlErrorHandlerFactoryBean.java @@ -30,7 +30,6 @@ import javax.enterprise.inject.spi.BeanManager; import org.apache.camel.Processor; import org.apache.camel.builder.DefaultErrorHandlerBuilder; import org.apache.camel.builder.ErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.cdi.xml.ErrorHandlerDefinition; import org.apache.camel.cdi.xml.RedeliveryPolicyFactoryBean; import org.apache.camel.processor.RedeliveryPolicy; @@ -60,9 +59,6 @@ final class XmlErrorHandlerFactoryBean extends SyntheticBean<ErrorHandlerBuilder case DeadLetterChannel: setProperties((DefaultErrorHandlerBuilder) builder); break; - case LoggingErrorHandler: - setProperties((LoggingErrorHandlerBuilder) builder); - break; case NoErrorHandler: // No configuration required break; @@ -133,8 +129,4 @@ final class XmlErrorHandlerFactoryBean extends SyntheticBean<ErrorHandlerBuilder } } - private void setProperties(LoggingErrorHandlerBuilder builder) { - builder.setLevel(handler.getLevel()); - builder.setLogName(handler.getLogName()); - } } \ No newline at end of file diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerDefinition.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerDefinition.java index 939a07b..87fdf9e 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerDefinition.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerDefinition.java @@ -42,15 +42,9 @@ public class ErrorHandlerDefinition extends IdentifiedType { private Boolean deadLetterHandleNewException; @XmlAttribute - private LoggingLevel level; - - @XmlAttribute private LoggingLevel rollbackLoggingLevel; @XmlAttribute - private String logName; - - @XmlAttribute private Boolean useOriginalMessage; @XmlAttribute @@ -104,14 +98,6 @@ public class ErrorHandlerDefinition extends IdentifiedType { this.deadLetterHandleNewException = deadLetterHandleNewException; } - public LoggingLevel getLevel() { - return level; - } - - public void setLevel(LoggingLevel level) { - this.level = level; - } - public LoggingLevel getRollbackLoggingLevel() { return rollbackLoggingLevel; } @@ -120,14 +106,6 @@ public class ErrorHandlerDefinition extends IdentifiedType { this.rollbackLoggingLevel = rollbackLoggingLevel; } - public String getLogName() { - return logName; - } - - public void setLogName(String logName) { - this.logName = logName; - } - public Boolean getUseOriginalMessage() { return useOriginalMessage; } diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerType.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerType.java index 1f9d4c0..5c082e6 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerType.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/ErrorHandlerType.java @@ -22,7 +22,6 @@ import javax.xml.bind.annotation.XmlType; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.DefaultErrorHandlerBuilder; import org.apache.camel.builder.ErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.builder.NoErrorHandlerBuilder; import org.apache.camel.cdi.transaction.JtaTransactionErrorHandlerBuilder; @@ -36,7 +35,6 @@ public enum ErrorHandlerType { DefaultErrorHandler, DeadLetterChannel, - LoggingErrorHandler, NoErrorHandler, TransactionErrorHandler; @@ -51,8 +49,6 @@ public enum ErrorHandlerType { return DefaultErrorHandlerBuilder.class; case DeadLetterChannel: return DeadLetterChannelBuilder.class; - case LoggingErrorHandler: - return LoggingErrorHandlerBuilder.class; case NoErrorHandler: return NoErrorHandlerBuilder.class; case TransactionErrorHandler: diff --git a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/XmlErrorHandlerLoggingTest.java b/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/XmlErrorHandlerLoggingTest.java deleted file mode 100644 index b097338..0000000 --- a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/XmlErrorHandlerLoggingTest.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.cdi.test; - -import java.nio.file.Paths; -import java.util.concurrent.TimeUnit; -import javax.enterprise.inject.Produces; -import javax.inject.Inject; -import javax.inject.Named; - -import org.apache.camel.CamelException; -import org.apache.camel.CamelExecutionException; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.cdi.CdiCamelExtension; -import org.apache.camel.cdi.ImportResource; -import org.apache.camel.cdi.Uri; -import org.apache.camel.cdi.rule.LogEventVerifier; -import org.apache.camel.component.mock.MockEndpoint; -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit.Arquillian; -import org.jboss.shrinkwrap.api.Archive; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.EmptyAsset; -import org.jboss.shrinkwrap.api.spec.JavaArchive; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.rules.TestRule; -import org.junit.runner.RunWith; - -import static org.apache.camel.cdi.rule.LogEventMatcher.logEvent; -import static org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied; -import static org.hamcrest.Matchers.containsInRelativeOrder; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.instanceOf; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; - -@RunWith(Arquillian.class) -@ImportResource("imported-context.xml") -public class XmlErrorHandlerLoggingTest { - - @ClassRule - public static TestRule verifier = new LogEventVerifier() { - @Override - protected void verify() { - assertThat("Log messages not found!", getEvents(), - containsInRelativeOrder( - logEvent() - .withLevel("INFO") - .withMessage(containsString("Camel CDI is starting Camel context [test]")), - logEvent() - .withLevel("WARN") - .withLogger("error") - .withMessage(containsString( - "Exhausted after delivery attempt: 1 " - + "caught: org.apache.camel.CamelException: failure message!")), - logEvent() - .withLevel("INFO") - .withMessage(containsString("Camel CDI is stopping Camel context [test]")) - ) - ); - } - }; - - @Named - @Produces - private Exception failure = new CamelException("failure message!"); - - @Inject - @Uri("direct:inbound") - private ProducerTemplate inbound; - - @Inject - @Uri("mock:outbound") - private MockEndpoint outbound; - - @Deployment - public static Archive<?> deployment() { - return ShrinkWrap.create(JavaArchive.class) - // Camel CDI - .addPackage(CdiCamelExtension.class.getPackage()) - // Test Camel XML - .addAsResource( - Paths.get("src/test/resources/camel-context-errorHandler-logging.xml").toFile(), - "imported-context.xml") - // Bean archive deployment descriptor - .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"); - } - - @Test - public void sendMessageToInbound() throws InterruptedException { - outbound.expectedMessageCount(1); - outbound.expectedBodiesReceived("Response to message"); - - inbound.sendBody("message"); - - assertIsSatisfied(2L, TimeUnit.SECONDS, outbound); - } - - @Test - public void sendExceptionToInbound() { - try { - inbound.sendBody("exception"); - } catch (Exception exception) { - assertThat("Exception is incorrect!", - exception, is(instanceOf(CamelExecutionException.class))); - assertThat("Exception cause is incorrect!", - exception.getCause(), is(instanceOf(CamelException.class))); - assertThat("Exception message is incorrect!", - exception.getCause().getMessage(), is(equalTo("failure message!"))); - return; - } - fail("No exception thrown!"); - } -} diff --git a/components/camel-cdi/src/test/resources/camel-context-errorHandler-logging.xml b/components/camel-cdi/src/test/resources/camel-context-errorHandler-logging.xml deleted file mode 100644 index b1177c5..0000000 --- a/components/camel-cdi/src/test/resources/camel-context-errorHandler-logging.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<camelContext id="test" errorHandlerRef="error-handler" - xmlns="http://camel.apache.org/schema/spring" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://camel.apache.org/schema/spring - http://camel.apache.org/schema/spring/camel-spring.xsd"> - - <errorHandler id="error-handler" - type="LoggingErrorHandler" - logName="error" - level="WARN"/> - - <route> - <from uri="direct:inbound"/> - <choice> - <when> - <simple>${body} contains 'exception'</simple> - <throwException ref="failure"/> - </when> - <otherwise> - <transform> - <simple>Response to ${body}</simple> - </transform> - <to uri="mock:outbound"/> - </otherwise> - </choice> - </route> - -</camelContext> \ No newline at end of file diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerType.java b/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerType.java index 98eeff4..6b934d7 100644 --- a/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerType.java +++ b/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerType.java @@ -21,7 +21,6 @@ import javax.xml.bind.annotation.XmlType; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.DefaultErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.builder.NoErrorHandlerBuilder; import org.apache.camel.spi.Metadata; import org.apache.camel.spring.spi.TransactionErrorHandlerBuilder; @@ -49,8 +48,6 @@ public enum ErrorHandlerType { return DefaultErrorHandlerBuilder.class; case DeadLetterChannel: return DeadLetterChannelBuilder.class; - case LoggingErrorHandler: - return LoggingErrorHandlerBuilder.class; case NoErrorHandler: return NoErrorHandlerBuilder.class; case TransactionErrorHandler: diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java index 93981e4..075b121 100644 --- a/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java +++ b/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java @@ -15,11 +15,10 @@ * limitations under the License. */ package org.apache.camel.spring.handler; -import org.apache.camel.LoggingLevel; + import org.apache.camel.Processor; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.DefaultErrorHandlerBuilder; -import org.apache.camel.builder.LoggingErrorHandlerBuilder; import org.apache.camel.processor.RedeliveryPolicy; import org.apache.camel.spring.spi.TransactionErrorHandlerBuilder; import org.apache.camel.util.IOHelper; @@ -43,14 +42,6 @@ public class ErrorHandlerDefinitionParserTest extends Assert { } @Test - public void testLoggingErrorHandler() { - LoggingErrorHandlerBuilder errorHandler = ctx.getBean("loggingErrorHandler", LoggingErrorHandlerBuilder.class); - assertNotNull(errorHandler); - assertEquals("The log level should be INFO", LoggingLevel.INFO, errorHandler.getLevel()); - assertEquals("The log name should be foo", "foo", errorHandler.getLogName()); - } - - @Test public void testDefaultErrorHandler() { DefaultErrorHandlerBuilder errorHandler = ctx.getBean("defaultErrorHandler", DefaultErrorHandlerBuilder.class); assertNotNull(errorHandler); diff --git a/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml b/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml index 45f974d..7a653a2 100644 --- a/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml +++ b/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml @@ -28,8 +28,6 @@ "> <!-- START SNIPPET: example --> - <errorHandler id="loggingErrorHandler" type="LoggingErrorHandler" logName="foo" level="INFO" xmlns="http://camel.apache.org/schema/spring"/> - <!-- If don't specify type attribute, the type value will be set to DefaultErrorHandler --> <errorHandler id="errorHandler" xmlns="http://camel.apache.org/schema/spring"/>