You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2007/09/04 09:25:04 UTC
svn commit: r572558 - in /activemq/camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/ main/java/org/apache/camel/model/
test/java/org/apache/camel/
Author: gnodet
Date: Tue Sep 4 00:25:03 2007
New Revision: 572558
URL: http://svn.apache.org/viewvc?rev=572558&view=rev
Log:
Add methods for supporting faults
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/TestSupport.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java Tue Sep 4 00:25:03 2007
@@ -81,8 +81,26 @@
* Returns a predicate and value builder for the outbound message body as a
* specific type
*/
- public static <E extends Exchange, T> ValueBuilder<E> outBody(Class<T> type) {
+ public static <E extends Exchange, T> ValueBuilder<E> outBodyAs(Class<T> type) {
Expression<E> expression = ExpressionBuilder.<E, T> outBodyExpression(type);
+ return new ValueBuilder<E>(expression);
+ }
+
+ /**
+ * Returns a predicate and value builder for the fault body on an
+ * exchange
+ */
+ public static <E extends Exchange> ValueBuilder<E> faultBody() {
+ Expression<E> expression = ExpressionBuilder.faultBodyExpression();
+ return new ValueBuilder<E>(expression);
+ }
+
+ /**
+ * Returns a predicate and value builder for the fault message body as a
+ * specific type
+ */
+ public static <E extends Exchange, T> ValueBuilder<E> faultBodyAs(Class<T> type) {
+ Expression<E> expression = ExpressionBuilder.<E, T> faultBodyExpression(type);
return new ValueBuilder<E>(expression);
}
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java Tue Sep 4 00:25:03 2007
@@ -71,7 +71,7 @@
* Returns a predicate and value builder for the inbound message body as a
* specific type
*/
- public <T> ValueBuilder bodyAs(Class<T> type) {
+ public <T> ValueBuilder body(Class<T> type) {
return Builder.bodyAs(type);
}
@@ -88,8 +88,25 @@
* specific type
*/
public <T> ValueBuilder outBody(Class<T> type) {
- return Builder.outBody(type);
+ return Builder.outBodyAs(type);
}
+
+ /**
+ * Returns a predicate and value builder for the fault body on an
+ * exchange
+ */
+ public ValueBuilder faultBody() {
+ return Builder.faultBody();
+ }
+
+ /**
+ * Returns a predicate and value builder for the fault message body as a
+ * specific type
+ */
+ public <T> ValueBuilder faultBodyAs(Class<T> type) {
+ return Builder.faultBodyAs(type);
+ }
+
/**
* Returns a value builder for the given system property
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java Tue Sep 4 00:25:03 2007
@@ -261,6 +261,40 @@
}
};
}
+
+ /**
+ * Returns the expression for the fault messages body
+ */
+ public static <E extends Exchange> Expression<E> faultBodyExpression() {
+ return new Expression<E>() {
+ public Object evaluate(E exchange) {
+ return exchange.getFault().getBody();
+ }
+
+ @Override
+ public String toString() {
+ return "faultBody";
+ }
+ };
+ }
+
+ /**
+ * Returns the expression for the exchanges fault message body converted
+ * to the given type
+ */
+ public static <E extends Exchange, T> Expression<E> faultBodyExpression(final Class<T> type) {
+ return new Expression<E>() {
+ public Object evaluate(E exchange) {
+ return exchange.getFault().getBody(type);
+ }
+
+ @Override
+ public String toString() {
+ return "faultBodyAs[" + type.getName() + "]";
+ }
+ };
+ }
+
/**
* Returns the expression for the exchange
*/
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java Tue Sep 4 00:25:03 2007
@@ -51,7 +51,7 @@
}
/**
- * Creates a processor which sets the body of the IN message to the value of the expression
+ * Creates a processor which sets the body of the OUT message to the value of the expression
*/
public static Processor setOutBody(final Expression expression) {
return new Processor() {
@@ -68,6 +68,23 @@
}
/**
+ * Creates a processor which sets the body of the FAULT message to the value of the expression
+ */
+ public static Processor setFaultBody(final Expression expression) {
+ return new Processor() {
+ public void process(Exchange exchange) {
+ Object newBody = expression.evaluate(exchange);
+ exchange.getFault().setBody(newBody);
+ }
+
+ @Override
+ public String toString() {
+ return "setFaultBody(" + expression + ")";
+ }
+ };
+ }
+
+ /**
* Sets the header on the IN message
*/
public static Processor setHeader(final String name, final Expression expression) {
@@ -102,6 +119,23 @@
}
/**
+ * Sets the header on the FAULT message
+ */
+ public static Processor setFaultHeader(final String name, final Expression expression) {
+ return new Processor() {
+ public void process(Exchange exchange) {
+ Object value = expression.evaluate(exchange);
+ exchange.getFault().setHeader(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return "setFaultHeader(" + name + ", " + expression + ")";
+ }
+ };
+ }
+
+ /**
* Sets the property on the exchange
*/
public static Processor setProperty(final String name, final Expression expression) {
@@ -146,6 +180,22 @@
@Override
public String toString() {
return "removeOutHeader(" + name + ")";
+ }
+ };
+ }
+
+ /**
+ * Removes the header on the FAULT message
+ */
+ public static Processor removeFaultHeader(final String name) {
+ return new Processor() {
+ public void process(Exchange exchange) {
+ exchange.getFault().removeHeader(name);
+ }
+
+ @Override
+ public String toString() {
+ return "removeFaultHeader(" + name + ")";
}
};
}
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java Tue Sep 4 00:25:03 2007
@@ -660,6 +660,13 @@
return process(ProcessorBuilder.setOutBody(Builder.outBody().convertTo(type)));
}
+ /**
+ * Converts the FAULT message body to the specified type
+ */
+ public ProcessorType convertFaultBodyTo(Class type) {
+ return process(ProcessorBuilder.setFaultBody(Builder.faultBody().convertTo(type)));
+ }
+
// Properties
// -------------------------------------------------------------------------
Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/TestSupport.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/TestSupport.java?rev=572558&r1=572557&r2=572558&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/TestSupport.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/TestSupport.java Tue Sep 4 00:25:03 2007
@@ -76,12 +76,30 @@
}
/**
+ * Returns a predicate and value builder for the fault message body as a
+ * specific type
+ */
+
+ public <T> ValueBuilder faultBodyAs(Class<T> type) {
+ return Builder.faultBodyAs(type);
+ }
+
+ /**
+ * Returns a predicate and value builder for the fault body on an
+ * exchange
+ */
+
+ public ValueBuilder faultBody() {
+ return Builder.faultBody();
+ }
+
+ /**
* Returns a predicate and value builder for the outbound message body as a
* specific type
*/
- public <T> ValueBuilder outBody(Class<T> type) {
- return Builder.outBody(type);
+ public <T> ValueBuilder outBodyAs(Class<T> type) {
+ return Builder.outBodyAs(type);
}
/**