Some comments online...

On 9/12/07, Rajini Sivaram <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Graham and I have been looking at supporting OSGi bundles as contributions
> in Tuscany. This is the packaging of SCA contributions as OSGi bundles where
> OSGi will bring modularity and versioning to SCA.
>
> Resolution of artifacts in OSGi contribution bundles will be handled by an
> OSGi runtime (if an OSGi runtime is not present on the classpath, the bundle
> will be treated as a plain jar). This would mean that classes used in <
> implementation.java/> and interfaces etc. will be loaded using standard OSGi
> resolution mechanisms, enabling different versions of classes to be loaded
> into a domain (there is also better isolation because each bundle has its
> own classloader).
>
> Unfortunately in the current Tuscany implementation, there doesn't seem to
> be a neat way of plugging in support for OSGi contributions. While <
> implementation.osgi/> is a completely independent module, support for OSGi
> contributions would require changes to other processors. I would like to add
> a new module "modules/contribution-osgi" which provides all the code needed
> for supporting OSGi contribution bundles. But the code will have to be
> explicitly invoked from outside this module.
>
> OSGi bundles are jar files. Since there is only one processor for each
> contribution file type, the Jar processor will have to call OSGi bundle
> processor to do any special processing for OSGi bundles - the OSGi bundle
> processor installs the bundle into an OSGi runtime (starting a new runtime
> if necessary).
>

So, isn't this the case where you could identify that the jar being
processed is a OSGI bundle, and call a OSGI processor directly,
instead of making the jar processor delegating ?

> Since class resolution for OSGi bundles should be done using OSGi resolution
> mechanisms rather than directly using a classloader, and there is only one
> resolver called by ExtensibleModelResolver for each model type,
> ClassReferenceModelResolver will need to call
> OSGiClassReferenceModelResolver to load the class using the OSGi bundle if
> the contribution is an OSGi bundle.
>

Maybe we need to extend the packageProcessor to influence more what
type of resolution  and loading mechanisms to be used

> The changes to JarContributionProcessor and ClassReferenceModelResolver are
> fairly minimal - in both cases they try to dynamically load the
> corresponding OSGi processor and call a method on it. All the OSGi specific
> code is in modules/contribution-osgi. A better solution would have been to
> allow multiple processors for each contribution file type and multiple
> resolvers for each model type, where they are called in some order until the
> processing is complete. But that would require more extensive changes to
> Tuscany.
>

I'll wait to see  a patch to better comment on your proposal.

> I would like your feedback on the approach to follow, and would also like to
> know if I should wait till 1.0 is released before submitting a patch.
>
>
> Thank you...
>
> Regards,
>
> Rajini
>


-- 
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende
http://lresende.blogspot.com/

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

Reply via email to