users@connector-spec.java.net

[connector-spec-users] [jsr322-experts] Re: MessageEndpointFactory

From: Jesper Pedersen <jesper.pedersen_at_redhat.com>
Date: Mon, 14 Jan 2013 13:03:07 -0500

Hi,

On 01/14/2013 12:45 PM, Sivakumar Thyagarajan wrote:
> As I had said in our meeting, as per the EE compat requirements
> (http://java.net/projects/javaee-spec/pages/CompatibilityRequirements)
> and the JLS binary compatibility requirements
> (http://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html), addition
> of a method to a SPI is backwards compatible.
>

Correct.

>> * Add a @throws NoSuchMuchException Thrown in cases where the
>> implementation targets JCA 1.0 or JCA 1.5
>
> This is not needed as it is implied. A 1.6 RA that uses the new MEF
> method could *only* be deployed against a connector container that
> supports 1.6 or above.
>

Vendor A:

public OurMEF implements MessageEndpointFactory
{
   public MessageEndpoint createEndpoint(XAResource xaResource)
   {
      ...
   }

   public boolean isDeliveryTransacted(Method method)
   {
      ...
   }
}

Compile against JCA 1.5 => Works.


EE Vendor - supplies JCA 1.6.

Vendor B:

public OurRA implements ResourceAdapter
{

   public void endpointActivation(MessageEndpointFactory endpointFactory,
                                  ActivationSpec spec)
      throws ResourceException
   {

       MessageEndpoint me = endpointFactory.createEndpoint(xar, 1000L);

       ...
   }

Compile against JCA 1.6 => Works.

User:

* Deploys MEF from Vendor A
* Deploys RA from Vendor B

on to EE Vendor.


I don't know if that is 'implied' for this scenario for the 'User' -
they don't know either of the implementations, they only see the
NoSuchMethodException.

I think the additional documentation could help in this case.

Best regards,
  Jesper