Thanks Christian,
Based on this info, I have changed the blueprint xml to the following:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"
xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0">
<jpa:enable />
<bean id="alignmentDAOImpl"
class="org.renci.hearsay.dao.jpa.AlignmentDAOImpl">
<tx:transaction method="*" value="Required" />
</bean>
...snip...
</blueprint>
And in my BaseDAO class, I have the following:
@PersistenceContext(name = "hearsay", unitName = "hearsay")
private EntityManager entityManager;
Then in the pom.xml for building the custom distribution, I have the
following relevant bootFeatures:
<feature>aries-blueprint</feature>
<feature>cxf</feature>
<feature>jdbc</feature>
<feature>transaction-api/1.1.0</feature>
<feature>jpa/1.0.4</feature>
<feature>openjpa/${openjpa.version}</feature>
<feature>hearsay-commons</feature>
<!-- <feature>hearsay-dao</feature> -->
At this point, when Karaf 4.0.3 starts up, there are no
errors/warnings....all looks good. Then I run, 'feature:install
hearsay:dao', which installs the dao api & impl bundles. The api is
active, but the impl is in a graceperiod state. The log has the following:
2015-11-30 09:46:39,881 | INFO | pool-51-thread-1 | BlueprintContainerImpl
| 37 - org.apache.aries.blueprint.core - 1.4.5 | Bundle
hearsay-dao-jpa/0.0.46.SNAPSHOT is waiting for namespace handlers
[http://aries.apache.org/xmlns/transactions/v1.2.0]
What am I missing?
Thanks,
Jason
On 11/25/2015 02:05 AM, Christian Schneider wrote:
The old namespace for jpa is not supported anymore by Aries JPA 2.x.
Can you try with the new namespaces like used in my
tutorial code? You will need to use annoations then.
For transactions you can still use the old namespace but I would also
recommend the new one.
Christian
On 24.11.2015 17:22, Jason Reilly wrote:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0"
xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0"
default-activation="eager">
<bean id="alignmentDAOImpl"
class="org.renci.hearsay.dao.jpa.AlignmentDAOImpl">
<tx:transaction method="*" value="Required" />
<jpa:context property="entityManager" unitname="hearsay" />
</bean>
...snip....
<service ref="alignmentDAOImpl"
interface="org.renci.hearsay.dao.AlignmentDAO" />
...snip....
<bean id="hearsayDAOBeanService"
class="org.renci.hearsay.dao.HearsayDAOBean">
<property name="alignmentDAO" ref="alignmentDAOImpl" />
...snip....
</bean>
<service ref="hearsayDAOBeanService"
interface="org.renci.hearsay.dao.HearsayDAOBeanService" />
</blueprint>
On 11/24/2015 11:19 AM, Jean-Baptiste Onofré wrote:
Can you share the blueprint XML in your hearsay-dao-jpa bundle ?
On 11/24/2015 04:57 PM, Jason Reilly wrote:
I tried 1.0.0 for those urls & here is the error message:
2015-11-24 10:56:12,317 | INFO | pool-47-thread-1 |
BlueprintContainerImpl | 34 -
org.apache.aries.blueprint.core
- 1.4.5 | Bundle hearsay-dao-jpa/0.0.46.SNAPSHOT is waiting for
namespace handlers [http://aries.apache.org/xmlns/transactions/v1.0.0,
http://aries.apache.org/xmlns/jpa/v1.0.0]
On 11/24/2015 10:55 AM, Jason Reilly wrote:
I gave that a whirl...here are the details:
In my pom.xml which builds my custom Karaf distribution:
...snip..
<bootFeatures>
<feature>feature</feature>
<feature>shell</feature>
<feature>bundle</feature>
<feature>config</feature>
<feature>diagnostic</feature>
<feature>instance</feature>
<feature>jaas</feature>
<feature>log</feature>
<feature>package</feature>
<feature>service</feature>
<feature>system</feature>
<feature>ssh</feature>
<feature>management</feature>
<feature>deployer</feature>
<feature>obr</feature>
<feature>http</feature>
<feature>war</feature>
<feature>jetty</feature>
<feature>scr</feature>
<feature>jndi</feature>
<feature>aries-blueprint</feature>
<feature>cxf</feature>
<feature>jdbc</feature>
<feature>transaction-api/1.1.0</feature>
<feature>openjpa/${openjpa.version}</feature>
<feature>spring/${spring.version}_1</feature>
<feature>spring-orm/${spring.version}_1</feature>
<feature>spring-web/${spring.version}_1</feature>
<feature>hearsay-commons</feature>
<!-- <feature>hearsay-dao</feature> -->
</bootFeatures>
...snip...
From the Karaf prompt:
karaf@root()> list
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
--------------------------------------------------------------------------------------
8 | Active | 80 | 1.5.0 | OPS4J Base - Lang
9 | Active | 80 | 1.5.0 | OPS4J Base - Service
Provider Access
10 | Active | 80 | 0.7.0 | OPS4J Pax JDBC Generic
Driver Extender
11 | Active | 80 | 0.7.0 | OPS4J Pax JDBC Config
12 | Active | 80 | 1.8.1 | OPS4J Pax Swissbox ::
OSGi Core
13 | Active | 80 | 1.8.1 | OPS4J Pax Swissbox ::
Extender
14 | Active | 80 | 1.8.1 | OPS4J Pax Swissbox ::
Lifecycle
15 | Active | 80 | 1.0.0.201505202023 |
org.osgi:org.osgi.service.jdbc
16 | Active | 80 | 2.4.1 | Jackson-annotations
17 | Active | 80 | 2.4.1 | Jackson-core
18 | Active | 80 | 2.4.1 | jackson-databind
19 | Active | 80 | 2.4.1 | Jackson-JAXRS-base
20 | Active | 80 | 2.4.1 | Jackson-JAXRS-JSON
21 | Active | 80 | 2.4.1 |
Jackson-module-JAXB-annotations
27 | Active | 80 | 1.1.0.Final | Bean Validation API
49 | Active | 80 | 1.8.3 | Commons BeanUtils
50 | Active | 80 | 1.2 | Commons CLI
52 | Active | 80 | 3.2.1 | Commons Collections
53 | Active | 80 | 4.0.0 | Apache Commons Collections
54 | Active | 80 | 1.4.0 | Commons Compress
55 | Active | 80 | 0.5 | Commons Discovery
56 | Active | 80 | 1.3.1 | Commons Email
57 | Active | 80 | 2.4.0 | Commons IO
59 | Active | 80 | 3.4.0 | Apache Commons Lang
60 | Active | 80 | 3.5.0 | Apache Commons Math
61 | Active | 80 | 3.3.0 | Commons Net
62 | Active | 80 | 1.5.6 | Commons Pool
105 | Active | 80 | 1.1.1 | geronimo-jms_1.1_spec
106 | Active | 80 | 1.1 | Apache Geronimo JSR-317 JPA
2.0 Spec API
107 | Active | 80 | 1.1.1 | geronimo-jta_1.1_spec
123 | Active | 80 | 4.0.3 | Apache Karaf :: JDBC ::
Core
137 | Active | 80 | 2.0.9 | Apache MINA Core
139 | Active | 80 | 2.4.0 | OpenJPA Aggregate Jar
141 | Active | 80 | 1.7.0.6 | Apache ServiceMix ::
Bundles
:: ant
143 | Active | 80 | 1.7.4.1 | Apache ServiceMix ::
Bundles
:: aspectj
145 | Active | 80 | 1.4.0.3 | Apache ServiceMix ::
Bundles
:: commons-dbcp
154 | Active | 80 | 1.14.1.1 | Apache ServiceMix ::
Bundles
:: serp
162 | Active | 80 | 1.3.2.RELEASE_2 | Apache ServiceMix ::
Bundles
:: spring-ldap
180 | Active | 80 | 4.3.0 | Apache XBean :: ASM 5
shaded
(repackaged)
229 | Active | 80 | 9.4.0.build-1205 | PostgreSQL JDBC Driver
JDBC41
230 | Active | 80 | 2.2.7.RELEASE | Spring Batch Core
231 | Active | 80 | 2.2.7.RELEASE | Spring Batch Infrastructure
232 | Active | 80 | 1.4.1.RELEASE | Spring Data Commons Core
237 | Active | 80 | 3.2.8.RELEASE | Spring Security LDAP
242 | Active | 80 | 0.0.1 | RENCI :: OSGi :: Bundle ::
XZ 1.0
At this point, everything looks good. Then I install the hearsay-dao
feature & the list command shows the following additional bundles:
243 | Active | 80 | 0.0.46.SNAPSHOT | Hearsay :: DAO :: API
244 | GracePeriod | 80 | 0.0.46.SNAPSHOT | Hearsay :: DAO :: JPA
245 | Active | 80 | 0.0.46.SNAPSHOT | Hearsay :: Datasource
From the karaf.log file, I see the following:
2015-11-24 10:51:15,958 | INFO | pool-48-thread-1 |
BlueprintContainerImpl | 34 -
org.apache.aries.blueprint.core - 1.4.5 | Bundle
hearsay-dao-jpa/0.0.46.SNAPSHOT is waiting for namespace handlers
[http://aries.apache.org/xmlns/transactions/v1.1.0,
http://aries.apache.org/xmlns/jpa/v1.1.0]
Should the Aries transaction/jpa versions be 1.0.0 instead?
Thanks,
Jason
On 11/24/2015 10:22 AM, Jean-Baptiste Onofré wrote:
Basically, you should have transaction-api 1.1.0 installed (not
1.2.0) and no transaction/1.3.0 feature installed for OpenJPA.
Regards
JB
On 11/24/2015 04:13 PM, Jason Reilly wrote:
Hi JB,
I was using what I could find out-of-the-box....which I think is
transaction/1.3.0. I didn't know of a transaction 2.x feature.
What is
the repo for that?
Regards,
Jason
On 11/24/2015 10:05 AM, Jean-Baptiste Onofré wrote:
Hi Jason,
did you install transaction 2.x feature ?
Regards
JB
On 11/24/2015 03:41 PM, Jason Reilly wrote:
Hi all,
I am trying to migrate an application to Karaf 4.0.3 & am using
Java8. I
have tried a few permutations of persistence providers
(hibernate,
openjpa, & eclipselink). I got Hibernate to work, but ran into a
number
of problems (like not having all the collections in a
@NamedEntityGraph
loaded & this bug:
https://hibernate.atlassian.net/browse/HHH-9270).
Wanting to continue with JPA 2.1, I tried out eclipselink. One
of the
problems I had with eclipselink was the following:
2015-11-23 16:28:10,754 | INFO | rint Extender: 3 |
BlueprintContainerImpl | 31 -
org.apache.aries.blueprint.core
- 1.4.5 | Bundle hearsay-dao-jpa/0.0.46.SNAPSHOT is waiting for
namespace handlers
[http://aries.apache.org/xmlns/transactions/v2.0.0]
I have transaction & jpa features installed, but the
hearsay-dao-jpa
bundle is never activated when I use a blueprint xml file to
register
the services. When I use the pax-cdi annotations (as in
Christian's
KarafTutorial example), the hearsay-dao-jpa bundle is
activated, but
throws an NPE on getEntityManager() despite using the
PersistentContext
annotation. I think this might be related to the Aries JPA 2.2.0
problem mentioned in another thread (Problem with JPA 2.2.0 in
Karaf
4.0.2).
When I try openjpa/2.4.0 & JPA 2.0, the openjpa bundle is in a
resolved
state. When I try to start that bundle the following is thrown:
ERROR: Bundle org.apache.aries.jpa.container [55]
EventDispatcher:
Error
during dispatch. (java.lang.NoClassDefFoundError:
javax/transaction/Synchronization)
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
However, the packages are available:
karaf@root()> exports | grep javax.transaction
javax.transaction.xa
| 0.0.0 | 0 | org.apache.felix.framework
javax.transaction.xa
| 1.1.0 | 122 |
org.apache.geronimo.specs.geronimo-jta_1.1_spec
javax.transaction.xa
| 1.2.0 | 256 | javax.transaction-api
javax.transaction
| 0.0.0 | 0 | org.apache.felix.framework
javax.transaction
| 1.1.0 | 122 |
org.apache.geronimo.specs.geronimo-jta_1.1_spec
javax.transaction
| 1.2.0 | 256 | javax.transaction-api
I also see the following in the log after messing with which
transaction-api/persistence-api features I have installed:
Caused by: java.lang.NoClassDefFoundError:
javax/transaction/SystemException
at
org.apache.openjpa.persistence.osgi.PersistenceActivator.start(PersistenceActivator.java:61)
Before reverting back to Karaf 3.0.5...is there anything else
I can
try? Suggestions?
Thanks,
Jason