[ 
https://issues.apache.org/jira/browse/OPENJPA-1593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12978244#action_12978244
 ] 

Wolfgang Glas commented on OPENJPA-1593:
----------------------------------------

The way to go here is to register a service listener for a 
javax.transaction.TransactionManager inside

    
org.apache.openjpa.persistence.osgi.PersistenceActivator.start(BundleContext)

with a filter expression of

  "(objectClass=javax.transaction.TransactionManager)"

The best solution would be to let OSGiManagedRuntime implement OSGi's 
ServiceListener and openjpa's ManagedRuntime interfaces and maintain
a synchronized copy of the TransactionManager inside OSGiManagedRuntime.

  And yes, I would really like to have this feature in openjpa-2.1.0 ;-)

  Best regards,

    Wolfgang

> Create an OSGiManagedRuntime
> ----------------------------
>
>                 Key: OPENJPA-1593
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1593
>             Project: OpenJPA
>          Issue Type: Sub-task
>          Components: osgi
>    Affects Versions: 2.0.0-beta
>            Reporter: Donald Woods
>            Assignee: Donald Woods
>             Fix For: 2.1.0
>
>
> Follow-on to OPENJPA-1524 to create a generic OSGiManagedRuntime class that 
> would work for vendors/frameworks other than Apache Aries.  
> Tim's original suggestion was - One implementation suggestion would be to use 
> a ServiceTracker to keep track of the JTA services. This would allow for lazy 
> lookup and also provide a notification if the service is unregistered. 
> This should then be possible to implement as a relatively simple subclass of 
> RegistryManagedRuntime that overrides getTransactionManager(). I don't know 
> if you have a nice mechanism to pass a BundleContext yet, but I don't think 
> that should pose a significant problem.
> Now that we have a BundleUtils.java to require OSGi classes in our runtime, 
> we should be able to lookup 
> "javax.transaction.TransactionSynchronizationRegistry" from the 
> ServiceRegistry to use, instead of relying on the current JNDI lookup which 
> is Aries specific.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to