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

Reply via email to