Jean-Sebastien Delfino wrote:
Rajini Sivaram wrote:
Raymond,

Thank you for your reply (and the diagram).

The biggest advantage of migrating to an OSGi classloader scheme would be that apart from module isolation, OSGi would also provide module versioning, enabling multiple versions of SCA runtime to exist within a single VM. OSGi would also enable Tuscany modules to be dynamically installed, started and uninstalled. The use of multi-parent classloaders to load modules in Tuscany would require the same amount of code changes as migrating to OSGi, but it
would be much harder to implement versioning and dynamic replacement of
modules (which come for free with OSGi).

The desired visibility of classes that you have listed correspond to the
static dependencies that currently exist in the code. The actual visibility
that exists today includes arrows from the core modules to extensions,
forming a cycle. It is this visibility that is used to locate and start
modules dynamically in Tuscany today. There is also an arrow from the Axis
library to binding.ws.axis2, through the thread context classloader, and
even though not particularly desirable, it is not avoidable.


Thank you...

Regards,

Rajini


How about going step by step and:
1. try to bootstrap the tuscany runtime with two classloaders: CL1 application code, CL2 runtime
2. extend to CL1 application code, CL2 Tuscany and SCA APIs, CL3 runtime
3. split the runtime in multiple CLs

and on a separate path:
1. try to bootstrap the tuscany runtime with two classloaders: CL1 application code, CL2 runtime
2. split the application code in multiple CLs

We could create integration tests for these configurations (not necessarily using OSGi, as these can be built with just plain classloaders IMO), and it would help us identify bad classloader usages, fix them, and detect+prevent classloader issues over time.

Thoughts?


While going through some JIRAs I came across http://issues.apache.org/jira/browse/TUSCANY-1487, this is basically step (1) reported as a user requirement.

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to