users@jersey.java.net

[Jersey] Re: ResourceMethodDispatchAdapter in 2.0?

From: Miroslav Fuksa <miroslav.fuksa_at_oracle.com>
Date: Tue, 02 Jul 2013 18:01:40 +0200

Hi,

sorry for the late answer and thanks for details.

We are adding a support for listening to events of request processing
life cycles. The user should be able to register a custom provider that
will receive events when new request comes, matching is performed,
resource method is executed, resource method is finished, etc. We will
also use it to expose some monitoring statistics.

This might solve your first use case (monitoring elapsed time) and maybe
also third use case with hibernate. This is not a solution for you
second use case. However, I think the correct solution should be what
you are trying to implement with filter and MessageBodyWriter. Or even
MessageBodyWriter should be enough. Could you please send us more
details about problems you have with your implementation? Maybe using
javax.inject.Provider might solve your problem. It means you will inject
MessageBodyWorkers into your MessageBodyWriter using:

@Inject
Provider<MessageBodyWorkers> mbwProvider;
...

mbwProvider.get().writeTo(....)...

Thanks
Mira

On 07/02/2013 12:22 AM, Coda Hale wrote:
> Any ideas?
>
>
> On Tue, Jun 18, 2013 at 9:04 AM, Coda Hale <coda.hale_at_gmail.com
> <mailto:coda.hale_at_gmail.com>> wrote:
>
> I have more than a few use cases. :)
>
> First, I have an implementation which records the elapsed time
> spent inside the resource method using my Metrics library. I
> haven't found a way of doing this which allows me to directly
> observe the method invocation.
>
> Second, I have an implementation which, if the resource method
> returns a Guava Optional without a value, returns a 404.
> Otherwise, it passes the Optional's value to the
> MessageBodyWriter. I tried writing a filter for this, but then
> Jersey refuses the resource method because Optional<Whatever>
> doesn't have a MessageBodyWriter. I tried writing a
> MessageBodyWriter, but trying to inject the MessageBodyWorkers
> equivalent was producing dependency cycles in HK2.
>
> Third, I have an implementation which wraps the resource method
> invocation in a Hibernate unit of work. Like the first example,
> this needs to directly wrap the invocation.
>
> Any advice is appreciated, thank you.
>
>
> On Tue, Jun 18, 2013 at 8:18 AM, Marek Potociar
> <marek.potociar_at_oracle.com <mailto:marek.potociar_at_oracle.com>> wrote:
>
> Hi,
>
> We have not ported this API to Jersey 2.0 yet. We would like
> to first understand the use cases where the API is used and
> see if there is perhaps a better way of solving those. Can you
> please share more details about you use case?
>
> Many thanks,
> Marek
>
>
> On Jun 15, 2013, at 1:52 AM, Coda Hale <coda.hale_at_gmail.com
> <mailto:coda.hale_at_gmail.com>> wrote:
>
>> I'm trying to find the best way of porting
>> ResourceMethodDispatchAdapter implementations, but coming up
>> a bit short.
>>
>> Any suggestions?
>>
>> --
>> Coda Hale
>> http://codahale.com <http://codahale.com/>
>
>
>
>
> --
> Coda Hale
> http://codahale.com
>
>
>
>
> --
> Coda Hale
> http://codahale.com