jsr322-experts@connector-spec.java.net

[jsr322-experts] Re: ACTION (by Mar 18/Mon): Please review changes to the connector spec to handle proposed MDB improvements

From: Sivakumar Thyagarajan <sivakumar.thyagarajan_at_oracle.com>
Date: Sun, 17 Mar 2013 18:23:25 +0530

Hi Jesper

On Saturday 16 March 2013 01:51 AM, Jesper Pedersen wrote:
> Hi Siva,
>
> Why is it called "getBeanClass()" now ? I don't like that - it should
> be "getEndpointClass()".

It was pointed in a feedback in the EJB EG that "the getEndpointClass
method name should be changed to emphasize that this method is not
returning the endpointinterface or the endpoint implementation class,
but some class that backs the endpoint".

For instance getEndpointClass may be read as
MEF.createEndpoint().getClass(), which is not the intent of the method.
We basically want the beanClass (in the case of MDBs) of the
MessageEndpoint created by the MessageEndpointFactory provided to the RA
through this method. For non-MDB MEFs, they should return the class of
the component that the developer wrote.

Since other alternative method names suggested were not immediately
unambiguously obvious which class was referred to, we felt that we can
choose a method name that works for most of us. The spec and the
javadocs would make it cleared to the user.


> We don't have a concept of a "bean" in JCA - but we have an
> endpoint.
>
> Section 13.5 is missing the part where the proxy implements all
> public business methods of the actual endpoint. Otherwise reflection
> won't work on the returned MessageEndpoint from the
> MessageEndpointFactory.

13.5 says:
-- quote --
> Note that the endpoint instance supplied by the createEndpoint
> method call is a proxy which implements the endpoint message listener
> type and the MessageEndpoint interface and it is not the actual
> endpoint.
--quote --

The above doesn't prohibit the case where the proxy implements all
message listener methods of the MDB, so I think it's ok as is. It just
describes a minimum requirement of the proxy, which will remain true.

Do you think adding it would be more clearer. Even if we add it we can
only say that in the case of MDBs, we would want that behaviour, and
that is already covered in the EJB/MDB spec that we discussed earlier at
http://java.net/projects/connector-spec/lists/users/archive/2013-03/message/26

> Another: Page 16-10 - setSecurityContext -> setupSecurityContext.

Sorry for missing this. I will fix this.

Thanks
--Siva.

>
> Best regards, Jesper
>
>
> On 03/15/2013 05:40 AM, Sivakumar Thyagarajan wrote:
>> Hello experts
>>
>> Please review the changes to the 1.7 connector spec and the javadoc
>> for the proposed MDB enhancements discussed in [1].
>>
>> Please share your comments by Mar 18, Monday. I plan to send the
>> final version to the JCP early next week so that we can address it
>> as part of the ongoing MR for Java EE 7.
>>
>> # Changelog since the last spec update
>>
>> ## Spec (updated spec at [2]. affected chapters #13, #18 and
>> Appendix I): - Updated Section 13.3 to describe the new method
>> "getBeanClass" in MessageEndpointFactory (para #5 of 13-8).
>> Comments from the EJB spec EG shared a preference for getBeanClass
>> instead of the proposed "getEndpointClass" in [1]. - Fixed the
>> text of isDeliveryTransacted to also include methods in Class
>> returned by "getBeanClass" - Minor fix: Renamed the annotation
>> element "className" to "interfaceName" in
>> @ConnectionFactoryDefinition (page 18-18, Section 18.9.1), as I
>> was provided the feedback that the className really captured the
>> CF interface name, and it may be confusing to users to call it
>> class name. - Minor typos:Fixed the incorrect usage "fully
>> qualified domain name" to "fully qualified name" in Chapter 18.
>> Fixed incorrect "createEndPoint" references in Chapter 13 when
>> they should have instead been method "createEndpoint".
>>
>> ## Javadoc (new javadoc zip at [3] and attached api diff): - The
>> three spec changes are reflected in the javadoc.
>> isDeliveryTransacted, getBeanClass methods in
>> javax.resource.spi.endpoint.MessageEndpointFactory, and the
>> renamed annotation element in
>> javax.resource.ConnectionFactoryDefinition
>>
>> Thanks --Siva.
>>
>> [1] Proposal in EE EG:
>> http://java.net/projects/javaee-spec/lists/users/archive/2013-03/message/2.
>> Discussion in our EG:
>> http://java.net/projects/connector-spec/lists/users/archive/2013-03/message/3
>> [2] Spec:
>> http://java.net/projects/connector-spec/downloads/download/connector-1_7-spec-with-change-bars-20130315-2.pdf.zip
>> [3] Javadoc:
>> http://java.net/projects/connector-spec/downloads/download/connector-1_7-javadoc-20130315-2.zip