[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-7710) JBT 3.2 (beta 1) saying weld archetypes are not JSR 299 compliant

Alexey Kazakov (JIRA) jira-events at lists.jboss.org
Tue Nov 23 09:55:59 EST 2010


    [ https://jira.jboss.org/browse/JBIDE-7710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12564859#comment-12564859 ] 

Alexey Kazakov commented on JBIDE-7710:
---------------------------------------

I've asked Pete about @Target:


>> 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 definitionsas 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?

And here is his answer:

I think it should have the @Target's that the spec describes, anything else is non-portable. Erroring, or maybe warning (I would prefer an error), is a good idea.

> JBT 3.2 (beta 1) saying weld archetypes are not JSR 299 compliant
> -----------------------------------------------------------------
>
>                 Key: JBIDE-7710
>                 URL: https://jira.jboss.org/browse/JBIDE-7710
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: cdi (jsr-299), maven
>    Affects Versions: 3.2.0.Beta1
>         Environment: Helios 3.6.1, WTP 3.2.2, m2eclipse 0.12.0, m2eclipse-wtp 0.11.1
>            Reporter: Fred Bricon
>            Assignee: Alexey Kazakov
>             Fix For: 3.2.0.CR1
>
>         Attachments: cdi-violations.jpg
>
>
> Hi
> so, using JBoss Tools 3.2.0 beta 1, I got these errors when creating a project using the weld-jsf-jee archetype :
> WidgetRepositoryProducer.java L19 : Non-static method of a session bean class has a parameter annotated @Disposes, and the method is not a business method of the session bean [JSR-299 §3.3.6]
> WidgetRepositoryProducer.java L 15 : Non-static method of a session bean class is annotated @Produces, and the method is not a business method of the session bean [JSR-299 §3.3.2]
> WidgetListProducer.java L 17: Producer method with a parameterized return type with a type variable must be @Dependent scoped [JSR-299 §3.3]
> WidgetRepository.java L 11 : Qualifier annotation type must be annotated with @Target({TYPE, METHOD, FIELD, PARAMETER}) or @Target({METHOD, FIELD}) [JSR-299 §2.3.2, §10.1]
> Dan Allen assures me the archetypes are fully compliant, so the validation implementation must be off, somehow.
> Maybe this behavior has changed in JBT 3.2 beta 2, in which case I apologize for the noise.
> Regards,
> Fred Bricon

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jbosstools-issues mailing list