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

RE: Request for comments: Injecting _at_XxxParam into entity providers

From: Markus KARG <markus_at_headcrashing.eu>
Date: Sun, 7 Feb 2016 17:31:38 +0100

Sorry but I still don't get what you like to tell me.

 

What I asked for simply is that any resource class and entity provider
should be able to access the same property map that interceptors can access
alrey.

 

What actual, technical reason stands in the way for that?

 

-Markus

 

 

From: Sergey Beryozkin [mailto:sberyozkin_at_talend.com]
Sent: Sonntag, 7. Februar 2016 16:40
To: jsr370-experts_at_jax-rs-spec.java.net
Subject: Re: Request for comments: Injecting @XxxParam into entity providers

 

Well, what were you saying with "static access to a shared property map" ?

Besides, if injecting the parameters into the providers were supported then
obviously singleton resource services would have to support them too...

Sergey
On 07/02/16 08:38, Markus KARG wrote:

I do not unerstand what you want to say, unfortunately. A writer interceptor
is a singleton object that has access to custom properties bound to the
request. A resource class can access UriInfo, just as a MBW, and UriInfo
also is bound to a request. So what actually is the part that shall not
work?

 

From: Sergey Beryozkin [mailto:sberyozkin_at_talend.com]
Sent: Samstag, 6. Februar 2016 14:35
To: jsr370-experts_at_jax-rs-spec.java.net
Subject: Re: Request for comments: Injecting @XxxParam into entity providers

 

This idea expects the implementations to use the static storage (internal
implementation detail of how properties are shared between in/out
interceptors) and in CXF we do not use a static storage

Sergey
On 05/02/16 22:59, Markus KARG wrote:

Yes it is simpler but using matrix params is a pain that way, while it would
be really easy to use @MatrixParam. Hence the idea with the shared
properties.

 

From: Bill Burke [mailto:bburke_at_redhat.com]
Sent: Freitag, 5. Februar 2016 22:44
To: jsr370-experts_at_jax-rs-spec.java.net
Subject: Re: Request for comments: Injecting @XxxParam into entity providers

 

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
-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com