Yeah - the big problem is that this generates a warning:

        Arrays.asList( WarmUp.class, PostConstruct.class )

I'm glad that this is fixed in Java 7. BTW - why are we targeting Java 5? Can 
we at least move to Java 6?

-JZ

On Mar 13, 2013, at 7:54 PM, Mikhail Mazursky <mikhail.mazur...@gmail.com> 
wrote:

> Hi Simone.
> 
> I little inconvenience with varargs is that it will produce warnings is
> user code because we use parametrized type Class<? extends Annotation> in
> it (see [1]). The correct solution would be to use @SafeVarargs [2] but it
> was only added in Java 7 and we target Java 5. So i think we better keep
> current constructor intact. When i mentioned asList() i was talking about
> internal use of it in Onami code instead of ListBuilder.
> 
> Also Onami user can use asList() himself and it is annotated with
> @SafeVarargs in Java 7+ so no warnings in this case.
> 
> WDYT?
> 
> [1]: http://stackoverflow.com/questions/4257883/warning-for-generic-varargs
> [2]: http://docs.oracle.com/javase/7/docs/api/java/lang/SafeVarargs.html
> 
> 2013/3/14 Simone Tripodi <simonetrip...@apache.org>
> 
>> Hi Mikhail!
>> 
>> +1 for varargs, result would look charming like a sunshine:
>> 
>>    public AbstractLifeCycleModule( Class<? extends
>> Annotation>...annotationTypes )
>>    {
>>        this( any(), asList( annotationTypes ) );
>>    }
>> 
>> Of course I'd change the overloading constructor as well:
>> 
>>    public AbstractLifeCycleModule( Matcher<? super TypeLiteral<?>>
>> typeMatcher, Class<? extends Annotation>...annotationTypes )
>>    {
>>        this( Arrays.asList( annotationTypes ), typeMatcher );
>>    }
>> 
>> Clean, compact, clear, direct. We cannot ask more :)
>> Feel free to fill an issue and provide a fix.
>> 
>> my 2 cents,
>> -Simo
>> 
>> http://people.apache.org/~simonetripodi/
>> http://simonetripodi.livejournal.com/
>> http://twitter.com/simonetripodi
>> http://www.99soft.org/
>> 
>> 
>> On Wed, Mar 13, 2013 at 1:15 PM, Mikhail Mazursky
>> <mikhail.mazur...@gmail.com> wrote:
>>> Hi Simone, Jordan.
>>> 
>>> IMHO AbstractLifeCycleModule should check that the List that was passed
>> to
>>> it contains no duplicates and throw exception if it does. In any case
>>> behaviour in such situation should be described it JavaDocs.
>>> Also, is this ListBuilder need to be public API at all? And maybe get rid
>>> of it completely by using Arrays.asList()?
>>> 
>>> 2013/3/12 Simone Tripodi <simonetrip...@apache.org>
>>> 
>>>> Hi Jordan,
>>>> 
>>>>>> * the adapted List of annotation should be IMHO a LinkedHashSet,
>>>>>> otherwise users could specify the same type twice in the list and
>>>>>> drive the lifecycle engine to invoke twice the same method in
>>>>>> different phases - IIUC this is not the desired behaviour, or is it?
>>>>> It's a List because it needs to be ordered. I hadn't thought about
>>>> duplicates.
>>>> 
>>>> the LinkedHashSet[1] will preserve the order like the List does,
>>>> moreover will keep the unicity of its elements.
>>>> 
>>>> 
>> 

Reply via email to