You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/04/18 18:48:29 UTC

svn commit: r1327578 - in /camel/branches/camel-2.9.x: ./ camel-core/src/main/java/org/apache/camel/impl/converter/ camel-core/src/main/java/org/apache/camel/support/ camel-core/src/test/java/org/apache/camel/component/bean/issues/ camel-core/src/test/...

Author: davsclaus
Date: Wed Apr 18 16:48:28 2012
New Revision: 1327578

URL: http://svn.apache.org/viewvc?rev=1327578&view=rev
Log:
CAMEL-5172: Fixed and improved TypeConverter to fail faster by throwing TypeConversionException to the caller. Use the new tryConvertTo API for the old behavior. This would also be more in line what people would expect that exceptions to be propated back as is to the caller.

Added:
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/TypeConverterSupport.java
      - copied unchanged from r1326487, camel/trunk/camel-core/src/main/java/org/apache/camel/support/TypeConverterSupport.java
Modified:
    camel/branches/camel-2.9.x/   (props changed)
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodFallbackTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java
    camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/component/bean/issues/MyMessageToProcessorConverter.java
    camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryMissesThenAddTest.java
    camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryTest.java
    camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionWrappedExceptionTest.java

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
  Merged /camel/trunk:r1326487

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ArrayTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -23,7 +23,7 @@ import java.util.Collection;
 import java.util.List;
 
 import org.apache.camel.Exchange;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 
 /**
  * A type converter which is used to convert to and from array types
@@ -32,10 +32,10 @@ import org.apache.camel.TypeConverter;
  *
  * @version 
  */
