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

Re: Request for comments: Injecting _at_XxxParam into entity providers

From: Bill Burke <bburke_at_redhat.com>
Date: Tue, 9 Feb 2016 09:42:09 -0500

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