You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/04/18 11:10:13 UTC

svn commit: r1327430 - in /camel/trunk/camel-core/src/main/java/org/apache/camel/processor: ./ validation/

Author: davsclaus
Date: Wed Apr 18 09:10:12 2012
New Revision: 1327430

URL: http://svn.apache.org/viewvc?rev=1327430&view=rev
Log:
CAMEL-5188: All EIPs from Camel now offers JMX utilization stats. Also make sure transform/setBody does the same logic to be consistent.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.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/RollbackProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/PredicateValidatingProcessor.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ConvertBodyProcessor.java Wed Apr 18 09:10:12 2012
@@ -19,27 +19,31 @@ package org.apache.camel.processor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * A processor which converts the payload of the input message to be of the given type
  * <p/>
- * If the convertions fails an {@link org.apache.camel.InvalidPayloadException} is thrown.
+ * If the conversion fails an {@link org.apache.camel.InvalidPayloadException} is thrown.
  *
  * @version 
  */
-public class ConvertBodyProcessor implements Processor {
+public class ConvertBodyProcessor extends ServiceSupport implements Processor {
     private final Class<?> type;
     private final String charset;
 
     public ConvertBodyProcessor(Class<?> type) {
+        ObjectHelper.notNull(type, "type", this);
         this.type = type;
         this.charset = null;
     }
 
     public ConvertBodyProcessor(Class<?> type, String charset) {
+        ObjectHelper.notNull(type, "type", this);
         this.type = type;
-        this.charset = charset;
+        this.charset = IOHelper.normalizeCharset(charset);
     }
 
     @Override
@@ -50,7 +54,7 @@ public class ConvertBodyProcessor implem
     public void process(Exchange exchange) throws Exception {
         Message in = exchange.getIn();
         if (charset != null) {
-            exchange.setProperty(Exchange.CHARSET_NAME, IOHelper.normalizeCharset(charset));
+            exchange.setProperty(Exchange.CHARSET_NAME, charset);
         }
 
         // only convert if the is a body
@@ -70,4 +74,14 @@ public class ConvertBodyProcessor implem
     public Class<?> getType() {
         return type;
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java Wed Apr 18 09:10:12 2012
@@ -19,8 +19,9 @@ package org.apache.camel.processor;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
+import org.apache.camel.support.ServiceSupport;
 
-public class ExchangePatternProcessor implements Processor {
+public class ExchangePatternProcessor extends ServiceSupport implements Processor {
     private ExchangePattern exchangePattern = ExchangePattern.InOnly;
     
     public ExchangePatternProcessor() {
@@ -42,4 +43,14 @@ public class ExchangePatternProcessor im
     public String toString() {
         return "SetExchangePattern[" + exchangePattern + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

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=1327430&r1=1327429&r2=1327430&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 Wed Apr 18 09:10:12 2012
@@ -21,15 +21,16 @@ import org.apache.camel.AsyncProcessor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Traceable;
+import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.AsyncProcessorHelper;
 import org.apache.camel.util.CamelLogger;
 
 /**
- * A processor which evaluates an Expression and logs it.
+ * A processor which evaluates an {@link Expression} and logs it.
  *
  * @version 
  */
-public class LogProcessor implements AsyncProcessor, Traceable {
+public class LogProcessor extends ServiceSupport implements AsyncProcessor, Traceable {
 
     private final Expression expression;
     private final CamelLogger logger;
@@ -67,4 +68,14 @@ public class LogProcessor implements Asy
     public String getTraceLabel() {
         return "log[" + expression + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java Wed Apr 18 09:10:12 2012
@@ -20,13 +20,14 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.RollbackExchangeException;
 import org.apache.camel.Traceable;
+import org.apache.camel.support.ServiceSupport;
 
 /**
  * Processor for marking an {@link org.apache.camel.Exchange} to rollback.
  *
  * @version 
  */
-public class RollbackProcessor implements Processor, Traceable {
+public class RollbackProcessor extends ServiceSupport implements Processor, Traceable {
 
     private boolean markRollbackOnly;
     private boolean markRollbackOnlyLast;
@@ -90,4 +91,14 @@ public class RollbackProcessor implement
     public void setMarkRollbackOnlyLast(boolean markRollbackOnlyLast) {
         this.markRollbackOnlyLast = markRollbackOnlyLast;
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SetBodyProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SetBodyProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SetBodyProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SetBodyProcessor.java Wed Apr 18 09:10:12 2012
@@ -22,11 +22,12 @@ import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.Traceable;
 import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.support.ServiceSupport;
 
 /**
- * A processor which sets the body on the IN message with an expression
+ * A processor which sets the body on the IN message with an {@link Expression}
  */
-public class SetBodyProcessor implements Processor, Traceable {
+public class SetBodyProcessor extends ServiceSupport implements Processor, Traceable {
     private final Expression expression;
 
     public SetBodyProcessor(Expression expression) {
@@ -53,4 +54,14 @@ public class SetBodyProcessor implements
     public String getTraceLabel() {
         return "setBody[" + expression + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }
\ No newline at end of file

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java Wed Apr 18 09:10:12 2012
@@ -24,11 +24,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.support.ServiceSupport;
 
 /**
  * A processor that sorts the expression using a comparator
  */
-public class SortProcessor<T> implements Processor {
+public class SortProcessor<T> extends ServiceSupport implements Processor {
 
     private final Expression expression;
     private final Comparator<? super T> comparator;
@@ -57,6 +58,16 @@ public class SortProcessor<T> implements
     public String toString() {
         return "Sort[" + expression + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }
 
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java Wed Apr 18 09:10:12 2012
@@ -18,13 +18,14 @@ package org.apache.camel.processor;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
+import org.apache.camel.support.ServiceSupport;
 
 /**
  * Stops continue processing the route and marks it as complete.
  *
  * @version 
  */
-public class StopProcessor implements Processor {
+public class StopProcessor extends ServiceSupport implements Processor {
 
     public void process(Exchange exchange) throws Exception {
         // mark the exchange to stop continue routing
@@ -35,4 +36,14 @@ public class StopProcessor implements Pr
     public String toString() {
         return "Stop";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java Wed Apr 18 09:10:12 2012
@@ -19,14 +19,17 @@ package org.apache.camel.processor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.Traceable;
+import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
 
 /**
- * The processor which implements the ThrowException DSL
+ * The processor which sets an {@link Exception} on the {@link Exchange}
  */
-public class ThrowExceptionProcessor implements Processor, Traceable {
+public class ThrowExceptionProcessor extends ServiceSupport implements Processor, Traceable {
     private final Exception exception;
 
     public ThrowExceptionProcessor(Exception exception) {
+        ObjectHelper.notNull(exception, "exception", this);
         this.exception = exception;
     }
 
@@ -44,4 +47,14 @@ public class ThrowExceptionProcessor imp
     public String toString() {
         return "ThrowException";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }
\ No newline at end of file

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java Wed Apr 18 09:10:12 2012
@@ -18,26 +18,34 @@ package org.apache.camel.processor;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
+import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.Traceable;
+import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
 
 /**
- * A processor which sets the body on the OUT message with an expression
+ * A processor which sets the body on the OUT message with an {@link Expression}
  */
-public class TransformProcessor implements Processor, Traceable {
+public class TransformProcessor extends ServiceSupport implements Processor, Traceable {
     private final Expression expression;
 
     public TransformProcessor(Expression expression) {
+        ObjectHelper.notNull(expression, "expression", this);
         this.expression = expression;
     }
 
     public void process(Exchange exchange) throws Exception {
         Object newBody = expression.evaluate(exchange, Object.class);
-        exchange.getOut().setBody(newBody);
 
-        // propagate headers and attachments
-        exchange.getOut().getHeaders().putAll(exchange.getIn().getHeaders());
-        exchange.getOut().setAttachments(exchange.getIn().getAttachments());
+        Message old = exchange.getIn();
+
+        // create a new message container so we do not drag specialized message objects along
+        Message msg = new DefaultMessage();
+        msg.copyFrom(old);
+        msg.setBody(newBody);
+        exchange.setOut(msg);
     }
 
     @Override
@@ -48,4 +56,14 @@ public class TransformProcessor implemen
     public String getTraceLabel() {
         return "transform[" + expression + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/PredicateValidatingProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/PredicateValidatingProcessor.java?rev=1327430&r1=1327429&r2=1327430&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/PredicateValidatingProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/validation/PredicateValidatingProcessor.java Wed Apr 18 09:10:12 2012
@@ -20,22 +20,24 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.Traceable;
+import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * A processor which validates the content of the inbound message body
- * against a predicate.
+ * A processor which validates the content of the inbound message body against a {@link Predicate}.
  * 
  * @version 
  */
-public class PredicateValidatingProcessor implements Processor, Traceable {
+public class PredicateValidatingProcessor extends ServiceSupport implements Processor, Traceable {
     
     private static final Logger LOG = LoggerFactory.getLogger(PredicateValidatingProcessor.class);
 
     private final Predicate predicate;
     
     public PredicateValidatingProcessor(Predicate predicate) {
+        ObjectHelper.notNull(predicate, "predicate", this);
         this.predicate = predicate;
     }
 
@@ -63,4 +65,14 @@ public class PredicateValidatingProcesso
     public String getTraceLabel() {
         return "validate[" + predicate + "]";
     }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
 }