As user of Karaf,
I'd expect to run my application as is without further changing
if I stick to the features I used before.
That's why we now have the 5th person beeing stuck at a point of
agony where everything fails.
This is just wrong. And merely pointing to some blogs/turorials
out-of-karafs scope is not helpful.
I think I already wrote it on one ml or the other, it has to be
made sure that users have an easy transition and that stuff they
know which had been working is still working.
From my point of view the migration to Karaf 4 regarding JPA
isn't as straight forward as users (and I) are expecting.
So we need to focus on this and fix it.
Regards, Achim
2015-11-25 20:45 GMT+01:00 Jean-Baptiste Onofré <[email protected]
<mailto:[email protected]>>:
Hi Christian,
good point for the documentation, I was more thinking about a
step by step tutorial and a reference to the Aries website.
Agree to separate in a new code. The point is more for the
users using Karaf 3 to directly use Karaf 4 without changing
their application (at least at first step), like we do with
the shell-compat feature for the shell commands. I agree with
you that users should update their code at some points.
Regards
JB
On 11/25/2015 08:41 PM, Christian Schneider wrote:
The documentation at the Aries web site already explains
the main steps.
So I think I would not duplicate this in the karaf dev
guide. Maybe in
tutorial form but I think the
reference documentation should be at Aries.
It should be possible to support the old namespace but I
would at least
like to keep it separate from the new code so we can
remove it easily
at a later point.
Christian
Am 25.11.2015 um 08:08 schrieb Jean-Baptiste Onofré:
You were faster than I Christian ;)
Thanks ;)
I will improve the dev guide to provide a clear
picture to the users.
By the way, don't you think it would be possible to
support previous
namespace (jpa/v1.0.0) ? It would be convenient for a
migration like
Jason's use case.
Regards
JB
On 11/25/2015 08: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.
<http://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.
<http://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.
<http://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.
<http://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
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
Committer & Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
Software Architect / Project Manager / Scrum Master