jsr339-experts@jax-rs-spec.java.net

[jsr339-experts] Re: Binding of ContainerRequestContext to Servlet

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Fri, 7 Sep 2012 15:00:58 +0100

On 07/09/12 14:36, Marek Potociar wrote:
>
> On Sep 7, 2012, at 3:22 PM, Bill Burke<bburke_at_redhat.com> wrote:
>
>>
>>
>> On 9/7/2012 7:53 AM, Markus KARG wrote:
>>>> -----Original Message-----
>>>> From: Sergey Beryozkin [mailto:sberyozkin_at_talend.com]
>>>> Sent: Freitag, 7. September 2012 11:37
>>>> To: jsr339-experts_at_jax-rs-spec.java.net
>>>> Subject: [jsr339-experts] Binding of ContainerRequestContext to Servlet
>>>>
>>>> The documentation for all the ContainerRequestContext methods to do
>>>> with retrieving or setting the properties refers to Servlet
>>>> (effectively
>>>> HttpServletRequest) attributes.
>>>>
>>>> getPropertyNames() even returns Enumeration.
>>>>
>>>> This concerns me a bit. I think if some users are keen to work with
>>>> Servlet API in context of JAX-RS then they will expect more than just
>>>> the ability to get an access to the underlying Servlet attributes. In
>>>> other words, they'd want HTTPServletRequest.
>>>>
>>>> AFAIK, the whole idea was to be able to exchange properties between the
>>>> filters, as such I do not see why Servlet even has to be mentioned, and
>>>> the ancient legacy Enumeration interface has to be introduced into the
>>>> signature.
>>>>
>>>> It also may send a message that JAX-RS is some kind of thin wrapper on
>>>> top of Servlet API.
>>>>
>>>> Thoughts ?
>>>>
>>>> Cheers, Sergey
>>>
>>> I also think that the JAX-RS API should not be too Servlet API related. If a
>>> container is not using Servlet at all (what might become more and more
>>> essential in future, when platforms turn from Web Hosting Cluster to
>>> Application Clouds), there should be no need for the implementor to provide
>>> a Servlet API class. This has some kind of design smell ("We all base on
>>> Servlet API, so let's assume this for all others").
>>>
>>
>> I think you're misunderstanding things. There is no requirement on the Servlet API, just that Filter/Interceptor properties are backed by HttpServletRequest in a servlet environment. This makes JAX-RS more seemless integratable.
>>
>> Maybe a changing of the wording is:
>>
>> Properties should be backed by any underyling mechanism to associate properties with the http request. So, a JAX-RS container written on top of the Servlet API should have properties backed by HttpServletRequest attributes. This allows JAX-Rs filters and interceptors to seemlessly pass information between JAX-RS and their underlying http implementations.
>>
>
> While I don't see any problem with the current wording that merely says that in a Servlet container, the properties are backed by ServletRequest, I can make the change proposed by Bill, if people agree.
>

Servlet references have to be dropped IMHO. Can you please review my
original email ?

Sergey

>> That clear things up?
>>
>> FYI, similarly, I'm pushing for Configurable.properties to be backed by ServletContext init/context params so you can easily pass config from web.xml into your components.
>
> Can you provide a suggestion for the exact wording change?
>
> Marek
>
>>
>>
>>
>> --
>> Bill Burke
>> JBoss, a division of Red Hat
>> http://bill.burkecentral.com
>


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