You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2009/02/27 14:11:23 UTC
svn commit: r748502 - in
/camel/trunk/camel-core/src/main/java/org/apache/camel:
impl/DefaultExchange.java util/ExchangeHelper.java
Author: jstrachan
Date: Fri Feb 27 13:11:22 2009
New Revision: 748502
URL: http://svn.apache.org/viewvc?rev=748502&view=rev
Log:
patch to allow type converters to work a bit more gracefully if you send to an endpoint which hasn't been configured to have a CamelContext
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?rev=748502&r1=748501&r2=748502&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java Fri Feb 27 13:11:22 2009
@@ -26,8 +26,10 @@
import org.apache.camel.ExchangeProperty;
import org.apache.camel.Message;
import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.TypeConverter;
import org.apache.camel.spi.UnitOfWork;
import org.apache.camel.util.UuidGenerator;
+import org.apache.camel.util.ExchangeHelper;
import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
/**
@@ -146,7 +148,7 @@
validateExchangePropertyIsExpectedType(property, type, value);
}
- return getContext().getTypeConverter().convertTo(type, this, value);
+ return ExchangeHelper.convertToType(this, type, value);
}
@SuppressWarnings("unchecked")
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java?rev=748502&r1=748501&r2=748502&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java Fri Feb 27 13:11:22 2009
@@ -30,6 +30,10 @@
import org.apache.camel.NoSuchHeaderException;
import org.apache.camel.NoSuchPropertyException;
import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.CamelContext;
+import org.apache.camel.TypeConverter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Some helper methods for working with {@link Exchange} objects
@@ -37,6 +41,7 @@
* @version $Revision$
*/
public final class ExchangeHelper {
+ private static final transient Log LOG = LogFactory.getLog(ExchangeHelper.class);
/**
* Utility classes should not have a public constructor.
@@ -177,7 +182,19 @@
* not be converted
*/
public static <T> T convertToType(Exchange exchange, Class<T> type, Object value) {
- return exchange.getContext().getTypeConverter().convertTo(type, exchange, value);
+ CamelContext camelContext = exchange.getContext();
+ if (camelContext != null) {
+ TypeConverter converter = camelContext.getTypeConverter();
+ if (converter != null) {
+ return converter.convertTo(type, exchange, value);
+ }
+ }
+ LOG.warn("No CamelContext and type converter available to convert types for exchange " + exchange);
+
+ if (type.isInstance(value)) {
+ return type.cast(value);
+ }
+ return null;
}
/**