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 2010/03/17 20:40:23 UTC

svn commit: r924437 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/processor/interceptor/ camel-core/src/main/java/org/apache/camel/util/concurrent/ camel-core/src/test/java/org/apache/camel/proc...

Author: davsclaus
Date: Wed Mar 17 19:40:23 2010
New Revision: 924437

URL: http://svn.apache.org/viewvc?rev=924437&view=rev
Log:
CAMEL-2556: Expose getTracedExchange on TraceEventMessage for special end user requirements. Fixed CS.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/ThreadPoolRejectedPolicy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceEventMessage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/concurrent/ExecutorServiceHelper.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java
    camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/processor/interceptor/jpa/JpaTraceEventMessage.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/ThreadPoolRejectedPolicy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/ThreadPoolRejectedPolicy.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/ThreadPoolRejectedPolicy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/ThreadPoolRejectedPolicy.java Wed Mar 17 19:40:23 2010
@@ -1,3 +1,19 @@
+/**
+ * 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;
 
 import java.util.concurrent.RejectedExecutionHandler;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java Wed Mar 17 19:40:23 2010
@@ -30,7 +30,7 @@ import org.apache.camel.util.MessageHelp
  * Default {@link TraceEventMessage}.
  */
 public final class DefaultTraceEventMessage implements Serializable, TraceEventMessage {
-    private static final long serialVersionUID = -4549012920528941202L;
+    private static final long serialVersionUID = -4549012920528941203L;
 
     private Date timestamp;
     private String fromEndpointUri;
@@ -47,6 +47,7 @@ public final class DefaultTraceEventMess
     private String outBody;
     private String outBodyType;
     private String causedByException;
+    private final transient Exchange tracedExchange;
 
     /**
      * Creates a {@link DefaultTraceEventMessage} based on the given node it was traced while processing
@@ -56,6 +57,7 @@ public final class DefaultTraceEventMess
      * @param exchange the current {@link Exchange}
      */
     public DefaultTraceEventMessage(final Date timestamp, final ProcessorDefinition<?> toNode, final Exchange exchange) {
+        this.tracedExchange = exchange;
         Message in = exchange.getIn();
 
         // need to use defensive copies to avoid Exchange altering after the point of interception
@@ -227,6 +229,10 @@ public final class DefaultTraceEventMess
         this.causedByException = causedByException;
     }
 
+    public Exchange getTracedExchange() {
+        return tracedExchange;
+    }
+
     @Override
     public String toString() {
         return "TraceEventMessage[" + exchangeId + "] on node: " + toNode;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceEventMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceEventMessage.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceEventMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceEventMessage.java Wed Mar 17 19:40:23 2010
@@ -18,10 +18,16 @@ package org.apache.camel.processor.inter
 
 import java.util.Date;
 
+import org.apache.camel.Exchange;
+
 /**
  * A trace event message that contains decomposed information about the traced
  * {@link org.apache.camel.Exchange} at the point of interception. The information is stored as snapshot copies
  * using String types.
+ * <p/>
+ * Notice not all implementations may provide direct access to the traced {@link Exchange} using
+ * the {@link #getTracedExchange()} method, and thus this method may return <tt>null</tt>.
+ * For example the JPA implementation will return <tt>null</tt>.
  */
 public interface TraceEventMessage {
 
@@ -75,4 +81,14 @@ public interface TraceEventMessage {
      * Gets the caused by exception (ie {@link org.apache.camel.Exchange#getException() Exchange#getException()}.
      */
     String getCausedByException();
+
+    /**
+     * Gets the traced {@link Exchange}.
+     * <p/>
+     * Not all implementations may provide direct access to the traced {@link Exchange} and thus this
+     * method may return <tt>null</tt>. For example the JPA implementation will return <tt>null</tt>.
+     *
+     * @return the traced {@link Exchange}, however it can be <tt>null</tt> in some implementations.
+     */
+    Exchange getTracedExchange();
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/concurrent/ExecutorServiceHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/concurrent/ExecutorServiceHelper.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/concurrent/ExecutorServiceHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/concurrent/ExecutorServiceHelper.java Wed Mar 17 19:40:23 2010
@@ -190,12 +190,8 @@ public final class ExecutorServiceHelper
             throw new IllegalArgumentException("MaxPoolSize must be >= corePoolSize, was " + maxPoolSize + " >= " + corePoolSize);
         }
 
-        if (maxQueueSize == 0) {
-            throw new IllegalArgumentException("MaxQueueSize cannot be 0.");
-        }
-
         BlockingQueue<Runnable> queue;
-        if (maxQueueSize < 0) {
+        if (maxQueueSize <= 0) {
             queue = new LinkedBlockingQueue<Runnable>();
         } else {
             queue = new LinkedBlockingQueue<Runnable>(maxQueueSize);

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java Wed Mar 17 19:40:23 2010
@@ -116,6 +116,8 @@ public class DefaultTraceEventMessageTes
 
         em.setShortExchangeId("123");
         assertEquals("123", em.getShortExchangeId());
+
+        assertSame(exchange, em.getTracedExchange());
     }
 
     @Override

Modified: camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/processor/interceptor/jpa/JpaTraceEventMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/processor/interceptor/jpa/JpaTraceEventMessage.java?rev=924437&r1=924436&r2=924437&view=diff
==============================================================================
--- camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/processor/interceptor/jpa/JpaTraceEventMessage.java (original)
+++ camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/processor/interceptor/jpa/JpaTraceEventMessage.java Wed Mar 17 19:40:23 2010
@@ -21,7 +21,9 @@ import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
+import org.apache.camel.Exchange;
 import org.apache.camel.processor.interceptor.TraceEventMessage;
 
 /**
@@ -184,6 +186,11 @@ public class JpaTraceEventMessage implem
         this.causedByException = causedByException;
     }
 
+    @Transient
+    public Exchange getTracedExchange() {
+        return null;
+    }
+
     @Override
     public String toString() {
         return "TraceEventMessage[" + getExchangeId() + "] on node: " + getToNode();