I am building a web application which uses a number of OSGi modules deployed in the WebLogic OSGi during the deployment of my application. In order to be able to read/write to a DB from my OSGi services I have created a datasource in WebLogic for which I am able to inject an EntityManager in my OSGi services via blueprint:
<bean id="TestServiceImpl" class="com.test.impl.TestServiceImpl">
<jpa:context property="em" unitname="mypu" />
<tx:transaction method="*" value="Required" />
<service id="TestService" ref="TestServiceImpl" interface="com.test.api.TestService" />
My problem is that although I have also included tx:transaction in my blueprint.xml and deployed Aries transaction in the OSGi no transaction is created for my OSGi service methods.
After some digging I came to the conclusion that the problem is that Aries transaction listens for implementations of javax.sql.XADataSource which it then wraps in a XADataSourceEnlistingWrapper and exposes as javax.sql.DataSource in order to be used by my bundle. In my case however the datasource WebLogic creates is a weblogic.jdbc.common.internal.RmiDataSource which does not implement javax.sql.XADataSource so Aries doesn't pick it up.
Is my understanding of the problem correct? What do I need to do in order to have XA transactions in WebLogic's OSGi?