This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch tc-loader
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/tc-loader by this push:
     new 649ab14  CAMEL-13313: Add support for generating type converter loader 
source code to be able to load component type converters in a faster way
649ab14 is described below

commit 649ab1410d789ab8600f38a9509a05499712bb06
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Mar 15 11:36:12 2019 +0100

    CAMEL-13313: Add support for generating type converter loader source code 
to be able to load component type converters in a faster way
---
 MIGRATION.md                                             |  5 +++++
 .../camel/component/cxf/converter/CxfConverter.java      |  3 +--
 .../component/cxf/converter/CxfPayloadConverter.java     |  3 +--
 .../camel/component/file/GenericFileConverter.java       |  3 +--
 .../jackson/converter/JacksonTypeConverters.java         |  5 ++---
 .../jacksonxml/converter/JacksonXMLTypeConverters.java   |  3 +--
 .../camel/component/jclouds/JcloudsPayloadConverter.java |  5 ++---
 .../org/apache/camel/component/jetty/JettyConverter.java |  3 +--
 .../org/apache/camel/component/mail/MailConverters.java  |  3 +--
 .../mongodb3/converters/MongoDbFallbackConverter.java    |  3 +--
 .../camel/component/netty4/http/NettyHttpConverter.java  |  5 ++---
 .../reactive/streams/ReactiveStreamsConverter.java       |  3 +--
 .../org/apache/camel/converter/saxon/SaxonConverter.java |  3 +--
 .../apache/camel/component/sparkrest/SparkConverter.java |  5 ++---
 .../main/java/org/apache/camel/FallbackConverter.java    |  1 +
 .../impl/converter/AnnotationTypeConverterLoader.java    | 16 +++++++---------
 .../camel/core/osgi/other/MyOtherTypeConverter.java      |  3 +--
 .../org/apache/camel/core/osgi/test/MyTypeConverter.java |  3 +--
 .../org/apache/camel/component/bean/BeanConverter.java   |  2 --
 .../myconverter/InstanceDummyFallbackConverter.java      |  3 +--
 .../myconverter/MyFallbackPromoteConverter.java          |  3 +--
 .../myconverter/StaticDummyFallbackConverter.java        |  3 +--
 22 files changed, 35 insertions(+), 51 deletions(-)

