felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bartosz Kowalewski <kowalewski.bart...@gmail.com>
Subject Re: Felix/pax runner cyclic dependency issue - whats the common way to solve this?
Date Wed, 18 May 2011 17:09:16 GMT
Hi,

Felix itself does not provide JTA packages, but the system bundle
exports plenty of javax.* (and non-javax) packages. The packages that
are exported are defined in Pax Runner Profiles:
https://github.com/ops4j/org.ops4j.pax.runner/tree/master/pax-runner-platform/src/main/resources/META-INF/platform/ee

JTA packages are exported in both the 1.5 and 1.6 profile. I don't
think that it's possible to remove only some of these packages. If you
really want to play with the set of system packages, you can override
Pax Runner's profile completely. This is what we did in our Pax Exam
based tests. It's also possible to do it when using pure Pax Runner or
the maven plugin. However, you'll probably need an external config
file for Pax Runner (and the 'args' parameter).

What you need to do is:
1) set  --ee to None
2) set the org.osgi.framework.executionenvironment property to
OSGi/Minimum-1.0,OSGi/Minimum-1.1,OSGi/Minimum-1.0,JRE-1.1,J2SE-1.2,J2SE-1.3,J2SE-1.4,J2SE-1.5
3) set system packages so that nearly the same set as the one
specified in the 1.5 profile is used; however JTA packages need to be
removed or somewhat "blocked for import"; you can "block" them using:
"javax.transaction; javax.transaction.xa; partial=true;
mandatory:=partial"

Best regards,
  Bartek

2011/5/18 Matt Madhavan <mattmadhavan@gmail.com>:
> Hello,
> I ran into a strange issue today. I'm running Felix container (3.2.0) with
> some provisioned bundles by invoking mvn pax:provision
> The OpenJpa bundle does not resolve (its in the installed stage!). I see the
> following issue in the Felix console!
> [qtp9097155-32 - /system/console/bundles/87] WARN / - %bundles.pluginTitle:
> Cann
> ot start
> org.osgi.framework.BundleException: Unable to resolve module
> org.apache.openjpa
> [87.0] because it is exposed to package 'javax.transaction.xa' from
> org.apache.g
> eronimo.specs.geronimo-jta_1.1_spec [33.0] and org.apache.felix.framework
> [0] vi
> a two dependency chains.
> Chain 1:
>   org.apache.openjpa [87.0]
>     import:
> (&(package=javax.transaction.xa)(version>=1.1.0)(!(version>=1.2.0)))
>      |
>     export: package=javax.transaction.xa
>   org.apache.geronimo.specs.geronimo-jta_1.1_spec [33.0]
> Chain 2:
>   org.apache.openjpa [87.0]
>     import: (&(package=javax.jms)(version>=1.1.0)(!(version>=1.2.0)))
>      |
>     export: package=javax.jms; uses:=javax.transaction.xa
>   org.apache.geronimo.specs.geronimo-jms_1.1_spec [88.0]
>     import: (package=javax.transaction.xa)
>      |
>     export: package=javax.transaction.xa
>   org.apache.felix.framework [0]
> So Obviously javax.transaction.xa is getting resolved from two places;
>
>  How do I fix (or whats the best way to fix this issue) ?
> Does Felix framework even export javax.transaction.xa ? I did not see any
> reference to the javax.transaction.xa inside the
> org.apache.felix.main_3.2.0.jar?
>
> I'm really confused now? Any idea/help will be appreciated.
> Thanks
> Matt

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message