org.apache.openjpa.ee
Class AbstractManagedRuntime

java.lang.Object
  extended by org.apache.openjpa.ee.AbstractManagedRuntime
All Implemented Interfaces:
ManagedRuntime
Direct Known Subclasses:
AutomaticManagedRuntime, InvocationManagedRuntime, JNDIManagedRuntime, SunOneManagedRuntime, WASManagedRuntime, WLSManagedRuntime

public abstract class AbstractManagedRuntime
extends Object
implements ManagedRuntime


Constructor Summary
AbstractManagedRuntime()
           
 
Method Summary
 void doNonTransactionalWork(Runnable runnable)
           Do a unit of work which will execute outside of the current managed transaction.
 Object getTransactionKey()
          Returns a transaction key that can be used to associate transactions and Brokers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.ee.ManagedRuntime
getRollbackCause, getTransactionManager, setRollbackOnly
 

Constructor Detail

AbstractManagedRuntime

public AbstractManagedRuntime()
Method Detail

getTransactionKey

public Object getTransactionKey()
                         throws Exception,
                                SystemException
Returns a transaction key that can be used to associate transactions and Brokers. The default implementation returns the Transaction associated with the current thread's transaction.

Specified by:
getTransactionKey in interface ManagedRuntime
Returns:
the transaction key
Throws:
Exception
SystemException

doNonTransactionalWork

public void doNonTransactionalWork(Runnable runnable)
                            throws NotSupportedException

Do a unit of work which will execute outside of the current managed transaction. The default implementation suspends the transaction prior to execution, and resumes the transaction afterwards.

Specified by:
doNonTransactionalWork in interface ManagedRuntime
Parameters:
runnable - The runnable wrapper for the work that will be done. The runnable object should be fully initialized with any state needed to execute.
Throws:
NotSupportedException - if the current transaction can not be obtained, or an error occurs when suspending or resuming the transaction.


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.