Jean-Sebastien Delfino wrote:
Raymond Feng wrote:
From: "Graham Charters" <[EMAIL PROTECTED]>
...
I see from the design (and also the module name :-) ) that this work
is Equinox-specific and will not work in other OSGi runtimes. I think
it would be a shame to make this the only way to use an OSGi
implementation and I know Rajini worked very hard to ensure the osgi
runtime work she did also supported Apache Felix. Is the intention to
deprecate support for other OSGi implementations?
We use Equinox to get the idea working. It doesn't really prevent
other OSGi runtime from supporting the same design.
For Apache Felix, we can just slightly change the way how we create
the virtual bundle for 3rd party jars (it might be a
bit more expensive as Felix doesn't support "external" classpaths for
the "Bundle-ClassPath" entry and we can create a folder-based
bundle that include the 3rd party jars).
BTW, it might be worth trying to propose the Hook ideas to Felix to
support various Bundle formats, Bundle wrapping and ClassLoading :-).
Right, I was not thinking about making this 'the only way' or
deprecating the osgi modules either. I see this a bit like what we've
done for server runtime integrations, where several runtime integrations
can co-exist (e.g. Tomcat, Jetty, Geronimo), we try to use common code
when convenient, and maybe we can also have a more generic integration
story like what we've done or Webapps for example.
Also, I like Raymond's idea to propose/ask the Felix team for hooks that
will help us integrate Felix with Tuscany.
One aspect I'm really interested in at the moment is to try to get all
(or almost all) of Tuscany working smoothly in an OSGi environment, but
I must say I'm a little stuck on how to try that without making many
changes to the whole code base (like some surgery in all the modules
that do not behave correctly classloading-wise, and revisit all samples
and test cases which are not designed to work in OSGi). Any thoughts are
welcome.
Yesterday evening I made one more minor change to node-launcher-equinox
and simplified it a bit as it didn't really need a BundleActivator to
initialize itself (since it's main function is to be actively 'launched'
anyway). I just committed that small change this morning.
I've started to look at how to change samples and test cases to work in
OSGi with the OSGi based launchers, tried the helloworld WS and store
samples and ran into errors (ClassLoading issues again in the Tuscany
code and Axis2).
I also tried the calculator-rcp app that Raymond has started to work on
and realized that for it to work all other modules should be seen as PDE
plugin projects in my IDE. I tried to convert the sca-api module to a
plugin and that made calculator-rcp compile at least.
Obviously I'm not going to commit any of these changes right now as they
would be pretty disruptive, but I just wanted to give an update.
I think that getting the whole all Tuscany working in OSGi is going to
require a serious effort of several weeks and changes in many different
places in the code.
--
Jean-Sebastien