On 5/18/12 2:21, Michiel Vermandel wrote:
Hi all,

Not sure I can post this question here, so if not, maybe someone knows where I 
should ask it.

My question:


* in short: How do I get started with Aries JPA in combination with Apache 
Felix?

* in detail:


I am trying to get started with Aries JPA in Felix but until now all my 
attempts failed.

There doesn't seem to be some easy way such as

- install these bundles in a clean Apache Felix
- start all bundles and explore this URL

- examine this source of the example.

Of course there are some samples like 
"http://aries.apache.org/modules/samples/blog-sample.html";
But they all require quite some setup.
In the case above (blog-sample), one should start building the Aries development stream 
and then run the example in "Eclipse Equinox" (not Felix !?!).

I tried building but - as I am not so good at Maven - I cant get the code of 
the Aries development stream to compile.
I get some Maven issues (in Eclipse Indigo, m2e 1.0.200) such as
-  Plugin execution not covered by lifecycle configuration: 
org.apache.maven.plugins:maven-antrun-plugin:1.2:run (execution: create-prop, 
phase: initialize)

-  Missing artifact biz.aQute:bndlib:jar:0.0.313
-  maven-enforcer-plugin (goal "enforce") is ignored by m2e.

Next I tried just to download the ready-built bundles from
- http://aries.apache.org/downloads/currentrelease.html
But I could not find a nice checklist and thus it was guessing which bundles to 
install.
I ended up with this set:
------------------------------------------------------------------------------
START LEVEL 1
    ID|State      |Level|Name
     0|Active     |    0|System Bundle (4.0.2)
     1|Active     |    1|Apache Derby JDBC (10.5.1.1)
     2|Active     |    1|Apache Felix Bundle Repository (1.6.6)
     3|Active     |    1|Apache Felix Configuration Admin Service (1.2.8)
     4|Active     |    1|Apache Felix EventAdmin (1.2.14)
     5|Active     |    1|Apache Felix File Install (3.2.0)
     6|Active     |    1|Apache Felix Gogo Command (0.12.0)
     7|Active     |    1|Apache Felix Gogo Runtime (0.10.0)
     8|Active     |    1|Apache Felix Gogo Shell (0.10.0)
     9|Active     |    1|Apache Felix Http Jetty (2.2.0)
    10|Active     |    1|Apache Felix Log Service (1.0.1)
    11|Active     |    1|Apache Felix Web Management Console (3.1.8)
    12|Active     |    1|Apache Aries blog sample web component (0.3.0)
    13|Active     |    1|Commons Collections (3.2.1)
    14|Active     |    1|Apache Aries Blueprint Bundle (0.4.0)
    15|Active     |    1|Apache Jakarta log4j Plug-in (1.2.15.v201012070815)
    16|Installed  |    1|OpenJPA Aggregate Jar (2.2.0)
    17|Active     |    1|Apache Aries Util (0.4.0)
    18|Active     |    1|Apache Geronimo JSR-317 JPA 2.0 Spec API (1.1.0)
    19|Active     |    1|Aries JPA Container blueprint integration for Aries 
blueprint (0.3.0)
    20|Active     |    1|asm (3.1.0)
    21|Active     |    1|Aries JPA Container Managed Contexts (0.3.0)
    22|Active     |    1|Aries JPA Container API (0.3.0)
    23|Active     |    1|Apache Aries blog sample (0.3.0)
    24|Active     |    1|slf4j-api (1.6.4)
    25|Installed  |    1|Apache Aries blog sample persistence (0.3.0)
    26|Active     |    1|Commons Lang (2.4.0)
    27|Resolved   |    1|slf4j-log4j12 (1.6.4)
    28|Active     |    1|Apache Aries blog sample API (0.3.0)
    29|Active     |    1|Commons DBCP (1.4.0)
    30|Active     |    1|Apache Derby 10.8 (10.8.2000002.1181258)
    31|Active     |    1|Aries JPA Container (0.3.0)
    32|Active     |    1|Apache Aries Proxy Bundle (0.4.0)
    33|Active     |    1|Commons Pool (1.5.4)
    34|Active     |    1|geronimo-jta_1.1_spec (1.1.1)
------------------------------------------------------------------------------
This is a combination of
1) Clean Apache Felix 4.0.2
2) Aries bundles (blueprint, jpa, proxy)
3) OpenJPA 2.2.0
4) asm-3.1-osgi.jar (I had to download somewhere)
5) slf4j and log4j (I had to download somewhere)

When starting up I get

ERROR: Bundle org.apache.openjpa [16] Error starting 
file:/C:/Data/tools/felix-framework-4.0.2-Aries/plugins/openjpa-2.2.0.jar 
(org.osgi.framework.BundleException: Uses constraint
violation. Unable to resolve bundle revision org.apache.openjpa [16.0] because 
it is exposed to package 'javax.transaction.xa' from bundle revisions 
org.apache.geronimo.specs.geron
imo-jta_1.1_spec [34.0] and org.apache.felix.framework [0] via two dependency 
chains.

Chain 1:
   org.apache.openjpa [16.0]
     import: 
(&(osgi.wiring.package=javax.transaction.xa)(version>=1.1.0)(!(version>=1.2.0)))
      |
     export: osgi.wiring.package=javax.transaction.xa
   org.apache.geronimo.specs.geronimo-jta_1.1_spec [34.0]

Chain 2:
   org.apache.openjpa [16.0]
     import: 
(&(osgi.wiring.package=javax.persistence)(version>=1.1.0)(!(version>=2.1.0)))
      |
     export: osgi.wiring.package=javax.persistence; uses:=javax.sql
   org.apache.geronimo.specs.geronimo-jpa_2.0_spec [18.0]
     import: (osgi.wiring.package=javax.sql)
      |
     export: osgi.wiring.package=javax.sql; uses:=javax.transaction.xa
     export: osgi.wiring.package=javax.transaction.xa
   org.apache.felix.framework [0])

I have no Idea how to fix (can't leave out geronimo-jta_1.1_spec-1.1.1.jar)

I don't really know anything about Aries JPA, but I understand this error message. One thing you could do is try to resolve org.apache.openjpa before resolving other bundles (i.e., start it first). This might kick the Felix resolver into finding a compatible set of candidates.

You probably need to ask on the Aries list if it makes sense whether org.apache.geronimo.specs.geronimo-jpa_2.0_spec is ultimately exposed to javax.transaction.xa from the system bundle or not. The system bundle packages around transactions are often problematic and not what app servers need because they are incomplete, which is probably why these bundles provider another version.

One reason why this might not show up on Equinox, for example, is that Equinox doesn't model "uses" constraints on the system bundle exports, but the Felix framework does. So, technically, I find this error very nice. ;-) But, you could also blissfully ignore it by editing the Felix framework configuration to remove this "uses" constraint from javax.sql to javax.transaction.xa...still, that could lead to other problems later.

-> richard


---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
So does anyone know about a clean check-list of how to get started?
- Install this set of bundles (Aries, openJPA, log,... ?)
- Install these sample bundles
- Ready
?
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------

Thanks a lot!


-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at http://twitter.com/#!/Codessentials

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to