public abstract class

AbstractMessageEndpointFactory

extends Object
java.lang.Object
   ↳ org.springframework.jca.endpoint.AbstractMessageEndpointFactory
Known Direct Subclasses

Class Overview

Abstract base implementation of the JCA 1.5/1.6 javax.resource.spi.endpoint.MessageEndpointFactory interface, providing transaction management capabilities as well as ClassLoader exposure for endpoint invocations.

Summary

Nested Classes
class AbstractMessageEndpointFactory.AbstractMessageEndpoint Inner class for actual endpoint implementations, based on template method to allow for any kind of concrete endpoint implementation. 
Fields
protected final Log logger Logger available to subclasses
Public Constructors
AbstractMessageEndpointFactory()
Public Methods
MessageEndpoint createEndpoint(XAResource xaResource)
The standard JCA 1.5 version of createEndpoint.
MessageEndpoint createEndpoint(XAResource xaResource, long timeout)
The alternative JCA 1.6 version of createEndpoint.
boolean isDeliveryTransacted(Method method)
This implementation returns true if a transaction manager has been specified; false otherwise.
void setTransactionFactory(TransactionFactory transactionFactory)
Set the Spring TransactionFactory to use for wrapping endpoint invocations, enlisting the endpoint resource in each such transaction.
void setTransactionManager(Object transactionManager)
Set the the XA transaction manager to use for wrapping endpoint invocations, enlisting the endpoint resource in each such transaction.
void setTransactionName(String transactionName)
Specify the name of the transaction, if any.
void setTransactionTimeout(int transactionTimeout)
Specify the transaction timeout, if any.
Protected Methods
abstract AbstractMessageEndpointFactory.AbstractMessageEndpoint createEndpointInternal()
Create the actual endpoint instance, as a subclass of the AbstractMessageEndpointFactory.AbstractMessageEndpoint inner class of this factory.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected final Log logger

Logger available to subclasses

Public Constructors

public AbstractMessageEndpointFactory ()

Public Methods

public MessageEndpoint createEndpoint (XAResource xaResource)

The standard JCA 1.5 version of createEndpoint.

This implementation delegates to createEndpointInternal(), initializing the endpoint's XAResource before the endpoint gets invoked.

Throws
UnavailableException

public MessageEndpoint createEndpoint (XAResource xaResource, long timeout)

The alternative JCA 1.6 version of createEndpoint.

This implementation delegates to createEndpointInternal(), ignoring the specified timeout. It is only here for JCA 1.6 compliance.

Throws
UnavailableException

public boolean isDeliveryTransacted (Method method)

This implementation returns true if a transaction manager has been specified; false otherwise.

public void setTransactionFactory (TransactionFactory transactionFactory)

Set the Spring TransactionFactory to use for wrapping endpoint invocations, enlisting the endpoint resource in each such transaction.

Alternatively, specify an appropriate transaction manager through the "transactionManager" property.

If no transaction factory is specified, the endpoint invocation will simply not be wrapped in an XA transaction. Check out your resource provider's ActivationSpec documentation for local transaction options of your particular provider.

public void setTransactionManager (Object transactionManager)

Set the the XA transaction manager to use for wrapping endpoint invocations, enlisting the endpoint resource in each such transaction.

The passed-in object may be a transaction manager which implements Spring's TransactionFactory interface, or a plain javax.transaction.TransactionManager.

If no transaction manager is specified, the endpoint invocation will simply not be wrapped in an XA transaction. Check out your resource provider's ActivationSpec documentation for local transaction options of your particular provider.

public void setTransactionName (String transactionName)

Specify the name of the transaction, if any.

Default is none. A specified name will be passed on to the transaction manager, allowing to identify the transaction in a transaction monitor.

public void setTransactionTimeout (int transactionTimeout)

Specify the transaction timeout, if any.

Default is -1: rely on the transaction manager's default timeout. Specify a concrete timeout to restrict the maximum duration of each endpoint invocation.

Protected Methods

protected abstract AbstractMessageEndpointFactory.AbstractMessageEndpoint createEndpointInternal ()

Create the actual endpoint instance, as a subclass of the AbstractMessageEndpointFactory.AbstractMessageEndpoint inner class of this factory.

Returns
  • the actual endpoint instance (never null)
Throws
if no endpoint is available at present
UnavailableException