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

Re: Request for comments: Injecting _at_XxxParam into entity providers

From: Santiago Pericasgeertsen <santiago.pericasgeertsen_at_oracle.com>
Date: Tue, 9 Feb 2016 09:17:46 -0500

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 <mailto:bburke_at_redhat.com>]
>> Sent: Donnerstag, 4. Februar 2016 20:31
>> To: jsr370-experts_at_jax-rs-spec.java.net <mailto: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 <http://bill.burkecentral.com/>