Author: hadrian
Date: Wed Sep 24 23:04:24 2008
New Revision: 698831
URL: http://svn.apache.org/viewvc?rev=698831&view=rev
Log:
CAMEL-84. Exception on TypeConverter not available.
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/ConstantBeanHolder.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapBinding.java
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
Wed Sep 24 23:04:24 2008
@@ -22,6 +22,7 @@
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.impl.ServiceSupport;
import org.apache.camel.util.ObjectHelper;
@@ -85,10 +86,14 @@
in.setHeader(MULTI_PARAMETER_ARRAY, isMultiParameterArray());
}
- BeanInvocation beanInvoke = in.getBody(BeanInvocation.class);
- if (beanInvoke != null) {
- beanInvoke.invoke(bean, exchange);
- return;
+ try {
+ BeanInvocation beanInvoke = in.getBody(BeanInvocation.class);
+ if (beanInvoke != null) {
+ beanInvoke.invoke(bean, exchange);
+ return;
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore, body is not a BeanInvocation
}
boolean isExplicitMethod = false;
@@ -106,8 +111,8 @@
invocation = beanInfo.createInvocation(bean, exchange);
}
if (invocation == null) {
- throw new IllegalStateException("No method invocation could be
created, "
- + "no maching method could be
found on: " + bean);
+ throw new IllegalStateException(
+ "No method invocation could be created, no maching method
could be found on: " + bean);
}
try {
Object value = invocation.proceed();
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/ConstantBeanHolder.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/ConstantBeanHolder.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/ConstantBeanHolder.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/ConstantBeanHolder.java
Wed Sep 24 23:04:24 2008
@@ -17,6 +17,7 @@
package org.apache.camel.component.bean;
import org.apache.camel.CamelContext;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.util.CamelContextHelper;
@@ -33,7 +34,11 @@
public ConstantBeanHolder(Object bean, BeanInfo beanInfo) {
this.bean = bean;
this.beanInfo = beanInfo;
- this.processor =
CamelContextHelper.convertTo(beanInfo.getCamelContext(), Processor.class, bean);
+ try {
+ this.processor =
CamelContextHelper.convertTo(beanInfo.getCamelContext(), Processor.class, bean);
+ } catch (NoTypeConversionAvailableException ex) {
+ this.processor = null;
+ }
}
public ConstantBeanHolder(Object bean, CamelContext context) {
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
Wed Sep 24 23:04:24 2008
@@ -17,6 +17,7 @@
package org.apache.camel.component.bean;
import org.apache.camel.CamelContext;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.spi.Registry;
import org.apache.camel.util.CamelContextHelper;
@@ -74,7 +75,11 @@
public Processor getProcessor() {
if (processor == null && bean != null) {
- processor = CamelContextHelper.convertTo(context, Processor.class,
bean);
+ try {
+ processor = CamelContextHelper.convertTo(context,
Processor.class, bean);
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore
+ }
}
return processor;
}
@@ -122,4 +127,4 @@
protected Object lookupBean() throws Exception {
return registry.lookup(name);
}
-}
\ No newline at end of file
+}
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
Wed Sep 24 23:04:24 2008
@@ -20,6 +20,7 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.converter.stream.StreamCache;
import org.apache.camel.processor.interceptor.ExchangeFormatter;
import org.apache.camel.util.ObjectHelper;
@@ -176,15 +177,22 @@
// Implementation methods
//-------------------------------------------------------------------------
protected Object getBodyAsString(Message message) {
-
- StreamCache newBody = message.getBody(StreamCache.class);
- if (newBody != null) {
- message.setBody(newBody);
- }
- Object answer = message.getBody(String.class);
- if (answer == null) {
+ StreamCache newBody = null;
+ try {
+ newBody = message.getBody(StreamCache.class);
+ if (newBody != null) {
+ message.setBody(newBody);
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore
+ }
+ Object answer = null;
+ try {
+ answer = message.getBody(String.class);
+ } catch (NoTypeConversionAvailableException ex) {
answer = message.getBody();
}
+
if (newBody != null) {
// Reset the StreamCache
newBody.reset();
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
Wed Sep 24 23:04:24 2008
@@ -19,6 +19,7 @@
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.TypeConverter;
import org.apache.camel.util.UuidGenerator;
@@ -56,15 +57,16 @@
CamelContext camelContext = e.getContext();
if (camelContext != null) {
TypeConverter converter = camelContext.getTypeConverter();
- T answer = converter.convertTo(type, e, body);
- if (answer == null) {
+ try {
// lets first try converting the message itself first
// as for some types like InputStream v Reader its more
efficient to do the transformation
// from the Message itself as its got efficient
implementations of them, before trying the
// payload
- answer = converter.convertTo(type, this);
+ return converter.convertTo(type, e, body);
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore
}
- return answer;
+ return converter.convertTo(type, this);
}
}
return (T)getBody();
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
Wed Sep 24 23:04:24 2008
@@ -24,6 +24,7 @@
import java.util.concurrent.ConcurrentHashMap;
import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.TypeConverter;
import org.apache.camel.spi.Injector;
import org.apache.camel.spi.TypeConverterAware;
@@ -66,11 +67,19 @@
@SuppressWarnings("unchecked")
public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
- if (LOG.isTraceEnabled()) {
+ if (LOG.isTraceEnabled()) {
LOG.trace("Converting " + (value == null ? "null" :
value.getClass().getCanonicalName())
+ " -> " + type.getCanonicalName() + " with value: " + value);
}
+ if (value == null) {
+ // lets avoid NullPointerException when converting to boolean for
null values
+ if (boolean.class.isAssignableFrom(type)) {
+ return (T) Boolean.FALSE;
+ }
+ return null;
+ }
+
// same instance type
if (type.isInstance(value)) {
return type.cast(value);
@@ -82,7 +91,10 @@
// try to find a suitable type converter
TypeConverter converter = getOrFindTypeConverter(type, value);
if (converter != null) {
- return converter.convertTo(type, exchange, value);
+ T rc = converter.convertTo(type, exchange, value);
+ if (rc != null) {
+ return rc;
+ }
}
// fallback converters
@@ -93,11 +105,6 @@
}
}
- // lets avoid NullPointerException when converting to boolean for null
values
- if (boolean.class.isAssignableFrom(type)) {
- return (T) Boolean.FALSE;
- }
-
// primitives
if (type.isPrimitive()) {
Class primitiveType =
ObjectHelper.convertPrimitiveTypeToWrapperType(type);
@@ -107,13 +114,16 @@
}
boolean camelType =
type.getCanonicalName().startsWith("org.apache.camel");
- if (!camelType && value != null) {
+ if (!camelType) {
+ // TODO: as the next thing is an exception I suspect this warn is
useless. TB removed.
// only log WARN level for non internal Camel convertions
LOG.warn("Could not find a type converter for converting "
+ value.getClass().getCanonicalName() + " -> "
+ type.getCanonicalName() + " with value: " + value);
}
- return null;
+
+ // Could not find suitable conversion
+ throw new NoTypeConversionAvailableException(value, type);
}
public void addTypeConverter(Class toType, Class fromType, TypeConverter
typeConverter) {
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
Wed Sep 24 23:04:24 2008
@@ -19,6 +19,7 @@
import java.util.List;
import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.converter.stream.StreamCache;
import org.apache.camel.model.InterceptorRef;
@@ -34,10 +35,14 @@
super();
setInterceptorLogic(new Processor() {
public void process(Exchange exchange) throws Exception {
- StreamCache newBody =
exchange.getIn().getBody(StreamCache.class);
- if (newBody != null) {
- newBody.reset();
- exchange.getIn().setBody(newBody);
+ try {
+ StreamCache newBody =
exchange.getIn().getBody(StreamCache.class);
+ if (newBody != null) {
+ newBody.reset();
+ exchange.getIn().setBody(newBody);
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore if in is not of StreamCache type
}
proceed(exchange);
}
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
Wed Sep 24 23:04:24 2008
@@ -20,6 +20,7 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.converter.stream.StreamCache;
import org.apache.camel.converter.stream.StreamCacheConverter;
import org.apache.camel.spi.UnitOfWork;
@@ -116,14 +117,23 @@
}
protected Object getBodyAsString(Message in) {
- StreamCache newBody = in.getBody(StreamCache.class);
- if (newBody != null) {
- in.setBody(newBody);
+ StreamCache newBody = null;
+ try {
+ newBody = in.getBody(StreamCache.class);
+ if (newBody != null) {
+ in.setBody(newBody);
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore, in not of StreamCache type
}
- Object answer = in.getBody(String.class);
- if (answer == null) {
+
+ Object answer = null;
+ try {
+ answer = in.getBody(String.class);
+ } catch (NoTypeConversionAvailableException ex) {
answer = in.getBody();
}
+
if (newBody != null) {
// Reset the InputStreamCache
newBody.reset();
@@ -142,5 +152,4 @@
protected String getNodeMessage(TraceInterceptor interceptor) {
return interceptor.getNode().idOrCreate();
}
-
}
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
Wed Sep 24 23:04:24 2008
@@ -29,6 +29,7 @@
import org.apache.camel.NoSuchEndpointException;
import org.apache.camel.NoSuchHeaderException;
import org.apache.camel.NoSuchPropertyException;
+import org.apache.camel.NoTypeConversionAvailableException;
/**
* Some helper methods for working with [EMAIL PROTECTED] Exchange} objects
@@ -89,11 +90,15 @@
public static <T> T getMandatoryProperty(Exchange exchange, String
propertyName, Class<T> type)
throws NoSuchPropertyException {
- T answer = exchange.getProperty(propertyName, type);
- if (answer == null) {
- throw new NoSuchPropertyException(exchange, propertyName, type);
+ try {
+ T result = exchange.getProperty(propertyName, type);
+ if (result != null) {
+ return result;
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // will throw NoSuchPropertyException below
}
- return answer;
+ throw new NoSuchPropertyException(exchange, propertyName, type);
}
public static <T> T getMandatoryHeader(Exchange exchange, String
propertyName, Class<T> type)
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
Wed Sep 24 23:04:24 2008
@@ -32,6 +32,7 @@
import java.util.Map;
import java.util.Set;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.TypeConverter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -235,11 +236,11 @@
private static Object convert(TypeConverter typeConverter, Class type,
Object value) throws URISyntaxException {
if (typeConverter != null) {
- Object answer = typeConverter.convertTo(type, value);
- if (answer == null) {
+ try {
+ return typeConverter.convertTo(type, value);
+ } catch (NoTypeConversionAvailableException ex) {
throw new IllegalArgumentException("Could not convert \"" +
value + "\" to " + type.getName());
}
- return answer;
}
PropertyEditor editor = PropertyEditorManager.findEditor(type);
if (editor != null) {
Modified:
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
(original)
+++
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
Wed Sep 24 23:04:24 2008
@@ -22,6 +22,7 @@
import java.util.Map;
import java.util.Set;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.component.cxf.util.CxfHeaderHelper;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.cxf.endpoint.Client;
@@ -69,19 +70,21 @@
CxfMessage in = exchange.getIn();
// Check the body if the POJO parameter list first
- Object body = in.getBody(List.class);
- if (body instanceof List) {
+ try {
+ List body = in.getBody(List.class);
// just set the operation's parameter
answer.setContent(List.class, body);
CxfHeaderHelper.propagateCamelToCxf(strategy, in.getHeaders(),
answer);
- } else {
+ } catch (NoTypeConversionAvailableException ex) {
// CXF uses StAX which is based on the stream API to parse the XML,
// so the CXF transport is also based on the stream API.
// And the interceptors are also based on the stream API,
// so let's use an InputStream to host the CXF on wire message.
- body = in.getBody(InputStream.class);
- if (body instanceof InputStream) {
+ try {
+ InputStream body = in.getBody(InputStream.class);
answer.setContent(InputStream.class, body);
+ } catch (NoTypeConversionAvailableException ex2) {
+ // ignore
}
// TODO do we propagate header the same way in non-POJO mode?
// CxfHeaderHelper.propagateCamelToCxf(strategy, in.getHeaders(),
answer);
@@ -137,19 +140,19 @@
// Copy the Camel message to CXF message
public static void copyMessage(HeaderFilterStrategy strategy,
org.apache.camel.Message camelMessage,
org.apache.cxf.message.Message cxfMessage) {
- InputStream is = camelMessage.getBody(InputStream.class);
-
+
CxfHeaderHelper.propagateCamelToCxf(strategy,
camelMessage.getHeaders(), cxfMessage);
- if (is != null) {
- cxfMessage.setContent(InputStream.class, is);
- } else {
+ try {
+ InputStream is = camelMessage.getBody(InputStream.class);
+ if (is != null) {
+ cxfMessage.setContent(InputStream.class, is);
+ }
+ } catch (NoTypeConversionAvailableException ex) {
Object result = camelMessage.getBody();
- if (result != null) {
- if (result instanceof InputStream) {
- cxfMessage.setContent(InputStream.class, result);
- } else {
- cxfMessage.setContent(result.getClass(), result);
- }
+ if (result instanceof InputStream) {
+ cxfMessage.setContent(InputStream.class, result);
+ } else {
+ cxfMessage.setContent(result.getClass(), result);
}
}
}
Modified:
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
(original)
+++
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
Wed Sep 24 23:04:24 2008
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.cxf;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.impl.DefaultMessage;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
@@ -108,9 +109,13 @@
MessageContentsList list = (MessageContentsList)getBody();
for (int i = 0; i < list.size(); i++) {
Object value = list.get(i);
- T answer = getBody(type, value);
- if (answer != null) {
- return answer;
+ try {
+ T answer = getBody(type, value);
+ if (answer != null) {
+ return answer;
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore
}
}
}
Modified:
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapBinding.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapBinding.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapBinding.java
(original)
+++
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapBinding.java
Wed Sep 24 23:04:24 2008
@@ -22,6 +22,7 @@
import javax.xml.transform.Source;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.component.cxf.util.CxfHeaderHelper;
import org.apache.camel.impl.DefaultHeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategy;
@@ -63,10 +64,10 @@
CxfHeaderHelper.propagateCamelToCxf(headerFilterStrategy,
message.getHeaders(), answer);
- Object body = message.getBody(InputStream.class);
- if (body instanceof InputStream) {
+ try {
+ InputStream body = message.getBody(InputStream.class);
answer.setContent(InputStream.class, body);
- } else {
+ } catch (NoTypeConversionAvailableException ex) {
LOG.warn("Can't get right InputStream object here, the message
body is " + message.getBody());
}
@@ -101,10 +102,10 @@
CxfHeaderHelper.propagateCamelToCxf(headerFilterStrategy,
message.getHeaders(), outMessage);
// send the body back
- Object body = message.getBody(Source.class);
- if (body instanceof Source) {
+ try {
+ Source body = message.getBody(Source.class);
outMessage.setContent(Source.class, body);
- } else {
+ } catch (NoTypeConversionAvailableException ex) {
LOG.warn("Can't get right Source object here, the message body is
" + message.getBody());
}
outMessage.putAll(message.getHeaders());
Modified:
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
Wed Sep 24 23:04:24 2008
@@ -17,6 +17,7 @@
package org.apache.camel.component.event;
import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
@@ -109,11 +110,14 @@
}
protected ApplicationEvent toApplicationEvent(Exchange exchange) {
- ApplicationEvent event =
exchange.getIn().getBody(ApplicationEvent.class);
- if (event == null) {
- event = new CamelEvent(this, exchange);
+ try {
+ ApplicationEvent event =
exchange.getIn().getBody(ApplicationEvent.class);
+ if (event != null) {
+ return event;
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore, handled below
}
- return event;
+ return new CamelEvent(this, exchange);
}
-
}
Modified:
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java?rev=698831&r1=698830&r2=698831&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
Wed Sep 24 23:04:24 2008
@@ -17,6 +17,7 @@
package org.apache.camel.spring;
import org.apache.camel.Endpoint;
+import org.apache.camel.NoTypeConversionAvailableException;
import org.apache.camel.Processor;
import org.apache.camel.component.bean.BeanProcessor;
import org.apache.camel.component.event.EventComponent;
@@ -187,14 +188,18 @@
}
protected Endpoint convertBeanToEndpoint(String uri, Object bean) {
- //We will use the type convert to build the endpoint first
- Endpoint endpoint = getTypeConverter().convertTo(Endpoint.class, bean);
- if (endpoint != null) {
- endpoint.setCamelContext(this);
- return endpoint;
+ // We will use the type convert to build the endpoint first
+ try {
+ Endpoint endpoint = getTypeConverter().convertTo(Endpoint.class,
bean);
+ if (endpoint != null) {
+ endpoint.setCamelContext(this);
+ return endpoint;
+ }
+ } catch (NoTypeConversionAvailableException ex) {
+ // ignore, handled below
}
- Processor processor = new BeanProcessor(bean, this);
- return new ProcessorEndpoint(uri, this, processor);
+
+ return new ProcessorEndpoint(uri, this, new BeanProcessor(bean, this));
}
@Override