Java 8 made a changes to generics that is currently not allowing camel to
start up, and if it did start up would be in a bad state. Bridge methods
now get a copy of the annotations placed on the real method. This is bad
when combined with Camel annotations. For example:
interface Something<T extends SomeType> {
void doSomethingWith(T it);
}
class Foo implements Something<RealType> {
@Consume(uri = "...")
@Override
public void doSomethingWith(RealType it) {
.....
}
}
The class the compiler makes actually looks like this because of type
erasure:
class Foo implements Something<RealType> {
@Consume(uri = "...")
@Override
public void doSomethingWith(RealType it) {
.....
}
@Consume(uri = "...")
@Override
public void doSomethingWith(SomeType it) {
.....
}
}
This is a breaking change as far as Camel is concered for 2 reasons:
1. BeanInfo.isValidMethod does not allow for bridge methods
2. There are now 2 methods listening to the same endpoint
Is this a bug that should be reported? Any ideas on a workaround? I'm
about to downgrade to java 7.
--
View this message in context:
http://camel.465427.n5.nabble.com/Changes-in-Java-8-generics-breaking-Camel-tp5760638.html
Sent from the Camel - Users mailing list archive at Nabble.com.