Hi Alex,
On 11/27/2012 2:54 PM, Alex Blewitt wrote:
org.eclipse.core.runtime has a dependency on the org.eclipse.equinox.common;bundle-version="[3.6.100,4.0.0) which
now has a dependency on org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)"
So the core runtime can no longer run on Felix. This didn't
used to be the case, and is a change outside of the ECF
codebase, but the dependency to org.eclipse.core.runtime
prevents its use on Felix.
Seems to me that this dependency change should be considered an
Equinox bug. I'm copying Thomas Watson for comment. Thomas: we
(ECF) use equinox.common classes...and wish to run on Felix.
Secondly, you shouldn't assume that just because Karaf can
use Equinox that it is an unqualified 'yes'. I believe that
Karaf runs with a more restrictive (read: OSGi default)
behaviour for the OSGi parent classloader, whereas Eclipse runs
with a slightly more loose definition.
Perhaps then we can try things out on Karaf/Equinox?
#
# equinox boot classloader configuration
#
osgi.parentClassloader = fwk
This sets up the parent classloader to be more strictly
defined (as per the OSGi spec) but Eclipse runs with 'boot' by
default if this is not given. Boot gives access to packages
available from the JDK which therefore may fail if running in a
more restrictive framework launcher.
The moral of this story is: don't assume, test.
I appreciate the advice :-). Since Karaf has only been in public
existence a few months we haven't actually had a chance to test.
And...since we're not a corporate-sponsored project, and are very
limited in resources, we do need to depend upon the kindness of our
community to help us with testing...especially with things like this
(running on/in other frameworks).
Perhaps you, Petria would be so kind as to help me and/or other ECF
committer get Equinox and ECF RS/RSA running/tested under
Karaf/Equinox? I would be willing to contribute to such a joint
effort myself, but I can't take on sole responsibility right now.
Speaking as someone who failed to get ECF running under Felix
due to incompatible classes required by the runtime, and due to
the ECF package needing the common runtime, it was not possible
to use it.
Why not report this...to us (if we can do anything about it)...or to
Equinox...if they can directly do something about it?
I have also seen failures in Eclipse-based OSGi bundles when
running in Karaf due to the different in parent classloader,
even when using the Equinox implementation.
I imagine this is true...but...we (ECF RS/RSA) don't do anything
special wrt classloading/parent classloader...so I wouldn't expect
this to affect ECF RS/RSA.
As I said, I would be willing to contribute to an effort to test
Karaf + Equinox + ECF RS/RSA, if there is interest (Petria)...and if
there are some other folks (Alex, Petria, other ECF committers)
willing to help as well.
And hopefully Thomas will respond WRT the apparently newly-added
Equinox common dependency.
Thanks,
Scott
|