Thanks for this information
My route fairly simple actually since I am testing the custom converters:
<route streamCache="false">
<from uri="direct:test" />
<convertBodyTo type="Message" />
<convertBodyTo type="NotificationType" />
<bean ref="converter" method="showMsg" />
<to uri="mock:test" />
</route>
Message can contains any type of Payload, NotficationType is one of them.
The bean showMsg method simple log the content of the file:
public NotificationType showMsg(NotificationType msg) {
System.out.println(msg.xmlText());
return msg;
}
The explicit convertion to NotificationType is not necessary since when I
register a converter, it is used automatocally.
The convertion to Message however cannot be deduced automatically.
As I explained, when I used a normal converter this sample works fine :
@Converter
private NotificationType toPayload(Message<NotificationType> msg){
return msg.getPayload();
}
Since Message can hold ony type of paylaod I would like this method to be
generic, so I tried to use the FallBackconverter like this:
@FallbackConverter
public <T> T toPayload(Class<T> type, Exchange exchange, Object value,
TypeConverterRegistry registry){
if (Message.class.isAssignableFrom(value.getClass())) {
return ((Message) value).getPayload();
}
return null;
}
I'll try to debug to find the exact source of the problem.
--
View this message in context:
http://camel.465427.n5.nabble.com/Converter-Generics-tp2839250p2840278.html
Sent from the Camel - Users mailing list archive at Nabble.com.