Hi raymond

On Mon, Oct 18, 2010 at 5:39 PM, Raymond Feng <[email protected]> wrote:
> Hi,
> I saw a bunch of changes in the pom.xml for modules to replace the
> "fine-grained" dependency to "tuscany-core-runtime". I don't think it's a
> good idea for two reasons:
> 1. Features are used to describe a collection of modules. At this point,
> "modules" and "features" are under two trees. With this change, we cannot
> build the "modules" alone any more as it depends on "features".

When I made the aggregated description I wanted a simple way to
describe what collection of modules an extension needed to depend on.
The Tuscany core SPI has always been somewhat difficult to tie down
and subsequently the dependencies we placed in our existing poms were
somewhat random and hard to describe consistently in this respect.

Anyhow I made the core pom (simply as a way to describe the collection
of core modules) and needed somewhere to put it so I put it in the
features directory. This was probably a mistake as, having had the
chance to think about this for a couple of weeks now I realize that
the features and these new runtime poms are different. I believe now
that the features are intended to describe fully configured subsets of
the Tuscany runtime that could be releases. These runtime collections
are not that. They are incremental descriptions that build on one
another. In particular the core runtime is the compile dependency that
extensions use. The base runtime builds on this and provides the base
runtime functions that the extensions need for testing (it actually
has more than this in and the precise content hasn't settled down yet
but you get the idea).

so 1 could easily be solved by moving the *-runtime poms into /modules
which would get my +1.

> 2. There are more modules/jars in the tuscany-core-runtime pom than an
> extension requires, for example, databinding-json doesn't require core,
> host-http, binding-ws, etc.

You mean "that an extension doesn't require"? If so I imagine that's
the case. And this goes some way to demonstrating the problem we have
in Tuscany of not knowing precisely what's required at a simplistic
level. I would say the core-runtime should have at least what is
required to implement any extension type. If we've missed things out
then we need to add them. If we've added too many things then we
should consider thinning it out assuming nothing breaks. The objective
being to end up with the list of modules that really are the core
compile dependencies for creating Tuscany extensions. I'm not
proposing that we have a core-binding-runtime,
core-databinding-runtime, etc. Of course we could but that seems to
add an extra layer of complexity just at the moment so I think we
should come back and review that later.

> At least, I want to see a solution for 1.
> Thanks,
> Raymond
> ________________________________________________________________
> Raymond Feng
> [email protected]
> Apache Tuscany PMC member and committer: tuscany.apache.org
> Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
> Personal Web Site: www.enjoyjava.com
> ________________________________________________________________
> On Oct 18, 2010, at 3:49 AM, [email protected] wrote:

Reply via email to