org.apache.openjpa.ee
Class RegistryManagedRuntime

java.lang.Object
  extended by org.apache.openjpa.ee.RegistryManagedRuntime
All Implemented Interfaces:
ManagedRuntime
Direct Known Subclasses:
WASRegistryManagedRuntime

public class RegistryManagedRuntime
extends Object
implements ManagedRuntime

Implementation of the ManagedRuntime interface that uses the TransactionSynchronizationRegistry interface (new in JTA 1.1) to create a TransactionManager facade for controlling transactions.

Since:
1.0.0
Author:
Marc Prud'hommeaux

Nested Class Summary
static class RegistryManagedRuntime.TransactionManagerRegistryFacade
          A TransactionManager and Transaction facade that delegates the appropriate methods to the internally-held TransactionSynchronizationRegistry.
 
Constructor Summary
RegistryManagedRuntime()
           
 
Method Summary
 void doNonTransactionalWork(Runnable runnable)
           RegistryManagedRuntime cannot suspend transactions.
 String getRegistryName()
           
 Throwable getRollbackCause()
          Returns the Throwable that caused the current transaction to be marked for rollback, provided that any exists.
 Object getTransactionKey()
          Returns a transaction key that can be used to associate transactions and Brokers.
 TransactionManager getTransactionManager()
          Return the cached TransactionManager instance.
 void setRegistryName(String registryName)
           
 void setRollbackOnly(Throwable cause)
          Sets the rollback only flag on the current transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegistryManagedRuntime

public RegistryManagedRuntime()
Method Detail

getTransactionManager

public TransactionManager getTransactionManager()
                                         throws Exception
Return the cached TransactionManager instance.

Specified by:
getTransactionManager in interface ManagedRuntime
Throws:
Exception

setRollbackOnly

public void setRollbackOnly(Throwable cause)
                     throws Exception
Description copied from interface: ManagedRuntime
Sets the rollback only flag on the current transaction. If the TransactionManager is capable of tracking the cause of the rollback-only flag, it will also pass along cause information.

Specified by:
setRollbackOnly in interface ManagedRuntime
Parameters:
cause - the Throwable that caused the transaction to be marked for rollback, or null of none is known
Throws:
Exception

getRollbackCause

public Throwable getRollbackCause()
                           throws Exception
Description copied from interface: ManagedRuntime
Returns the Throwable that caused the current transaction to be marked for rollback, provided that any exists.

Specified by:
getRollbackCause in interface ManagedRuntime
Returns:
the Throwable cause, or null if none
Throws:
Exception

setRegistryName

public void setRegistryName(String registryName)

getRegistryName

public String getRegistryName()

getTransactionKey

public Object getTransactionKey()
                         throws Exception,
                                SystemException
Description copied from interface: ManagedRuntime
Returns a transaction key that can be used to associate transactions and Brokers.

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

doNonTransactionalWork

public void doNonTransactionalWork(Runnable runnable)
                            throws NotSupportedException

RegistryManagedRuntime cannot suspend transactions.

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 transaction can not be suspended.


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