[seam-dev] First cab off the rank!
Pete Muir
pmuir at redhat.com
Wed Dec 2 06:50:41 EST 2009
Patch applied :-)
On 2 Dec 2009, at 00:18, Stuart Douglas wrote:
> I have attached a patch here, with some tests
>
> https://jira.jboss.org/jira/browse/WELDX-53
>
> This patch also fixes a few other minor issues namely:
>
> bytes were being coerced into shorts
> type coercion was only happening on method invocation, not in the .equals method
>
> Stuart
>
> ________________________________________
> From: Shane Bryzak [sbryzak at redhat.com]
> Sent: Wednesday, 2 December 2009 10:45 AM
> To: Stuart Douglas
> Cc: seam-dev at lists.jboss.org
> Subject: Re: [seam-dev] First cab off the rank!
>
> Actually, my workaround is to just take the value from the memberValues map:
>
> Object value =
> memberValues.get(annotationType.getDeclaredMethods()[i].getName());
>
> On 02/12/09 09:38, Shane Bryzak wrote:
>> It seems like there is a problem with AnnotationInvocationHandler -
>> inside the toString() method an instance of the InvocationHandler is
>> being passed to the static invoke() method, however it should be passing
>> the proxy object. I can't think of a workaround for this though...
>>
>> On 02/12/09 08:13, Stuart Douglas wrote:
>>
>>> Looks fine, I just tested it out it my XML extensions modules and everything still works.
>>>
>>>
>>>
>>> ________________________________________
>>> From: Pete Muir [pmuir at redhat.com]
>>> Sent: Wednesday, 2 December 2009 12:32 AM
>>> To: Stuart Douglas
>>> Cc: seam-dev at lists.jboss.org
>>> Subject: Re: [seam-dev] First cab off the rank!
>>>
>>> Ok, I merged this into the Weld extensions module and pushed a snapshot to the maven repo, please check it for me :-)
>>>
>>> On 30 Nov 2009, at 21:53, Stuart Douglas wrote:
>>>
>>>
>>>
>>>> There are only two, AnnotationCache and AnnotationInvocationHandler, I have attached them in a zip. I was not sure what package you want to put them in so I have left them as is.
>>>>
>>>> AnnotationCache provides the public interface, and as the name suggests caches proxy instances so that a new one is not created each time.
>>>>
>>>> Stuart
>>>>
>>>>
>>>>
>>>> ________________________________________
>>>> From: Pete Muir [pmuir at redhat.com]
>>>> Sent: Monday, 30 November 2009 11:34 PM
>>>> To: Stuart Douglas
>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>
>>>> Stuart, can we merge this stuff into Weld extensions? Can you give me a pointer to which classes to merge, or better yet a patch?
>>>>
>>>> On 30 Nov 2009, at 07:08, Stuart Douglas wrote:
>>>>
>>>>
>>>>
>>>>> Forgot to CC to seam-dev again.
>>>>> ________________________________________
>>>>> From: Stuart Douglas
>>>>> Sent: Monday, 30 November 2009 6:06 PM
>>>>> To: Shane Bryzak
>>>>> Subject: RE: [seam-dev] First cab off the rank!
>>>>>
>>>>> No, it will support them, the special case stuff for the primitives is so you don't have to be that careful about your types. e.g. :
>>>>>
>>>>> public @interface SomeAnnotation
>>>>> {
>>>>> long value();
>>>>> }
>>>>>
>>>>> you can do
>>>>>
>>>>> map.put("value",10);
>>>>>
>>>>> rather than
>>>>>
>>>>> map.put("value",new Long(10));
>>>>>
>>>>> Feel free to steal it, most of was stoled from AnnotationLiteral anyway. I think it would be good to get stuff like this and Gavin's Reannotated* classes and put them in some kind of extension utils module.
>>>>>
>>>>> Stuart
>>>>>
>>>>>
>>>>> ________________________________________
>>>>> From: Shane Bryzak [sbryzak at redhat.com]
>>>>> Sent: Monday, 30 November 2009 5:58 PM
>>>>> To: Stuart Douglas
>>>>> Cc: Gavin King; seam-dev at lists.jboss.org
>>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>>
>>>>> Looks good Stuart, I might have to steal some of your code - it doesn't
>>>>> seem to support enum or class member values though, is that right?
>>>>>
>>>>> On 30/11/09 14:31, Stuart Douglas wrote:
>>>>>
>>>>>
>>>>>> I have done up a quick and dirty one using JDK proxies, that seems to work ok (all my XML config tests pass and most of the code was stolen from AnnotationLiteral).
>>>>>>
>>>>>> The class that creates the proxy:
>>>>>>
>>>>>> http://bazaar.launchpad.net/~stuart-baileyroberts/jbraze/trunk/annotate/head%3A/spi-tools/src/main/java/org/jbraze/spitools/AnnotationCache.java
>>>>>>
>>>>>> The InvocationHandler:
>>>>>>
>>>>>> http://bazaar.launchpad.net/~stuart-baileyroberts/jbraze/trunk/annotate/head%3A/spi-tools/src/main/java/org/jbraze/spitools/AnnotationInvocationHandler.java
>>>>>>
>>>>>> To create an instance you go
>>>>>>
>>>>>> AnnotationCache.getAnnotation(MyAnnotation.class,memberValues);
>>>>>>
>>>>>> where memberValues is a<String,Object> map of the annotations member values.
>>>>>>
>>>>>> Stuart
>>>>>> ________________________________________
>>>>>> From: Gavin King [gavin.king at gmail.com]
>>>>>> Sent: Monday, 30 November 2009 2:53 PM
>>>>>> To: Stuart Douglas; Weld-Dev
>>>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>>>
>>>>>> On Sun, Nov 29, 2009 at 10:39 PM, Gavin King<gavin.king at gmail.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Yes, you're right. So you would need to implement the annotation @interface.
>>>>>>>
>>>>>>> On Sun, Nov 29, 2009 at 10:27 PM, Stuart Douglas
>>>>>>> <stuart at baileyroberts.com.au> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> What about for @NonBinding members? Won't implementations need to perform their own equality check if there are non binding members?
>>>>>>>>
>>>>>>>> Stuart
>>>>>>>>
>>>>>>>> ________________________________________
>>>>>>>> From: Gavin King [gavin.king at gmail.com]
>>>>>>>> Sent: Monday, 30 November 2009 1:22 PM
>>>>>>>> To: Shane Bryzak
>>>>>>>> Cc: Stuart Douglas; seam-dev at lists.jboss.org
>>>>>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>>>>>
>>>>>>>> Yeah. Probably you could just stick the members in an array. You
>>>>>>>> probably don't need to actually implement the annotation interface.
>>>>>>>> You would only need to implement Annotation.
>>>>>>>>
>>>>>>>> Well, the spec does not say explicitly that this would work, but it
>>>>>>>> seems fairly safe.
>>>>>>>>
>>>>>>>> Sent from my iPhone
>>>>>>>>
>>>>>>>> On Nov 29, 2009, at 9:07 PM, Shane Bryzak<sbryzak at redhat.com> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Good point - isn't this simply a case though of implementing the
>>>>>>>>> equals() and hashCode() methods and checking that the members are
>>>>>>>>> equal,
>>>>>>>>> i.e. the same way that AnnotationLiteral does it?
>>>>>>>>>
>>>>>>>>> On 30/11/09 06:36, Stuart Douglas wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Does it still work when the annotation has members? That was why I
>>>>>>>>>> needed the javassist.
>>>>>>>>>>
>>>>>>>>>> Stuart
>>>>>>>>>>
>>>>>>>>>> ________________________________________
>>>>>>>>>> From: seam-dev-bounces at lists.jboss.org [seam-dev-
>>>>>>>>>> bounces at lists.jboss.org] On Behalf Of Shane Bryzak
>>>>>>>>>> [sbryzak at redhat.com]
>>>>>>>>>> Sent: Monday, 30 November 2009 5:34 AM
>>>>>>>>>> To: Gavin King
>>>>>>>>>> Cc: seam-dev at lists.jboss.org
>>>>>>>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>>>>>>>
>>>>>>>>>> Nope, just wrote my own impl of Annotation which I could then pass
>>>>>>>>>> into
>>>>>>>>>> BeanManager.getBeans().
>>>>>>>>>>
>>>>>>>>>> On 30/11/09 04:32, Gavin King wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> You used a jdk dynamicproxy? Probably a better idea.
>>>>>>>>>>>
>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>
>>>>>>>>>>> On Nov 29, 2009, at 1:01 PM, Shane Bryzak<sbryzak at redhat.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Done, although I didn't need to use Javassist. ;)
>>>>>>>>>>>>
>>>>>>>>>>>> On 30/11/09 02:38, Gavin King wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> Stuart has some code to do this using javassist.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Nov 29, 2009 at 2:00 AM, Shane Bryzak<sbryzak at redhat.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Almost got this working, however I need to be able to
>>>>>>>>>>>>>> reflectively
>>>>>>>>>>>>>> create an
>>>>>>>>>>>>>> AnnotationLiteral, given a String containing the fully qualified
>>>>>>>>>>>>>> name of the
>>>>>>>>>>>>>> qualifier. Anyone done this before?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> seam-dev mailing list
>>>>>>>>>> seam-dev at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> seam-dev mailing list
>>>>>>>>> seam-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Gavin King
>>>>>>> gavin.king at gmail.com
>>>>>>> http://in.relation.to/Bloggers/Gavin
>>>>>>> http://hibernate.org
>>>>>>> http://seamframework.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> Gavin King
>>>>>> gavin.king at gmail.com
>>>>>> http://in.relation.to/Bloggers/Gavin
>>>>>> http://hibernate.org
>>>>>> http://seamframework.org
>>>>>>
>>>>>> _______________________________________________
>>>>>> seam-dev mailing list
>>>>>> seam-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> seam-dev mailing list
>>>>> seam-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>>
>>>>>
>>>> <annotation-creator.zip>
>>>>
>>>>
>>> _______________________________________________
>>> seam-dev mailing list
>>> seam-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>
>>>
>> _______________________________________________
>> seam-dev mailing list
>> seam-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>
>
>
> _______________________________________________
> seam-dev mailing list
> seam-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/seam-dev
More information about the seam-dev
mailing list