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

[jsr339-experts] Re: Injecting a sub-resource method path parameter into a resource field - legal or not?

From: Marek Potociar <marek.potociar_at_oracle.com>
Date: Thu, 23 Feb 2012 17:06:04 +0100

Yes it is there. But this particular use case is not explicitly covered. IOW it's ambiguous.

Marek

On 02/23/2012 02:49 PM, Sergey Beryozkin wrote:
> btw, I'm not sure it is even in the spec now, support for injecting JAX-RS parameter values as properties (via fields or
> setters), I recall it was in 0.8 or similar and at some stage I also remember seeing the advice about the thread safety
> too; as it's impossible to inject a proxy for 'int'
>
> Sergey
>
> On 23/02/12 13:46, Sergey Beryozkin wrote:
>> On 23/02/12 13:37, Marek Potociar wrote:
>>> To elaborate more, consider also the extended example:
>>>
>>> @Path("foo")
>>> public class FooResource {
>>> @PathParam("id") String id;
>>>
>>> @GET
>>> public String getFoo() {
>>> return id;
>>> }
>>>
>>> @GET
>>> @Path("bar/{id}")
>>> public String getBar() {
>>> return id;
>>> }
>>> }
>>>
>>> Should the above be legal? What should be returned for a GET "/foo"
>>> request?
>>
>> 'null' - because no "id" template var has been captured in context of
>> getFoo(), this is why this style is limited to the per-request root
>> resources only, not thread-safe otherwise
>>
>> Cheers, Sergey
>>
>>>
>>> Marek
>>>
>>> On 02/23/2012 12:01 PM, Marek Potociar wrote:
>>>> Hello experts,
>>>>
>>>> we've received a bug report in Jersey about the following use case:
>>>>
>>>> @Path("foo")
>>>> public class FooResource {
>>>> @PathParam("id") String id;
>>>>
>>>> @GET
>>>> @Path("bar/{id}")
>>>> public String get() {
>>>> return id;
>>>> }
>>>> }
>>>>
>>>> My question is, given the "id" path template is defined on a
>>>> sub-resource method, should the value still be injectable
>>>> into the resource field or not?
>>>>
>>>> IOW, with the example above, what should be a result of GET
>>>> "/foo/bar/baz" request? Should it be "baz" or null ?
>>>>
>>>> Thanks,
>>>> Marek
>>
>>