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
ManagedRuntimeinterface that listens for an OSGi service with interfacejakarta.transaction.TransactionManagerto create aTransactionManagerfor controlling transactions.The support for a transaction manager is usually activated inside an OSGi
BundleActivatorimplementation 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 voidderegisterServiceListener(org.osgi.framework.BundleContext bundleContext)Remove a service listener previously started insideregisterServiceListener(BundleContext).ThrowablegetRollbackCause()Returns the Throwable that caused the current transaction to be marked for rollback, provided that any exists.jakarta.transaction.TransactionManagergetTransactionManager()Return the TransactionManager for the managed runtime.static voidregisterServiceListener(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).voidsetRollbackOnly(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.InvalidSyntaxExceptionRegister 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 ExceptionDescription copied from interface:ManagedRuntimeReturn 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:
Exception
-
setRollbackOnly
public void setRollbackOnly(Throwable cause) throws Exception
Description copied from interface:ManagedRuntimeSets 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:
Exception
-
getRollbackCause
public Throwable getRollbackCause() throws Exception
Description copied from interface:ManagedRuntimeReturns 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:
Exception
-
-