On Thu, May 1, 2008 at 1:00 PM, Graham Charters <[EMAIL PROTECTED]> wrote:
> It would seem that the fine-grained/coarse-grained thoughts have > people divided. Rajini's note (aside from the fact she has a tonne of > experience having done most, if not all, of the OSGi work in Tuscany) > paints a picture where the two are not mutually exclusive. I don't > typically like doing two options because that seems like indecision, > but in this case they do appear to complement each other. > > Based on what I've seen in this thread, I'm hoping this briefly > summarizes the collection of thoughts on how we might proceed: > > Tuscany Running in OSGi > > 1. Add bundle manifests to all the Tuscany modules (using maven > bundle plugin). This will ensure the most fine-grained decomposition > works and therefore coarser-grained distributions will also work. > 2. Add a distribution which creates bundles around manageable > collections of Tuscany modules aligned with how we see the runtime > being extended/subsetted/replaced. Have this build and test on > Continuum. > 3. Create 'virtual bundles' for third-party libraries to avoid > licensing and disk space issues (based on Rajini's suggestions, which > I need to better understand). > 4. Provide guidance on the wiki on how to avoid breaking OSGi. > > There's also the suggestion that implementation.osgi relate to > Distributed OSGi (RFC 119), which shouldn't be lost. > > Have I missed anything? > > It sounds like a staging of 1 & 3 first, followed by 2 would work (and > 4 if things keep breaking :-( ). I'd be concerned if we didn't get to > 2, and as part of 1&3, we need to make sure these are regularly tested > under osgi. > > > 2008/5/1 Mike Edwards <[EMAIL PROTECTED]>: > > > > Simon Laws wrote: > > > > > On Thu, May 1, 2008 at 10:03 AM, Rajini Sivaram < > > > [EMAIL PROTECTED]> wrote: > > > > > > > > > > On 5/1/08, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote: > > > > > > > > > My 2c: > > > > > > > > > > +1 to promote OSGi to a first class Tuscany runtime environment > > > > > > > > > > +1 for an OSGi continuum build (thinking about a build profile > that'll > > > > > > > > > run > > > > > > > > > the Tuscany itest suite in an OSGi environment, similar to the > > profiles > > > > > > > > > we > > > > > > > > > have for Web containers for example) > > > > > > > > > > Here's what I imagined we'd do: > > > > > 1. add OSGi entries to each of our JAR manifests > > > > > 2. have developers maintain them and pay attention to > imports/exports > > > > > 3. use the OSGi build to detect API and SPI import/export > violations > > > > > 4. find the best way to OSGi-enable 3rd party dependency JARs > > > > > > > > > > I realize that my suggestion [1] is not very popular and most > people > > on > > > > > this list would prefer to come up with bigger bundles grouping > several > > > > > > > > > of > > > > > > > > > our JARs/modules. I don't think that the 'bigger aggregate bundle' > > > > > > > > > approach > > > > > > > > > will work, but I'll be happy to watch people try it :) if they > want > > to. > > > > > > > > > > With respect to [4] I find rather funny to see many projects out > there > > > > > claim OSGi enablement without having OSGified their 3rd party > > > > > > > > > dependencies. > > > > > > > > > I wonder how that works, can an OSGi-enabled project really > leverage > > the > > > > > OSGi classloader isolation and versioning capabilities when 99% of > the > > > > > > > > > JARs > > > > > > > > > it requires are not OSGi bundles? I must be missing something... > and I > > > > > > > > > hope > > > > > > > > > we can do better in Tuscany with a real end-to-end OSGi enablement > > story > > > > > > > > > :) > > > > > > > > > -- > > > > > Jean-Sebastien > > > > > > > > > > > > > > > > > > I agree with Sebastien's suggestions1-4. But I would like to suggest > a > > > > slight variation to the first suggestion. > > > > > > > > > > > > 1. Use maven-bundle-plugin to introduce OSGi manifest entries into > all > > > > the Tuscany modules, with auto-generated import/export statements. > > > > Modify > > > > itest/osgi-tuscany to run these modules under OSGi, with all 3rd > party > > > > jars > > > > installed into OSGi using virtual bundles created on the fly. > > > > > > > > This step will provide a version of osgi-tuscany tests that is less > > prone > > > > to > > > > breakage than the one we have today. It will also help fix any > remaining > > > > classloading issues that we have left in Tuscany (and hopefully help > > > > in maintaining the classloader isolation). This is not a big piece > of > > work > > > > since this is just bringing together the different pieces that we > > already > > > > have. I will be happy to contribute the code towards this first > step, so > > > > others can concentrate on what we really want to achieve in terms of > > > > modularity, distribution etc. We can also use this step to explore > > > > versioning - in particular about having multiple extensions > referring to > > > > different versions of 3rd party libraries. This will be very useful > for > > 4. > > > > > > > > Suggestions 2-3 are not requirements for OSGi, but these are clearly > > cases > > > > where OSGi technology can help Tuscany improve modularity. If we > want to > > > > have explicitly hard-coded import/export statements in the modules > to > > > > enforce modularity, that can be introduced in step 2. > > > > > > > > And I would expect that there will be more work in terms of building > the > > > > distributions suitable for OSGi as well as non-OSGi after 1-4. > > > > > > > > > > > > > > > > > > > > Thank you... > > > > > > > > Regards, > > > > > > > > Rajini > > > > > > > > > > > > > > Re. modularity, it strikes me that there is lack of consensus about > > whether > > > big bundles or small bundles, relative to our maven modules, are > > preferable > > > but that there is consensus about using OSGi bundles to help us test > and > > > refine out modularity story. > > > > > > So maybe we should agree to disregard the question about how big OSGi > > > bundles should be relative to our maven modules and concentrate on the > > > question about whether our maven modules are correctly factored. Using > > OSGi > > > as a tool to help us with this of course. > > > > > > Simon > > > > > > > > I support both Rajini's and Simon's points. We can get the mechanics > going > > first with the bundles following the existing grain of the modules - and > we > > can discuss and tinker with the modules as we please later to find the > best > > arrangements. > > > > I suspect that the differing opinions about module size reflect > different > > usecases. Lots of small modules can promote great flexibility in the > > construction of runtimes, but at the expense of making it much harder > for > > users to make sense of the options. Larger modules cut down the options > but > > make things easier for end users. > > > > > > Yours, Mike. > > > I would further propose that we take a subset of the output of 1 and 3, for example, enough to run the calculator sample, as an initial test case separate from the full range of itest/osgi-tuscany tests. This would give us something to shoot re. inclusion in the regular build. Simon