What are the benefits do we intend to provide for users with the 
"components"-based aggregation? 

IMHO, we can use the "feature" idea to address the requirements of b) in Mike's 
original e-mail without the restriction of non-overlapping and side-effort of 
producing new jars. Meanwhile, the alignment of feature/distribution gives us 
the flexibility to balance the granularities. A distribution is also a feature 
and we can also easily group features into a distribution. 

Thanks,
Raymond 

From: ant elder 
Sent: Monday, July 07, 2008 4:10 AM
To: dev@tuscany.apache.org 
Subject: Re: Grouping/Aggregating tuscany modules, was: Re: Tracking Tuscany 
extensions, was: Distribution zips and what they contain, was: SCA runtimes


That all sounds reasonable to me. 

To help anyone else hunting around for  "Mike's original note on this" the link 
is: http://apache.markmail.org/message/nplwkkncelkwwrrk

   ...ant


On Mon, Jul 7, 2008 at 11:59 AM, Simon Nash <[EMAIL PROTECTED]> wrote:

  Raymond Feng wrote:

    Hi,
     It seems that the fundamental difference we're having is whether two 
tuscany features can contain the same module. For example, if I build the web 
service feature and jsonrpc feature, both of them would contain core-spi and 
databinding modules.
     The other thing is that I see a feature can contain other features too.
     

  I don't think the "components" that Ant has described and started
  to produce are at the same level as the "features" that Raymond has
  proposed and the "distributions" that Sebastien has produced.

  Going back to Mike's original note on this, I see the components
  playing the role described for level b) and the features/distributions
  playing the role described for level c).

  If the component split is correct, it would have the following
  properties:
   1. Each maven module would belong to exactly one component.
   2. Features/distributions would be assembled from components and
     not from maven modules directly.
   3. The assembly of a feature/distribution from components would
     not drag in "too much" that is not needed by the feature or
     distribution.

  How much in point 3 above is "too much" is a subjective judgment
  and some might have different views on this.  I'd suggest the
  following criteria as a starting point for discussion:
   a. No unnecessary third party dependencies.
   b. No additional system resources (e.g., ports, threads) consumed.
   c. No slowdown on any code paths.

  If we can achieve the above, then I don't see any problem with
  physically aggregating modules together into component jars/bundles
  and using these component jars/bundles to build features or
  distributions.

  If the component approach works out, I'd like to add support
  for it in the build, so that a specified selection of components
  could be built without building other components.  Also, when
  building a component, it should not be necessary to build the
  other components on which the component depends, if these are
  available in binary form.

   Simon


    Thanks,
    Raymond

    *From:* ant elder <mailto:[EMAIL PROTECTED]>
    *Sent:* Wednesday, July 02, 2008 9:05 AM
    *To:* tuscany-dev <mailto:[EMAIL PROTECTED]>
    *Subject:* Re: Grouping/Aggregating tuscany modules, was: Re: Tracking 
Tuscany extensions, was: Distribution zips and what they contain, was: SCA 
runtimes 


    This went to me not the dev list, comments in line

      ...ant


    On Wed, Jul 2, 2008 at 4:57 PM, Raymond Feng <[EMAIL PROTECTED] 
<mailto:[EMAIL PROTECTED]>> wrote:

       Hi,
           Can you provide us some use cases for the aggregated jars?
           I think it's very important that we don't physically merge module
       jars into a feature jar.
           Let's assume we have two features: f1 and f2. f1 contains modules m1
       and m2, f2 contains m1 and m3. 

    If that happens then likely we don't have the aggregation granularity 
correct. Could you provide an example of that using actual Tuscany modules and 
the aggregations suggested so far?
     
       If we produce f1.jar and f2.jar, what's going to happen if my
       application uses both f1 and f2? If we declare maven dependencies to
       f1 and f2, we end up with a classpath containing f1.jar and f2.jar.
       All the classes/resources from module m1 will be duplicate in these
       two jars. The jar aggregation also prevents a feature to be depended
       by another feature for the same reason. Even when we put maven on
       the side, do you expect the user to download both f1.jar and f2.jar
       to support both features? If so, we still have the duplicating
       artifacts issue.
           Also thinking about OSGi, adding feature jars will be problematic
       too. If it's just a descriptor, then adding a feature just pulls
       into the contained module bundles.
        

    I'm not seeing the problems you're hinting at, could you be more specific 
or give concrete examples?

      ...ant




Reply via email to