hi all, we are currently in progress to migrate our application from tapestry 5.1.0.5 to tapestry 5.2.4 - we encounter some minor challenges, but the following was hard to solve:
In Tapestry 5.2.4 a service with a single interface and multiple implemenations which are discriminated with an marker annotation get not resolved when the marker annotation is defined inside a service implementation: binder.bind(AddressValidationStrategy.class, NoChecksAddressValidationStrategy.class).withId(Invoice.class.getName()).withMarker(Invoice.class); binder.bind(AddressValidationStrategy.class, DefaultAddressValidationStrategy.class).withId(Shipping.class.getName()).withMarker(Shipping.class); The marker "Invoice.class" and "Shipping.class" (which are annotations) are defined within another service. This service uses both AddressValidationStrategies. While writing this message i am getting an assumption why this error occurs: Its because of the live class reloading of the service implementations. When definging the annotations in a separate java file outside of the service implementation, the services get resolved. i don't know if this is an error or bad design to define the annotations inside of an service implemenation, but maybe one should add a hint to the api of the servicebinder methods, that the marker annotations need to be defined in separate java files or at least not as a member of a service implementation. keep up the good work, felix< --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org