diff --git a/MIGRATION.md b/MIGRATION.md
index 87f017d..686c7a9 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -297,6 +297,11 @@ The class `XsltAggregationStrategy` has been moved from 
`org.apache.camel.builde
 
 When using the option `groupedExchange` on the aggregator EIP then the output 
of the aggregation is now longer also stored in the exchange property 
`Exchange.GROUPED_EXCHANGE`. This behaviour was already deprecated from Camel 
2.13 onwards.
 
+### Fallback type converters
+
+The `@FallbackConverter` annotation has been removed, and you should use 
`@Converter(fallback = true)` instead. Also you can set `@Converter(loader = 
true)` on the converter class to allow Camel to generate source code for 
loading type converters in a faster way.
+
+
 ### Other changes
 
 The default for use breadcrumbs has been changed from `true` to `false`.
diff --git 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
index 653f407..6e094ff 100644
--- 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
+++ 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
@@ -28,7 +28,6 @@ import javax.xml.soap.SOAPMessage;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.component.cxf.DataFormat;
 import org.apache.camel.converter.stream.CachedOutputStream;
@@ -135,7 +134,7 @@ public final class CxfConverter {
      * @return the converted value of the desired type or null if no suitable 
converter found
      */
     @SuppressWarnings("unchecked")
-    @FallbackConverter
+    @Converter(fallback = true)
     public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, 
             TypeConverterRegistry registry) {
 
diff --git 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
index ea26664..7d8bcdf 100644
--- 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
+++ 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
@@ -36,7 +36,6 @@ import org.w3c.dom.NodeList;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.StreamCache;
 import org.apache.camel.TypeConverter;
@@ -120,7 +119,7 @@ public final class CxfPayloadConverter {
     }
 
     @SuppressWarnings("unchecked")
-    @FallbackConverter
+    @Converter(fallback = true)
     public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         // use fallback type converter, so we can probably convert into
         // CxfPayloads from other types
diff --git 
a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConverter.java
 
b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConverter.java
index 5d27cf0..4623f74 100644
--- 
a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConverter.java
+++ 
b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConverter.java
@@ -33,7 +33,6 @@ import java.util.function.Supplier;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -56,7 +55,7 @@ public final class GenericFileConverter {
         // Helper Class
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry)
         throws IOException, NoTypeConversionAvailableException {
 
diff --git 
a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java
 
b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java
index 7a2d5d2..454c027 100644
--- 
a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java
+++ 
b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.component.jackson.JacksonConstants;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -34,7 +33,7 @@ import org.apache.camel.spi.TypeConverterRegistry;
 /**
  * Jackson {@link org.apache.camel.TypeConverter} that allows converting json 
to/from POJOs and other types.
  * <br/>
- * This implementation uses a {@link FallbackConverter}.
+ * This implementation uses a fallback converter.
  * <p/>
  * The converter is disabled by default. To enable then set the property
  * {@link JacksonConstants#ENABLE_TYPE_CONVERTER} to <tt>true</tt> on {@link 
CamelContext#getGlobalOptions()}.
@@ -58,7 +57,7 @@ public final class JacksonTypeConverters {
         defaultMapper.registerModule(module);
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public <T> T convertTo(Class<T> type, Exchange exchange, Object value, 
TypeConverterRegistry registry) throws Exception {
 
         // only do this if enabled (disabled by default)
diff --git 
a/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/converter/JacksonXMLTypeConverters.java
 
b/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/converter/JacksonXMLTypeConverters.java
index c211d2d..0ca1387 100644
--- 
a/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/converter/JacksonXMLTypeConverters.java
+++ 
b/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/converter/JacksonXMLTypeConverters.java
@@ -23,7 +23,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.component.jacksonxml.JacksonXMLConstants;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -38,7 +37,7 @@ public final class JacksonXMLTypeConverters {
     public JacksonXMLTypeConverters() {
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public <T> T convertTo(Class<T> type, Exchange exchange, Object value, 
TypeConverterRegistry registry) {
 
         // only do this if enabled
diff --git 
a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
 
b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
index 401c45e..ca053e7 100644
--- 
a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
+++ 
b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
@@ -29,7 +29,6 @@ import com.google.common.io.ByteStreams;
 import com.google.common.io.Files;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.converter.stream.StreamSourceCache;
@@ -127,9 +126,9 @@ public final class JcloudsPayloadConverter {
         return payload;
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     @SuppressWarnings("unchecked")
-    public static <T extends Payload> T convertTo(Class<T> type, Exchange 
exchange, Object value, TypeConverterRegistry registry) throws IOException {
+    public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         Class<?> sourceType = value.getClass();
         if (type == Payload.class && 
WrappedFile.class.isAssignableFrom(sourceType)) {
             // attempt to convert to JClouds Payload from a file
diff --git 
a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java
 
b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java
index c8a1e05..1ae53c1 100644
--- 
a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java
+++ 
b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyConverter.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.jetty;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Response;
@@ -37,7 +36,7 @@ public final class JettyConverter {
         return response.toString();
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     @SuppressWarnings("unchecked")
     public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         if (value != null) {
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
index 65360ec..14c2d1e 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
@@ -36,7 +36,6 @@ import javax.mail.search.SearchTerm;
 import com.sun.mail.imap.SortTerm;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -125,7 +124,7 @@ public final class MailConverters {
      * Converts a JavaMail multipart into a body of any type a String can be
      * converted into. The content-type of the part must be text based.
      */
-    @FallbackConverter
+    @Converter(fallback = true)
     public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) throws MessagingException, IOException {
         if (Multipart.class.isAssignableFrom(value.getClass())) {
             TypeConverter tc = registry.lookup(type, String.class);
diff --git 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/converters/MongoDbFallbackConverter.java
 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/converters/MongoDbFallbackConverter.java
index 01d1dcc..3f62bf7 100644
--- 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/converters/MongoDbFallbackConverter.java
+++ 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/converters/MongoDbFallbackConverter.java
@@ -26,7 +26,6 @@ import com.mongodb.DBObject;
 import com.mongodb.util.JSON;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.spi.TypeConverterRegistry;
 import org.bson.Document;
@@ -40,7 +39,7 @@ public final class MongoDbFallbackConverter {
     private MongoDbFallbackConverter() {
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     @SuppressWarnings("unchecked")
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry)
         throws InvalidPayloadException {
diff --git 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConverter.java
 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConverter.java
index 66bdd68..4bb181d 100644
--- 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConverter.java
+++ 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConverter.java
@@ -25,7 +25,6 @@ import io.netty.handler.codec.http.HttpRequest;
 import io.netty.handler.codec.http.HttpResponse;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.component.netty4.NettyConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
@@ -39,7 +38,7 @@ public final class NettyHttpConverter {
     /**
      * A fallback converter that allows us to easily call Java beans and use 
the raw Netty {@link HttpRequest} as parameter types.
      */
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertToHttpRequest(Class<?> type, Exchange 
exchange, Object value, TypeConverterRegistry registry) {
         // if we want to covert to HttpRequest
         if (value != null && HttpRequest.class.isAssignableFrom(type)) {
@@ -67,7 +66,7 @@ public final class NettyHttpConverter {
     /**
      * A fallback converter that allows us to easily call Java beans and use 
the raw Netty {@link HttpRequest} as parameter types.
      */
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertToHttpResponse(Class<?> type, Exchange 
exchange, Object value, TypeConverterRegistry registry) {
         // if we want to covert to convertToHttpResponse
         if (value != null && HttpResponse.class.isAssignableFrom(type)) {
diff --git 
a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsConverter.java
 
b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsConverter.java
index 08cb29b..415d4f4 100644
--- 
a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsConverter.java
+++ 
b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsConverter.java
@@ -20,7 +20,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.component.reactive.streams.util.MonoPublisher;
 import org.apache.camel.spi.TypeConverterRegistry;
 import org.reactivestreams.Publisher;
@@ -34,7 +33,7 @@ public final class ReactiveStreamsConverter implements 
CamelContextAware {
     public ReactiveStreamsConverter() {
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public Object convertToPublisher(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         if (type.isAssignableFrom(Publisher.class)) {
             return new MonoPublisher<>(value);
diff --git 
a/components/camel-saxon/src/main/java/org/apache/camel/converter/saxon/SaxonConverter.java
 
b/components/camel-saxon/src/main/java/org/apache/camel/converter/saxon/SaxonConverter.java
index defc7c4..2362e04 100644
--- 
a/components/camel-saxon/src/main/java/org/apache/camel/converter/saxon/SaxonConverter.java
+++ 
b/components/camel-saxon/src/main/java/org/apache/camel/converter/saxon/SaxonConverter.java
@@ -34,7 +34,6 @@ import net.sf.saxon.trans.XPathException;
 import net.sf.saxon.type.Type;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
@@ -81,7 +80,7 @@ public final class SaxonConverter {
         return new DOMNodeList(domNodeList);
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public static <T> T convertTo(Class<T> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         if (NodeInfo.class.isAssignableFrom(value.getClass())) {
             // use a fallback type converter so we can convert the embedded 
body if the value is NodeInfo
diff --git 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConverter.java
 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConverter.java
index 8c49e94..5da904c 100644
--- 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConverter.java
+++ 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConverter.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.sparkrest;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 import spark.Request;
 import spark.Response;
@@ -32,7 +31,7 @@ public final class SparkConverter {
     /**
      * A fallback converter that allows us to easily call Java beans and use 
the raw Spark {@link Request} as parameter types.
      */
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertToRequest(Class<?> type, Exchange exchange, 
Object value, TypeConverterRegistry registry) {
         // if we want to covert to Request
         if (value != null && Request.class.isAssignableFrom(type)) {
@@ -57,7 +56,7 @@ public final class SparkConverter {
     /**
      * A fallback converter that allows us to easily call Java beans and use 
the raw Spark {@link Response} as parameter types.
      */
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertToResponse(Class<?> type, Exchange exchange, 
Object value, TypeConverterRegistry registry) {
         // if we want to covert to Response
         if (value != null && Response.class.isAssignableFrom(type)) {
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/FallbackConverter.java 
b/core/camel-api/src/main/java/org/apache/camel/FallbackConverter.java
index 4cff97c..5d72fab 100644
--- a/core/camel-api/src/main/java/org/apache/camel/FallbackConverter.java
+++ b/core/camel-api/src/main/java/org/apache/camel/FallbackConverter.java
@@ -35,6 +35,7 @@ import java.lang.annotation.Target;
  * if it can not handle the types to convert from/to.
  *
  * @see org.apache.camel.component.file.GenericFileConverter 
GenericFileConverter for an example.
+ * @deprecated use @Converter(fallback = true) instead
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
index 87d5f02..b557a72 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
@@ -36,7 +36,6 @@ import static java.lang.reflect.Modifier.isStatic;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.TypeConverterLoaderException;
 import org.apache.camel.spi.PackageScanClassResolver;
@@ -271,13 +270,12 @@ public class AnnotationTypeConverterLoader implements 
TypeConverterLoader {
                     if (method.getAnnotation(Converter.class) != null) {
                         allowNull = 
method.getAnnotation(Converter.class).allowNull();
                     }
-                    injector = handleHasConverterAnnotation(registry, type, 
injector, method, allowNull);
-                } else if (ObjectHelper.hasAnnotation(method, 
FallbackConverter.class, true)) {
-                    boolean allowNull = false;
-                    if (method.getAnnotation(FallbackConverter.class) != null) 
{
-                        allowNull = 
method.getAnnotation(FallbackConverter.class).allowNull();
+                    boolean fallback = 
method.getAnnotation(Converter.class).fallback();
+                    if (fallback) {
+                        injector = 
handleHasFallbackConverterAnnotation(registry, type, injector, method, 
allowNull);
+                    } else {
+                        injector = handleHasConverterAnnotation(registry, 
type, injector, method, allowNull);
                     }
-                    injector = handleHasFallbackConverterAnnotation(registry, 
type, injector, method, allowNull);
                 }
             }
 
@@ -379,8 +377,8 @@ public class AnnotationTypeConverterLoader implements 
TypeConverterLoader {
     protected void registerFallbackTypeConverter(TypeConverterRegistry 
registry, TypeConverter typeConverter, Method method) {
         boolean canPromote = false;
         // check whether the annotation may indicate it can promote
-        if (method.getAnnotation(FallbackConverter.class) != null) {
-            canPromote = 
method.getAnnotation(FallbackConverter.class).canPromote();
+        if (method.getAnnotation(Converter.class) != null) {
+            canPromote = 
method.getAnnotation(Converter.class).fallbackCanPromote();
         }
         registry.addFallbackTypeConverter(typeConverter, canPromote);
     }
diff --git 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/other/MyOtherTypeConverter.java
 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/other/MyOtherTypeConverter.java
index dd8ea95..0ee71fe 100644
--- 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/other/MyOtherTypeConverter.java
+++ 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/other/MyOtherTypeConverter.java
@@ -18,7 +18,6 @@ package org.apache.camel.core.osgi.other;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -52,7 +51,7 @@ public final class MyOtherTypeConverter {
         return false;
     }
     
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         // use a fallback type converter so we can convert the embedded body 
if the value is GenericFile
         if (GenericFile.class.isAssignableFrom(value.getClass())) {
diff --git 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/test/MyTypeConverter.java
 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/test/MyTypeConverter.java
index be98bbe..6c95461 100644
--- 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/test/MyTypeConverter.java
+++ 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/test/MyTypeConverter.java
@@ -18,7 +18,6 @@ package org.apache.camel.core.osgi.test;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -52,7 +51,7 @@ public final class MyTypeConverter {
         return false;
     }
     
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         // use a fallback type converter so we can convert the embedded body 
if the value is GenericFile
         if (GenericFile.class.isAssignableFrom(value.getClass())) {
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/component/bean/BeanConverter.java
 
b/core/camel-core/src/main/java/org/apache/camel/component/bean/BeanConverter.java
index 6fb808f..b8b6f55 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/component/bean/BeanConverter.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/component/bean/BeanConverter.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.bean;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
@@ -35,7 +34,6 @@ public final class BeanConverter {
     }
 
     @Converter(fallback = true)
-    @FallbackConverter
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         // use a fallback type converter so we can convert the embedded body 
if the value is BeanInvocation
         if (BeanInvocation.class.isAssignableFrom(value.getClass())) {
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/InstanceDummyFallbackConverter.java
 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/InstanceDummyFallbackConverter.java
index dfc6304..870de8b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/InstanceDummyFallbackConverter.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/InstanceDummyFallbackConverter.java
@@ -22,7 +22,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
 @Converter
@@ -40,7 +39,7 @@ public class InstanceDummyFallbackConverter implements 
CamelContextAware {
         this.camelContext = camelContext;
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public Object convertTo(Class<?> type, Exchange exchange, Object value, 
TypeConverterRegistry registry) {
         if (Currency.class.isAssignableFrom(value.getClass())) {
             return "Money talks says " + camelContext.getName();
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/MyFallbackPromoteConverter.java
 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/MyFallbackPromoteConverter.java
index 040bfbc..de4adc3 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/MyFallbackPromoteConverter.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/MyFallbackPromoteConverter.java
@@ -18,14 +18,13 @@ package org.apache.camel.converter.myconverter;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.converter.MyCoolBean;
 import org.apache.camel.spi.TypeConverterRegistry;
 
 @Converter
 public class MyFallbackPromoteConverter {
 
-    @FallbackConverter(canPromote = true)
+    @Converter(fallback = true, fallbackCanPromote = true)
     public Object convertTo(Class<?> type, Exchange exchange, Object value, 
TypeConverterRegistry registry) {
         if (MyCoolBean.class.isAssignableFrom(value.getClass())) {
             return "This is cool: " + value.toString();
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
index cea018c..56c0e5c 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
@@ -20,7 +20,6 @@ import java.util.TimeZone;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.FallbackConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
 @Converter
@@ -29,7 +28,7 @@ public final class StaticDummyFallbackConverter {
     private StaticDummyFallbackConverter() {
     }
 
-    @FallbackConverter
+    @Converter(fallback = true)
     public static Object convertTo(Class<?> type, Exchange exchange, Object 
value, TypeConverterRegistry registry) {
         if (TimeZone.class.isAssignableFrom(value.getClass())) {
             return "Time talks";

Reply via email to