javax.resource.spi.BootstrapContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ironjacamar-spec-api Show documentation
Show all versions of ironjacamar-spec-api Show documentation
IronJacamar is an implementation of the Java EE Connector Architecture 1.7 specification
/*
* IronJacamar, a Java EE Connector Architecture implementation
* Copyright 2008-2009, Red Hat Inc, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package javax.resource.spi;
import java.util.Timer;
import javax.resource.spi.work.WorkContext;
import javax.resource.spi.work.WorkManager;
import javax.transaction.TransactionSynchronizationRegistry;
/**
* This provides a mechanism to pass a bootstrap context to a resource adapter
* instance when it is bootstrapped. That is, when
* (start(BootstrapContext)
) method on the
* ResourceAdapter
class is invoked. The bootstrap
* context contains references to useful facilities that could be used by the
* resource adapter instance.
*
* @version Java EE Connector Architecture 1.6
* @author Ram Jeyaraman, Sivakumar Thyagarajan
*/
public interface BootstrapContext
{
/**
* Provides a handle to a WorkManager
instance. The
* WorkManager
instance could be used by a resource adapter to
* do its work by submitting Work
instances for execution.
*
* @return a WorkManager
instance.
*/
WorkManager getWorkManager();
/**
* Provides a handle to a XATerminator
instance. The
* XATerminator
instance could be used by a resource adapter
* to flow-in transaction completion and crash recovery calls from an EIS.
*
* @return a XATerminator
instance.
*/
XATerminator getXATerminator();
/**
* Creates a new java.util.Timer
instance. The
* Timer
instance could be used to perform periodic
* Work
executions or other tasks.
*
* @throws UnavailableException indicates that a
* Timer
instance is not available. The
* request may be retried later.
*
* @return a new Timer
instance.
*/
Timer createTimer() throws UnavailableException;
/**
* A resource adapter can check an application server’s support
* for a particular WorkContext type through this method.
* This mechanism enables a resource adapter developer to
* dynamically change the WorkContexts submitted with a Work instance
* based on the support provided by the application server.
*
* The application server must employ an exact type equality check (that is
* java.lang.Class.equals(java.lang.Class)
check) in
* this method, to check if it supports the WorkContext type provided
* by the resource adapter. This method must be idempotent, that is all
* calls to this method by a resource adapter for a particular
* WorkContext
type must return the same boolean value
* throughout the lifecycle of that resource adapter instance.
*
* @param workContextClass The work context class
* @return true if the workContextClass
is supported
* by the application server. false if the workContextClass
* is unsupported or unknown to the application server.
*
* @since 1.6
*/
boolean isContextSupported(Class extends WorkContext> workContextClass);
/**
* Provides a handle to a TransactionSynchronization
instance. The
* TransactionSynchronizationRegistry
instance could be used by a
* resource adapter to register synchronization objects, get transaction state and
* status etc. This interface is implemented by the application server by a
* stateless service object. The same object can be used by any number of
* resource adapter objects with thread safety.
*
* @return a TransactionSynchronizationRegistry
instance.
* @since 1.6
*/
TransactionSynchronizationRegistry getTransactionSynchronizationRegistry();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy