Thank you Francois, I tried EclipseLink, but it still doesn’t work. I am doing
all this interactively on a fresh Karaf installation. In my case since I do
not have an actual database server, so I am using H2. I installed the
following features:
feature:install jdbc
feature:install jndi
feature:install jpa
feature:install transaction
feature:install eclipselink
feature:install pax-jdbc
feature:install pax-jdbc-config
feature:install pax-jdbc-h2
feature:install pax-jdbc-pool-dbcp2
list
START LEVEL 100 , List Threshold: 50
ID │ State │ Lvl │ Version │ Name
─────────────
28 │ Active │ 80 │ 4.1.3 │ Apache Karaf :: OSGi Services
:: Event
53 │ Active │ 80 │ 1.9.2.1 │ Apache ServiceMix :: Bundles
:: jasypt
54 │ Active │ 80 │ 1.5.0 │ OPS4J Base - Service Provider
Access
55 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Generic Driver
Extender
56 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Config
57 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Pooling
Support Base
58 │ Active │ 80 │ 1.0.0.201505202023 │ org.osgi:org.osgi.service.jdbc
59 │ Active │ 80 │ 4.1.3 │ Apache Karaf :: JDBC :: Core
67 │ Active │ 80 │ 3.0.0 │ Expression Language 3.0 API
68 │ Active │ 80 │ 1.2.0 │ CDI APIs
69 │ Active │ 80 │ 1.2 │ javax.interceptor API
70 │ Active │ 80 │ 1.2 │ javax.transaction API
71 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA Container API
72 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA blueprint
73 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA container
74 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA support
77 │ Active │ 80 │ 1.6.0 │ Commons Pool
78 │ Active │ 80 │ 1.0.2 │ Apache Felix Coordinator
Service
79 │ Active │ 80 │ 1.1.1 │ geronimo-jms_1.1_spec
81 │ Active │ 80 │ 1.2 │ geronimo-servlet_2.5_spec
83 │ Active │ 80 │ 1.7.0.6 │ Apache ServiceMix :: Bundles
:: ant
84 │ Active │ 80 │ 1.4.0.3 │ Apache ServiceMix :: Bundles
:: commons-dbcp
85 │ Active │ 80 │ 1.0.0.2 │ Apache ServiceMix :: Bundles
:: javax.inject
88 │ Active │ 80 │ 1.1.1 │ Apache Aries Transaction
Blueprint
89 │ Active │ 80 │ 2.1.0 │ Apache Aries Transaction
Blueprint
90 │ Active │ 80 │ 1.3.3 │ Apache Aries Transaction
Manager
91 │ Active │ 80 │ 2.1.0.v201304241213 │ Java Persistence API 2.1
92 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA Container
adapter for EclipseLink
93 │ Active │ 80 │ 3.2.0.v201302191141 │ EclipseLink ANTLR
94 │ Active │ 80 │ 5.0.1.v201405080102 │ EclipseLink ASM
95 │ Active │ 80 │ 2.6.4.v20160829-44060b6 │ EclipseLink Core
96 │ Active │ 80 │ 2.6.4.v20160829-44060b6 │ EclipseLink JPA
97 │ Active │ 80 │ 2.6.4.v20160829-44060b6 │ EclipseLink Hermes Parser
98 │ Active │ 80 │ 1.3.172 │ H2 Database Engine
99 │ Active │ 80 │ 2.1.1 │ Apache Commons DBCP
100 │ Active │ 80 │ 2.4.2 │ Apache Commons Pool
101 │ Active │ 80 │ 3.2.4.1 │ Apache ServiceMix :: Bundles
:: cglib
102 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Pooling DBCP2
103 │ Installed │ 80 │ 2.7.0.SNAPSHOT │ Apache Aries JPA example
tasklist model
Copied file: org.ops4j.datasource-tasklist.cfg. to etc containing:
osgi.jdbc.driver.name=H2
databaseName=tasklist;create=true
dataSourceName=tasklist
pool=dbcp2
xa=true
jdbc.pool.maxTotal=8
No data source is created, either command: service:list DataSource, or
jdbc:ds-list don't show any data source.
Trying to deploy Aries-example jar
install -s
mvn:org.apache.aries.jpa.example/org.apache.aries.jpa.example.tasklist.model/2.7.0-SNAPSHOT
Produces Error:
Error executing command: Error installing bundles:
Unable to start bundle
mvn:org.apache.aries.jpa.example/org.apache.aries.jpa.example.tasklist.model/2.7.0-SNAPSHOT:
org.osgi.framework.BundleException: Unable to resolve
org.apache.aries.jpa.example.tasklist.model [103](R 103.0): missing requirement
[org.apache.aries.jpa.example.tasklist.model [103](R 103.0)] osgi.contract;
(&(osgi.contract=JavaJPA)(version=2.1.0)) Unresolved requirements:
[[org.apache.aries.jpa.example.tasklist.model [103](R 103.0)] osgi.contract;
(&(osgi.contract=JavaJPA)(version=2.1.0))]
I am at evaluation/proof-of-concept stage, just trying to figure out what works
out-of-the-box, so I don’t have a project created, I am just using the Aries
JPA example. It does not look good as a viable approach so far.
Best regards,
Alex soto
> On Nov 21, 2017, at 10:44 AM, Francois Papon <[email protected]>
> wrote:
>
> Hi,
>
> I use EclipseLink for JPA implementation in a custo Karaf distribution and it
> work's well.
>
> In my persistence feature pom I have this dependencies :
>
> <dependency>
> <groupId>org.osgi</groupId>
> <artifactId>org.osgi.core</artifactId>
> <scope>provided</scope>
> </dependency>
>
> <dependency>
> <groupId>org.osgi</groupId>
> <artifactId>osgi.cmpn</artifactId>
> <scope>provided</scope>
> </dependency>
> <!-- JPA -->
> <dependency>
> <groupId>org.eclipse.persistence</groupId>
> <artifactId>javax.persistence</artifactId>
> <scope>provided</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.aries.jpa</groupId>
> <artifactId>org.apache.aries.jpa.api</artifactId>
> <scope>provided</scope>
> </dependency>
>
> and in my assembly this feature on boot :
> <feature>jdbc</feature>
> <feature>jndi</feature>
> <feature>jpa</feature>
>
> <feature>transaction</feature>
> <feature>eclipselink</feature>
>
> <feature>pax-jdbc</feature>
> <feature>pax-jdbc-config</feature>
> <feature>pax-jdbc-pool-hikaricp</feature>
> <feature>pax-jdbc-pool-aries</feature>
> <feature>pax-jdbc-postgresql</feature>
>
> in the etc folder the database config file
> "org.ops4j.datasource-mydatasource.cfg" :
>
> osgi.jdbc.driver.class=org.postgresql.Driver
> dataSourceName=my-datasource
> databaseName=my-database
> serverName=172.17.0.2
> portNumber=5432
> user=dbuser
> password=dbpassword
>
> Hope this help.
>
> Le 21/11/2017 à 17:57, Alex Soto a écrit :
>> Does anybody know a good, simple step by step tutorial on how to quickly
>> start using JPA 2.1 with Karaf 4.1.3?
>> At this point I am not requiring any specific JPA implementation/version
>> (Hibernate vs. any other).
>> So far using Karaf’s default has not worked for me. I would expect Karaf’s
>> defaults should work out our the box.
>>
>>
>>> On Nov 20, 2017, at 2:54 PM, Jean-Baptiste Onofré <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>> Ok, I see hibernate now. Let me check if I see the jpa spec bundle.
>>>
>>> Regards
>>> JB
>>> On Nov 20, 2017, at 20:42, Alex Soto <[email protected]
>>> <mailto:[email protected]>> wrote:
>>> Thank you JB for the quick response.
>>> OK, so I installed the jpa feature:
>>>
>>> feature:install jpa
>>>
>>> karaf@root()> list
>>> START LEVEL 100 , List Threshold: 50
>>> ID │ State │ Lvl │ Version │ Name
>>> ────┼───────────┼─────┼────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>>> 28 │ Active │ 80 │ 4.1.3 │ Apache Karaf :: OSGi Services
>>> :: Event
>>> 52 │ Active │ 80 │ 1.3.0 │ ClassMate
>>> 53 │ Active │ 80 │ 3.20.0.GA │ Javassist
>>> 54 │ Active │ 80 │ 1.2 │ javax.interceptor API
>>> 55 │ Active │ 80 │ 1.6.6 │ Byte Buddy (without
>>> dependencies)
>>> 56 │ Active │ 80 │ 2.7.7.5 │ Apache ServiceMix :: Bundles
>>> :: antlr
>>> 57 │ Active │ 80 │ 1.6.1.5 │ Apache ServiceMix :: Bundles
>>> :: dom4j
>>> 58 │ Active │ 80 │ 5.0.1.Final │ hibernate-commons-annotations
>>> 59 │ Active │ 80 │ 5.2.8.Final │ hibernate-core
>>> 60 │ Active │ 80 │ 1.0.0.Final │ hibernate-jpa-2.1-api
>>> 61 │ Active │ 80 │ 5.2.8.Final │ hibernate-osgi
>>> 62 │ Active │ 80 │ 2.0.3.Final │ Java Annotation Indexer
>>> 63 │ Active │ 80 │ 3.3.0.Final │ JBoss Logging 3
>>> 65 │ Active │ 80 │ 1.9.2.1 │ Apache ServiceMix :: Bundles
>>> :: jasypt
>>> 66 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Config
>>> 67 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Pooling Support
>>> Base
>>> 68 │ Active │ 80 │ 1.0.0.201505202023 │ org.osgi:org.osgi.service.jdbc
>>> 69 │ Active │ 80 │ 1.3.172 │ H2 Database Engine
>>> 117 │ Active │ 80 │ 1.2.0 │ CDI APIs
>>> 118 │ Active │ 80 │ 1.2 │ javax.transaction API
>>> 119 │ Active │ 80 │ 1.1.1 │ Apache Aries Transaction
>>> Blueprint
>>> 120 │ Active │ 80 │ 2.1.0 │ Apache Aries Transaction
>>> Blueprint
>>> 121 │ Active │ 80 │ 1.3.3 │ Apache Aries Transaction
>>> Manager
>>> 122 │ Active │ 80 │ 1.0.2 │ Apache Felix Coordinator
>>> Service
>>> 123 │ Active │ 80 │ 1.0.0.2 │ Apache ServiceMix :: Bundles
>>> :: javax.inject
>>> 124 │ Installed │ 80 │ 2.7.0.SNAPSHOT │ Apache Aries JPA example
>>> tasklist model
>>> 125 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA Container API
>>> 126 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA blueprint
>>> 127 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA container
>>> 128 │ Active │ 80 │ 2.6.1 │ Apache Aries JPA support
>>> 129 │ Active │ 80 │ 1.1.1 │ geronimo-jms_1.1_spec
>>> 130 │ Active │ 80 │ 1.7.0.6 │ Apache ServiceMix :: Bundles
>>> :: antThe same problem persists
>>>
>>> And
>>>
>>> karaf@root()> bundle:diag 124
>>> Apache Aries JPA example tasklist model (124)
>>> ---------------------------------------------
>>> Status: Installed
>>> Unsatisfied Requirements:
>>> [org.apache.aries.jpa.example.tasklist.model [124](R 124.0)] osgi.service;
>>> (osgi.jndi.service.name=tasklist)
>>> [org.apache.aries.jpa.example.tasklist.model [124](R 124.0)] osgi.contract;
>>> (&(osgi.contract=JavaJPA)(version=2.1.0))
>>> Declarative Services
>>>
>>>
>>> Or is it something else I need to install?
>>>
>>> Best regards,
>>>
>>> Alex soto
>>> [email protected] <mailto:[email protected]>
>>>
>>>
>>>
>>>> On Nov 20, 2017, at 2:31 PM, Jean-Baptiste Onofré < [email protected]
>>>> <mailto:[email protected]>> wrote:
>>>>
>>>> I don't see the jpa engine in your bundle list ? Openjpa, hibernate,
>>>> eclipselink ?
>>>> The jpa version depends of the engine.
>>>>
>>>> Regards
>>>> JB
>>>> On Nov 20, 2017, at 20:09, Alex Soto < [email protected]
>>>> <mailto:[email protected]>> wrote:
>>>> Hello,
>>>>
>>>> This is my first attempt to use JPA with Karaf, so I am trying to follow
>>>> example from https://github.com/apache/aries-jpa
>>>> <https://github.com/apache/aries-jpa> using Karaf 4.1.3, so far
>>>> unsuccessfully.
>>>> On a clean Karaf I have installed the following:
>>>>
>>>> feature:install hibernate-orm
>>>> feature:install pax-jdbc-config
>>>> feature:install pax-jdbc-h2
>>>> feature:install http-whiteboard
>>>> feature:install scr
>>>> feature:install transaction
>>>>
>>>> Then I copied the data source config file
>>>> org.ops4j.datasource-tasklist.cfg to the Karaf’s etc directory.
>>>>
>>>> Now, when I install the first Example bundle:
>>>>
>>>> install -s
>>>> mvn:org.apache.aries.jpa.example/org.apache.aries.jpa.example.tasklist.model/2.7.0-SNAPSHOT
>>>> Error executing command: Error installing bundles:
>>>> Unable to start bundle
>>>> mvn:org.apache.aries.jpa.example/org.apache.aries.jpa.example.tasklist.model/2.7.0-SNAPSHOT:
>>>> org.osgi.framework.BundleException: Unable to resolve
>>>> org.apache.aries.jpa.example.tasklist.model [124](R 124.0): missing
>>>> requirement [org.apache.aries.jpa.example.tasklist.model [124](R 124.0)]
>>>> osgi.contract; (&(osgi.contract=JavaJPA)(version=2.1.0)) Unresolved
>>>> requirements: [[org.apache.aries.jpa.example.tasklist.model [124](R
>>>> 124.0)] osgi.contract; (&(osgi.contract=JavaJPA)(version=2.1.0))]
>>>>
>>>> list
>>>> START LEVEL 100 , List Threshold: 50
>>>> ID │ State │ Lvl │ Version │ Name
>>>> ────┼────────┼─────┼────────────────────┼───────────────────────────────────────────
>>>> 28 │ Active │ 80 │ 4.1.3 │ Apache Karaf :: OSGi Services ::
>>>> Event
>>>> 52 │ Active │ 80 │ 1.3.0 │ ClassMate
>>>> 53 │ Active │ 80 │ 3.20.0.GA │ Javassist
>>>> 54 │ Active │ 80 │ 1.2 │ javax.interceptor API
>>>> 55 │ Active │ 80 │ 1.6.6 │ Byte Buddy (without dependencies)
>>>> 56 │ Active │ 80 │ 2.7.7.5 │ Apache ServiceMix :: Bundles ::
>>>> antlr
>>>> 57 │ Active │ 80 │ 1.6.1.5 │ Apache ServiceMix :: Bundles ::
>>>> dom4j
>>>> 58 │ Active │ 80 │ 5.0.1.Final │ hibernate-commons-annotations
>>>> 59 │ Active │ 80 │ 5.2.8.Final │ hibernate-core
>>>> 60 │ Active │ 80 │ 1.0.0.Final │ hibernate-jpa-2.1-api
>>>> 61 │ Active │ 80 │ 5.2.8.Final │ hibernate-osgi
>>>> 62 │ Active │ 80 │ 2.0.3.Final │ Java Annotation Indexer
>>>> 63 │ Active │ 80 │ 3.3.0.Final │ JBoss Logging 3
>>>> 65 │ Active │ 80 │ 1.9.2.1 │ Apache ServiceMix :: Bundles ::
>>>> jasypt
>>>> 66 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Config
>>>> 67 │ Active │ 80 │ 1.1.0 │ OPS4J Pax JDBC Pooling Support
>>>> Base
>>>> 68 │ Active │ 80 │ 1.0.0.201505202023 │ org.osgi:org.osgi.service.jdbc
>>>> 69 │ Active │ 80 │ 1.3.172 │ H2 Database Engine
>>>> 117 │ Active │ 80 │ 1.2.0 │ CDI APIs
>>>> 118 │ Active │ 80 │ 1.2 │ javax.transaction API
>>>> 119 │ Active │ 80 │ 1.1.1 │ Apache Aries Transaction
>>>> Blueprint
>>>> 120 │ Active │ 80 │ 2.1.0 │ Apache Aries Transaction
>>>> Blueprint
>>>> 121 │ Active │ 80 │ 1.3.3 │ Apache Aries Transaction Manager
>>>> 122 │ Active │ 80 │ 1.0.2 │ Apache Felix Coordinator Service
>>>> 123 │ Active │ 80 │ 1.0.0.2 │ Apache ServiceMix :: Bundles ::
>>>> javax.injec
>>>>
>>>> bundle:diag 124
>>>> Unsatisfied Requirements:
>>>> [org.apache.aries.jpa.example.tasklist.model [124](R 124.0)] osgi.service;
>>>> (osgi.jndi.service.name=tasklist)
>>>> [org.apache.aries.jpa.example.tasklist.model [124](R 124.0)]
>>>> osgi.contract; (&(osgi.contract=JavaJPA)(version=2.1.0))
>>>>
>>>>
>>>> Any idea how to troubleshoot this problem?
>>>>
>>>> Best regards,
>>>> Alex soto
>>>>
>>>>
>>>>
>>>
>>
>