You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2011/09/05 12:50:03 UTC
Re: svn commit: r1165232 - in /camel/trunk: camel-core/
camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/main/java/org/apache/camel/component/dataset/
camel-core/src/main/java/org/apache/camel/component/log/ camel-core/src/main/java/
This code is wrong. You should not re-throw exceptions in async processor
public boolean process(Exchange exchange, AsyncCallback callback) {
- logger.process(exchange);
+ try {
+ logger.process(exchange);
+ } catch (Exception e) {
+ throw new RuntimeCamelException(e);
+ }
callback.done(true);
return true;
}
Should be
try {
logger.process(exchange);
} catch (Exception e) {
exchange.setException(e);
}
On Mon, Sep 5, 2011 at 12:35 PM, <cs...@apache.org> wrote:
> Author: cschneider
> Date: Mon Sep 5 10:35:35 2011
> New Revision: 1165232
>
> URL: http://svn.apache.org/viewvc?rev=1165232&view=rev
> Log:
> CAMEL-4414 Add new simpler CamelLogger in util and CamelLogProcessor in processor. Old CamelLogger stays in place for compatibility
>
> Added:
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java (contents, props changed)
> - copied, changed from r1164512, camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
> Modified:
> camel/trunk/camel-core/pom.xml
> camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogProducer.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
> camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
> camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java
> camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
> camel/trunk/components/ (props changed)
> camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
> camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
> camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
> camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java
> camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
> camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
> camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
> camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/log/SpringLogTest-context.xml
> camel/trunk/parent/pom.xml
>
> Modified: camel/trunk/camel-core/pom.xml
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/pom.xml?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/pom.xml (original)
> +++ camel/trunk/camel-core/pom.xml Mon Sep 5 10:35:35 2011
> @@ -91,6 +91,11 @@
> <scope>test</scope>
> </dependency>
>
> + <dependency>
> + <groupId>org.easymock</groupId>
> + <artifactId>easymock</artifactId>
> + <scope>test</scope>
> + </dependency>
> </dependencies>
>
>
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Mon Sep 5 10:35:35 2011
> @@ -21,11 +21,11 @@ import org.apache.camel.ExchangePattern;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.NoSuchEndpointException;
> import org.apache.camel.Processor;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.processor.DeadLetterChannel;
> import org.apache.camel.processor.RedeliveryPolicy;
> import org.apache.camel.processor.SendProcessor;
> import org.apache.camel.spi.RouteContext;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
> import org.slf4j.LoggerFactory;
>
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java Mon Sep 5 10:35:35 2011
> @@ -16,21 +16,20 @@
> */
> package org.apache.camel.builder;
>
> +import static org.apache.camel.builder.PredicateBuilder.toPredicate;
> import org.apache.camel.CamelContext;
> import org.apache.camel.Endpoint;
> import org.apache.camel.Expression;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.Predicate;
> import org.apache.camel.Processor;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.processor.DefaultErrorHandler;
> import org.apache.camel.processor.RedeliveryPolicy;
> import org.apache.camel.spi.Language;
> import org.apache.camel.spi.RouteContext;
> +import org.apache.camel.util.CamelLogger;
> import org.slf4j.LoggerFactory;
>
> -import static org.apache.camel.builder.PredicateBuilder.toPredicate;
> -
> /**
> * The default error handler builder.
> *
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Mon Sep 5 10:35:35 2011
> @@ -18,9 +18,9 @@ package org.apache.camel.builder;
>
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.Processor;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.processor.LoggingErrorHandler;
> import org.apache.camel.spi.RouteContext;
> +import org.apache.camel.util.CamelLogger;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java Mon Sep 5 10:35:35 2011
> @@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
> import org.apache.camel.Processor;
> import org.apache.camel.impl.DefaultConsumer;
> import org.apache.camel.processor.ThroughputLogger;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * DataSet consumer.
> @@ -105,7 +106,8 @@ public class DataSetConsumer extends Def
> }
>
> protected ThroughputLogger createReporter() {
> - ThroughputLogger answer = new ThroughputLogger(endpoint.getEndpointUri(), (int) endpoint.getDataSet().getReportCount());
> + CamelLogger logger = new CamelLogger(endpoint.getEndpointUri());
> + ThroughputLogger answer = new ThroughputLogger(logger, (int) endpoint.getDataSet().getReportCount());
> answer.setAction("Sent");
> return answer;
> }
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java Mon Sep 5 10:35:35 2011
> @@ -26,6 +26,7 @@ import org.apache.camel.Processor;
> import org.apache.camel.Service;
> import org.apache.camel.component.mock.MockEndpoint;
> import org.apache.camel.processor.ThroughputLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ExchangeHelper;
> import org.apache.camel.util.ObjectHelper;
> import org.slf4j.Logger;
> @@ -208,7 +209,8 @@ public class DataSetEndpoint extends Moc
> }
>
> protected ThroughputLogger createReporter() {
> - ThroughputLogger answer = new ThroughputLogger(this.getEndpointUri(), (int) this.getDataSet().getReportCount());
> + CamelLogger logger = new CamelLogger(this.getEndpointUri());
> + ThroughputLogger answer = new ThroughputLogger(logger, (int) this.getDataSet().getReportCount());
> answer.setAction("Received");
> return answer;
> }
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java Mon Sep 5 10:35:35 2011
> @@ -20,9 +20,11 @@ import java.util.Map;
>
> import org.apache.camel.Endpoint;
> import org.apache.camel.LoggingLevel;
> +import org.apache.camel.Processor;
> import org.apache.camel.impl.DefaultComponent;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.processor.CamelLogProcessor;
> import org.apache.camel.processor.ThroughputLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.IntrospectionSupport;
>
> /**
> @@ -38,20 +40,19 @@ public class LogComponent extends Defaul
> Integer groupSize = getAndRemoveParameter(parameters, "groupSize", Integer.class);
> Long groupInterval = getAndRemoveParameter(parameters, "groupInterval", Long.class);
>
> - CamelLogger logger;
> + CamelLogger camelLogger = new CamelLogger(remaining, level);
> + Processor logger;
> if (groupSize != null) {
> - logger = new ThroughputLogger(remaining, level, groupSize);
> + logger = new ThroughputLogger(camelLogger, groupSize);
> } else if (groupInterval != null) {
> Boolean groupActiveOnly = getAndRemoveParameter(parameters, "groupActiveOnly", Boolean.class, Boolean.TRUE);
> Long groupDelay = getAndRemoveParameter(parameters, "groupDelay", Long.class);
> - logger = new ThroughputLogger(this.getCamelContext(), remaining, level, groupInterval, groupDelay, groupActiveOnly);
> + logger = new ThroughputLogger(camelLogger, this.getCamelContext(), groupInterval, groupDelay, groupActiveOnly);
> } else {
> LogFormatter formatter = new LogFormatter();
> IntrospectionSupport.setProperties(formatter, parameters);
>
> - logger = new CamelLogger(remaining);
> - logger.setLevel(level);
> - logger.setFormatter(formatter);
> + logger = new CamelLogProcessor(camelLogger, formatter);
> }
>
> LogEndpoint endpoint = new LogEndpoint(uri, this);
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java Mon Sep 5 10:35:35 2011
> @@ -17,9 +17,9 @@
> package org.apache.camel.component.log;
>
> import org.apache.camel.Component;
> +import org.apache.camel.Processor;
> import org.apache.camel.Producer;
> import org.apache.camel.impl.ProcessorEndpoint;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.util.ServiceHelper;
>
> /**
> @@ -27,7 +27,7 @@ import org.apache.camel.util.ServiceHelp
> */
> public class LogEndpoint extends ProcessorEndpoint {
>
> - private CamelLogger logger;
> + private Processor logger;
>
> public LogEndpoint() {
> }
> @@ -36,15 +36,11 @@ public class LogEndpoint extends Process
> super(endpointUri, component);
> }
>
> - public LogEndpoint(String endpointUri, Component component, CamelLogger logger) {
> + public LogEndpoint(String endpointUri, Component component, Processor logger) {
> super(endpointUri, component);
> setLogger(logger);
> }
>
> - public CamelLogger getLogger() {
> - return logger;
> - }
> -
> @Override
> public void start() throws Exception {
> ServiceHelper.startService(logger);
> @@ -55,7 +51,7 @@ public class LogEndpoint extends Process
> ServiceHelper.stopService(logger);
> }
>
> - public void setLogger(CamelLogger logger) {
> + public void setLogger(Processor logger) {
> this.logger = logger;
> // the logger is the processor
> setProcessor(this.logger);
> @@ -63,7 +59,7 @@ public class LogEndpoint extends Process
>
> @Override
> public Producer createProducer() throws Exception {
> - return new LogProducer(this, getLogger());
> + return new LogProducer(this, this.logger);
> }
>
> @Override
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogProducer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogProducer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogProducer.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogProducer.java Mon Sep 5 10:35:35 2011
> @@ -19,23 +19,28 @@ package org.apache.camel.component.log;
> import org.apache.camel.AsyncCallback;
> import org.apache.camel.Endpoint;
> import org.apache.camel.Exchange;
> +import org.apache.camel.Processor;
> +import org.apache.camel.RuntimeCamelException;
> import org.apache.camel.impl.DefaultAsyncProducer;
> -import org.apache.camel.processor.CamelLogger;
>
> /**
> * Log producer.
> */
> public class LogProducer extends DefaultAsyncProducer {
>
> - private final CamelLogger logger;
> + private final Processor logger;
>
> - public LogProducer(Endpoint endpoint, CamelLogger logger) {
> + public LogProducer(Endpoint endpoint, Processor logger) {
> super(endpoint);
> this.logger = logger;
> }
>
> public boolean process(Exchange exchange, AsyncCallback callback) {
> - logger.process(exchange);
> + try {
> + logger.process(exchange);
> + } catch (Exception e) {
> + throw new RuntimeCamelException(e);
> + }
> callback.done(true);
> return true;
> }
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java Mon Sep 5 10:35:35 2011
> @@ -22,6 +22,7 @@ import org.apache.camel.Endpoint;
> import org.apache.camel.Processor;
> import org.apache.camel.impl.DefaultComponent;
> import org.apache.camel.processor.ThroughputLogger;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * A factory of {@link MockEndpoint} instances
> @@ -35,7 +36,7 @@ public class MockComponent extends Defau
> MockEndpoint endpoint = new MockEndpoint(uri, this);
> Integer value = getAndRemoveParameter(parameters, "reportGroup", Integer.class);
> if (value != null) {
> - Processor reporter = new ThroughputLogger("org.apache.camel.component.mock:" + remaining, value);
> + Processor reporter = new ThroughputLogger(new CamelLogger("org.apache.camel.component.mock:" + remaining), value);
> endpoint.setReporter(reporter);
> }
> return endpoint;
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java Mon Sep 5 10:35:35 2011
> @@ -20,8 +20,8 @@ import org.apache.camel.CamelExchangeExc
> import org.apache.camel.Exchange;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.RollbackExchangeException;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.spi.ExceptionHandler;
> +import org.apache.camel.util.CamelLogger;
> import org.slf4j.LoggerFactory;
>
> /**
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java Mon Sep 5 10:35:35 2011
> @@ -30,8 +30,8 @@ import org.apache.camel.Exchange;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.Route;
> import org.apache.camel.management.event.ExchangeCompletedEvent;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.support.EventNotifierSupport;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
> import org.apache.camel.util.ServiceHelper;
> import org.slf4j.LoggerFactory;
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java Mon Sep 5 10:35:35 2011
> @@ -24,9 +24,9 @@ import javax.xml.bind.annotation.XmlRoot
> import org.apache.camel.Expression;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.Processor;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.processor.LogProcessor;
> import org.apache.camel.spi.RouteContext;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
>
> /**
>
> Copied: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java (from r1164512, camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java)
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java?p2=camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java&p1=camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java&r1=1164512&r2=1165232&rev=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java Mon Sep 5 10:35:35 2011
> @@ -21,9 +21,7 @@ import org.apache.camel.LoggingLevel;
> import org.apache.camel.Processor;
> import org.apache.camel.impl.DefaultExchangeFormatter;
> import org.apache.camel.spi.ExchangeFormatter;
> -import org.apache.camel.support.ServiceSupport;
> -import org.slf4j.Logger;
> -import org.slf4j.LoggerFactory;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * A {@link Processor} which just logs to a {@link CamelLogger} object which can be used
> @@ -34,33 +32,19 @@ import org.slf4j.LoggerFactory;
> *
> * @version
> */
> -public class CamelLogger extends ServiceSupport implements Processor {
> - private Logger log;
> - private LoggingLevel level;
> +public class CamelLogProcessor implements Processor {
> + private CamelLogger log;
> private ExchangeFormatter formatter = DefaultExchangeFormatter.getInstance();
>
> - public CamelLogger() {
> - this(LoggerFactory.getLogger(CamelLogger.class));
> + public CamelLogProcessor() {
> + this(new CamelLogger(CamelLogProcessor.class.getName()));
> }
> -
> - public CamelLogger(Logger log) {
> - this(log, LoggingLevel.INFO);
> - }
> -
> - public CamelLogger(Logger log, LoggingLevel level) {
> +
> + public CamelLogProcessor(CamelLogger log) {
> this.log = log;
> - this.level = level;
> - }
> -
> - public CamelLogger(String logName) {
> - this(LoggerFactory.getLogger(logName));
> - }
> -
> - public CamelLogger(String logName, LoggingLevel level) {
> - this(LoggerFactory.getLogger(logName), level);
> }
>
> - public CamelLogger(Logger log, ExchangeFormatter formatter) {
> + public CamelLogProcessor(CamelLogger log, ExchangeFormatter formatter) {
> this(log);
> this.formatter = formatter;
> }
> @@ -71,228 +55,34 @@ public class CamelLogger extends Service
> }
>
> public void process(Exchange exchange) {
> - switch (level) {
> - case DEBUG:
> - if (log.isDebugEnabled()) {
> - log.debug(logMessage(exchange));
> - }
> - break;
> - case ERROR:
> - if (log.isErrorEnabled()) {
> - log.error(logMessage(exchange));
> - }
> - break;
> - case INFO:
> - if (log.isInfoEnabled()) {
> - log.info(logMessage(exchange));
> - }
> - break;
> - case TRACE:
> - if (log.isTraceEnabled()) {
> - log.trace(logMessage(exchange));
> - }
> - break;
> - case WARN:
> - if (log.isWarnEnabled()) {
> - log.warn(logMessage(exchange));
> - }
> - break;
> - case OFF:
> - break;
> - default:
> - log.error("Unknown level: " + level + " when trying to log exchange: " + logMessage(exchange));
> + if (log.shouldLog()) {
> + log.log(formatter.format(exchange));
> }
> }
> -
> +
> public void process(Exchange exchange, Throwable exception) {
> - switch (level) {
> - case DEBUG:
> - if (log.isDebugEnabled()) {
> - log.debug(logMessage(exchange), exception);
> - }
> - break;
> - case ERROR:
> - if (log.isErrorEnabled()) {
> - log.error(logMessage(exchange), exception);
> - }
> - break;
> - case INFO:
> - if (log.isInfoEnabled()) {
> - log.info(logMessage(exchange), exception);
> - }
> - break;
> - case TRACE:
> - if (log.isTraceEnabled()) {
> - log.trace(logMessage(exchange), exception);
> - }
> - break;
> - case WARN:
> - if (log.isWarnEnabled()) {
> - log.warn(logMessage(exchange), exception);
> - }
> - break;
> - case OFF:
> - break;
> - default:
> - log.error("Unknown level: " + level + " when trying to log exchange: " + logMessage(exchange));
> + if (log.shouldLog()) {
> + log.log(formatter.format(exchange), exception);
> }
> }
>
> public void process(Exchange exchange, String message) {
> - switch (level) {
> - case DEBUG:
> - if (log.isDebugEnabled()) {
> - log.debug(logMessage(exchange, message));
> - }
> - break;
> - case ERROR:
> - if (log.isErrorEnabled()) {
> - log.error(logMessage(exchange, message));
> - }
> - break;
> - case INFO:
> - if (log.isInfoEnabled()) {
> - log.info(logMessage(exchange, message));
> - }
> - break;
> - case TRACE:
> - if (log.isTraceEnabled()) {
> - log.trace(logMessage(exchange, message));
> - }
> - break;
> - case WARN:
> - if (log.isWarnEnabled()) {
> - log.warn(logMessage(exchange, message));
> - }
> - break;
> - case OFF:
> - break;
> - default:
> - log.error("Unknown level: " + level + " when trying to log exchange: " + logMessage(exchange, message));
> + if (log.shouldLog()) {
> + log.log(formatter.format(exchange) + message);
> }
> }
>
> - public void log(String message, LoggingLevel loggingLevel) {
> - LoggingLevel oldLogLevel = getLevel();
> - setLevel(loggingLevel);
> - log(message);
> - setLevel(oldLogLevel);
> + public CamelLogger getLogger() {
> + return log;
> }
>
> - public void log(String message) {
> - switch (level) {
> - case DEBUG:
> - if (log.isDebugEnabled()) {
> - log.debug(message);
> - }
> - break;
> - case ERROR:
> - if (log.isErrorEnabled()) {
> - log.error(message);
> - }
> - break;
> - case INFO:
> - if (log.isInfoEnabled()) {
> - log.info(message);
> - }
> - break;
> - case TRACE:
> - if (log.isTraceEnabled()) {
> - log.trace(message);
> - }
> - break;
> - case WARN:
> - if (log.isWarnEnabled()) {
> - log.warn(message);
> - }
> - break;
> - case OFF:
> - break;
> - default:
> - log.error("Unknown level: " + level + " when trying to log exchange: " + message);
> - }
> + public void setLogName(String logName) {
> + log.setLogName(logName);
> }
> -
> - public void log(String message, Throwable exception, LoggingLevel loggingLevel) {
> - LoggingLevel oldLogLevel = getLevel();
> - setLevel(loggingLevel);
> - log(message, exception);
> - setLevel(oldLogLevel);
> - }
>
> - public void log(String message, Throwable exception) {
> - switch (level) {
> - case DEBUG:
> - if (log.isDebugEnabled()) {
> - log.debug(message, exception);
> - }
> - break;
> - case ERROR:
> - if (log.isErrorEnabled()) {
> - log.error(message, exception);
> - }
> - break;
> - case INFO:
> - if (log.isInfoEnabled()) {
> - log.info(message, exception);
> - }
> - break;
> - case TRACE:
> - if (log.isTraceEnabled()) {
> - log.trace(message, exception);
> - }
> - break;
> - case WARN:
> - if (log.isWarnEnabled()) {
> - log.warn(message, exception);
> - }
> - break;
> - case OFF:
> - break;
> - default:
> - log.error("Unknown level: " + level + " when trying to log exchange: " + message, exception);
> - }
> - }
> -
> - protected String logMessage(Exchange exchange) {
> - return formatter.format(exchange);
> - }
> -
> - protected String logMessage(Exchange exchange, String message) {
> - return formatter.format(exchange) + message;
> - }
> -
> - public Logger getLog() {
> - return log;
> - }
> -
> - public void setLog(Logger log) {
> - this.log = log;
> - }
> -
> - public LoggingLevel getLevel() {
> - return level;
> - }
> -
> public void setLevel(LoggingLevel level) {
> - this.level = level;
> + log.setLevel(level);
> }
>
> - public void setFormatter(ExchangeFormatter formatter) {
> - this.formatter = formatter;
> - }
>
> - public void setLogName(String logName) {
> - this.log = LoggerFactory.getLogger(logName);
> - }
> -
> - @Override
> - protected void doStart() throws Exception {
> - // noop
> - }
> -
> - @Override
> - protected void doStop() throws Exception {
> - // noop
> - }
> }
>
> Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
> ------------------------------------------------------------------------------
> svn:keywords = Rev Date
>
> Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CamelLogger.java Mon Sep 5 10:35:35 2011
> @@ -32,8 +32,9 @@ import org.slf4j.LoggerFactory;
> * The name <tt>CamelLogger</tt> has been chosen to avoid any name clash with log kits
> * which has a <tt>Logger</tt> class.
> *
> - * @version
> + * @deprecated This class has been split up into org.apache.camel.util.CamelLogger and org.apache.camel.processor.CamelLogProcessor
> */
> +@Deprecated
> public class CamelLogger extends ServiceSupport implements Processor {
> private Logger log;
> private LoggingLevel level;
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java Mon Sep 5 10:35:35 2011
> @@ -23,6 +23,7 @@ import org.apache.camel.Processor;
> import org.apache.camel.builder.ExpressionBuilder;
> import org.apache.camel.builder.PredicateBuilder;
> import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * Implements a <a
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java Mon Sep 5 10:35:35 2011
> @@ -21,6 +21,7 @@ import org.apache.camel.Exchange;
> import org.apache.camel.Predicate;
> import org.apache.camel.Processor;
> import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * Default error handler
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java Mon Sep 5 10:35:35 2011
> @@ -21,6 +21,7 @@ import org.apache.camel.AsyncProcessor;
> import org.apache.camel.Exchange;
> import org.apache.camel.Expression;
> import org.apache.camel.util.AsyncProcessorHelper;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * A processor which evaluates an Expression and logs it.
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java Mon Sep 5 10:35:35 2011
> @@ -19,6 +19,7 @@ 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
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java Mon Sep 5 10:35:35 2011
> @@ -34,6 +34,7 @@ import org.apache.camel.model.OnExceptio
> import org.apache.camel.spi.SubUnitOfWorkCallback;
> import org.apache.camel.util.AsyncProcessorHelper;
> import org.apache.camel.util.CamelContextHelper;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.EventHelper;
> import org.apache.camel.util.ExchangeHelper;
> import org.apache.camel.util.MessageHelper;
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java Mon Sep 5 10:35:35 2011
> @@ -23,7 +23,9 @@ import java.util.concurrent.atomic.Atomi
>
> import org.apache.camel.CamelContext;
> import org.apache.camel.Exchange;
> -import org.apache.camel.LoggingLevel;
> +import org.apache.camel.Processor;
> +import org.apache.camel.support.ServiceSupport;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> @@ -33,7 +35,7 @@ import org.slf4j.LoggerFactory;
> *
> * @version
> */
> -public class ThroughputLogger extends CamelLogger {
> +public class ThroughputLogger extends ServiceSupport implements Processor {
> private static final Logger LOG = LoggerFactory.getLogger(ThroughputLogger.class);
>
> private final AtomicInteger receivedCounter = new AtomicInteger();
> @@ -46,38 +48,21 @@ public class ThroughputLogger extends Ca
> private long startTime;
> private long groupStartTime;
> private String action = "Received";
> - private String logMessage;
> private CamelContext camelContext;
> private ScheduledExecutorService logSchedulerService;
> + private CamelLogger log;
>
> - public ThroughputLogger() {
> + public ThroughputLogger(CamelLogger log) {
> + this.log = log;
> }
>
> - public ThroughputLogger(Logger log) {
> - super(log);
> - }
> -
> - public ThroughputLogger(Logger log, LoggingLevel level) {
> - super(log, level);
> - }
> -
> - public ThroughputLogger(String logName) {
> - super(logName);
> - }
> -
> - public ThroughputLogger(String logName, LoggingLevel level) {
> - super(logName, level);
> - }
> -
> - public ThroughputLogger(String logName, LoggingLevel level, Integer groupSize) {
> - super(logName, level);
> + public ThroughputLogger(CamelLogger log, Integer groupSize) {
> + this(log);
> setGroupSize(groupSize);
> }
>
> - public ThroughputLogger(CamelContext camelContext, String logName, LoggingLevel level,
> - Long groupInterval, Long groupDelay, Boolean groupActiveOnly) {
> - super(logName, level);
> -
> + public ThroughputLogger(CamelLogger log, CamelContext camelContext, Long groupInterval, Long groupDelay, Boolean groupActiveOnly) {
> + this(log);
> this.camelContext = camelContext;
> setGroupInterval(groupInterval);
> setGroupActiveOnly(groupActiveOnly);
> @@ -86,15 +71,6 @@ public class ThroughputLogger extends Ca
> }
> }
>
> - public ThroughputLogger(String logName, int groupSize) {
> - super(logName);
> - setGroupSize(groupSize);
> - }
> -
> - public ThroughputLogger(int groupSize) {
> - setGroupSize(groupSize);
> - }
> -
> @Override
> public void process(Exchange exchange) {
> if (startTime == 0) {
> @@ -105,8 +81,7 @@ public class ThroughputLogger extends Ca
> //only process if groupSize is set...otherwise we're in groupInterval mode
> if (groupSize != null) {
> if (receivedCount % groupSize == 0) {
> - logMessage = createLogMessage(exchange, receivedCount);
> - super.process(exchange);
> + log.log(createLogMessage(exchange, receivedCount));
> }
> }
> }
> @@ -164,14 +139,9 @@ public class ThroughputLogger extends Ca
> public void setAction(String action) {
> this.action = action;
> }
> -
> - @Override
> - protected String logMessage(Exchange exchange) {
> - return logMessage;
> - }
> -
> +
> @Override
> - public void start() throws Exception {
> + public void doStart() throws Exception {
> // if an interval was specified, create a background thread
> if (groupInterval != null) {
> ObjectHelper.notNull(camelContext, "CamelContext", this);
> @@ -185,7 +155,7 @@ public class ThroughputLogger extends Ca
> }
>
> @Override
> - public void stop() throws Exception {
> + public void doStop() throws Exception {
> if (logSchedulerService != null) {
> camelContext.getExecutorServiceManager().shutdownNow(logSchedulerService);
> logSchedulerService = null;
> @@ -255,7 +225,7 @@ public class ThroughputLogger extends Ca
> String message = getAction() + ": " + currentCount + " new messages, with total " + receivedCount + " so far. Last group took: " + duration
> + " millis which is: " + numberFormat.format(rate)
> + " messages per second. average: " + numberFormat.format(average);
> - log(message);
> + log.log(message);
> }
>
> protected double messagesPerSecond(long messageCount, long startTime, long endTime) {
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java Mon Sep 5 10:35:35 2011
> @@ -40,7 +40,7 @@ import org.apache.camel.model.OnCompleti
> import org.apache.camel.model.OnExceptionDefinition;
> import org.apache.camel.model.ProcessorDefinition;
> import org.apache.camel.model.ProcessorDefinitionHelper;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.processor.CamelLogProcessor;
> import org.apache.camel.processor.DelegateAsyncProcessor;
> import org.apache.camel.spi.ExchangeFormatter;
> import org.apache.camel.spi.InterceptStrategy;
> @@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
> public class TraceInterceptor extends DelegateAsyncProcessor implements ExchangeFormatter {
> private static final transient Logger LOG = LoggerFactory.getLogger(TraceInterceptor.class);
>
> - private CamelLogger logger;
> + private CamelLogProcessor logger;
> private Producer traceEventProducer;
> private final ProcessorDefinition node;
> private final Tracer tracer;
> @@ -276,7 +276,7 @@ public class TraceInterceptor extends De
> return node;
> }
>
> - public CamelLogger getLogger() {
> + public CamelLogProcessor getLogger() {
> return logger;
> }
>
>
> Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java (original)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java Mon Sep 5 10:35:35 2011
> @@ -26,10 +26,10 @@ import org.apache.camel.Processor;
> import org.apache.camel.Service;
> import org.apache.camel.model.ProcessorDefinition;
> import org.apache.camel.model.RouteDefinitionHelper;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.processor.CamelLogProcessor;
> import org.apache.camel.spi.ExchangeFormatter;
> import org.apache.camel.spi.InterceptStrategy;
> -import org.slf4j.LoggerFactory;
> +import org.apache.camel.util.CamelLogger;
>
> /**
> * An interceptor strategy for tracing routes
> @@ -51,7 +51,7 @@ public class Tracer implements Intercept
> private String destinationUri;
> private Endpoint destination;
> private boolean useJpa;
> - private CamelLogger logger;
> + private CamelLogProcessor logger;
> private TraceInterceptorFactory traceInterceptorFactory = new DefaultTraceInterceptorFactory();
> private TraceEventHandler traceHandler;
> private String jpaTraceEventMessageClassName = JPA_TRACE_EVENT_MESSAGE;
> @@ -93,10 +93,9 @@ public class Tracer implements Intercept
> * @param formatter the exchange formatter
> * @return the logger to use
> */
> - public synchronized CamelLogger getLogger(ExchangeFormatter formatter) {
> + public synchronized CamelLogProcessor getLogger(ExchangeFormatter formatter) {
> if (logger == null) {
> - logger = new CamelLogger(LoggerFactory.getLogger(getLogName()), formatter);
> - logger.setLevel(getLogLevel());
> + logger = new CamelLogProcessor(new CamelLogger(getLogName(), getLogLevel()), formatter);
> }
> return logger;
> }
> @@ -165,7 +164,7 @@ public class Tracer implements Intercept
> this.logLevel = logLevel;
> // update logger if its in use
> if (logger != null) {
> - logger.setLevel(logLevel);
> + logger.getLogger().setLevel(logLevel);
> }
> }
>
> @@ -203,7 +202,7 @@ public class Tracer implements Intercept
> this.logName = logName;
> // update logger if its in use
> if (logger != null) {
> - logger.setLogName(logName);
> + logger.getLogger().setLogName(logName);
> }
> }
>
>
> Added: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java?rev=1165232&view=auto
> ==============================================================================
> --- camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java (added)
> +++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java Mon Sep 5 10:35:35 2011
> @@ -0,0 +1,168 @@
> +/**
> + * 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.util;
> +
> +import org.apache.camel.LoggingLevel;
> +import org.apache.camel.Processor;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
> +
> +/**
> + * A {@link Processor} which just logs to a {@link CamelLogger} object which can be used
> + * as an exception handler instead of using a dead letter queue.
> + * <p/>
> + * The name <tt>CamelLogger</tt> has been chosen to avoid any name clash with log kits
> + * which has a <tt>Logger</tt> class.
> + *
> + * @version
> + */
> +public class CamelLogger {
> + private Logger log;
> + private LoggingLevel level;
> +
> + public CamelLogger() {
> + this(LoggerFactory.getLogger(CamelLogger.class));
> + }
> +
> + public CamelLogger(Logger log) {
> + this(log, LoggingLevel.INFO);
> + }
> +
> + public CamelLogger(Logger log, LoggingLevel level) {
> + this.log = log;
> + this.level = level;
> + }
> +
> + public CamelLogger(String logName) {
> + this(LoggerFactory.getLogger(logName));
> + }
> +
> + public CamelLogger(String logName, LoggingLevel level) {
> + this(LoggerFactory.getLogger(logName), level);
> + }
> +
> + @Override
> + public String toString() {
> + return "Logger[" + log + "]";
> + }
> +
> + public void log(String message, LoggingLevel loggingLevel) {
> + LoggingLevel oldLogLevel = getLevel();
> + setLevel(loggingLevel);
> + log(message);
> + setLevel(oldLogLevel);
> + }
> +
> + public void log(String message) {
> + if (shouldLog(log, level)) {
> + log(log, level,message);
> + }
> + }
> +
> + public void log(String message, Throwable exception, LoggingLevel loggingLevel) {
> + log(log, loggingLevel, message, exception);
> + }
> +
> + public void log(String message, Throwable exception) {
> + if (shouldLog(log, level)) {
> + log(log, level, message, exception);
> + }
> + }
> +
> + public Logger getLog() {
> + return log;
> + }
> +
> + public void setLog(Logger log) {
> + this.log = log;
> + }
> +
> + public LoggingLevel getLevel() {
> + return level;
> + }
> +
> + public void setLevel(LoggingLevel level) {
> + this.level = level;
> + }
> +
> + public void setLogName(String logName) {
> + this.log = LoggerFactory.getLogger(logName);
> + }
> +
> + public static boolean shouldLog(Logger log, LoggingLevel level) {
> + if (level == null) {
> + throw new NullPointerException("Log level may not be null");
> + }
> + return level == LoggingLevel.DEBUG && log.isDebugEnabled()
> + || level == LoggingLevel.ERROR && log.isErrorEnabled()
> + || level == LoggingLevel.INFO && log.isInfoEnabled()
> + || level == LoggingLevel.TRACE && log.isTraceEnabled()
> + || level == LoggingLevel.WARN && log.isWarnEnabled();
> + }
> +
> + public static void log(Logger log, LoggingLevel level, String message) {
> + if (level == null) {
> + throw new NullPointerException("Log level may not be null");
> + }
> + switch (level) {
> + case DEBUG:
> + log.debug(message);
> + break;
> + case ERROR:
> + log.error(message);
> + break;
> + case INFO:
> + log.info(message);
> + break;
> + case TRACE:
> + log.trace(message);
> + break;
> + case WARN:
> + log.warn(message);
> + break;
> + }
> + }
> +
> + public static void log(Logger log, LoggingLevel level, String message, Throwable th) {
> + if (level == null) {
> + throw new NullPointerException("Log level may not be null");
> + }
> + switch (level) {
> + case DEBUG:
> + log.debug(message, th);
> + break;
> + case ERROR:
> + log.error(message, th);
> + break;
> + case INFO:
> + log.info(message, th);
> + break;
> + case TRACE:
> + log.trace(message, th);
> + break;
> + case WARN:
> + log.warn(message, th);
> + break;
> + }
> + }
> +
> + public boolean shouldLog() {
> + return CamelLogger.shouldLog(log, level);
> + }
> +
> +}
>
> Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java (original)
> +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java Mon Sep 5 10:35:35 2011
> @@ -20,7 +20,7 @@ import org.apache.camel.ContextTestSuppo
> import org.apache.camel.Exchange;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.component.mock.MockEndpoint;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.processor.CamelLogProcessor;
>
> /**
> * @version
> @@ -29,7 +29,7 @@ public class LogEndpointTest extends Con
>
> private static Exchange logged;
>
> - private static class MyLogger extends CamelLogger {
> + private static class MyLogger extends CamelLogProcessor {
>
> @Override
> public void process(Exchange exchange) {
> @@ -64,7 +64,6 @@ public class LogEndpointTest extends Con
> end.setLogger(new MyLogger());
>
> assertEquals("log:myLogger", end.getEndpointUri());
> - assertNotNull(end.getLogger());
>
> from("direct:start").to(end).to("mock:result");
> }
>
> Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
> URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java (original)
> +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java Mon Sep 5 10:35:35 2011
> @@ -16,16 +16,27 @@
> */
> package org.apache.camel.processor;
>
> +import org.apache.camel.util.CamelLogger;
> +import org.easymock.EasyMock;
> +import org.slf4j.Logger;
> import junit.framework.TestCase;
>
> public class ThroughPutLoggerTest extends TestCase {
>
> public void testLogStringDurationIsNotZero() throws Exception {
> - ThroughputLogger underTest = new ThroughputLogger(10);
> + Logger logger = EasyMock.createMock(Logger.class);
> + logger.isInfoEnabled();
> + EasyMock.expectLastCall().andReturn(true).atLeastOnce();
> + logger.info(EasyMock.startsWith("Received: 10"));
> + EasyMock.expectLastCall().once();
> + logger.info(EasyMock.startsWith("Received: 20"));
> + EasyMock.expectLastCall().once();
> + EasyMock.replay(logger);
> + ThroughputLogger underTest = new ThroughputLogger(new CamelLogger(logger));
> + underTest.setGroupSize(10);
> for (int i = 0; i < 25; i++) {
> underTest.process(null);
> }
> - String message = (String) underTest.logMessage(null);
> - assertTrue("consumed 20 :" + message, message.contains("20"));
> + EasyMock.verify(logger);
> }
> }
>
> Propchange: camel/trunk/components/
> ------------------------------------------------------------------------------
> --- svn:ignore (original)
> +++ svn:ignore Mon Sep 5 10:35:35 2011
> @@ -1 +1,3 @@
> target
> +.project
> +.settings
>
> Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java (original)
> +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java Mon Sep 5 10:35:35 2011
> @@ -16,6 +16,8 @@
> */
> package org.apache.camel.component.jms;
>
> +import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
> +
> import javax.jms.ConnectionFactory;
> import javax.jms.DeliveryMode;
> import javax.jms.ExceptionListener;
> @@ -28,7 +30,6 @@ import org.apache.camel.Processor;
> import org.apache.camel.Producer;
> import org.apache.camel.ResolveEndpointFailedException;
> import org.apache.camel.impl.JndiRegistry;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.test.junit4.CamelTestSupport;
> import org.junit.Test;
> import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
> @@ -40,13 +41,18 @@ import org.springframework.jms.listener.
> import org.springframework.jms.support.converter.SimpleMessageConverter;
> import org.springframework.util.ErrorHandler;
>
> -import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
> -
> /**
> * @version
> */
> public class JmsEndpointConfigurationTest extends CamelTestSupport {
>
> + private final class FailProcessor implements Processor {
> + @Override
> + public void process(Exchange exchange) throws Exception {
> + fail("Should not be reached");
> + }
> + }
> +
> private ConnectionFactory cf = new ActiveMQConnectionFactory("vm:myBroker");
>
> private Processor dummyProcessor = new Processor() {
> @@ -182,7 +188,7 @@ public class JmsEndpointConfigurationTes
> public void testInvalidMaxConcurrentConsumers() throws Exception {
> JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2");
> try {
> - endpoint.createConsumer(new CamelLogger());
> + endpoint.createConsumer(new FailProcessor());
> fail("Should have thrown exception");
> } catch (IllegalArgumentException e) {
> assertEquals("Property maxConcurrentConsumers: 2 must be higher than concurrentConsumers: 5", e.getMessage());
> @@ -194,7 +200,7 @@ public class JmsEndpointConfigurationTes
> JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2&consumerType=Simple");
>
> try {
> - endpoint.createConsumer(new CamelLogger());
> + endpoint.createConsumer(new FailProcessor());
> fail("Should have thrown exception");
> } catch (IllegalArgumentException e) {
> assertEquals("Property maxConcurrentConsumers: 2 must be higher than concurrentConsumers: 5", e.getMessage());
>
> Modified: camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java (original)
> +++ camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java Mon Sep 5 10:35:35 2011
> @@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
> import org.apache.camel.Processor;
> import org.apache.camel.converter.IOConverter;
> import org.apache.camel.impl.DefaultConsumer;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ExchangeHelper;
> import org.apache.mina.common.IoAcceptor;
> import org.apache.mina.common.IoHandler;
>
> Modified: camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java (original)
> +++ camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java Mon Sep 5 10:35:35 2011
> @@ -26,7 +26,7 @@ import org.apache.camel.ExchangeTimedOut
> import org.apache.camel.ServicePoolAware;
> import org.apache.camel.converter.IOConverter;
> import org.apache.camel.impl.DefaultProducer;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ExchangeHelper;
> import org.apache.mina.common.ConnectFuture;
> import org.apache.mina.common.IoConnector;
>
> Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java (original)
> +++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java Mon Sep 5 10:35:35 2011
> @@ -29,7 +29,7 @@ import org.apache.camel.ServicePoolAware
> import org.apache.camel.converter.IOConverter;
> import org.apache.camel.impl.DefaultAsyncProducer;
> import org.apache.camel.impl.DefaultExchange;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ExchangeHelper;
> import org.jboss.netty.bootstrap.ClientBootstrap;
> import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
>
> Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java (original)
> +++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java Mon Sep 5 10:35:35 2011
> @@ -23,7 +23,7 @@ import org.apache.camel.component.netty.
> import org.apache.camel.component.netty.NettyHelper;
> import org.apache.camel.component.netty.NettyPayloadHelper;
> import org.apache.camel.converter.IOConverter;
> -import org.apache.camel.processor.CamelLogger;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ExchangeHelper;
> import org.jboss.netty.channel.ChannelHandler;
> import org.jboss.netty.channel.ChannelHandlerContext;
>
> Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java (original)
> +++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java Mon Sep 5 10:35:35 2011
> @@ -21,10 +21,10 @@ import org.apache.camel.CamelContext;
> import org.apache.camel.Exchange;
> import org.apache.camel.Predicate;
> import org.apache.camel.Processor;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.processor.RedeliveryErrorHandler;
> import org.apache.camel.processor.RedeliveryPolicy;
> import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
> import org.springframework.transaction.TransactionDefinition;
> import org.springframework.transaction.TransactionStatus;
>
> Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java (original)
> +++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java Mon Sep 5 10:35:35 2011
> @@ -21,9 +21,9 @@ import java.util.Map;
> import org.apache.camel.LoggingLevel;
> import org.apache.camel.Processor;
> import org.apache.camel.builder.DefaultErrorHandlerBuilder;
> -import org.apache.camel.processor.CamelLogger;
> import org.apache.camel.spi.RouteContext;
> import org.apache.camel.spi.TransactedPolicy;
> +import org.apache.camel.util.CamelLogger;
> import org.apache.camel.util.ObjectHelper;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/log/SpringLogTest-context.xml
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/log/SpringLogTest-context.xml?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/log/SpringLogTest-context.xml (original)
> +++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/log/SpringLogTest-context.xml Mon Sep 5 10:35:35 2011
> @@ -26,7 +26,7 @@
> <property name="logger" ref="myLogger"/>
> </bean>
>
> - <bean id="myLogger" class="org.apache.camel.processor.CamelLogger">
> + <bean id="myLogger" class="org.apache.camel.processor.CamelLogProcessor">
> <property name="level" value="WARN"/>
> <property name="logName" value="cool"/>
> </bean>
>
> Modified: camel/trunk/parent/pom.xml
> URL: http://svn.apache.org/viewvc/camel/trunk/parent/pom.xml?rev=1165232&r1=1165231&r2=1165232&view=diff
> ==============================================================================
> --- camel/trunk/parent/pom.xml (original)
> +++ camel/trunk/parent/pom.xml Mon Sep 5 10:35:35 2011
> @@ -1286,6 +1286,11 @@
> </dependency>
> <dependency>
> <groupId>org.easymock</groupId>
> + <artifactId>easymock</artifactId>
> + <version>${easymock-version}</version>
> + </dependency>
> + <dependency>
> + <groupId>org.easymock</groupId>
> <artifactId>easymockclassextension</artifactId>
> <version>${easymock-version}</version>
> </dependency>
>
>
>
--
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/