users@jax-rs-spec.java.net

[jax-rs-spec users] [jsr339-experts] Re: Configurable.register() ignores illegal classes

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Thu, 9 May 2013 16:09:21 +0100

On 09/05/13 16:03, Sergey Beryozkin wrote:
> On 09/05/13 15:55, Bill Burke wrote:
>>
>>
>> On 5/9/2013 10:00 AM, Sergey Beryozkin wrote:
>>> Hi Bill
>>> On 09/05/13 14:31, Bill Burke wrote:
>>>> The javadoc for Configurable.register(Class) says that the container
>>>> should ignore and warn if a user tries to register an illegal class.
>>>> This is bad behavior, IMO. Instead it should throw an
>>>> IllegalArgumentException
>>>>
>>>
>>> This would break the compatibility, example, JAX-RS 3.0 applications
>>> (custom applications aware of new 3.0 extensions) registering these new
>>> extensions with 2.0 JAX-RS stacks
>>
>> Your statement doesn't make sense. Registering unrecognized component
>> types has nothing to do with compatibility.
>
> It does. Consider JAX-RS 3.0 introducing NewCallback.class. 3.0
> applications know about it and register NewCallback.class and it just
> works. Now the same application is loaded in the container supporting
> 2.0 and this application suddenly gets IllegalArgumentException, see
> what I mean ?

Though of course this implies this 3.0 Application has not been coded
with some other 3.0 API, only new callback classes are used. Somewhat
hypothetical but realistic, we've had quite a few cases of 2.0 & 1.1
mix-ups alaready

Cheers. Sergey

>
>>
>> Still, ignoring *illegal* classes like non-static ones, is definitely
>> not a compatibility issue.
>>
>>
> Yes, I agree, some tests are coded somewhat unexpectedly, but I'd say it
> just emulates the above case, does it really matter what sort of class
> it is ?
>
> Cheers, Sergey
>


-- 
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com