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

Re: AW: Re: Request for comments: Injecting _at_XxxParam into entity providers

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Mon, 15 Feb 2016 11:37:14 +0000

Hi Markus
On 14/02/16 12:52, Markus Karg wrote:
> From the users view injecting matrix param is way simpler, but ok, it
> won't work, so I let go the idea.
>
> Different question: How can a MBW access the properties set by an
> interceptor?
>
I think this can be useful, for MBW/MBR but also for service classes. I
may've created an issue earlier, I'll need to check

Cheers, Sergey

>
>
> Sergey Beryozkin <sberyozkin_at_talend.com> hat geschrieben:
>
>
> I agree with Bill (as nearly always :-)).
>
> what can be simpler to uriInfo.getMatrixParameters().get("a") ?
>
> In fact I think supporting injecting parameters into per-request
> service beans is not very good because it ties a service implementation to
> always being per-request. Depending on UriInfo is more flexible - the
> same service bean will work correctly in different contexts, when used
> as a singleton or per-request
>
> Sergey
> On 09/02/16 14:42, Bill Burke wrote:
>> You can't proxy a primitive or String and generally don't want to
>> proxy a Class either. UriInfo is an interface.
>>
>> On 2/9/2016 9:17 AM, Santiago Pericasgeertsen wrote:
>>> All,
>>>
>>> Doesn’t the injection of UriInfo require the same effort as that of
>>> XXXParam? That is, some way of proxying to bridge application and
>>> request scopes?
>>>
>>> In any case, this will add some complexity to the implementations,
>>> so I generally agree with Bill that UriInfo should be sufficient
>>> (unless we can confirm that this is a very common use case, which is
>>> doubtful).
>>>
>>> — Santiago
>>>
>>>> On Feb 5, 2016, at 4:44 PM, Bill Burke <bburke_at_redhat.com> wrote:
>>>>
>>>> Or, you could just inject and use UriInfo. Simpler.
>>>>
>>>> On 2/5/2016 11:55 AM, Markus KARG wrote:
>>>>> As an alternative, we could grant MessageBodyWriter and resource
>>>>> classes static access to a shared property map (just like
>>>>> interceptors share a properties map). That way, a resource could
>>>>> get injected the @XxxParam instance, then put it into the map, and
>>>>> the MBW could look it up from there. That would be fine, too.
>>>>> *From:* Bill Burke [mailto:bburke_at_redhat.com]
>>>>> *Sent:* Donnerstag, 4. Februar 2016 20:31
>>>>> *To:* jsr370-experts_at_jax-rs-spec.java.net
>>>>> *Subject:* Re: Request for comments: Injecting @XxxParam into
>>>>> entity providers
>>>>>
>>>>> MBW, MBR, Interceptors, and Filters are all singletons. I have a
>>>>> ton of implementations of these classses that do initialization at
>>>>> boot time. @XXXParam annotations would require field injection
>>>>> which just would not work with singletons.
>>>>>
>>>>> So -1 unless you can provide a @Singleton annotation.
>>>>>
>>>>> On 2/4/2016 2:01 PM, Markus KARG wrote:
>>>>>
>>>>> Experts,
>>>>> I'd like to discuss an idea with you. I don't actually propose
>>>>> to do this change in JAX-RS 2.1, but depending on the outcome
>>>>> of our discussion it might make sense to prepare our products
>>>>> for such an API change to be part of JAX-RS 2.2 or 3.0.
>>>>> What I like you to comment on is that I really miss using
>>>>> @XxxParam in entity providers.
>>>>> Example: Today I wrote a MessageBodyWrite which needs to know
>>>>> the value of a matrix param. I solved it by @Context UriParam
>>>>> and uses a rather lengthy chain of API calls to finally get
>>>>> it. How much smarter the solution would like if I just could
>>>>> use @MatrixParam instead!
>>>>> So I really would love to get rid of the restriction that
>>>>> @XxxParam works with resource class only, but in fact would
>>>>> like to allow its use on entity providers also.
>>>>> What do you think?
>>>>> -Markus
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Bill Burke
>>>>> JBoss, a division of Red Hat
>>>>> http://bill.burkecentral.com <http://bill.burkecentral.com/>
>>>>
>>>> --
>>>> Bill Burke
>>>> JBoss, a division of Red Hat
>>>> http://bill.burkecentral.com
>>>
>>
>> --
>> Bill Burke
>> JBoss, a division of Red Hat
>> http://bill.burkecentral.com
>