users@connector-spec.java.net

[connector-spec-users] [jsr322-experts] Re: proposed MDB improvements

From: Sivakumar Thyagarajan <sivakumar.thyagarajan_at_oracle.com>
Date: Thu, 14 Mar 2013 23:03:58 +0530

Hi Jesper

On Wednesday 13 March 2013 12:19 AM, Jesper Pedersen wrote:
> Hi,
>
> On 03/12/2013 02:18 PM, Sivakumar Thyagarajan wrote:
>>> The MessageEndpoint needs to maintain its transaction inflow properties
>>> no matter how the actual endpoint is invoked. Maybe we should note that
>>> explicit such that it isn't by-passed.
>>
>> Agreed about the intent. I am not sure if anything in our current spec
>> prevents this for the scenarios enabled by the new proposal.
>>
>
> The thing I don't want us to get into is that resource adapters will be
> developed which only uses getEndpointClass() methods, and "forgets"
> about the MessageEndpoint contracts,
>
> MessageEndpoint me = mef.createEndpoint();
> Class<?> clz = mef.getEndpointClass();
>
> Method m = clz.getMethod("rocknroll", new Class<?>[] {MyMessage.class});
> m.invoke(me, new Object[] {message});
>
>
> Whoops - me.beforeDelivery() / me.afterDelivery() missing...
>
> Even though the proxy can be by-passed the contract must still be in
> place. I think we should make this explicit in the spec text, since the
> idea of this proposal is to access the actual endpoint directly.

The message inflow contracts would still be true for a RA delivering
messages to a no-methods listener interface based MDB. It is just that
the RAR is not limited to delivery to methods in the MLI but can make
calls to the MDB message listener methods.

Thanks
--Siva.