Package org.apache.openjpa.ee
Class OSGiManagedRuntime
- java.lang.Object
-
- org.apache.openjpa.ee.AbstractManagedRuntime
-
- org.apache.openjpa.ee.OSGiManagedRuntime
-
- All Implemented Interfaces:
ManagedRuntime
public class OSGiManagedRuntime extends AbstractManagedRuntime
Implementation of the
ManagedRuntime
interface that listens for an OSGi service with interfacejakarta.transaction.TransactionManager
to create aTransactionManager
for controlling transactions.The support for a transaction manager is usually activated inside an OSGi
BundleActivator
implementation usingregisterServiceListener(BundleContext)
andderegisterServiceListener(BundleContext)
.
-
-
Constructor Summary
Constructors Constructor Description OSGiManagedRuntime()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
deregisterServiceListener(org.osgi.framework.BundleContext bundleContext)
Remove a service listener previously started insideregisterServiceListener(BundleContext)
.java.lang.Throwable
getRollbackCause()
Returns the Throwable that caused the current transaction to be marked for rollback, provided that any exists.jakarta.transaction.TransactionManager
getTransactionManager()
Return the TransactionManager for the managed runtime.static void
registerServiceListener(org.osgi.framework.BundleContext bundleContext)
Register a service listener to the given bundle context byBundleContext.addServiceListener(ServiceListener,String)
with a filter expression of(objectClass=jakarta.transaction.TransactionManager)
.void
setRollbackOnly(java.lang.Throwable cause)
Sets the rollback only flag on the current transaction.-
Methods inherited from class org.apache.openjpa.ee.AbstractManagedRuntime
doNonTransactionalWork, getTransactionKey
-
-
-
-
Method Detail
-
registerServiceListener
public static void registerServiceListener(org.osgi.framework.BundleContext bundleContext) throws org.osgi.framework.InvalidSyntaxException
Register a service listener to the given bundle context by
BundleContext.addServiceListener(ServiceListener,String)
with a filter expression of(objectClass=jakarta.transaction.TransactionManager)
.The caller is responsible for calling
deregisterServiceListener(BundleContext)
, when the bundle context is being stopped.- Parameters:
bundle
- The bundle, which is currently being started.- Throws:
org.osgi.framework.InvalidSyntaxException
- When the filter expression is invalid.
-
deregisterServiceListener
public static void deregisterServiceListener(org.osgi.framework.BundleContext bundleContext)
Remove a service listener previously started insideregisterServiceListener(BundleContext)
.- Parameters:
bundleContext
- The bundle context to callBundleContext.removeServiceListener(ServiceListener)
on.
-
getTransactionManager
public jakarta.transaction.TransactionManager getTransactionManager() throws java.lang.Exception
Description copied from interface:ManagedRuntime
Return the TransactionManager for the managed runtime. This manager is used to register synchronization listeners, to map transactional PersistenceManagers to the current transaction, and possibly to enlist XA resources.- Throws:
java.lang.Exception
-
setRollbackOnly
public void setRollbackOnly(java.lang.Throwable cause) throws java.lang.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.- Parameters:
cause
- the Throwable that caused the transaction to be marked for rollback, or null of none is known- Throws:
java.lang.Exception
-
getRollbackCause
public java.lang.Throwable getRollbackCause() throws java.lang.Exception
Description copied from interface:ManagedRuntime
Returns the Throwable that caused the current transaction to be marked for rollback, provided that any exists.- Returns:
- the Throwable cause, or null if none
- Throws:
java.lang.Exception
-
-