...
Writing your own Type Converters
Tip | ||
---|---|---|
| ||
In Camel 2.8 the TypeConverter file now supports specifying the FQN class name. This is recommended to be used. See below for more details |
You are welcome to write your own converters. Remember to use the @Converter annotations on the classes and methods you wish to use. Then add the packages to a file called META-INF/services/org/apache/camel/TypeConverter in your jar. Remember to make sure that :-
- static methods are encouraged to reduce caching; but instance methods are fine, particularly if you want to allow optional dependency injection to customize the converter
- converter methods should be thread safe and reentrant
Examples of TypeConverter file
The file in the JAR: META-INF/services/org/apache/camel/TypeConverter
contains the following line(s)
Code Block |
---|
com.foo
com.bar
|
Each line in the file is package name. This tells Camel to go scan those packages for any classes which has been annotated with the @Converter.
Improved TypeConverter by using FQN class names
Available as of Camel 2.8
In Camel 2.8 we improved the type converter loader to support specifying the FQN class name of the converter classes. This has a much better advantage as it avoids having to scan packages for @Converter classes. Instead it loads the @Converter class directly. This is highly recommend approach to use going forward.
Examples of TypeConverter file
The file in the JAR: META-INF/services/org/apache/camel/TypeConverter
contains the following line(s) for FQN class names
Code Block |
---|
com.foo.MyConverter
com.bar.MyOtherConverter
com.bar.YetOtherConverter
|
As you can see each line in the file now contains a FQN class name. This is the recommended approach.
Encoding support for byte[] and String Conversion
...