How to define a static Camel converter method in Scala?
When you use Scala object you can define the static method for others to use. Scala will create a class which implements the singleton pattern for that class object.
If the object name is A
, you can find the singleton class name with A$
.
Using javap
to recompile the class A
and A$
, you will find A
has bunch
of static method, and A$
doesn’t have any of them. If you specify the
converter class package name in
META-INF/service/org/apache/camel/TypeConverter
, Camel will load the
class A
and A$
at the same time. As the A$
construction method is not
supposed to be invoked, Camel will complain that he cannot load the
converter method which you are supposed to use because he can’t create
an instance of A$
.
To avoid this kind of error, we need to specify the full class name of A
in the TypeConverter
to let Camel load the converter directly.