camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hadrian Zbarcea <hzbar...@gmail.com>
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
Date Thu, 21 Aug 2008 13:11:43 GMT
Ah, this is even better :)

On Aug 21, 2008, at 3:47 AM, James Strachan wrote:

> Agreed - would have thought something like using
> Class.isAssignableFrom() (which I always tend to get the wrong way
> around first time I use it :)
>
> 2008/8/21 Claus Ibsen <ci@silverbullet.dk>:
>> 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);
>>    }
>>
>> }
>>
>>
>>
>
>
>
> -- 
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com


Mime
View raw message