On 5/15/08, Simon Laws <[EMAIL PROTECTED]> wrote:
>
> On Thu, May 15, 2008 at 3:13 AM, Jean-Sebastien Delfino <
> [EMAIL PROTECTED]> wrote:
>
> > Rajini Sivaram wrote:
> >
> >> Hello,
> >>
> >> Following on from the discussion in thread [1], and based on Sebastien's
> >> comments [2], we need to make a decision on the best way forward to
> >> OSGi-enable third party libraries used by Tuscany.
> >>
> >> The options we have are:
> >>
> >>
> >>   1. Add OSGi manifest entries to all 3rd party jars in the Tuscany
> >>   distribution. Existing OSGi tools like maven-bundle-plugin and
> >>   maven-pax-plugin can be used to generate these bundles. The new
> manifest
> >>   entries will not have any impact when Tuscany is run outside OSGi. For
> >>   signed jars and jars with license restrictions, it may be necessary to
> >>   generate a bundle with the jar embedded into it, resulting in separate
> >> jars
> >>   for OSGi and non-OSGi. But these should hopefully be small in number.
> >>   2. Use non-OSGi mechanism to enable Tuscany bundles running inside
> >>   OSGi to refer to jars outside OSGi.
> >>   3. Create virtual bundles on the fly for 3rd party jars. At the
> >>   moment, itest/osgi-tuscany does this using auto-generated naive
> >> manifests.
> >>   If we are to use virtual bundles going forward, manifest entries for
> the
> >>   virtual bundles should be created at build time, and stored in one of
> >> the
> >>   Tuscany jars.
> >>
> >> I believe that if we are serious about making OSGi-enablement of Tuscany
> a
> >> first class option, we should consider doing 1). For the longer term to
> >> support versioning of 3rd party jars, 1) will provide a standard OSGi
> >> mechanism. As more and more 3rd-party libraries are being OSGi-enabled,
> >> this
> >> can be seen as an intermediate step which enables users of Tuscany to
> >> install Tuscany in the same standard OSGi way, into an OSGi runtime.
> >>
> >
> > I agree and think we should do (1) everywhere we can.
> >
> >
> >> 3) works, and looks easier to roll out, but I would imagine that OSGi
> >> users
> >> of Tuscany would end up creating their own variants of 1) if we support
> >> only
> >> 3). And it feels like a wrapper (or rather it is a wrapper), with
> >> manifests
> >> and their matching 3rd party libs stored separately.
> >>
> >
> > How about an interim variation of (3) for the 3rd party JARs that we
> > initially can't cover with (1):
> >
> > For each 3rd party foo.jar, a foo-osgi.jar containing the bundle manifest
> > that'll turn foo.jar into an OSGi virtual bundle, and I mean a proper
> bundle
> > manifest with actual specific imports / exports instead of the naive *.
> >
> > I'm just throwing this up in the air to see any reactions from
> OSGi-skilled
> > people in the group :)
> >
> > Maybe it's a stupid idea? but that would provide the level of modularity
> > that we're expecting from OSGi, instead of mashing everything up in a
> > central tuscany- manifest.jar which pretty much kills the benefits of
> using
> > OSGi IMO.
> >
> >
> >>
> >> Thoughts?
> >>
> >>
> >> [1] http://markmail.org/message/tybuyxoaddjjrpbx
> >> [2] http://markmail.org/message/wbuixok3x3hazjqq
> >>
> >> Thank you...
> >>
> >> Regards,
> >>
> >> Rajini
> >>
> >>
> > --
> > Jean-Sebastien
> >
>
> I agree that, for 3, I don't see why we have to put all the manifests one
> place. If we have an input lib dir such as
>
> 3rdpartylib1.jar
> 3rdpartylib2.jar
> 3rdpartylib3.jar
>
> Why wouldn't the result of creating manifests for virtual use be...
>
> 3rdpartylib1.jar
> 3rdpartylib1.mf (or 3rdpartylib1-mf.jar if that is better?)
> 3rdpartylib2.jar
> 3rdpartylib2.mf
> 3rdpartylib3.jar
> 3rdpartylib3.mf
>
> And have the naming convention allow the manifests to be picked up and used
> to create virtual bundles of the jars..


100 extra manifest files in the distribution directory - hmm...

If we do want to generate manifest files for virtual bundles, IMO packaging
of this should be discussed along with the bundle provisioning mechanism
and the meta-data required to maintain bundle dependencies (OBR
repository.xml or whatever we choose to use).

More generally, and regardless of whether option 1 or 3 is used,  when we
> install these jars into OSGi are we expecting other applications to be able
> to use them or are we calculating exports just based on what Tuscany uses?


Regardless of 1 or 3, we would use

   - bundle symbolic name that starts with org.apache.tuscany.sca to
   distinguish 3rd party jars that Tuscany bundle-ized from 3rd party jars
   which are already bundles
   - bundle version that corresponds to the actual jar version (eg.
   xercesImpl-2.8.1.jar will have Bundle-Version 2.8.1)
   - export all packages from bundle - export/import calculations for 3rd
   party jars are completely independent of Tuscany

Other applications will be able to use these 3rd party bundles.



> Simon
>



-- 
Thank you...

Regards,

Rajini

Reply via email to