Simon Laws wrote:

snip...
On Fri, Oct 31, 2008 at 6:28 PM, Raymond Feng <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hi,

    I envision that the OSGi enablement will bring a new foundation for
    the Tuscany code base with modularity and formalized SPI visibility
    enforced by the OSGi within both the development IDE and maven build.

    We are taking a staged approach as I described before and we are
    making good progress. I'm not particularly concerned about where the
    work is being done. If the community is ready to embrace it
    (probably when we get into step 5 and 6), we can move it into trunk.
    It really depends on how comfortable we are with the fact that the
    code will be under construction for a period of time until it's
    solid, consistent and clean enough to serve as a new foundation to
    build other things on top of it.

    Thanks,
    Raymond


Ok, thanks Raymond, your intention is clear.

So, in summary, the code in branch will be proposed as the new trunk when it is ready. It is not the intention to take the lessons learned and apply them to a new trunk bit by bit.

Filling in the gaps from other ML discussions (I'm not saying it will be so but I'm painting a picture here).

The new (2.x) will be our OASIS SCA code base. The intention being that it will be based on the OSGi foundation from the equinox branch The existing (1.x) trunk is retained, in a branch, as our OSOA SCA code base and is further developed as appropriate.

Simon


In my opinion, to get a good foundation in trunk for (a) an OSGi-enabled Tuscany and (b) an implementation of the OASIS SCA, the project needs the following:

a) Tuscany modules as first class OSGi bundles with clean imports/exports.

b) First class integration with a leading OSGi runtime like Equinox (with the ability to add others later if needed).

c) A Modular distribution structure allowing to drop reasonably sized 'feature packages' on top of a core runtime distro.

d) An OSGi-aware development environment for Tuscany contributors, mixing Maven, Eclipse tools, custom tools and processes supporting the whole dev lifecycle.

e) Less code, as the project has accumulated a lot of stuff over time with various levels of quality, and dead code not used or supported anymore, making it difficult to find your way through the codebase.

f) Cleaner code, a pass through all the modules to add comments, adjust the visibility of classes/methods, sort between statics and instance methods, remove deprecated/unused code etc.

g) Refreshed clean SPIs, as they've been in maintenance mode for 18 months and have been polluted with workarounds and non-optimal changes.

h) A redesign of some problematic or over-complicated areas like policy for example (that's a good one to redesign as it's also impacted by the OASIS changes).

i) Processes in the project to keep the code of the foundation clean, simple and interesting to work with.

The work in the sca-equinox branch is an attempt to cover (a) to (d) and a little bit of (e), as a side effect of trying to work on (a) to (d) on a more manageable code base.

Items (e) to (h) are as important, and without addressing them first, the new foundation will be difficult to build on and grow again.

Finally Item (i) is the most important for a longer term success of that foundation.


So, I think that the better way to build the new foundation the project needs in trunk is:

1) Empty trunk.

2) Clean up a small selection of modules and functions, do the above (a) to (g) thoroughly.

3) Bring these modules to trunk slowly when they are clean and usable again.

4) Do not bring up to trunk the dead weight or the problematic functions covered by (h). They'll have to be redone for OASIS-SCA anyway.

5) Establish (i) to make sure the foundation stays clean.


Disclaimer: I'm not going to have much time to work on this in the next few weeks so please take all of the above really just as suggestions.

Hope this helps.
--
Jean-Sebastien

Reply via email to