Package org.ow2.joram.jakarta.connector
Class JoramResourceAdapter
- java.lang.Object
-
- org.ow2.joram.jakarta.connector.JoramResourceAdapter
-
- All Implemented Interfaces:
jakarta.jms.ExceptionListener,jakarta.resource.spi.ResourceAdapter,Serializable
- Direct Known Subclasses:
JoramAdapter
public class JoramResourceAdapter extends Object implements jakarta.resource.spi.ResourceAdapter, jakarta.jms.ExceptionListener, Serializable
AJoramResourceAdapterinstance manages connectivities to an underlying JORAM server: outbound connectivity (JCA connection management contract) and inbound connectivity (asynchronous message delivery as specified by the JCA message inflow contract).- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJoramResourceAdapter.Status
-
Field Summary
Fields Modifier and Type Field Description private Vector<String>boundNamesNames of the bound objects.private Hashtable<String,jakarta.jms.XAConnection>connectionsTable holding the adapter'sXAConnectioninstances used for recovering the XA resources.private Hashtable<ActivationSpecImpl,InboundConsumer>consumersTable holding the adapter'sInboundConsumerinstances, for inbound messaging.private static booleanDEBUGprotected static StringjmxRootNameName of the root in the MBean treeprotected JndiHelperjndiHelperthe jndi helperprotected StringjndiNamethe Joram resource adapter jndi nameprivate static Loggerloggerprotected Stringnamethe Joram resource adapter nameprivate Vector<ManagedConnectionImpl>producersVector holding theManagedConnectionImplinstances for managed outbound messaging.private static longserialVersionUIDDefine serialVersionUID for interoperability.protected JoramResourceAdapter.StatusstatusThe resource adapter status.private jakarta.resource.spi.work.WorkManagerworkManagerWorkManagerinstance provided by the application server.
-
Constructor Summary
Constructors Constructor Description JoramResourceAdapter()Constructs aJoramResourceAdapterinstance.JoramResourceAdapter(MBeanServer jmxServer)Constructs aJoramResourceAdapterinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidaddProducer(ManagedConnectionImpl managedCx)Adds a given managed connection to the list of producers.protected voidbind(String name, Object obj)Binds an object to the JNDI context.voidcreateCF(String name, ManagedConnectionFactoryImpl mcf)Creates a non managed connection factory and binds it to JNDI.StringcreateQueue(String name)voidcreateQueueCF(String name, ManagedConnectionFactoryImpl mcf)Creates a non managed PTP connection factory and binds it to JNDI.StringcreateTopic(String name)voidcreateTopicCF(String name, ManagedConnectionFactoryImpl mcf)Creates a non managed PubSub connection factory and binds it to JNDI.StringcreateUser(String userName, String password, String identityClass)voidendpointActivation(jakarta.resource.spi.endpoint.MessageEndpointFactory endpointFactory, jakarta.resource.spi.ActivationSpec spec)Notifies the adapter to setup asynchronous message delivery for an application server endpoint.voidendpointDeactivation(jakarta.resource.spi.endpoint.MessageEndpointFactory endpointFactory, jakarta.resource.spi.ActivationSpec spec)Notifies the adapter to deactivate message delivery for a given endpoint.private ConnectionFactorygetConnectionFactory(ActivationSpecImpl specImpl)StringgetJMSProviderName()Get the provider name: Joram.StringgetJMSVersion()Gets the JMS API version.StringgetJndiName()StringgetName()StringgetProviderVersion()Gets the Joram's implementation version.intgetStatus()StringgetStatusInfo()XAResource[]getXAResources(jakarta.resource.spi.ActivationSpec[] specs)Returns XA resources given an array of ActivationSpec instances.voidonException(jakarta.jms.JMSException exception)voidreconnect()(package private) voidremoveProducer(ManagedConnectionImpl managedCx)Removes a given managed connection from the list of producers.voidsetJmxServer(MBeanServer jmxServer)voidsetJndiName(String jndiName)voidsetName(String name)voidsetWorkManager(jakarta.resource.spi.work.WorkManager workManager)voidstart()voidstart(jakarta.resource.spi.BootstrapContext ctx)Initializes the adaptervoidstop()Notifies the adapter to terminate the connections it manages, and if needed.protected voidunbind(String name)Unbinds an object from the JNDI context.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Define serialVersionUID for interoperability.- See Also:
- Constant Field Values
-
logger
private static final Logger logger
-
DEBUG
private static final boolean DEBUG
-
jndiHelper
protected JndiHelper jndiHelper
the jndi helper
-
status
protected JoramResourceAdapter.Status status
The resource adapter status.
-
jmxRootName
protected static String jmxRootName
Name of the root in the MBean tree
-
workManager
private transient jakarta.resource.spi.work.WorkManager workManager
WorkManagerinstance provided by the application server.
-
name
protected String name
the Joram resource adapter name
-
jndiName
protected String jndiName
the Joram resource adapter jndi name
-
consumers
private transient Hashtable<ActivationSpecImpl,InboundConsumer> consumers
Table holding the adapter'sInboundConsumerinstances, for inbound messaging.Key:
ActivationSpecinstance
Value:InboundConsumerinstance
-
producers
private transient Vector<ManagedConnectionImpl> producers
Vector holding theManagedConnectionImplinstances for managed outbound messaging.
-
-
Constructor Detail
-
JoramResourceAdapter
public JoramResourceAdapter()
Constructs aJoramResourceAdapterinstance.
-
JoramResourceAdapter
public JoramResourceAdapter(MBeanServer jmxServer)
Constructs aJoramResourceAdapterinstance.
-
-
Method Detail
-
getStatus
public int getStatus()
-
getStatusInfo
public String getStatusInfo()
-
setJmxServer
public void setJmxServer(MBeanServer jmxServer)
-
setWorkManager
public void setWorkManager(jakarta.resource.spi.work.WorkManager workManager)
-
getName
public String getName()
- Returns:
- the name
-
setName
public void setName(String name)
- Parameters:
name- the name to set
-
getJndiName
public String getJndiName()
- Returns:
- the jndiName
-
setJndiName
public void setJndiName(String jndiName)
- Parameters:
jndiName- the jndiName to set
-
createUser
public String createUser(String userName, String password, String identityClass) throws Exception
- Throws:
Exception
-
getConnectionFactory
private ConnectionFactory getConnectionFactory(ActivationSpecImpl specImpl)
-
start
public void start(jakarta.resource.spi.BootstrapContext ctx) throws jakarta.resource.spi.ResourceAdapterInternalExceptionInitializes the adapter- Specified by:
startin interfacejakarta.resource.spi.ResourceAdapter- Throws:
jakarta.resource.spi.ResourceAdapterInternalException- If the adapter could not be initialized.
-
start
public void start() throws jakarta.resource.spi.ResourceAdapterInternalException- Throws:
jakarta.resource.spi.ResourceAdapterInternalException
-
stop
public void stop()
Notifies the adapter to terminate the connections it manages, and if needed.- Specified by:
stopin interfacejakarta.resource.spi.ResourceAdapter
-
endpointActivation
public void endpointActivation(jakarta.resource.spi.endpoint.MessageEndpointFactory endpointFactory, jakarta.resource.spi.ActivationSpec spec) throws jakarta.resource.ResourceExceptionNotifies the adapter to setup asynchronous message delivery for an application server endpoint.- Specified by:
endpointActivationin interfacejakarta.resource.spi.ResourceAdapter- Throws:
jakarta.resource.spi.IllegalStateException- If the adapter is either not started, or stopped.jakarta.resource.NotSupportedException- If the provided activation parameters are invalid.jakarta.resource.spi.CommException- If the JORAM server is not reachable.jakarta.resource.spi.SecurityException- If connecting is not allowed.jakarta.resource.ResourceException- Generic exception.
-
getXAResources
public XAResource[] getXAResources(jakarta.resource.spi.ActivationSpec[] specs) throws jakarta.resource.ResourceException
Returns XA resources given an array of ActivationSpec instances.- Specified by:
getXAResourcesin interfacejakarta.resource.spi.ResourceAdapter- Throws:
jakarta.resource.spi.IllegalStateException- If the adapter is either not started, or stopped.jakarta.resource.NotSupportedException- If provided activation parameters are invalid.jakarta.resource.spi.CommException- If the JORAM server is not reachable.jakarta.resource.spi.SecurityException- If connecting is not allowed.jakarta.resource.ResourceException- Generic exception.
-
addProducer
void addProducer(ManagedConnectionImpl managedCx)
Adds a given managed connection to the list of producers.
-
onException
public void onException(jakarta.jms.JMSException exception)
- Specified by:
onExceptionin interfacejakarta.jms.ExceptionListener
-
endpointDeactivation
public void endpointDeactivation(jakarta.resource.spi.endpoint.MessageEndpointFactory endpointFactory, jakarta.resource.spi.ActivationSpec spec)Notifies the adapter to deactivate message delivery for a given endpoint.- Specified by:
endpointDeactivationin interfacejakarta.resource.spi.ResourceAdapter
-
removeProducer
void removeProducer(ManagedConnectionImpl managedCx)
Removes a given managed connection from the list of producers.
-
getJMSVersion
public String getJMSVersion()
Gets the JMS API version.- Returns:
- The JMS API version.
-
getJMSProviderName
public String getJMSProviderName()
Get the provider name: Joram.- Returns:
- The provider name: Joram.
-
getProviderVersion
public String getProviderVersion()
Gets the Joram's implementation version.- Returns:
- The Joram's implementation version.
-
unbind
protected void unbind(String name)
Unbinds an object from the JNDI context.
-
createCF
public void createCF(String name, ManagedConnectionFactoryImpl mcf)
Creates a non managed connection factory and binds it to JNDI.- Parameters:
name- Name of created connection factory.
-
createQueueCF
public void createQueueCF(String name, ManagedConnectionFactoryImpl mcf)
Creates a non managed PTP connection factory and binds it to JNDI.- Parameters:
name- Name of created connection factory.
-
createTopicCF
public void createTopicCF(String name, ManagedConnectionFactoryImpl mcf)
Creates a non managed PubSub connection factory and binds it to JNDI.- Parameters:
name- Name of created connection factory.
-
-