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:03:00 +0100

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 ?

>
> 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