[seam-dev] First cab off the rank!

Stuart Douglas stuart at baileyroberts.com.au
Sun Nov 29 23:31:19 EST 2009


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



More information about the seam-dev mailing list