Hi lb, thanks, this was the missing link. My Aries JPA, JNDI persistence via EclipseLink is now working. The only thing I am wondering is that I had found the additional *org.eclipse.persistence.osgi* bundle containing the*org.eclipse.persistence.jpa.osgi.PersistenceProvider * but does not seem to be required in this setup ...
Just to summarize the solution again, I have the following bundles: - org.eclipse.persistence/javax.persistence/2.0.3 - org.eclipse.persistence/org.eclipse.persistence.antlr/2.3.3 - org.eclipse.persistence/org.eclipse.persistence.asm/2.3.3 - org.eclipse.persistence/org.eclipse.persistence.core/2.3.3 - org.eclipse.persistence/org.eclipse.persistence.jpa/2.3.3 I have two blueprint configs - datasource_blueprint.xml - the datasource definition as service using MySQL - serviceProvider_bluepring.xml - register eclipse jpa PersistenceProvider to be picked up by aries jpa and finally my bundle with the persistence contexts and the test bundle. Thanks again and Best Regards, Michael 2012/9/11 lb <[email protected]> > Hi, > to make Aries 0.3 to work with EclipseLink (on karaf 2.1.7) I had to > export the service via blueprint as: > > <blueprint > xmlns = "http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" > xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0" > xmlns:cm = " > http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"> > > <bean > id = "ELINK_PP" > class = "org.eclipse.persistence.jpa.PersistenceProvider" > scope = "prototype"/> > > <service interface="javax.persistence.spi.PersistenceProvider" > ref="ELINK_PP"> > <service-properties> > <entry > key ="javax.persistence.provider" > value="org.eclipse.persistence.jpa.PersistenceProvider"/> > </service-properties> > </service> > </blueprint> > > Not the best way I think, but it works :-) > > > On Mon, Sep 10, 2012 at 9:16 PM, Charles Moulliard <[email protected]>wrote: > >> This message is related to the fact that Aries JPA is not able to find >> the JPA service from OSGI service >> >> >> http://grepcode.com/file/repo1.maven.org/maven2/org.apache.aries.jpa/org.apache.aries.jpa.container/0.3/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java >> See line 556 >> >> Can you check if EclipseLink well register an OSGI service with Interface >> name = "javax.persistence.provider" ? >> >> >> On Mon, Sep 10, 2012 at 3:20 PM, Michael Täschner >> <[email protected]>wrote: >> >>> Update, >>> >>> I installed the EclipseLink JPA OSGi bundle >>> (org.eclipse.persistence.osgi) containing persistenceProvider >>> implementation as declared in persistence.xml: >>> "<provider>org.eclipse.persistence.jpa.osgi.PersistenceProvider</provider>". >>> >>> Now the aries error message "There are no suitable providers for the >>> provider class name org.eclipse.persistence.jpa.osgi.PersistenceProvider >>> and version range null" turned into "There are no providers available" : >>> 2012-09-10 15:14:19,279 | WARN | Event Dispatcher | >>> container | 239 - org.apache.aries.jpa.container - >>> 0.3.0 | There are no providers available. >>> 2012-09-10 15:14:19,281 | WARN | Event Dispatcher | >>> container | 239 - org.apache.aries.jpa.container - >>> 0.3.0 | There are no providers available. >>> 2012-09-10 15:14:19,303 | INFO | rint Extender: 3 | >>> BlueprintContainerImpl | 9 - org.apache.aries.blueprint - 0.3.2 | >>> Bundle org.example.osgi.dao is waiting for dependencies >>> [(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name >>> =Customers))(objectClass=javax.persistence.EntityManagerFactory))] >>> >>> Yet still no idea, why it can't find the provider ? It is declared in >>> persistence.xml >>> >>> Any idea ? >>> >>> Thanks and Regards, >>> Michael >>> >>> >>> 2012/9/10 Michael Täschner <[email protected]> >>> >>>> Well, according to osgi:list they are also started (the previous output >>>> was from features:list): >>>> karaf@root> list -t 0 | grep JPA >>>> [ 195] [Active ] [ ] [ ] [ 30] Apache Geronimo >>>> JSR-317 JPA 2.0 Spec API (1.1) >>>> [ 196] [Active ] [ ] [ ] [ 30] Aries JPA >>>> Container API (0.3.0) >>>> [ 197] [Active ] [Created ] [ ] [ 30] Aries JPA >>>> Container blueprint integration for Aries blueprint (0.3.0) >>>> [ 198] [Active ] [ ] [ ] [ 30] Aries JPA >>>> Container (0.3.0) >>>> [ 199] [Active ] [ ] [ ] [ 30] Aries JPA >>>> Container Managed Contexts (0.3.0) >>>> >>>> [ 209] [Active ] [ ] [ ] [ 80] EclipseLink JPA >>>> (2.0.0.v20091127-r5931) >>>> >>>> karaf@root> list -t 0 | grep JNDI >>>> [ 72] [Active ] [ ] [ ] [ 30] Jetty :: JNDI >>>> Naming (7.5.4.v20111024) >>>> [ 175] [Active ] [ ] [ ] [ 30] Apache Aries JNDI >>>> API (0.3.0) >>>> [ 176] [Active ] [ ] [ ] [ 30] Apache Aries JNDI >>>> Core (0.3.0) >>>> [ 177] [Active ] [ ] [ ] [ 30] Apache Aries JNDI >>>> RMI Handler (0.3.0) >>>> [ 178] [Active ] [ ] [ ] [ 30] Apache Aries JNDI >>>> URL Handler (0.3.0) >>>> [ 179] [Active ] [ ] [ ] [ 30] Apache Aries JNDI >>>> Support for Legacy Runtimes (0.3.0) >>>> >>>> >>>> Regards, >>>> Michael >>>> >>>> 2012/9/10 Charles Moulliard <[email protected]> >>>> >>>>> They are installed but not started. >>>>> >>>>> >>>>> On Mon, Sep 10, 2012 at 1:47 PM, Michael Täschner < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi, >>>>>> yes, I installed Aries JPA and JNDI features via console: >>>>>> [installed ] [0.3 ] jpa >>>>>> karaf-enterprise-2.2.9 OSGi Persistence Container >>>>>> [installed ] [0.3 ] jndi >>>>>> karaf-enterprise-2.2.9 OSGi Service Registry JNDI access >>>>>> >>>>>> Anything else required ? >>>>>> >>>>>> Regards, >>>>>> Michael >>>>>> >>>>>> >>>>>> 2012/9/10 Charles Moulliard <[email protected]> >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Have you also installed Aries JPA feature as you need it ? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> >>>>>>> On Mon, Sep 10, 2012 at 1:33 PM, Michael Täschner < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I am trying to get Aries JPA running with EclipseLink (2.0.3) in >>>>>>>> Karaf container. DataSource is implemented as blueprint file and >>>>>>>> referenced >>>>>>>> via Aries JNDI in persistence.xml. >>>>>>>> >>>>>>>> The bundles start ok (OSGi) but the bluepint for the DAO does not >>>>>>>> get initialized ("Failure"). There are also entries in the log ("not >>>>>>>> suitable providers") for which I have not found any info in google: >>>>>>>> 2012-09-10 11:25:02,070 | INFO | raf-2.2.9/deploy | >>>>>>>> fileinstall | 6 - org.apache.felix.fileinstall - >>>>>>>> 3.2.4 >>>>>>>> | Started bundle: >>>>>>>> blueprint:file:/D:/work/karaf/apache-karaf-2.2.9/deploy/datasource_blueprint.xml >>>>>>>> 2012-09-10 11:25:07,178 | INFO | raf-2.2.9/deploy | >>>>>>>> fileinstall | 6 - org.apache.felix.fileinstall - >>>>>>>> 3.2.4 >>>>>>>> | Uninstalled >>>>>>>> D:\work\karaf\apache-karaf-2.2.9\deploy\org.eclipse.equinox.console_1.0.0.v20120522-1841.jar >>>>>>>> 2012-09-10 13:06:19,558 | WARN | raf-2.2.9/deploy | >>>>>>>> container | 198 - >>>>>>>> org.apache.aries.jpa.container - >>>>>>>> 0.3.0 | There are no suitable providers for the provider class name >>>>>>>> org.eclipse.persistence.jpa.osgi.PersistenceProvider and version range >>>>>>>> null. >>>>>>>> 2012-09-10 13:06:19,584 | INFO | raf-2.2.9/deploy | >>>>>>>> fileinstall | 6 - org.apache.felix.fileinstall - >>>>>>>> 3.2.4 >>>>>>>> | Installed >>>>>>>> D:\work\karaf\apache-karaf-2.2.9\deploy\dao-1.0.0-SNAPSHOT.jar >>>>>>>> 2012-09-10 13:06:19,825 | WARN | Refresh Packages | >>>>>>>> container | 198 - >>>>>>>> org.apache.aries.jpa.container - >>>>>>>> 0.3.0 | There are no suitable providers for the provider class name >>>>>>>> org.eclipse.persistence.jpa.osgi.PersistenceProvider and version range >>>>>>>> null. >>>>>>>> 2012-09-10 13:06:19,863 | WARN | raf-2.2.9/deploy | >>>>>>>> container | 198 - >>>>>>>> org.apache.aries.jpa.container - >>>>>>>> 0.3.0 | There are no suitable providers for the provider class name >>>>>>>> org.eclipse.persistence.jpa.osgi.PersistenceProvider and version range >>>>>>>> null. >>>>>>>> 2012-09-10 13:06:19,879 | WARN | raf-2.2.9/deploy | >>>>>>>> container | 198 - >>>>>>>> org.apache.aries.jpa.container - >>>>>>>> 0.3.0 | There are no suitable providers for the provider class name >>>>>>>> org.eclipse.persistence.jpa.osgi.PersistenceProvider and version range >>>>>>>> null. >>>>>>>> 2012-09-10 13:06:19,879 | INFO | raf-2.2.9/deploy | >>>>>>>> fileinstall | 6 - org.apache.felix.fileinstall - >>>>>>>> 3.2.4 >>>>>>>> | Started bundle: >>>>>>>> file:/D:/work/karaf/apache-karaf-2.2.9/deploy/dao-1.0.0-SNAPSHOT.jar >>>>>>>> 2012-09-10 13:06:19,992 | INFO | rint Extender: 1 | >>>>>>>> BlueprintContainerImpl | 9 - org.apache.aries.blueprint - >>>>>>>> 0.3.2 | >>>>>>>> Bundle org.example.osgi.dao is waiting for dependencies >>>>>>>> [(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name >>>>>>>> =Customers))(objectClass=javax.persistence.EntityManagerFactory))] >>>>>>>> 2012-09-10 13:11:20,028 | ERROR | rint Extender: 1 | >>>>>>>> BlueprintContainerImpl | 9 - org.apache.aries.blueprint - >>>>>>>> 0.3.2 | >>>>>>>> Unable to start blueprint container for bundle org.example.osgi.dao >>>>>>>> due to >>>>>>>> unresolved dependencies [(&(&(!(org.apache.aries.jpa.proxy.factory=*))( >>>>>>>> osgi.unit.name >>>>>>>> =Customers))(objectClass=javax.persistence.EntityManagerFactory))] >>>>>>>> java.util.concurrent.TimeoutException >>>>>>>> at >>>>>>>> org.apache.aries.blueprint.container.BlueprintContainerImpl$1.run(BlueprintContainerImpl.java:293)[9:org.apache.aries.blueprint:0.3.2] >>>>>>>> at >>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_31] >>>>>>>> at >>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_31] >>>>>>>> at java.lang.Thread.run(Thread.java:662)[:1.6.0_31] >>>>>>>> >>>>>>>> >>>>>>>> bundles: >>>>>>>> karaf@root> list >>>>>>>> START LEVEL 100 , List Threshold: 50 >>>>>>>> ID State Blueprint Spring Level Name >>>>>>>> [ 54] [Active ] [ ] [ ] [ 80] Apache Felix >>>>>>>> Declarative Services (1.6.1.SNAPSHOT) >>>>>>>> [ 55] [Active ] [ ] [ ] [ 80] Sun >>>>>>>> Microsystems' JDBC Driver for MySQL (5.1.20) >>>>>>>> [ 173] [Active ] [ ] [ ] [ 50] Apache CXF >>>>>>>> Compatibility Bundle Jar (2.6.1) >>>>>>>> [ 203] [Active ] [Created ] [ ] [ 80] >>>>>>>> datasource_blueprint.xml (0.0.0) >>>>>>>> [ 204] [Active ] [ ] [ ] [ 80] >>>>>>>> eclipselink_feature.xml (0.0.0) >>>>>>>> [ 205] [Active ] [ ] [ ] [ 80] Java >>>>>>>> Persistence API 2.0 (2.0.3.v201010191057) >>>>>>>> [ 206] [Active ] [ ] [ ] [ 80] EclipseLink >>>>>>>> ANTLR (2.0.0.v20091127-r5931) >>>>>>>> [ 207] [Active ] [ ] [ ] [ 80] EclipseLink >>>>>>>> ASM (2.0.0.v20091127-r5931) >>>>>>>> [ 208] [Active ] [ ] [ ] [ 80] EclipseLink >>>>>>>> Core (2.0.0.v20091127-r5931) >>>>>>>> [ 209] [Active ] [ ] [ ] [ 80] EclipseLink >>>>>>>> JPA (2.0.0.v20091127-r5931) >>>>>>>> [ 212] [Active ] [Failure ] [ ] [ 80] dao >>>>>>>> (1.0.0.SNAPSHOT) >>>>>>>> >>>>>>>> Any hint would be welcome. >>>>>>>> >>>>>>>> Thanks and Regards, >>>>>>>> Michael >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Charles Moulliard >>>>>>> Apache Committer / Sr. Pr. Consultant at FuseSource.com >>>>>>> Twitter : @cmoulliard >>>>>>> Blog : http://cmoulliard.blogspot.com >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Charles Moulliard >>>>> Apache Committer / Sr. Pr. Consultant at FuseSource.com >>>>> Twitter : @cmoulliard >>>>> Blog : http://cmoulliard.blogspot.com >>>>> >>>>> >>>>> >>>> >>> >> >> >> -- >> Charles Moulliard >> Apache Committer / Sr. Pr. Consultant at FuseSource.com >> Twitter : @cmoulliard >> Blog : http://cmoulliard.blogspot.com >> >> >> >
