On Wed, Sep 29, 2010 at 6:25 PM, Raymond Feng <enjoyj...@gmail.com> wrote:
> Hi,
> What's the difference between "feature" and "extension"?
> Thanks,
> Raymond

In the bundle plugin config you mean?

In reality in the code nothing at the moment. I had looked on features
as being a somewhat arbitrary but functional collection of jars from
the modules directory. Extensions though have a special meaning in SCA
and Tuscany in that they relate to binding.?, implementation.?,
policy.? etc and "extend" the base SCA function that the Assembly spec
defines. So I kept them separate.

>From a tuscany point of view an extension will typically be made up of
a model, a runtime and any associated dependencies. As you see from
the listing they currently end up generating the same sort of output
and all end up under features at the moment. The meta data that's
generated is consistent on purpose of course as demonstrated by the
examples I included. The idea being that you can specify base +
extension using the same approach for both (whatever the approach
happens to be).

There is an issue though. The extension meta-data repeats all the
dependencies that base provides. This actually doesn't make a
difference because the duplicates don't have a material impact on the
classpath (other than we might generate a classpath that is too long).
Aesthetically, and possibly for classpath length reasons,  though it's
not that pleasing and so it could be useful to know when we're dealing
with extensions to filter our base dependencies from their meta data.

Another thing this reminds me to ask...

You'll note that I don't generate config.ini for extensions as I don't
know of a way of loading more than one into Exquinox (other than
possibly a manual merge). Any ideas?

Simon

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com

Reply via email to