camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen" ...@silverbullet.dk>
Subject RE: svn commit: r687515 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/impl/converter/ cam
Date Thu, 21 Aug 2008 13:12:14 GMT
Hi

I was working on CAMEL-840 and I thought that there was a similar issue here as well. Line 194 (after update to latest)

if (value == null || value.getClass() == setter.getParameterTypes()[0]) {

I didn't play to much with the instanceof but there could potential be a similar issue.

Might worthwhile to create a unit test that sets an inherited class or sometime the likes.

I'm about to leave so Hadrian if you have the time please check this out as well.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: Hadrian Zbarcea [mailto:hzbarcea@gmail.com] 
Sent: 21. august 2008 15:08
To: camel-dev@activemq.apache.org
Subject: Re: svn commit: r687515 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/impl/converter/ cam

Nice spot :), isInstanceOf is probably a better choice.  I didn't  
realize it, the tests use DefaultExchange and that didn't create a  
problem.  I will correct it now.
Thanks, Hadrian



On Aug 21, 2008, at 3:37 AM, Claus Ibsen wrote:

> Hi
>
> Hadrian. Nice patch, lovely that we got a type convert with the  
> Exchange now.
>
> I looked at the patch as I was wondering how you had implemented  
> this and how to use it as its something I need also - especially for  
> encoding.
>
> However I was wondering if the == Exchange.class is in order? We  
> wont get in trouble if it's a FileExchange or something?
>
>
> +    protected boolean isValidConverterMethod(Method method) {
> +    	Class<?>[] parameterTypes = method.getParameterTypes();
> +        return (parameterTypes != null) &&
> +    	    (parameterTypes.length == 1 || (parameterTypes.length == 2  
> && parameterTypes[1] == Exchange.class));
> +    }
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: hadrian@apache.org [mailto:hadrian@apache.org]
> Sent: 21. august 2008 02:13
> To: camel-commits@activemq.apache.org
> Subject: svn commit: r687515 - in /activemq/camel/trunk: camel-core/ 
> src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/ 
> camel/builder/ camel-core/src/main/java/org/apache/camel/impl/ camel- 
> core/src/main/java/org/apache/camel/impl/converter/ came...
>
> Author: hadrian
> Date: Wed Aug 20 17:13:01 2008
> New Revision: 687515
>
> URL: http://svn.apache.org/viewvc?rev=687515&view=rev
> Log:
> CAMEL-115.
>
> Added:
>    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/InstanceMethodWithExchangeTestConverter.java
>    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/MyBean.java
>    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/StaticMethodWithExchangeTestConverter.java
> Modified:
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> TypeConverter.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/ 
> impl/DefaultExchange.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/DefaultMessage.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/AnnotationTypeConverterLoader.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ArrayTypeConverter.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/AsyncProcessorTypeConverter.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/ 
> impl/converter/EnumTypeConverter.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/InstanceMethodTypeConverter.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/PropertyEditorTypeConverter.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/StaticMethodTypeConverter.java
>    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ToStringTypeConverter.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/ExpressionHelper.java
>    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/ConverterTest.java
>    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/JaxpTest.java
>    activemq/camel/trunk/components/camel-hl7/src/main/java/org/ 
> apache/camel/dataformat/hl7/HL7Converter.java
>    activemq/camel/trunk/components/camel-jaxb/src/main/java/org/ 
> apache/camel/converter/jaxb/FallbackTypeConverter.java
>    activemq/camel/trunk/components/camel-jaxb/src/test/java/org/ 
> apache/camel/example/JAXBConvertTest.java
>    activemq/camel/trunk/components/camel-jcr/src/main/java/org/ 
> apache/camel/component/jcr/JcrProducer.java
>    activemq/camel/trunk/components/camel-mail/src/main/java/org/ 
> apache/camel/component/mail/MailBinding.java
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/TypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/TypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> TypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> TypeConverter.java Wed Aug 20 17:13:01 2008
> @@ -33,4 +33,17 @@
>      * @return the converted value or null if it can not be converted
>      */
>     <T> T convertTo(Class<T> type, Object value);
> +
> +    /**
> +     * Converts the value to the specified type in the context of  
> an exchange
> +     *
> +     * @param type the requested type
> +     * @param current exchange
> +     * @param value the value to be converted
> +     * @return the converted value or null if it can not be converted
> +     *
> +     * Used when conversion requires extra information from the  
> current
> +     * exchange (such as encoding).
> +     */
> +    <T> T convertTo(Class<T> type, Exchange exchange, Object value);
> }
>
> 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=687515&r1=687514&r2=687515&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 Wed Aug 20 17:13:01 2008
> @@ -384,7 +384,7 @@
>         return new Expression<E>() {
>             public Object evaluate(E exchange) {
>                 Object value = expression.evaluate(exchange);
> -                return  
> exchange.getContext().getTypeConverter().convertTo(type, value);
> +                return  
> exchange.getContext().getTypeConverter().convertTo(type, exchange,  
> value);
>             }
>
>             @Override
> @@ -520,7 +520,7 @@
>      */
>     public static <E extends Exchange> String  
> evaluateStringExpression(Expression<E> expression, E exchange) {
>         Object value = expression.evaluate(exchange);
> -        return  
> exchange.getContext().getTypeConverter().convertTo(String.class,  
> value);
> +        return  
> exchange.getContext().getTypeConverter().convertTo(String.class,  
> exchange, value);
>     }
>
>     /**
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/DefaultExchange.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/DefaultExchange.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/DefaultExchange.java Wed Aug 20 17:13:01 2008
> @@ -144,7 +144,7 @@
>             validateExchangePropertyIsExpectedType(property, type,  
> value);
>         }
>
> -        return getContext().getTypeConverter().convertTo(type,  
> value);
> +        return getContext().getTypeConverter().convertTo(type,  
> this, value);
>     }
>
>     public void setProperty(String name, Object value) {
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/DefaultMessage.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/DefaultMessage.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/DefaultMessage.java Wed Aug 20 17:13:01 2008
> @@ -22,6 +22,7 @@
>
> import javax.activation.DataHandler;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.Message;
>
> /**
> @@ -44,7 +45,8 @@
>
>     public <T> T getHeader(String name, Class<T> type) {
>         Object value = getHeader(name);
> -        return  
> getExchange().getContext().getTypeConverter().convertTo(type, value);
> +        Exchange e = getExchange();
> +        return e.getContext().getTypeConverter().convertTo(type, e,  
> value);
>     }
>
>     public void setHeader(String name, Object value) {
>
> 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=687515&r1=687514&r2=687515&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 Aug 20 17:13:01 2008
> @@ -56,7 +56,7 @@
>             CamelContext camelContext = e.getContext();
>             if (camelContext != null) {
>                 TypeConverter converter =  
> camelContext.getTypeConverter();
> -                T answer = converter.convertTo(type, body);
> +                T answer = converter.convertTo(type, e, body);
>                 if (answer == null) {
>                     // lets first try converting the message itself  
> first
>                     // as for some types like InputStream v Reader  
> its more efficient to do the transformation
> @@ -77,7 +77,7 @@
>     public <T> void setBody(Object value, Class<T> type) {
>         Exchange e = getExchange();
>         if (e != null) {
> -            T v = e.getContext().getTypeConverter().convertTo(type,  
> value);
> +            T v = e.getContext().getTypeConverter().convertTo(type,  
> e, value);
>             if (v != null) {
>                 value = v;
>             }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/AnnotationTypeConverterLoader.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/AnnotationTypeConverterLoader.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/AnnotationTypeConverterLoader.java Wed Aug 20  
> 17:13:01 2008
> @@ -16,7 +16,6 @@
>  */
> package org.apache.camel.impl.converter;
>
> -
> import java.io.BufferedReader;
> import java.io.IOException;
> import java.io.InputStreamReader;
> @@ -33,6 +32,7 @@
> import static java.lang.reflect.Modifier.isStatic;
>
> import org.apache.camel.Converter;
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.util.ObjectHelper;
> import org.apache.camel.util.ResolverUtil;
> @@ -40,7 +40,6 @@
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
>
> -
> /**
>  * A class which will auto-discover converter objects and methods to  
> pre-load
>  * the registry of converters on startup
> @@ -141,25 +140,21 @@
>             for (Method method : methods) {
>                 Converter annotation =  
> method.getAnnotation(Converter.class);
>                 if (annotation != null) {
> -                    Class<?>[] parameterTypes =  
> method.getParameterTypes();
> -                    if (parameterTypes == null ||  
> parameterTypes.length != 1) {
> -                        LOG.warn("Ignoring bad converter on type: "  
> + type.getName() + " method: " + method
> -                                + " as a converter method should  
> have one parameter");
> -                    } else {
> +                    if (isValidConverterMethod(method)) {
>                         int modifiers = method.getModifiers();
>                         if (isAbstract(modifiers) || ! 
> isPublic(modifiers)) {
>                             LOG.warn("Ignoring bad converter on  
> type: " + type.getName() + " method: " + method
>                                     + " as a converter method is not  
> a public and concrete method");
>                         } else {
> -                            Class toType = method.getReturnType();
> +                            Class<?> toType = method.getReturnType();
>                             if (toType.equals(Void.class)) {
>                                 LOG.warn("Ignoring bad converter on  
> type: " + type.getName() + " method: "
>                                         + method + " as a converter  
> method returns a void method");
>                             } else {
> -                                Class fromType = parameterTypes[0];
> +                                Class<?> fromType =  
> method.getParameterTypes()[0];
>                                 if (isStatic(modifiers)) {
>                                     registerTypeConverter(registry,  
> method, toType, fromType,
> -                                                          new  
> StaticMethodTypeConverter(method));
> +                                            new  
> StaticMethodTypeConverter(method));
>                                 } else {
>                                     if (injector == null) {
>                                         injector = new  
> CachingInjector(registry, type);
> @@ -169,9 +164,13 @@
>                                 }
>                             }
>                         }
> +                    } else {
> +                        LOG.warn("Ignoring bad converter on type: "  
> + type.getName() + " method: " + method
> +                                + " as a converter method should  
> have one parameter");
>                     }
>                 }
>             }
> +
>             Class superclass = type.getSuperclass();
>             if (superclass != null && ! 
> superclass.equals(Object.class)) {
>                 loadConverterMethods(registry, superclass);
> @@ -181,9 +180,15 @@
>         }
>     }
>
> -    protected void registerTypeConverter(TypeConverterRegistry  
> registry, Method method,
> -                                         Class toType, Class  
> fromType, TypeConverter typeConverter) {
> +    protected void registerTypeConverter(TypeConverterRegistry  
> registry,
> +    		Method method, Class toType, Class fromType, TypeConverter  
> typeConverter) {
>
>         registry.addTypeConverter(toType, fromType, typeConverter);
>     }
> +
> +    protected boolean isValidConverterMethod(Method method) {
> +    	Class<?>[] parameterTypes = method.getParameterTypes();
> +        return (parameterTypes != null) &&
> +    	    (parameterTypes.length == 1 || (parameterTypes.length == 2  
> && parameterTypes[1] == Exchange.class));
> +    }
> }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/ArrayTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ArrayTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ArrayTypeConverter.java Wed Aug 20 17:13:01 2008
> @@ -22,6 +22,7 @@
> import java.util.Collection;
> import java.util.List;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
>
> /**
> @@ -71,4 +72,8 @@
>         }
>         return null;
>     }
> +
> +    public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +    	return convertTo(type, value);
> +    }
> }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/AsyncProcessorTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/AsyncProcessorTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/AsyncProcessorTypeConverter.java Wed Aug 20 17:13:01  
> 2008
> @@ -65,6 +65,10 @@
>         return null;
>     }
>
> +    public <T> T convertTo(Class<T> toType, Exchange exchange,  
> Object value) {
> +    	return convertTo(toType, value);
> +    }
> +
>     public static AsyncProcessor convert(Processor value) {
>         if (value instanceof AsyncProcessor) {
>             return (AsyncProcessor)value;
>
> 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=687515&r1=687514&r2=687515&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 Aug 20 17:13:01 2008
> @@ -18,11 +18,12 @@
>
> import java.io.IOException;
> import java.util.ArrayList;
> -import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> import java.util.Set;
> +import java.util.concurrent.ConcurrentHashMap;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.RuntimeCamelException;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.spi.Injector;
> @@ -41,7 +42,7 @@
>  */
> public class DefaultTypeConverter implements TypeConverter,  
> TypeConverterRegistry {
>     private static final transient Log LOG =  
> LogFactory.getLog(DefaultTypeConverter.class);
> -    private final Map<TypeMapping, TypeConverter> typeMappings =  
> new HashMap<TypeMapping, TypeConverter>();
> +    private final Map<TypeMapping, TypeConverter> typeMappings =  
> new ConcurrentHashMap<TypeMapping, TypeConverter>();
>     private Injector injector;
>     private List<TypeConverterLoader> typeConverterLoaders = new  
> ArrayList<TypeConverterLoader>();
>     private List<TypeConverter> fallbackConverters = new  
> ArrayList<TypeConverter>();
> @@ -57,31 +58,36 @@
>         addFallbackConverter(new EnumTypeConverter());
>     }
>
> -    public <T> T convertTo(Class<T> toType, Object value) {
> -        if (toType.isInstance(value)) {
> -            return toType.cast(value);
> +    public <T> T convertTo(Class<T> type, Object value) {
> +        return convertTo(type, null, value);
> +    }
> +
> +	@SuppressWarnings("unchecked")
> +	public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +        if (type.isInstance(value)) {
> +            return type.cast(value);
>         }
>         checkLoaded();
> -        TypeConverter converter = getOrFindTypeConverter(toType,  
> value);
> +        TypeConverter converter = getOrFindTypeConverter(type,  
> value);
>         if (converter != null) {
> -            return converter.convertTo(toType, value);
> +            return converter.convertTo(type, exchange, value);
>         }
>
>         for (TypeConverter fallback : fallbackConverters) {
> -            T rc = fallback.convertTo(toType, value);
> +            T rc = fallback.convertTo(type, exchange, value);
>             if (rc != null) {
>                 return rc;
>             }
>         }
>
>         // lets avoid NullPointerException when converting to  
> boolean for null values
> -        if (boolean.class.isAssignableFrom(toType)) {
> +        if (boolean.class.isAssignableFrom(type)) {
>             return (T) Boolean.FALSE;
>         }
> -        if (toType.isPrimitive()) {
> -            Class primitiveType =  
> ObjectHelper.convertPrimitiveTypeToWrapperType(toType);
> -            if (primitiveType != toType) {
> -                return (T) convertTo(primitiveType, value);
> +        if (type.isPrimitive()) {
> +            Class primitiveType =  
> ObjectHelper.convertPrimitiveTypeToWrapperType(type);
> +            if (primitiveType != type) {
> +                return (T) convertTo(primitiveType, exchange, value);
>             }
>         }
>         return null;
> @@ -108,9 +114,7 @@
>
>     public TypeConverter getTypeConverter(Class toType, Class  
> fromType) {
>         TypeMapping key = new TypeMapping(toType, fromType);
> -        synchronized (typeMappings) {
> -            return typeMappings.get(key);
> -        }
> +        return typeMappings.get(key);
>     }
>
>     public Injector getInjector() {
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/EnumTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/EnumTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/EnumTypeConverter.java Wed Aug 20 17:13:01 2008
> @@ -18,6 +18,7 @@
>
> import java.lang.reflect.Method;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.RuntimeCamelException;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.util.ObjectHelper;
> @@ -44,4 +45,9 @@
>         }
>         return null;
>     }
> +
> +	public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +		// ignore exchange
> +		return convertTo(type, value);
> +	}
> }
> \ No newline at end of file
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/InstanceMethodTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/InstanceMethodTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/InstanceMethodTypeConverter.java Wed Aug 20 17:13:01  
> 2008
> @@ -18,6 +18,7 @@
>
> import java.lang.reflect.Method;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.RuntimeCamelException;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.util.ObjectHelper;
> @@ -31,10 +32,12 @@
> public class InstanceMethodTypeConverter implements TypeConverter {
>     private final CachingInjector injector;
>     private final Method method;
> +    private final boolean useExchange;
>
>     public InstanceMethodTypeConverter(CachingInjector injector,  
> Method method) {
>         this.injector = injector;
>         this.method = method;
> +        this.useExchange = method.getParameterTypes().length == 2;
>     }
>
>     @Override
> @@ -43,10 +46,16 @@
>     }
>
>     public <T> T convertTo(Class<T> type, Object value) {
> +        return convertTo(type, null, value);
> +    }
> +
> +	public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
>         Object instance = injector.newInstance();
>         if (instance == null) {
>             throw new RuntimeCamelException("Could not instantiate  
> an instance of: " + type.getName());
>         }
> -        return (T) ObjectHelper.invokeMethod(method, instance,  
> value);
> -    }
> +        return useExchange ?
> +            (T) ObjectHelper.invokeMethod(method, instance, value,  
> exchange) :
> +            (T) ObjectHelper.invokeMethod(method, instance, value);
> +	}
> }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/PropertyEditorTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/PropertyEditorTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/PropertyEditorTypeConverter.java Wed Aug 20 17:13:01  
> 2008
> @@ -19,6 +19,7 @@
> import java.beans.PropertyEditor;
> import java.beans.PropertyEditorManager;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.util.ObjectHelper;
>
> @@ -59,4 +60,7 @@
>         return null;
>     }
>
> +    public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +    	return convertTo(type, value);
> +    }
> }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/StaticMethodTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/StaticMethodTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/StaticMethodTypeConverter.java Wed Aug 20 17:13:01 2008
> @@ -18,6 +18,7 @@
>
> import java.lang.reflect.Method;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.util.ObjectHelper;
>
> @@ -28,9 +29,11 @@
>  */
> public class StaticMethodTypeConverter implements TypeConverter {
>     private final Method method;
> +    private final boolean useExchange;
>
>     public StaticMethodTypeConverter(Method method) {
>         this.method = method;
> +        this.useExchange = method.getParameterTypes().length == 2;
>     }
>
>     @Override
> @@ -39,6 +42,12 @@
>     }
>
>     public <T> T convertTo(Class<T> type, Object value) {
> -        return (T) ObjectHelper.invokeMethod(method, null, value);
> +        return convertTo(type, null, value);
>     }
> +
> +	public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +        return useExchange ?
> +            (T) ObjectHelper.invokeMethod(method, null, value,  
> exchange) :
> +            (T) ObjectHelper.invokeMethod(method, null, value);
> +	}
> }
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/impl/converter/ToStringTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ToStringTypeConverter.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> impl/converter/ToStringTypeConverter.java Wed Aug 20 17:13:01 2008
> @@ -16,6 +16,7 @@
>  */
> package org.apache.camel.impl.converter;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
>
> /**
> @@ -35,4 +36,7 @@
>         return null;
>     }
>
> +    public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +    	return convertTo(type, value);
> +    }
> }
>
> 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=687515&r1=687514&r2=687515&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 Aug 20 17:13:01 2008
> @@ -172,7 +172,7 @@
>      * not be converted
>      */
>     public static <T> T convertToType(Exchange exchange, Class<T>  
> type, Object value) {
> -        return  
> exchange.getContext().getTypeConverter().convertTo(type, value);
> +        return  
> exchange.getContext().getTypeConverter().convertTo(type, exchange,  
> value);
>     }
>
>     /**
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/ 
> camel/util/ExpressionHelper.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionHelper.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> util/ExpressionHelper.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/ 
> util/ExpressionHelper.java Wed Aug 20 17:13:01 2008
> @@ -55,6 +55,6 @@
>     public static <T, E extends Exchange> T  
> evaluateAsType(Expression<E> expression, E exchange,
>                                                            Class<T>  
> resultType) {
>         Object value = expression.evaluate(exchange);
> -        return  
> exchange.getContext().getTypeConverter().convertTo(resultType, value);
> +        return  
> exchange.getContext().getTypeConverter().convertTo(resultType,  
> exchange, value);
>     }
> }
>
> Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/ 
> camel/converter/ConverterTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/ConverterTest.java (original)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/ConverterTest.java Wed Aug 20 17:13:01 2008
> @@ -27,7 +27,12 @@
> import java.util.Set;
>
> import junit.framework.TestCase;
> +
> +import org.apache.camel.CamelContext;
> +import org.apache.camel.Exchange;
> import org.apache.camel.TypeConverter;
> +import org.apache.camel.impl.DefaultCamelContext;
> +import org.apache.camel.impl.DefaultExchange;
> import org.apache.camel.impl.converter.DefaultTypeConverter;
> import org.apache.camel.util.IntrospectionSupport;
> import org.apache.camel.util.ReflectionInjector;
> @@ -53,6 +58,11 @@
>         }
>     }
>
> +    @Override
> +    protected void setUp() throws Exception {
> +        PropertyEditorManager.registerEditor(Integer.class,  
> IntegerPropertyEditor.class);
> +    }
> +
>     public void testIntegerPropertyEditorConversion() throws  
> Exception {
>         Integer value = converter.convertTo(Integer.class, "1000");
>         assertNotNull(value);
> @@ -181,22 +191,24 @@
>         value = converter.convertTo(Boolean.class, null);
>         assertEquals("converted boolean value", null, value);
>     }
> -
> -    public static class MyBean {
> -        private int foo;
> -
> -        public int getFoo() {
> -            return foo;
> -        }
> -
> -        public void setFoo(int foo) {
> -            this.foo = foo;
> -        }
> -    }
> -
> -    @Override
> -    protected void setUp() throws Exception {
> -        PropertyEditorManager.registerEditor(Integer.class,  
> IntegerPropertyEditor.class);
> +
> +    public void testStaticMethodConversionWithExchange() throws  
> Exception {
> +    	CamelContext camel = new DefaultCamelContext();
> +    	Exchange e = new DefaultExchange(camel);
> +    	e.setProperty("prefix", "foo-");
> +    	MyBean bean = converter.convertTo(MyBean.class, e, "5:bar");
> +        assertEquals("converted using exchange", 5, bean.getFoo(),  
> 5);
> +        assertEquals("converted using exchange", "foo-bar",  
> bean.getBar());
> +    }
> +
> +    public void testInstanceMethodConversionWithExchange() throws  
> Exception {
> +        String[] values = new String[]{"5", "bar"};
> +
> +    	CamelContext camel = new DefaultCamelContext();
> +    	Exchange e = new DefaultExchange(camel);
> +    	e.setProperty("prefix", "foo-");
> +    	MyBean bean = converter.convertTo(MyBean.class, e, values);
> +        assertEquals("converted using exchange", 5, bean.getFoo(),  
> 5);
> +        assertEquals("converted using exchange", "foo-bar",  
> bean.getBar());
>     }
> -
> }
>
> Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/ 
> camel/converter/InstanceMethodWithExchangeTestConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceMethodWithExchangeTestConverter.java?rev=687515&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/InstanceMethodWithExchangeTestConverter.java (added)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/InstanceMethodWithExchangeTestConverter.java Wed Aug 20  
> 17:13:01 2008
> @@ -0,0 +1,30 @@
> +/**
> + * 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.converter;
> +
> +import org.apache.camel.Converter;
> +import org.apache.camel.Exchange;
> +
> +@Converter
> +public class InstanceMethodWithExchangeTestConverter {
> +
> +    @Converter
> +    public MyBean fromArray(String[] values, Exchange exchange) {
> +        return new MyBean(Integer.parseInt(values[0]),
> +            exchange.getProperty("prefix", String.class) +  
> values[1]);
> +    }
> +}
>
> Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/ 
> camel/converter/JaxpTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/JaxpTest.java (original)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/JaxpTest.java Wed Aug 20 17:13:01 2008
> @@ -57,8 +57,7 @@
>     }
>
>     public void testConvertToSource() throws Exception {
> -        Source source = converter
> -                .convertTo(Source.class, "<hello>world!</hello>");
> +        Source source = converter.convertTo(Source.class,  
> "<hello>world!</hello>");
>         assertNotNull(source);
>
>         LOG.debug("Found document: " + source);
>
> Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/ 
> camel/converter/MyBean.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/MyBean.java?rev=687515&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/MyBean.java (added)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/MyBean.java Wed Aug 20 17:13:01 2008
> @@ -0,0 +1,47 @@
> +/**
> + * 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.converter;
> +
> +public class MyBean {
> +    private int foo;
> +    private String bar;
> +
> +    public MyBean() {
> +    	this(0, "");
> +    }
> +
> +    public MyBean(int foo, String bar) {
> +    	this.foo = foo;
> +    	this.bar = bar;
> +    }
> +
> +    public int getFoo() {
> +        return foo;
> +    }
> +
> +    public void setFoo(int foo) {
> +        this.foo = foo;
> +    }
> +
> +    public String getBar() {
> +    	return bar;
> +    }
> +
> +    public void setBar(String bar) {
> +    	this.bar = bar;
> +    }
> +}
>
> Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/ 
> camel/converter/StaticMethodWithExchangeTestConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticMethodWithExchangeTestConverter.java?rev=687515&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/StaticMethodWithExchangeTestConverter.java (added)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ 
> converter/StaticMethodWithExchangeTestConverter.java Wed Aug 20  
> 17:13:01 2008
> @@ -0,0 +1,31 @@
> +/**
> + * 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.converter;
> +
> +import org.apache.camel.Converter;
> +import org.apache.camel.Exchange;
> +import org.apache.camel.util.ObjectHelper;
> +
> +@Converter
> +public final class StaticMethodWithExchangeTestConverter {
> +
> +    @Converter
> +    public static MyBean fromString(String text, Exchange exchange) {
> +        String[] values = ObjectHelper.splitOnCharacter(text, ":",  
> 2);
> +        return new MyBean(Integer.parseInt(values[0]),  
> exchange.getProperty("prefix", String.class) + values[1]);
> +    }
> +}
>
> Modified: activemq/camel/trunk/components/camel-hl7/src/main/java/ 
> org/apache/camel/dataformat/hl7/HL7Converter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-hl7/src/main/java/org/apache/camel/dataformat/hl7/HL7Converter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/components/camel-hl7/src/main/java/org/ 
> apache/camel/dataformat/hl7/HL7Converter.java (original)
> +++ activemq/camel/trunk/components/camel-hl7/src/main/java/org/ 
> apache/camel/dataformat/hl7/HL7Converter.java Wed Aug 20 17:13:01 2008
> @@ -42,7 +42,7 @@
>
>     @Converter
>     public static Message toMessage(String body) throws HL7Exception {
> -        // replace \n with \r as HL7 uses 0x0d = \r as segment  
> termninators
> +        // replace \n with \r as HL7 uses 0x0d = \r as segment  
> terminators
>         body = body.replace('\n', '\r');
>
>         Parser parser = new PipeParser();
>
> Modified: activemq/camel/trunk/components/camel-jaxb/src/main/java/ 
> org/apache/camel/converter/jaxb/FallbackTypeConverter.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/FallbackTypeConverter.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/components/camel-jaxb/src/main/java/org/ 
> apache/camel/converter/jaxb/FallbackTypeConverter.java (original)
> +++ activemq/camel/trunk/components/camel-jaxb/src/main/java/org/ 
> apache/camel/converter/jaxb/FallbackTypeConverter.java Wed Aug 20  
> 17:13:01 2008
> @@ -29,6 +29,7 @@
> import javax.xml.bind.util.JAXBSource;
> import javax.xml.transform.Source;
>
> +import org.apache.camel.Exchange;
> import org.apache.camel.RuntimeCamelException;
> import org.apache.camel.TypeConverter;
> import org.apache.camel.spi.TypeConverterAware;
> @@ -71,6 +72,10 @@
>         }
>     }
>
> +    public <T> T convertTo(Class<T> type, Exchange exchange, Object  
> value) {
> +    	return convertTo(type, value);
> +    }
> +
>     protected <T> boolean isJaxbType(Class<T> type) {
>         XmlRootElement element =  
> type.getAnnotation(XmlRootElement.class);
>         boolean jaxbType = element != null;
>
> Modified: activemq/camel/trunk/components/camel-jaxb/src/test/java/ 
> org/apache/camel/example/JAXBConvertTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/JAXBConvertTest.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/components/camel-jaxb/src/test/java/org/ 
> apache/camel/example/JAXBConvertTest.java (original)
> +++ activemq/camel/trunk/components/camel-jaxb/src/test/java/org/ 
> apache/camel/example/JAXBConvertTest.java Wed Aug 20 17:13:01 2008
> @@ -30,7 +30,8 @@
>     protected TypeConverter converter = context.getTypeConverter();
>
>     public void testConverter() throws Exception {
> -        PurchaseOrder purchaseOrder =  
> converter.convertTo(PurchaseOrder.class, "<purchaseOrder name='foo'  
> amount='123.45' price='2.22'/>");
> +        PurchaseOrder purchaseOrder =  
> converter.convertTo(PurchaseOrder.class,
> +            "<purchaseOrder name='foo' amount='123.45' price='2.22'/ 
> >");
>
>         assertNotNull("Purchase order should not be null!",  
> purchaseOrder);
>         assertEquals("name", "foo", purchaseOrder.getName());
>
> Modified: activemq/camel/trunk/components/camel-jcr/src/main/java/ 
> org/apache/camel/component/jcr/JcrProducer.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/components/camel-jcr/src/main/java/org/ 
> apache/camel/component/jcr/JcrProducer.java (original)
> +++ activemq/camel/trunk/components/camel-jcr/src/main/java/org/ 
> apache/camel/component/jcr/JcrProducer.java Wed Aug 20 17:13:01 2008
> @@ -41,8 +41,8 @@
>             Node node = base.addNode(getNodeName(exchange));
>             TypeConverter converter =  
> exchange.getContext().getTypeConverter();
>             for (String key : exchange.getProperties().keySet()) {
> -                Value value = converter.convertTo(Value.class,  
> exchange
> -                        .getProperty(key));
> +                Value value = converter.convertTo(Value.class,
> +                    exchange, exchange.getProperty(key));
>                 node.setProperty(key, value);
>             }
>             node.addMixin("mix:referenceable");
>
> Modified: activemq/camel/trunk/components/camel-mail/src/main/java/ 
> org/apache/camel/component/mail/MailBinding.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java?rev=687515&r1=687514&r2=687515&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- activemq/camel/trunk/components/camel-mail/src/main/java/org/ 
> apache/camel/component/mail/MailBinding.java (original)
> +++ activemq/camel/trunk/components/camel-mail/src/main/java/org/ 
> apache/camel/component/mail/MailBinding.java Wed Aug 20 17:13:01 2008
> @@ -314,7 +314,7 @@
>     }
>
>     private static String asString(Exchange exchange, Object value) {
> -        return  
> exchange.getContext().getTypeConverter().convertTo(String.class,  
> value);
> +        return  
> exchange.getContext().getTypeConverter().convertTo(String.class,  
> exchange, value);
>     }
>
> }
>
>


Mime
View raw message