-public class ArrayTypeConverter implements TypeConverter {
+public class ArrayTypeConverter extends TypeConverterSupport {
 
     @SuppressWarnings("unchecked")
-    public <T> T convertTo(Class<T> type, Object value) {
+    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
         if (type.isArray()) {
             if (value instanceof Collection) {
                 Collection<?> collection = (Collection<?>)value;
@@ -74,36 +74,4 @@ public class ArrayTypeConverter implemen
         return null;
     }
 
-    @Override
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -18,9 +18,8 @@ package org.apache.camel.impl.converter;
 
 import org.apache.camel.AsyncProcessor;
 import org.apache.camel.Exchange;
-import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.Processor;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.AsyncProcessorConverterHelper;
 
 /**
@@ -30,10 +29,10 @@ import org.apache.camel.util.AsyncProces
  *
  * @version 
  */
-public class AsyncProcessorTypeConverter implements TypeConverter {
+public class AsyncProcessorTypeConverter extends TypeConverterSupport {
 
     @Override
-    public <T> T convertTo(Class<T> type, Object value) {
+    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
         if (value != null) {
             if (type.equals(AsyncProcessor.class)) {
                 if (value instanceof Processor) {
@@ -44,39 +43,6 @@ public class AsyncProcessorTypeConverter
         return null;
     }
 
-    @Override
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) throws NoTypeConversionAvailableException {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) throws NoTypeConversionAvailableException {
-        return convertTo(type, exchange, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
     /**
      * @deprecated use AnycProcessorConverter.convert instead
      */

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/EnumTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -20,7 +20,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.support.TypeConverterSupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -30,10 +30,10 @@ import org.apache.camel.util.ObjectHelpe
  *
  * @version 
  */
-public class EnumTypeConverter implements TypeConverter {
+public class EnumTypeConverter extends TypeConverterSupport {
 
     @SuppressWarnings("unchecked")
-    public <T> T convertTo(Class<T> type, Object value) {
+    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
         if (type.isEnum() && value != null) {
             String text = value.toString();
             Method method;
@@ -47,40 +47,4 @@ public class EnumTypeConverter implement
         return null;
     }
 
-    @Override
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        // ignore exchange
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        // ignore exchange
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        // ignore exchange
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            // ignore exchange
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }
\ No newline at end of file

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -20,11 +20,11 @@ import java.util.concurrent.Future;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.StreamCache;
+import org.apache.camel.TypeConversionException;
 import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.ExchangeHelper;
-import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
  * @version 
  */
 @Converter
-public final class FutureTypeConverter implements TypeConverter {
+public final class FutureTypeConverter extends TypeConverterSupport {
 
     private static final Logger LOG = LoggerFactory.getLogger(FutureTypeConverter.class);
 
@@ -44,6 +44,15 @@ public final class FutureTypeConverter i
         this.converter = converter;
     }
 
+    @Override
+    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
+        try {
+            return doConvertTo(type, exchange, value);
+        } catch (Exception e) {
+            throw new TypeConversionException(value, type, e);
+        }
+    }
+
     @SuppressWarnings("unchecked")
     private <T> T doConvertTo(Class<T> type, Exchange exchange, Object value) throws Exception {
         // do not convert to stream cache
@@ -86,56 +95,4 @@ public final class FutureTypeConverter i
         return null;
     }
 
-    @Override
-    public <T> T convertTo(Class<T> type, Object value) {
-        return convertTo(type, null, value);
-    }
-
-    @Override
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return doConvertTo(type, exchange, value);
-        } catch (Exception e) {
-            throw ObjectHelper.wrapRuntimeCamelException(e);
-        }
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) throws NoTypeConversionAvailableException {
-        return mandatoryConvertTo(type, null, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) throws NoTypeConversionAvailableException {
-        T answer;
-        try {
-            answer = doConvertTo(type, exchange, value);
-        } catch (Exception e) {
-            throw new NoTypeConversionAvailableException(value, type, e);
-        }
-
-        if (answer == null) {
-            throw new NoTypeConversionAvailableException(value, type);
-        }
-
-        return answer;
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -20,8 +20,8 @@ import java.lang.reflect.Method;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -30,7 +30,7 @@ import org.apache.camel.util.ObjectHelpe
  *
  * @version 
  */
-public class InstanceMethodFallbackTypeConverter implements TypeConverter {
+public class InstanceMethodFallbackTypeConverter extends TypeConverterSupport {
     private final CachingInjector<?> injector;
     private final Method method;
     private final boolean useExchange;
@@ -48,11 +48,6 @@ public class InstanceMethodFallbackTypeC
         return "InstanceMethodFallbackTypeConverter: " + method;
     }
 
-    @Override
-    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) {
         Object instance = injector.newInstance();
@@ -64,32 +59,4 @@ public class InstanceMethodFallbackTypeC
                 .invokeMethod(method, instance, type, value, registry);
     }
 
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, null, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, exchange, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
 }
\ No newline at end of file

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -23,6 +23,7 @@ import org.apache.camel.RuntimeCamelExce
 import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterAware;
 import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -31,7 +32,7 @@ import org.apache.camel.util.ObjectHelpe
  *
  * @version 
  */
-public class InstanceMethodTypeConverter implements TypeConverter {
+public class InstanceMethodTypeConverter extends TypeConverterSupport {
     private final CachingInjector<?> injector;
     private final Method method;
     private final boolean useExchange;
@@ -49,11 +50,6 @@ public class InstanceMethodTypeConverter
         return "InstanceMethodTypeConverter: " + method;
     }
 
-    @Override
-    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) {
         Object instance = injector.newInstance();
@@ -72,31 +68,4 @@ public class InstanceMethodTypeConverter
                 .invokeMethod(method, instance, value);
     }
 
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, null, value);
-    }
-
-    @Override   
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, exchange, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodFallbackTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodFallbackTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodFallbackTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodFallbackTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -19,8 +19,8 @@ package org.apache.camel.impl.converter;
 import java.lang.reflect.Method;
 
 import org.apache.camel.Exchange;
-import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -29,7 +29,7 @@ import org.apache.camel.util.ObjectHelpe
  *
  * @version 
  */
-public class StaticMethodFallbackTypeConverter implements TypeConverter {
+public class StaticMethodFallbackTypeConverter extends TypeConverterSupport {
     private final Method method;
     private final boolean useExchange;
     private final TypeConverterRegistry registry;
@@ -45,42 +45,10 @@ public class StaticMethodFallbackTypeCon
         return "StaticMethodFallbackTypeConverter: " + method;
     }
 
-    @Override
-    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) {
         return useExchange ? (T)ObjectHelper.invokeMethod(method, null, type, exchange, value, registry)
             : (T)ObjectHelper.invokeMethod(method, null, type, value, registry);
     }
 
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, null, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, exchange, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }
\ No newline at end of file

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/StaticMethodTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -20,6 +20,7 @@ import java.lang.reflect.Method;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -27,7 +28,7 @@ import org.apache.camel.util.ObjectHelpe
  *
  * @version 
  */
-public class StaticMethodTypeConverter implements TypeConverter {
+public class StaticMethodTypeConverter extends TypeConverterSupport {
     private final Method method;
     private final boolean useExchange;
 
@@ -41,42 +42,10 @@ public class StaticMethodTypeConverter i
         return "StaticMethodTypeConverter: " + method;
     }
 
-    @Override
-    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) {
         return useExchange ? (T)ObjectHelper.invokeMethod(method, null, value, exchange)
             : (T)ObjectHelper.invokeMethod(method, null, value);
     }
 
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, null, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, exchange, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, exchange, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, null, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java Wed Apr 18 16:48:28 2012
@@ -20,9 +20,9 @@ import java.util.concurrent.Future;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
-import org.apache.camel.TypeConverter;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.component.bean.BeanInvocation;
+import org.apache.camel.support.TypeConverterSupport;
 
 /**
  * A simple converter that can convert any object to a String type by using the
@@ -30,11 +30,11 @@ import org.apache.camel.component.bean.B
  *
  * @version 
  */
-public class ToStringTypeConverter implements TypeConverter {
+public class ToStringTypeConverter extends TypeConverterSupport {
 
     @SuppressWarnings("unchecked")
     @Override
-    public <T> T convertTo(Class<T> toType, Object value) {
+    public <T> T convertTo(Class<T> toType, Exchange exchange, Object value) {
         if (value != null) {
 
             // should not try to convert Message
@@ -64,36 +64,4 @@ public class ToStringTypeConverter imple
         return null;
     }
 
-    @Override
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        try {
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        try {
-            return convertTo(type, value);
-        } catch (Exception e) {
-            return null;
-        }
-    }
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/component/bean/issues/MyMessageToProcessorConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/component/bean/issues/MyMessageToProcessorConverter.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/component/bean/issues/MyMessageToProcessorConverter.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/component/bean/issues/MyMessageToProcessorConverter.java Wed Apr 18 16:48:28 2012
@@ -17,17 +17,16 @@
 package org.apache.camel.component.bean.issues;
 
 import org.apache.camel.Exchange;
-import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.Processor;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 
 /**
  * @version 
  */
-public class MyMessageToProcessorConverter implements TypeConverter {
+public class MyMessageToProcessorConverter extends TypeConverterSupport {
 
     @SuppressWarnings("unchecked")
-    public <T> T convertTo(Class<T> type, Object value) {
+    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
         return (T) new Processor() {
             public void process(Exchange exchange) throws Exception {
                 exchange.getIn().setBody("Bye World");
@@ -35,24 +34,4 @@ public class MyMessageToProcessorConvert
         };
     }
 
-    public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
-    public <T> T mandatoryConvertTo(Class<T> type, Object value) throws NoTypeConversionAvailableException {
-        return convertTo(type, value);
-    }
-
-    public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) throws NoTypeConversionAvailableException {
-        return convertTo(type, value);
-    }
-
-    public <T> T tryConvertTo(Class<T> type, Object value) {
-        return convertTo(type, value);
-    }
-
-    public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-        return convertTo(type, value);
-    }
-
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryMissesThenAddTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryMissesThenAddTest.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryMissesThenAddTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryMissesThenAddTest.java Wed Apr 18 16:48:28 2012
@@ -18,7 +18,7 @@ package org.apache.camel.impl;
 
 import junit.framework.TestCase;
 import org.apache.camel.Exchange;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 
 /**
  * @version 
@@ -52,38 +52,16 @@ public class TypeConverterRegistryMisses
         }
     }
 
-    private static class MyOrderTypeConverter implements TypeConverter {
+    private static class MyOrderTypeConverter extends TypeConverterSupport {
 
         @SuppressWarnings("unchecked")
-        public <T> T convertTo(Class<T> type, Object value) {
+        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
             // converter from value to the MyOrder bean
             MyOrder order = new MyOrder();
             order.setId(Integer.parseInt(value.toString()));
             return (T) order;
         }
 
-        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-            // this method with the Exchange parameter will be preferred by Camel to invoke
-            // this allows you to fetch information from the exchange during conversions
-            // such as an encoding parameter or the likes
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Object value) {
-            return convertTo(type, value);
-        }
     }
 
 }

Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryTest.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryTest.java Wed Apr 18 16:48:28 2012
@@ -22,6 +22,7 @@ import java.io.InputStream;
 import junit.framework.TestCase;
 import org.apache.camel.Exchange;
 import org.apache.camel.TypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
 
 /**
  * @version 
@@ -32,7 +33,7 @@ public class TypeConverterRegistryTest e
         DefaultCamelContext ctx = new DefaultCamelContext();
         assertNotNull(ctx.getTypeConverterRegistry());
 
-        // file to inputstream is a default converter in Camel 
+        // file to input stream is a default converter in Camel
         TypeConverter tc = ctx.getTypeConverterRegistry().lookup(InputStream.class, File.class);
         assertNotNull(tc);
     }
@@ -66,46 +67,15 @@ public class TypeConverterRegistryTest e
     }
 
     // START SNIPPET: e2
-    private static class MyOrderTypeConverter implements TypeConverter {
+    private static class MyOrderTypeConverter extends TypeConverterSupport {
 
         @SuppressWarnings("unchecked")
-        public <T> T convertTo(Class<T> type, Object value) {
+        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
             // converter from value to the MyOrder bean
             MyOrder order = new MyOrder();
             order.setId(Integer.parseInt(value.toString()));
             return (T) order;
         }
-
-        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-            // this method with the Exchange parameter will be preferred by Camel to invoke
-            // this allows you to fetch information from the exchange during conversions
-            // such as an encoding parameter or the likes
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Object value) {
-            try {
-                return convertTo(type, null, value);
-            } catch (Exception e) {
-                return null;
-            }
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            try {
-                return convertTo(type, exchange, value);
-            } catch (Exception e) {
-                return null;
-            }
-        }
     }
     // END SNIPPET: e2
 

Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionWrappedExceptionTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionWrappedExceptionTest.java?rev=1327578&r1=1327577&r2=1327578&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionWrappedExceptionTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionWrappedExceptionTest.java Wed Apr 18 16:48:28 2012
@@ -18,8 +18,9 @@ package org.apache.camel.processor.onexc
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
-import org.apache.camel.TypeConverter;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.support.TypeConverterSupport;
+
 import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
 
 /**
@@ -56,32 +57,13 @@ public class OnExceptionWrappedException
     public static class LocalDateTime {
     }
 
-    private static class MyLocalDateTimeConverter implements TypeConverter {
+    private static class MyLocalDateTimeConverter extends TypeConverterSupport {
 
-        public <T> T convertTo(Class<T> type, Object value) {
+        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
             // simulate @Converter where we wrap thrown exception in RuntimeCamelException
             throw wrapRuntimeCamelException(new IllegalArgumentException("Bad Data"));
         }
 
-        public <T> T convertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Object value) {
-            return convertTo(type, value);
-        }
-
-        public <T> T tryConvertTo(Class<T> type, Exchange exchange, Object value) {
-            return convertTo(type, value);
-        }
     }
 
 }
\ No newline at end of file