[weld-issues] [JBoss JIRA] (WELD-1131) Weld Proxies (for instance created by Producer-Method) loose Annotations put ontop of Methods of source class

P Huber (JIRA) jira-events at lists.jboss.org
Thu May 10 04:17:18 EDT 2012


    [ https://issues.jboss.org/browse/WELD-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12691694#comment-12691694 ] 

P Huber commented on WELD-1131:
-------------------------------

Thanks for the feedback - Problem is, that I for sure can upgrade weld in my standalone example, but not in it's original env which is glassfish 3.1.2. I'm not going to fiddle with alpha versions there, sorry...
But I can live with it, I have a my workaround in place. Probably you can talk to the gf guys that they are aware of the problem and that they should consider update, too and maybe it's an good idea to document my workaround "somewhere" in the faq/known issues/workarounds
                
> Weld Proxies (for instance created by Producer-Method) loose Annotations put ontop of Methods of source class
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: WELD-1131
>                 URL: https://issues.jboss.org/browse/WELD-1131
>             Project: Weld
>          Issue Type: Bug
>          Components: Reflection layer
>    Affects Versions: 1.1.8.Final
>         Environment: glassfish 3.1.2
>            Reporter: P Huber
>            Assignee: Marko Lukša
>             Fix For: 2.0.0.Alpha2
>
>         Attachments: weld-forgets-annotation_WELD-1131.7z
>
>
> I have project specific Annotations ontop of public Methods of a class.
> class Customer {
>         @MyProjectSpecificAnnotation
> 	public String getFirstName() {
> 		return firstName;
> 	}
> }
> When producing Objects of such an annotated class, like with
> class Example {
>      @Produce
>      Customer producerField;
> }
> Then at the Injection Side the Annotations "MyProjectSpecificAnnotation" is no longer available, because WELD injects a byte-code created proxy.
> class InjectionSide {
>      @Inject
>      Customer injectField; // here we get the WELD-Proxy of unpronouncable name...and no Annotations
> }
> I've used BeanIntrospector to reflect the injected Instance of class Customer. I get a set of PropertyDescriptors with a write/read Method each.
> But as allready said, none of them has the "MyProjectSpecificAnnotation".
> Could be due to the fact, that when subclassing a class, the Annotations of the super class are not available at sub class directly - But in Case of a "transparent" WELD proxy I'd expect they should be there. Probably you have to simply copy annotations during on-the-fly byte-code creation of the Proxy. The Problem is btw also true for javas built in Dynamic Proxy: using it you also loose Annotations.
> Hope you can fix that

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the weld-issues mailing list