You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Wolfgang Glas (JIRA)" <ji...@apache.org> on 2011/01/06 10:37:48 UTC

[jira] Commented: (OPENJPA-1593) Create an OSGiManagedRuntime

    [ 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.