It would be very useful if we could match services for decoration using the services' annotations. In spite of documentation saying it can be done, it can't:
Tapestry IoC documentation:
"Note: It is not possible to decorate the services of the TapestryIOCModule."
"Note: Another idea will be other ways of matching services: base on inheritance of the service interface and/or based on the presence of particular class annotations on the service interface. None of this has been implemented yet, and can readily be accompllished inside the decorator method (which will return null if it decides the service doesn't need decoration)."
If you write a @Match("*"), Tapestry-IoC throws an exception telling that you cannot decorate internal Tapestry-IoC services. Therefore, there's no way to select services to decorate using only annotations: we need to match services based on name patterns in all situations.
A suggestions is the creation of a @MatchAnnotation() annotation.