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();