Thanks for the example.
Especially @Schedule most likely would be a candidate for EE8, given a new Date/Time API won't be available before Java 8.
We discussed that in the State Management EG, where states being valid for a certain period face similar issues and requirements.
General note on duplication. We have duplication already.
Really the question is how do we address the duplication or if we address it.
The annotation inheritance concept exists in other specifications such as Bean Validation and JAX-RS. Here's how JAX-RS defines @POST, as a Stereotype/Metatype of @HttpMethod.
public @interface POST
The only thing missing is @Stereotype/@Metatype.
If we want to do this in more specifications, for example in EJB add
@Schedule(second = "0", minute = "0", hour = "*", month = "*", dayOfWeek = "*", year = "*")
public @interface Hourly
How would we want to do that?
Fundamentally there are three options:
a) address duplication by requiring @Stereotype and CDI dependency
b) address duplication by introducing one more duplicate (let's be fair), @Something in a common annotation or new spec
c) don't address duplication, specifications can duplicate the reuse concept, some require CDI some do not
[javaee-spec users] [jsr342-experts] Re: allowing stereotypes to be used more widely