Hi Pete,
Could you take a look at
https://jira.jboss.org/browse/JBIDE-7710
JSR-299 says that a qualifier type is a Java annotation defined
as @Target({METHOD, FIELD, PARAMETER, TYPE}) or @Target({FIELD,
PARAMETER}) (an event qualifier type):
2.3.2. Defining new qualifier types
A qualifier type is a Java annotation
defined as @Target({METHOD, FIELD, PARAMETER, TYPE}) and
@Retention(RUNTIME).
...
10.1. Event types and qualifier types
...
An event qualifier type is just an
ordinary qualifier type as specified in Section 2.3.2,
“Defining new qualifier types” with the exception that it
may be declared @Target({FIELD, PARAMETER}).
...
But the spec doesn't require to treat other kinds of @Target
(for example @Target({FIELD, METHOD, PARAMETER} which is used in
weld-jsf-jee archetype) as a definition error.
It seems that we got it wrong and if there is any @Target except
@Target({METHOD, FIELD, PARAMETER, TYPE}) or
@Target({FIELD, PARAMETER}) then JBT marks such definitions as
errors:
Qualifier annotation type must be
annotated with @Target({TYPE, METHOD, FIELD, PARAMETER}) or
@Target({METHOD, FIELD}) [JSR-299 §2.3.2, §10.1]
Can you confirm that actually a qualifier
type could have any @Target?
Thanks.