[seam-dev] First cab off the rank!

Gavin King gavin.king at gmail.com
Sun Nov 29 23:32:11 EST 2009


No, that's what we were just discussing. AnnotationLiteral needs to do
the same thing as a JVM-generated impl of Annotation. It's up to the
CDI implementation to implement its own comparisons which ignore
@NonBinding members.


On Sun, Nov 29, 2009 at 11:01 PM, Shane Bryzak <sbryzak at redhat.com> wrote:
> A little off topic, and maybe I'm missing something.. but shouldn't
> javax.enterprise.util.AnnotationLiteral ignore any @NonBinding members in
> its equals() test?  Or is that handled elsewhere?
>
>   @Override
>   public boolean equals(Object other)
>   {
>      if (other instanceof Annotation)
>      {
>         Annotation that = (Annotation) other;
>         if (this.annotationType().equals(that.annotationType()))
>         {
>            for (Method member : members)
>            {
>               Object thisValue = invoke(member, this);
>               Object thatValue = invoke(member, that);
>               if (thisValue.getClass().isArray() &&
> thatValue.getClass().isArray())
>               {
>                  if (!Arrays.equals(Object[].class.cast(thisValue),
> Object[].class.cast(thatValue)))
>                  {
>                     return false;
>                  }
>               }
>               else if (!thisValue.equals(thatValue))
>               {
>                  return false;
>               }
>            }
>            return true;
>         }
>      }
>      return false;
>   }
>
> On 30/11/09 13:39, Stuart Douglas wrote:
>>
>> Sorry, I forgot to CC in seam-dev
>> ________________________________________
>> From: Gavin King [gavin.king at gmail.com]
>> Sent: Monday, 30 November 2009 2:39 PM
>> To: Stuart Douglas
>> Subject: Re: [seam-dev] First cab off the rank!
>>
>> 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
>>
>> _______________________________________________
>> 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



More information about the seam-dev mailing list