Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-10-08 Thread Simon Laws
After much messing about with compliance tests thinking that the reorg
had broken them (only to find that there's a real issue there
TUSCANY-3709) I've checked in the mods to demonstrate a structure
which I think has most of the things different people have said they
want in the distro. Here are the highlights...

Source
=

distribution/
  all/
pom.xml
  - uses our maven bundle plugin to general modules and to generate
meta-data in features
  *.aggregation
 - aggregate jars for JSE user convenience b
   asically Ant's shade jars but without the detailed selection of
   content yet. Ant's done this before so is more likely to get it
   right
 - no manifests at the moment. Potentially difficult to add
   and don't know if we want to make these work in OSGi
 - based on either *-runtime collections in features/ or
   *-runtime in modules/
 - I don't mind if these live here or somewhere else

features/
  all/
- modified to list all dependencies explicitly as I wanted to understand
  what was in it
  *-runtime
- incremental function supporting the base + extension pattern
- this is different from the features in that the features are really
  stand along collections.
- I don't know whether these belong in features
  The remaining features
- haven't changed them

modules/
   binding-rmi-runtime (+dependencies)
pom.xml
  - have changed to refer to *-runtime as an example
   binding-ws-runtime-axis2
pom.xml
  - started to change to refere to *-runtime but couldn't complete
as it mean changing too many other things

itest/
   builder
 pom.xml
   - changed to refer to *-runtime as an example
   compliance
 assembly
pom.xml
 - changed to refer to *-runtime as an example


Distro
==

modules/
 - as before
features/
 all meta-data at the root level (would quite like to put this under
an "all" diretory)
 *-runtime
- meta data for bae + extension patern. Includes, for example,
  for base runtime...
build-path.xml
tuscany-base-runtime-manifest.jar
which-jars
lib/
  tuscany-base-runtime-aggregation-2.0-SNAPSHOT.jar
  tuscany-binding-rmi-runtime-aggregation-2.0-SNAPSHOT.jar
  tuscany-binding-ws-runtime-axis2-aggregation-2.0-SNAPSHOT.jar
  tuscany-sca-api-2.0-SNAPSHOT.jar
  etc.
- aggregate jars including all you need to do to run base
  extensions can be added as required
- The ws jar is bigger than required as the ws runtime pom is not
sorted properly yet.
- I left the api jar here as something referred to it but
  don't think we really need it?

So effectively we support several approaches to using the runtime in
one distribution

OSGI - load all the jars from modules
JSE - Ant paths, manifest, standalone jars.

I don't think we also need to provide standalone jars that don't
include dependencies as if people want to pick and choose they can
fall back to the modules directory and the "what-jars" list.

There is necessarily duplication between the standalone jars and
modules. I can live with this for the beta (I'm assuming that we're
not going to produce a full set of standalone jars as a limited set
probably reaches 80% of the users). This hopefully keeps people who
what to see one solution or the other happy. We can stand back from
the beta and decide whether this works. We may decide to go with one
approach or the other, have multiple binary releases or push forward
with something like this.

As it's checked in now you can build it yourself.

Regards

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-10-07 Thread Simon Laws
> Great.
>
> I don't think the base-runtime should include OSGi or Jetty as that
> drags in dependencies not needed in many environments. It also
> shouldn't include all those dependencies that are included as standard
> in Java 1.6.
>
> I still think base-runtime should include most things that can be
> included without draging in extra dependencies as well as things where
> it makes sense to have the transitive dependencies be provided or
> optional scope. So implementation-web could be included as
> implementation-java is. Another example is http host support, there's
> host-jetty and host-webapp, both of those need the servlet api and
> host-jetty needs jetty, the servlet api can be provided scope as that
> will work for both cases and jetty could be optional so its not
> included by default.
>
>   ..ant
>

I don't necessarily disagree with any of this. I think we just need to
get the moving parts in the right place to build the distribution and
then tune the content accordingly.

I do wonder it there should be a separate "minimal" aggregation that
meets the needs of 80% of users that is separate from the base +
extension approach. Just a thought and something we can mull over
later.

Simon


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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-10-06 Thread ant elder
On Wed, Oct 6, 2010 at 10:02 AM, Simon Laws  wrote:
> I've now checked in two new modules in the features directory...
>
> tuscany-core-runtime
> tuscany-base-runtime
>
> The core-runtime is the set modules required to implement extensions
> (exact set still TBD as there's probably too much in there now)
> The base-runtime is core-runtime + the modules required for a minimum
> runtime, i.e impl.java + local wiring. (this includes OSGi runtime
> stuff at the moment. We may want a base specifically targetting OSGi).
>
> I've made some changes to binding-rmi and binding-ws to demonstrate
> how these would be used in the runtime. E.g. the binding-rmi model pom
> dependencies are now
>
>    
>
>        
>            org.apache.tuscany.sca
>            tuscany-core-runtime
>            2.0-SNAPSHOT
>            pom
>            provided
>        
>
>    
>
>
> While the binding-rmi-runtime dependencies are...
>
>    
>
>        
>            org.apache.tuscany.sca
>            tuscany-core-runtime
>            2.0-SNAPSHOT
>            pom
>            provided
>        
>
>        
>            org.apache.tuscany.sca
>            tuscany-binding-rmi
>            2.0-SNAPSHOT
>        
>
>        
>            org.apache.tuscany.sca
>            tuscany-host-rmi
>            2.0-SNAPSHOT
>        
>
>         
>            org.apache.tuscany.sca
>            tuscany-base-runtime
>            2.0-SNAPSHOT
>            pom
>            test
>        
>
>    
>
> This leads to the following collections of jars
>
> core-runtime
>
> not shipped independently as the user can't do anything with it
>
> base-runtime
>
> XmlSchema-1.4.3.jar
> activation-1.1/activation-1.1.jar
> asm-3.1/asm-3.1.jar
> cglib-2.2/cglib-2.2.jar
> commons-cli-1.2.jar
> geronimo-stax-api_1.0_spec-1.0.1.jar
> jaxb-api-2.1/jaxb-api-2.1.jar
> jaxb-impl-2.1.12/jaxb-impl-2.1.12.jar
> jaxws-api-2.1/jaxws-api-2.1.jar
> jetty-6.1.19.jar
> jetty-util-6.1.19.jar
> jsr181-api-1.0-MR1/jsr181-api-1.0-MR1.jar
> jsr250-api-1.0/jsr250-api-1.0.jar
> osgi-3.5.0-v20090520.jar
> services-3.2.0-v20090520-1800.jar
> servlet-api-2.5/servlet-api-2.5.jar
> tuscany-assembly-2.0-SNAPSHOT.jar
> tuscany-assembly-xml-2.0-SNAPSHOT.jar
> tuscany-assembly-xsd-2.0-SNAPSHOT.jar
> tuscany-binding-sca-runtime-2.0-SNAPSHOT.jar
> tuscany-binding-ws-2.0-SNAPSHOT.jar
> tuscany-binding-ws-wsdlgen-2.0-SNAPSHOT.jar
> tuscany-builder-2.0-SNAPSHOT.jar
> tuscany-common-java-2.0-SNAPSHOT.jar
> tuscany-common-xml-2.0-SNAPSHOT.jar
> tuscany-contribution-2.0-SNAPSHOT.jar
> tuscany-contribution-osgi-2.0-SNAPSHOT.jar
> tuscany-core-2.0-SNAPSHOT.jar
> tuscany-core-databinding-2.0-SNAPSHOT.jar
> tuscany-core-spi-2.0-SNAPSHOT.jar
> tuscany-databinding-2.0-SNAPSHOT.jar
> tuscany-databinding-jaxb-2.0-SNAPSHOT.jar
> tuscany-deployment-2.0-SNAPSHOT.jar
> tuscany-extensibility-2.0-SNAPSHOT.jar
> tuscany-extensibility-equinox-2.0-SNAPSHOT.jar
> tuscany-host-http-2.0-SNAPSHOT.jar
> tuscany-host-jetty-2.0-SNAPSHOT.jar
> tuscany-implementation-java-2.0-SNAPSHOT.jar
> tuscany-implementation-java-runtime-2.0-SNAPSHOT.jar
> tuscany-implementation-osgi-2.0-SNAPSHOT.jar
> tuscany-interface-java-2.0-SNAPSHOT.jar
> tuscany-interface-java-jaxws-2.0-SNAPSHOT.jar
> tuscany-interface-wsdl-2.0-SNAPSHOT.jar
> tuscany-monitor-2.0-SNAPSHOT.jar
> tuscany-node-api-2.0-SNAPSHOT.jar
> tuscany-node-impl-2.0-SNAPSHOT.jar
> tuscany-node-impl-osgi-2.0-SNAPSHOT.jar
> tuscany-node-launcher-2.0-SNAPSHOT.jar
> tuscany-node-launcher-equinox-2.0-SNAPSHOT.jar
> tuscany-policy-security-2.0-SNAPSHOT.jar
> tuscany-sca-api-2.0-SNAPSHOT.jar
> tuscany-xsd-2.0-SNAPSHOT.jar
> wsdl4j-1.6.2/wsdl4j-1.6.2.jar
> wstx-asl-3.2.6/wstx-asl-3.2.6.jar
>
> binding-rmi-runtime
>
> tuscany-binding-rmi-2.0-SNAPSHOT.jar
> tuscany-binding-rmi-runtime-2.0-SNAPSHOT.jar
> tuscany-host-rmi-2.0-SNAPSHOT.jar
>
> The binding-ws-runtime-axis dependency list is not as clean yet as I
> had to leave the wsdlgen dependency in lest I break the majority of
> the itests. The fix is to have the itests refer to base-runtime as
> well. Here's an example of the builder itest converted to use
> base-runtime.
>
>
>    
>         
>            org.apache.tuscany.sca
>            tuscany-base-runtime
>            2.0-SNAPSHOT
>            pom
>        
>
>         
>            org.apache.tuscany.sca
>            tuscany-binding-ws-runtime-axis2
>            2.0-SNAPSHOT
>        
>
>        
>            xerces
>            xercesImpl
>            2.8.1
>            test
>        
>    
>
> However I didn't want to do it all at once.
>
> I will make one observation from doing this and that's that is feels
> more orderly and predictable when constructing poms. Looking at what
> we have currently across the projects the sets of dependencies
> included seems essentially random to the uninitiated.
>
> I'm going to take a look and see how aggregate jars fit into this.
> This may just mean turning the base-runtime pom into a jar as per
> Ant's shaded project. If we want to repeat th

Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-10-06 Thread Simon Laws
I've now checked in two new modules in the features directory...

tuscany-core-runtime
tuscany-base-runtime

The core-runtime is the set modules required to implement extensions
(exact set still TBD as there's probably too much in there now)
The base-runtime is core-runtime + the modules required for a minimum
runtime, i.e impl.java + local wiring. (this includes OSGi runtime
stuff at the moment. We may want a base specifically targetting OSGi).

I've made some changes to binding-rmi and binding-ws to demonstrate
how these would be used in the runtime. E.g. the binding-rmi model pom
dependencies are now




org.apache.tuscany.sca
tuscany-core-runtime
2.0-SNAPSHOT
pom
provided





While the binding-rmi-runtime dependencies are...




org.apache.tuscany.sca
tuscany-core-runtime
2.0-SNAPSHOT
pom
provided



org.apache.tuscany.sca
tuscany-binding-rmi
2.0-SNAPSHOT



org.apache.tuscany.sca
tuscany-host-rmi
2.0-SNAPSHOT


 
org.apache.tuscany.sca
tuscany-base-runtime
2.0-SNAPSHOT
pom
test




This leads to the following collections of jars

core-runtime

not shipped independently as the user can't do anything with it

base-runtime

XmlSchema-1.4.3.jar
activation-1.1/activation-1.1.jar
asm-3.1/asm-3.1.jar
cglib-2.2/cglib-2.2.jar
commons-cli-1.2.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
jaxb-api-2.1/jaxb-api-2.1.jar
jaxb-impl-2.1.12/jaxb-impl-2.1.12.jar
jaxws-api-2.1/jaxws-api-2.1.jar
jetty-6.1.19.jar
jetty-util-6.1.19.jar
jsr181-api-1.0-MR1/jsr181-api-1.0-MR1.jar
jsr250-api-1.0/jsr250-api-1.0.jar
osgi-3.5.0-v20090520.jar
services-3.2.0-v20090520-1800.jar
servlet-api-2.5/servlet-api-2.5.jar
tuscany-assembly-2.0-SNAPSHOT.jar
tuscany-assembly-xml-2.0-SNAPSHOT.jar
tuscany-assembly-xsd-2.0-SNAPSHOT.jar
tuscany-binding-sca-runtime-2.0-SNAPSHOT.jar
tuscany-binding-ws-2.0-SNAPSHOT.jar
tuscany-binding-ws-wsdlgen-2.0-SNAPSHOT.jar
tuscany-builder-2.0-SNAPSHOT.jar
tuscany-common-java-2.0-SNAPSHOT.jar
tuscany-common-xml-2.0-SNAPSHOT.jar
tuscany-contribution-2.0-SNAPSHOT.jar
tuscany-contribution-osgi-2.0-SNAPSHOT.jar
tuscany-core-2.0-SNAPSHOT.jar
tuscany-core-databinding-2.0-SNAPSHOT.jar
tuscany-core-spi-2.0-SNAPSHOT.jar
tuscany-databinding-2.0-SNAPSHOT.jar
tuscany-databinding-jaxb-2.0-SNAPSHOT.jar
tuscany-deployment-2.0-SNAPSHOT.jar
tuscany-extensibility-2.0-SNAPSHOT.jar
tuscany-extensibility-equinox-2.0-SNAPSHOT.jar
tuscany-host-http-2.0-SNAPSHOT.jar
tuscany-host-jetty-2.0-SNAPSHOT.jar
tuscany-implementation-java-2.0-SNAPSHOT.jar
tuscany-implementation-java-runtime-2.0-SNAPSHOT.jar
tuscany-implementation-osgi-2.0-SNAPSHOT.jar
tuscany-interface-java-2.0-SNAPSHOT.jar
tuscany-interface-java-jaxws-2.0-SNAPSHOT.jar
tuscany-interface-wsdl-2.0-SNAPSHOT.jar
tuscany-monitor-2.0-SNAPSHOT.jar
tuscany-node-api-2.0-SNAPSHOT.jar
tuscany-node-impl-2.0-SNAPSHOT.jar
tuscany-node-impl-osgi-2.0-SNAPSHOT.jar
tuscany-node-launcher-2.0-SNAPSHOT.jar
tuscany-node-launcher-equinox-2.0-SNAPSHOT.jar
tuscany-policy-security-2.0-SNAPSHOT.jar
tuscany-sca-api-2.0-SNAPSHOT.jar
tuscany-xsd-2.0-SNAPSHOT.jar
wsdl4j-1.6.2/wsdl4j-1.6.2.jar
wstx-asl-3.2.6/wstx-asl-3.2.6.jar

binding-rmi-runtime

tuscany-binding-rmi-2.0-SNAPSHOT.jar
tuscany-binding-rmi-runtime-2.0-SNAPSHOT.jar
tuscany-host-rmi-2.0-SNAPSHOT.jar

The binding-ws-runtime-axis dependency list is not as clean yet as I
had to leave the wsdlgen dependency in lest I break the majority of
the itests. The fix is to have the itests refer to base-runtime as
well. Here's an example of the builder itest converted to use
base-runtime.



 
org.apache.tuscany.sca
tuscany-base-runtime
2.0-SNAPSHOT
pom


 
org.apache.tuscany.sca
tuscany-binding-ws-runtime-axis2
2.0-SNAPSHOT



xerces
xercesImpl
2.8.1
test



However I didn't want to do it all at once.

I will make one observation from doing this and that's that is feels
more orderly and predictable when constructing poms. Looking at what
we have currently across the projects the sets of dependencies
included seems essentially random to the uninitiated.

I'm going to take a look and see how aggregate jars fit into this.
This may just mean turning the base-runtime pom into a jar as per
Ant's shaded project. If we want to repeat this for the individual
extensions I expect we either need to do the same or use the bundle
plugin's ability to create aggregate jars.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Laws
>>>
>>> Well it would work ok if the "base" remained as an "pom" type pom
>>> which just groups together other modules. The only time this would
>>> need rebuilding would be when the set of dependency jars change. Which
>>> isn't very often.
>>>
>>> The question then remains whether you can exclude the dependencies
>>> without unnecessarily arduous exclude editing.
>>>
>>> The other drawback of this is that Ant found problems when depending
>>> on this pom type pom in order to build aggregate jars. I can't
>>> remember precisely what the problem was off the top of my head.
>>>
>>> So it needs some experimentation to see what really can be made to work.
>>>
>>
>> I've looked at this before and I don't think there is an easy
>> non-arduous way to do the excludes. The simplest solution to me is to
>> have the extensions use provided scope for the base dependencies.
>>
>>   ...ant
>>
>>
> This approach seems OK to me.
>
>  Simon
>
>

So to be more concrete what were looking at is having
tuscany-base-runtime defined something like

tuscany-base-runtime
Apache Tuscany SCA Base Runtime
pom




org.apache.tuscany.sca
tuscany-assembly
${pom.version}



org.apache.tuscany.sca
tuscany-assembly-xml
${pom.version}

etc.

Then an extension, for example, binding-rmi, would be defined like


4.0.0

org.apache.tuscany.sca
tuscany-modules
2.0-SNAPSHOT
../pom.xml

tuscany-binding-rmi
Apache Tuscany SCA RMI Binding Model




org.apache.tuscany.sca
tuscany-base-runtime
2.0-SNAPSHOT
pom
provided






It's then very easy to tweak the bundle plugin to take notice of the
provided dependency and omit it from the meta-data, e.g. the
tuscany-base-runtime which-jars list is...

jaxb-api-2.1/jaxb-api-2.1.jar
tuscany-policy-security-2.0-SNAPSHOT.jar
tuscany-assembly-xml-2.0-SNAPSHOT.jar
jaxb-impl-2.1.12/jaxb-impl-2.1.12.jar
tuscany-common-xml-2.0-SNAPSHOT.jar
tuscany-interface-wsdl-2.0-SNAPSHOT.jar
tuscany-databinding-jaxb-2.0-SNAPSHOT.jar
tuscany-node-impl-osgi-2.0-SNAPSHOT.jar
tuscany-node-launcher-equinox-2.0-SNAPSHOT.jar
activation-1.1/activation-1.1.jar
tuscany-core-spi-2.0-SNAPSHOT.jar
tuscany-interface-java-jaxws-2.0-SNAPSHOT.jar
jsr181-api-1.0-MR1/jsr181-api-1.0-MR1.jar
tuscany-binding-ws-2.0-SNAPSHOT.jar
tuscany-builder-2.0-SNAPSHOT.jar
XmlSchema-1.4.3.jar
tuscany-sca-api-2.0-SNAPSHOT.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
jetty-6.1.19.jar
services-3.2.0-v20090520-1800.jar
tuscany-monitor-2.0-SNAPSHOT.jar
tuscany-host-http-2.0-SNAPSHOT.jar
jsr250-api-1.0/jsr250-api-1.0.jar
jetty-util-6.1.19.jar
tuscany-databinding-2.0-SNAPSHOT.jar
asm-3.1/asm-3.1.jar
tuscany-binding-sca-runtime-2.0-SNAPSHOT.jar
tuscany-node-launcher-2.0-SNAPSHOT.jar
tuscany-implementation-java-2.0-SNAPSHOT.jar
tuscany-deployment-2.0-SNAPSHOT.jar
tuscany-contribution-2.0-SNAPSHOT.jar
tuscany-core-2.0-SNAPSHOT.jar
tuscany-node-impl-2.0-SNAPSHOT.jar
tuscany-xsd-2.0-SNAPSHOT.jar
cglib-2.2/cglib-2.2.jar
wstx-asl-3.2.6/wstx-asl-3.2.6.jar
tuscany-extensibility-2.0-SNAPSHOT.jar
tuscany-implementation-java-runtime-2.0-SNAPSHOT.jar
tuscany-binding-ws-wsdlgen-2.0-SNAPSHOT.jar
tuscany-node-api-2.0-SNAPSHOT.jar
tuscany-extensibility-equinox-2.0-SNAPSHOT.jar
jaxws-api-2.1/jaxws-api-2.1.jar
servlet-api-2.5/servlet-api-2.5.jar
tuscany-core-databinding-2.0-SNAPSHOT.jar
tuscany-contribution-osgi-2.0-SNAPSHOT.jar
tuscany-assembly-2.0-SNAPSHOT.jar
tuscany-assembly-xsd-2.0-SNAPSHOT.jar
wsdl4j-1.6.2/wsdl4j-1.6.2.jar
tuscany-implementation-osgi-2.0-SNAPSHOT.jar
osgi-3.5.0-v20090520.jar
tuscany-host-jetty-2.0-SNAPSHOT.jar
tuscany-common-java-2.0-SNAPSHOT.jar
commons-cli-1.2.jar
tuscany-interface-java-2.0-SNAPSHOT.jar

while the binding-rmi-runtime which-jars list is

Jars required to enable extension: tuscany-binding-rmi-runtime

tuscany-host-rmi-2.0-SNAPSHOT.jar
tuscany-binding-rmi-2.0-SNAPSHOT.jar
tuscany-binding-rmi-runtime-2.0-SNAPSHOT.jar

Which is a bit shorter than it was (and not very interesting for rmi).

Now I don't really know yet what issues are lurking in modules by doing this.

For example, we have test dependencies of extensions which change to
being provided dependencies and dependending on base will imply more
dependencies that is absolutely necessary but at least it's
consistent.

I haven't tried using the project in eclipse.

Also I don't know if this makes it any harder to do other things with
the extension such as make an aggregate jar.

Regards

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Nash

ant elder wrote:

On Thu, Sep 30, 2010 at 11:09 AM, Simon Laws  wrote:

I think this will be difficult if the base is made up of a large number
of jars and poms.  AIUI the exlude list would have to name all the poms
in the base.  If the list of poms in the base ever changes then all the
exclude lists would have to change as well.

A simple solution would be to create a single jar in the maven repository
called tuscany-sca-base.  This could be made up of the contents of a
number
of other maven jars but this relationship wouldn't be exposed via maven.


A further thought on this: to make it work, extensions would have to be
built with poms that include tuscany-sca-base and not with poms that
include all the different base components individually.  This could be
inconvenient for developers of base components as it would be necessary to
rebuild tuscany-sca-base every time an individual base component changes.

 Simon


Hi Simon

Well it would work ok if the "base" remained as an "pom" type pom
which just groups together other modules. The only time this would
need rebuilding would be when the set of dependency jars change. Which
isn't very often.

The question then remains whether you can exclude the dependencies
without unnecessarily arduous exclude editing.

The other drawback of this is that Ant found problems when depending
on this pom type pom in order to build aggregate jars. I can't
remember precisely what the problem was off the top of my head.

So it needs some experimentation to see what really can be made to work.



I've looked at this before and I don't think there is an easy
non-arduous way to do the excludes. The simplest solution to me is to
have the extensions use provided scope for the base dependencies.

   ...ant



This approach seems OK to me.

  Simon



Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread ant elder
On Thu, Sep 30, 2010 at 11:09 AM, Simon Laws  wrote:
>>> I think this will be difficult if the base is made up of a large number
>>> of jars and poms.  AIUI the exlude list would have to name all the poms
>>> in the base.  If the list of poms in the base ever changes then all the
>>> exclude lists would have to change as well.
>>>
>>> A simple solution would be to create a single jar in the maven repository
>>> called tuscany-sca-base.  This could be made up of the contents of a
>>> number
>>> of other maven jars but this relationship wouldn't be exposed via maven.
>>>
>> A further thought on this: to make it work, extensions would have to be
>> built with poms that include tuscany-sca-base and not with poms that
>> include all the different base components individually.  This could be
>> inconvenient for developers of base components as it would be necessary to
>> rebuild tuscany-sca-base every time an individual base component changes.
>>
>>  Simon
>>
>
> Hi Simon
>
> Well it would work ok if the "base" remained as an "pom" type pom
> which just groups together other modules. The only time this would
> need rebuilding would be when the set of dependency jars change. Which
> isn't very often.
>
> The question then remains whether you can exclude the dependencies
> without unnecessarily arduous exclude editing.
>
> The other drawback of this is that Ant found problems when depending
> on this pom type pom in order to build aggregate jars. I can't
> remember precisely what the problem was off the top of my head.
>
> So it needs some experimentation to see what really can be made to work.
>

I've looked at this before and I don't think there is an easy
non-arduous way to do the excludes. The simplest solution to me is to
have the extensions use provided scope for the base dependencies.

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Laws
>> I think this will be difficult if the base is made up of a large number
>> of jars and poms.  AIUI the exlude list would have to name all the poms
>> in the base.  If the list of poms in the base ever changes then all the
>> exclude lists would have to change as well.
>>
>> A simple solution would be to create a single jar in the maven repository
>> called tuscany-sca-base.  This could be made up of the contents of a
>> number
>> of other maven jars but this relationship wouldn't be exposed via maven.
>>
> A further thought on this: to make it work, extensions would have to be
> built with poms that include tuscany-sca-base and not with poms that
> include all the different base components individually.  This could be
> inconvenient for developers of base components as it would be necessary to
> rebuild tuscany-sca-base every time an individual base component changes.
>
>  Simon
>

Hi Simon

Well it would work ok if the "base" remained as an "pom" type pom
which just groups together other modules. The only time this would
need rebuilding would be when the set of dependency jars change. Which
isn't very often.

The question then remains whether you can exclude the dependencies
without unnecessarily arduous exclude editing.

The other drawback of this is that Ant found problems when depending
on this pom type pom in order to build aggregate jars. I can't
remember precisely what the problem was off the top of my head.

So it needs some experimentation to see what really can be made to work.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Nash

Simon Nash wrote:

Simon Laws wrote:

On Thu, Sep 30, 2010 at 9:06 AM, ant elder  wrote:
On Wed, Sep 29, 2010 at 6:42 PM, Simon Laws 
 wrote:



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.


I agree, it would be much nicer if we can get them to only include
their own dependencies so i think we should try to fix that.

  ...ant



Y, two ways come to mind initially...

1/ We create a pom for each extension and use Maven dependency
mechanisms to exclude base dependencies. Is there a way to do that
simply? I.e. do an exclude for base and all it's transitive
dependencies without having to be explicit. For example, make base a
provided dependency. However I presume that means we need to change
things across the poms in modules to follow this pattern also.


I think this will be difficult if the base is made up of a large number
of jars and poms.  AIUI the exlude list would have to name all the poms
in the base.  If the list of poms in the base ever changes then all the
exclude lists would have to change as well.

A simple solution would be to create a single jar in the maven repository
called tuscany-sca-base.  This could be made up of the contents of a number
of other maven jars but this relationship wouldn't be exposed via maven.


A further thought on this: to make it work, extensions would have to be
built with poms that include tuscany-sca-base and not with poms that
include all the different base components individually.  This could be
inconvenient for developers of base components as it would be necessary to
rebuild tuscany-sca-base every time an individual base component changes.

  Simon


2/ Alternatively we could rely on bundle plugin like logic which knows
internally what the dependencies are and can filter.

2 is initially attractive as it would be straightforward to implement
however I don't think its the right ways as it hides the process
inside the plugin. Using a pom (1) would seem the most
appropriate/obvious way if we can make it work.


+1

  Simon


Simon









Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Nash

Simon Laws wrote:

On Thu, Sep 30, 2010 at 9:06 AM, ant elder  wrote:

On Wed, Sep 29, 2010 at 6:42 PM, Simon Laws  wrote:


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.


I agree, it would be much nicer if we can get them to only include
their own dependencies so i think we should try to fix that.

  ...ant



Y, two ways come to mind initially...

1/ We create a pom for each extension and use Maven dependency
mechanisms to exclude base dependencies. Is there a way to do that
simply? I.e. do an exclude for base and all it's transitive
dependencies without having to be explicit. For example, make base a
provided dependency. However I presume that means we need to change
things across the poms in modules to follow this pattern also.


I think this will be difficult if the base is made up of a large number
of jars and poms.  AIUI the exlude list would have to name all the poms
in the base.  If the list of poms in the base ever changes then all the
exclude lists would have to change as well.

A simple solution would be to create a single jar in the maven repository
called tuscany-sca-base.  This could be made up of the contents of a number
of other maven jars but this relationship wouldn't be exposed via maven.


2/ Alternatively we could rely on bundle plugin like logic which knows
internally what the dependencies are and can filter.

2 is initially attractive as it would be straightforward to implement
however I don't think its the right ways as it hides the process
inside the plugin. Using a pom (1) would seem the most
appropriate/obvious way if we can make it work.


+1

  Simon


Simon





Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Laws
On Thu, Sep 30, 2010 at 9:06 AM, ant elder  wrote:
> On Wed, Sep 29, 2010 at 6:42 PM, Simon Laws  wrote:
>
>>
>> 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.
>>
>
> I agree, it would be much nicer if we can get them to only include
> their own dependencies so i think we should try to fix that.
>
>   ...ant
>

Y, two ways come to mind initially...

1/ We create a pom for each extension and use Maven dependency
mechanisms to exclude base dependencies. Is there a way to do that
simply? I.e. do an exclude for base and all it's transitive
dependencies without having to be explicit. For example, make base a
provided dependency. However I presume that means we need to change
things across the poms in modules to follow this pattern also.

2/ Alternatively we could rely on bundle plugin like logic which knows
internally what the dependencies are and can filter.

2 is initially attractive as it would be straightforward to implement
however I don't think its the right ways as it hides the process
inside the plugin. Using a pom (1) would seem the most
appropriate/obvious way if we can make it work.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Laws
On Thu, Sep 30, 2010 at 9:04 AM, ant elder  wrote:
> On Wed, Sep 29, 2010 at 7:24 PM, Raymond Feng  wrote:
>> To me, the "extension" is just a "feature" that contains only the modules
>> that make up the "extension" :-).
>
> What is the point in that? We call them extensions everywhere else
> (doc, spec, code, website etc), so it seems simpler to not obfuscate
> things but bringing in the "feature" term.
>
>   ...ant
>


It's not clear to me that it's an either or. Features and extensions
seem different to me.

my 2c.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread ant elder
On Wed, Sep 29, 2010 at 6:42 PM, Simon Laws  wrote:

>
> 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.
>

I agree, it would be much nicer if we can get them to only include
their own dependencies so i think we should try to fix that.

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread Simon Laws
On Wed, Sep 29, 2010 at 7:24 PM, Raymond Feng  wrote:
> To me, the "extension" is just a "feature" that contains only the modules
> that make up the "extension" :-). For example, I can model the binding.ws
> extension as feature-binding-ws (a pom project that list feature-base,
> binding-ws, binding-ws-runtime-axis2, etc.).

Absolutely you could do that and still can in fact. I was thinking of
the extensions slightly differently though in that the extension
dependencies should exclude the dependencies for base. I.e. you always
need base and then add whatever extensions you want. So, for example,
if I wanted to run Tuscany with binding.ws and binding.rmi I don't
need a bindingws+rmi feature I just use base + ws + rmi. Now you may
very well have a  feature caled "banana" that happens to contain base,
ws and rmi. Nothing wrong with that, it's just that that's a slightly
different world view.

So what I've found with this exercise is that different people have
different ways of looking at the problem. And as is the way with these
things it seems that reaching absolute agreement may be tricky.
However with the beta we have the opportunity to actually try them out
and see what value the different approaches bring. We may decide we
want them all, one of them or something different.

> I don't know a way to combine more than one config.ini. But if we generate
> the config.ini per feature, it will contain the bundles from the base. Isn't
> that good enough? I understand it doesn't support the case where you start
> Equinox with base and then try to add the extension.

k, thanks. I'd concluded the same so maybe this is a restriction and
we don't generate the config.ini for extensions. So maybe this is the
real difference between extensions and features. Features can be
installed directly into OSGi extensions don't have config.ini support
and manual configuration is required. This doesn't mean that I believe
extensions have any less value. In fact recent experience of this
suggests that setting up an OSGi environment for Tuscany in
combination with other products isn't a carefree as just dumping all
the Tuscany jars in there. Care and attention is required to avoid
nasty wiring conflicts.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread ant elder
On Wed, Sep 29, 2010 at 7:24 PM, Raymond Feng  wrote:
> To me, the "extension" is just a "feature" that contains only the modules
> that make up the "extension" :-).

What is the point in that? We call them extensions everywhere else
(doc, spec, code, website etc), so it seems simpler to not obfuscate
things but bringing in the "feature" term.

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-30 Thread ant elder
On Wed, Sep 29, 2010 at 6:11 PM, Simon Laws  wrote:
> Ok well I've published a snapshot of our maven-bundle-plugin that
> allows us to generate some more meta-data for the binary distro. The
> snapshot is not synched yet to the Nexus repo so I haven't committed
> the distro poms that allow you to build for yourself. I've posted the
> resulting zip to my p.o.a. space [1]. I notice that this is rather
> large, mostly due to cruft in the samples I believe, so you probably
> won't want to actually download it so here are the interesting (?)
> changes...
>
> bin/
>   haven't changed
> modules/
>   haven't changed
> lib/
>   haven't changed
> features/
>   tuscany-base-runtime
>   tuscany-binding-atom-runtime
>   tuscany-binding-corba-runtime
>   tuscany-binding-ejb-runtime
>   tuscany-binding-jms-runtime
>   tuscany-binding-jsonp-runtime
>   tuscany-binding-jsonrpc-runtime
>   tuscany-binding-rest-runtime
>   tuscany-binding-rmi-runtime
>   tuscany-binding-rss-runtime
>   tuscany-binding-ws-runtime-axis2
>   tuscany-implementation-bpel-runtime
>   tuscany-implementation-osgi-runtime
>   tuscany-implementation-script-runtime
>   tuscany-implementation-spring-runtime
>   tuscany-implementation-web-runtime
>   tuscany-implementation-widget-runtime
> samples
>   mostly unchanged except...
>   running-tuscany
>      embedded-jse
>          build.xml - updated to use different ways to ref base + ext
>             all manifest
>             ant filesets
>             separate manifests
>             would like to add aggregate jars here also
>
> The top level feature dir still has the "all" info in it though I'd
> like to move
> it to a sub directory. All sub-directories have meta-data referring to modules
> for example,
>
> features/
>  tuscany-binding-rmi-runtime/
>      build-path.xml
>      tuscany-binding-rmi-runtime-manifest.jar
>      which-jars
>
> The sample build.xml file that uses this meta-data includes
> appropriate ant filesets
>
>     file="${tuscany.home}/features/tuscany-base-runtime/build-path.xml"/>
>     file="${tuscany.home}/features/tuscany-binding-ws-runtime-axis2/build-path.xml"/>
>     file="${tuscany.home}/features/tuscany-binding-rmi-runtime/build-path.xml"/>
>
> and then uses various different mechanisms
>
>    
>                           fork="true"
>              failonerror="true">
>            
>                
>                
>                   
>                
>            
>        
>    
>
>    
>                      fork="true"
>              failonerror="true">
>            
>                
>                
>                
>            
>        
>    
>
>    
>                      fork="true"
>              failonerror="true">
>            
>                
>                
>                   
>                
>                 dir="${tuscany.home}/features/tuscany-binding-rmi-runtime">
>                   
>                
>            
>        
>    
>
>    
>    
>                      fork="true"
>              failonerror="true">
>            
>                
>                
>                   
>                
>            
>        
>    
>
> The base meta-data is defined in the base feature and just refers to
> the modules required to
> run the ASM otests less the ws binding. All the extensions are
> referenced directly in the
> modules dir. There is a new mojo in the bundles plugin that does the
> generation with the
> following configuration.
>
>                    
>                        extensions-build
>                        process-resources
>                        
>                             generate-meta-data
>                        
>                        
>                             false
>                             false
>                             true
>                             false
>                             true
>
> false
>
> false
>                             features
>                             
>                                 
>                                     org.apache.tuscany.sca
>
> tuscany-base-runtime
>                                     2.0-SNAPSHOT
>                                 
>                             
>                             
>                                 
>                                     org.apache.tuscany.sca
>
> tuscany-binding-atom-runtime
>                                     2.0-SNAPSHOT
>                                 
>                                 
>                                     org.apache.tuscany.sca
>
> tuscany-binding-commet-runtime
>                                     2.0-SNAPSHOT
>                                 
>                                 
>                                     org.apache.tuscany.sca
>
> tuscany-binding-corba-runtime
>                                     2.0-SNAPSHOT
>                                 
>                                 
>                                     org.apache.tuscany.sca
>
> tuscany-bi

Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-29 Thread Raymond Feng
To me, the "extension" is just a "feature" that contains only the modules that 
make up the "extension" :-). For example, I can model the binding.ws extension 
as feature-binding-ws (a pom project that list feature-base, binding-ws, 
binding-ws-runtime-axis2, etc.).

I don't know a way to combine more than one config.ini. But if we generate the 
config.ini per feature, it will contain the bundles from the base. Isn't that 
good enough? I understand it doesn't support the case where you start Equinox 
with base and then try to add the extension.

Thanks,
Raymond
 
Raymond Feng
rf...@apache.org
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 Sep 29, 2010, at 10:42 AM, Simon Laws wrote:

> On Wed, Sep 29, 2010 at 6:25 PM, Raymond Feng  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



Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-29 Thread Simon Laws
On Wed, Sep 29, 2010 at 6:25 PM, Raymond Feng  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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-29 Thread Raymond Feng
Hi,

What's the difference between "feature" and "extension"?

Thanks,
Raymond
 
Raymond Feng
rf...@apache.org
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 Sep 29, 2010, at 10:11 AM, Simon Laws wrote:

> Ok well I've published a snapshot of our maven-bundle-plugin that
> allows us to generate some more meta-data for the binary distro. The
> snapshot is not synched yet to the Nexus repo so I haven't committed
> the distro poms that allow you to build for yourself. I've posted the
> resulting zip to my p.o.a. space [1]. I notice that this is rather
> large, mostly due to cruft in the samples I believe, so you probably
> won't want to actually download it so here are the interesting (?)
> changes...
> 
> bin/
>   haven't changed
> modules/
>   haven't changed
> lib/
>   haven't changed
> features/
>   tuscany-base-runtime
>   tuscany-binding-atom-runtime
>   tuscany-binding-corba-runtime
>   tuscany-binding-ejb-runtime
>   tuscany-binding-jms-runtime
>   tuscany-binding-jsonp-runtime
>   tuscany-binding-jsonrpc-runtime
>   tuscany-binding-rest-runtime
>   tuscany-binding-rmi-runtime
>   tuscany-binding-rss-runtime
>   tuscany-binding-ws-runtime-axis2
>   tuscany-implementation-bpel-runtime
>   tuscany-implementation-osgi-runtime
>   tuscany-implementation-script-runtime
>   tuscany-implementation-spring-runtime
>   tuscany-implementation-web-runtime
>   tuscany-implementation-widget-runtime
> samples
>   mostly unchanged except...
>   running-tuscany
>  embedded-jse
>  build.xml - updated to use different ways to ref base + ext
> all manifest
> ant filesets
> separate manifests
> would like to add aggregate jars here also
> 
> The top level feature dir still has the "all" info in it though I'd
> like to move
> it to a sub directory. All sub-directories have meta-data referring to modules
> for example,
> 
> features/
>  tuscany-binding-rmi-runtime/
>  build-path.xml
>  tuscany-binding-rmi-runtime-manifest.jar
>  which-jars
> 
> The sample build.xml file that uses this meta-data includes
> appropriate ant filesets
> 
> file="${tuscany.home}/features/tuscany-base-runtime/build-path.xml"/>
> file="${tuscany.home}/features/tuscany-binding-ws-runtime-axis2/build-path.xml"/>
> file="${tuscany.home}/features/tuscany-binding-rmi-runtime/build-path.xml"/>
> 
> and then uses various different mechanisms
> 
>
>  fork="true"
>  failonerror="true">
>
>
>
>   
>
>
>
>
>   
>
>  fork="true"
>  failonerror="true">
>
>
>
>
>
>
>  
>   
>
>  fork="true"
>  failonerror="true">
>
>
>
>   
>
> dir="${tuscany.home}/features/tuscany-binding-rmi-runtime">
>   
>
>
>
>  
>   
>
>
>  fork="true"
>  failonerror="true">
>
>
>
>   
>
>
>
>
> 
> The base meta-data is defined in the base feature and just refers to
> the modules required to
> run the ASM otests less the ws binding. All the extensions are
> referenced directly in the
> modules dir. There is a new mojo in the bundles plugin that does the
> generation with the
> following configuration.
> 
>
>extensions-build
>process-resources
>
> generate-meta-data
>
>
> false
> false
> true
> false
> true
> 
> false
> 
> false
> features
> 
> 
> org.apache.tuscany.sca
> 
> tuscany-base-runtime
> 2.0-SNAPSHOT
> 
> 
> 
> 
> org.apache.tuscany.sca
> 
> tuscany-binding-atom-runtime
> 2.0-SNAPSHOT
> 
> 
> org.apache.tuscany.sca
> 
> tusca

Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-29 Thread Simon Laws
Ok well I've published a snapshot of our maven-bundle-plugin that
allows us to generate some more meta-data for the binary distro. The
snapshot is not synched yet to the Nexus repo so I haven't committed
the distro poms that allow you to build for yourself. I've posted the
resulting zip to my p.o.a. space [1]. I notice that this is rather
large, mostly due to cruft in the samples I believe, so you probably
won't want to actually download it so here are the interesting (?)
changes...

bin/
   haven't changed
modules/
   haven't changed
lib/
   haven't changed
features/
   tuscany-base-runtime
   tuscany-binding-atom-runtime
   tuscany-binding-corba-runtime
   tuscany-binding-ejb-runtime
   tuscany-binding-jms-runtime
   tuscany-binding-jsonp-runtime
   tuscany-binding-jsonrpc-runtime
   tuscany-binding-rest-runtime
   tuscany-binding-rmi-runtime
   tuscany-binding-rss-runtime
   tuscany-binding-ws-runtime-axis2
   tuscany-implementation-bpel-runtime
   tuscany-implementation-osgi-runtime
   tuscany-implementation-script-runtime
   tuscany-implementation-spring-runtime
   tuscany-implementation-web-runtime
   tuscany-implementation-widget-runtime
samples
   mostly unchanged except...
   running-tuscany
  embedded-jse
  build.xml - updated to use different ways to ref base + ext
 all manifest
 ant filesets
 separate manifests
 would like to add aggregate jars here also

The top level feature dir still has the "all" info in it though I'd
like to move
it to a sub directory. All sub-directories have meta-data referring to modules
for example,

features/
  tuscany-binding-rmi-runtime/
  build-path.xml
  tuscany-binding-rmi-runtime-manifest.jar
  which-jars

The sample build.xml file that uses this meta-data includes
appropriate ant filesets





and then uses various different mechanisms


 



   













   






   


   



   







   





The base meta-data is defined in the base feature and just refers to
the modules required to
run the ASM otests less the ws binding. All the extensions are
referenced directly in the
modules dir. There is a new mojo in the bundles plugin that does the
generation with the
following configuration.


extensions-build
process-resources

 generate-meta-data


 false
 false
 true
 false
 true

false

false
 features
 
 
 org.apache.tuscany.sca

tuscany-base-runtime
 2.0-SNAPSHOT
 
 
 
 
 org.apache.tuscany.sca

tuscany-binding-atom-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-commet-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-corba-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-ejb-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-hazelcase-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-jms-runtime
 2.0-SNAPSHOT
 
 
 org.apache.tuscany.sca

tuscany-binding-jsonp-runtime
 2.0-SNAPSHOT
 
 

Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-21 Thread Simon Laws
We talked about this face to face amongst the various people who
attended the barcamp last weekend and I thought that we had at least
some common understanding for the "describing groups of function" part
of this puzzle. But in off list conversations that still seems not to
be the case.

I really think that, in order to cut the 2.0 Beta RC, we need an
easily stated and clear approach to describing how our users create a
"classpath" from our binary distro in all of the situations they are
likely to need to do so. My personal motivation is to have the users
always think about describing a base jar alongside whatever extensions
they want to use. So here's me compromising on what I'd really like
and making another attempt to pull this all together.

Inputs (from our source tree)
=

/modules - contains a mixture of core and extension jars.
 You spot extensions as they start binding/implementation etc and
end in runtime-*
 You create a maven dependency on a extension by creating an
dependency on its runtime jar
/features - describe collections of extensions or other jars
 all - describes all the jars.
 Currently a combination of other features and individual jars
 I'd like this to be a list of base + extensions rather
than referring generally to other features
 base - describes the core jars and enough extensions to get
impl.java scenarios working
 We can include a shade plugin here to generate the base jar
 we don't use any other features at the moment so we should weed
any that aren't wanted
/samples
 I would like these to refer, via maven, to base + extensions as
appropriate, i.e take the base feature and then
any extension runtimes that are required
/distribution
  /all - refers to the all feature at present + some other arbitrary jars.
 we either need to tidy up the all feature and clean up
the reference to it or remove the feature and
 include the list of base + extensions here. What do
people want to do?

Outputs (in the binary distro)
=

/modules
all of the Tuscany jars and dependency jars layed out as they are at present

/extensions
   / binding.ws
   dependencies - a human readable file that lists the jars, in
modules, that this extension depends on
   in case someone wants to pull those files out either
manually or by writing a script
   + any other meta-data derived files that we wish to ship based
on each extension , e.g.
  a manifest file (as we have at the moment)
  an ant build path file (as we have at the moment)
  a bundle repo config file (just thinking aloud)

/features
/all
as extensions +
a PDE target (as we have at the moment)
an OSGI config.ini file (as we have at the moment)
/base
as extensions +
a shaded jar
a PDE target (not sure about this as you will likely need
extensions also)
an OSGI config.ini file (not sure about this as you will
likely need extensions also)

/samples
maven = dependencies as per input
ant = dependencies exploit base + extension approach (based on
generated build path files)

I still don't necessarily think this completely ticks the "is it clear
and easily stated" box but I could live with it for the Beta RC where
we can take a step back a get a feel for it in action.  Can we jiggle
this around until we get something we are generally prepared to live
with?

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread Simon Laws
On Wed, Sep 15, 2010 at 2:44 PM, ant elder  wrote:
> On Wed, Sep 15, 2010 at 10:37 AM, Simon Laws  
> wrote:
>> On Mon, Sep 13, 2010 at 1:58 PM, ant elder  wrote:
>>> On Mon, Sep 13, 2010 at 10:31 AM, Simon Laws  
>>> wrote:
 Hi


 On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
> What really matters here is the mechanism. The feature poms we have now 
> are
> just some pre-canned profiles to demonstrate ways of grouping modules
> together (like the various Eclipse packages for people to pick). They are
> choices and there are always specific needs to regroup. If you are not 
> happy
> with the grouping, you can easily add yours.
> Thanks,
> Raymond

 Right, the point here is that we are defining a mechanism that is able
 to produce the artifacts that we want to see in the binary Tuscany
 distribution.
>>>
>>> There's lots of different ways the artifacts can be produced, what
>>> difference does it really make how its done, users are just interested
>>> in the artifcats not how they're made. If we have aggregated jars they
>>> can be made with the shade plugin or assembly plugin or several other
>>> ways, maven users could use the pom type features or just depend on
>>> the module jars to get the transitive dependencies, all the approaches
>>> work, what happens inside the build to produce the artifacts seems
>>> minor, this question you have next seems like the important thing -
>>
>> I agree that the exact technical approach we choose is not important
>> but I do think it is important that we don't foster multiple ways of
>> achieving the same end as a developer community. Otherwise we just go
>> off and do our own favourite things and argue that it doesn't matter
>> because it's only the result that's important. The problem is then
>> that the distribution is constructed from an unmaintainable jigsaw of
>> different and competing processes where only certain people know about
>> certain parts of the puzzle. That doesn't feel like a very comfortable
>> place to be.
>>
>> ...snip
>>
>
> I agree there are quite a lot of parts which it would be good to
> simplify. One thing that could help would be to reduce the number of
> all these different dependencies. If we look at the features and
> shades that currently exists how many are really needed? I've already
> asked about why we need the webservice/binding.ws/ejava ones, really i
> think the mains ones are the core/base and perhaps the osgi one, what
> would break if we removed the others?
>
>   ...ant
>

let's split the webservice/binding.ws from ejava. I can't speak to
ejava as I don't know what ejava means precisely (is it an accepted
acronym for something?)

Originally I had thought it important to have web services separate
from base so that people didn't have to have web services if they
didn't want to. I'm not so sure now as you can't run the otests
without web services. The test I have in mind for defining the base
function is what it takes to run the base otests which I would
consider to be...

Assembly
JCAA
JCI
Policy
WebServices (included as you can't run the previous four tests without
web services support so we might as well include it)

everything else would be an optional extension that the user can
choose to include using a simple and obvious common pattern, e.g.

binding-jms
implementation-spring
host-webapp
etc.

I imagine people have different views.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread Simon Laws
On Wed, Sep 15, 2010 at 2:44 PM, ant elder  wrote:
> On Wed, Sep 15, 2010 at 10:37 AM, Simon Laws  
> wrote:
>> On Mon, Sep 13, 2010 at 1:58 PM, ant elder  wrote:
>>> On Mon, Sep 13, 2010 at 10:31 AM, Simon Laws  
>>> wrote:
 Hi


 On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
> What really matters here is the mechanism. The feature poms we have now 
> are
> just some pre-canned profiles to demonstrate ways of grouping modules
> together (like the various Eclipse packages for people to pick). They are
> choices and there are always specific needs to regroup. If you are not 
> happy
> with the grouping, you can easily add yours.
> Thanks,
> Raymond

 Right, the point here is that we are defining a mechanism that is able
 to produce the artifacts that we want to see in the binary Tuscany
 distribution.
>>>
>>> There's lots of different ways the artifacts can be produced, what
>>> difference does it really make how its done, users are just interested
>>> in the artifcats not how they're made. If we have aggregated jars they
>>> can be made with the shade plugin or assembly plugin or several other
>>> ways, maven users could use the pom type features or just depend on
>>> the module jars to get the transitive dependencies, all the approaches
>>> work, what happens inside the build to produce the artifacts seems
>>> minor, this question you have next seems like the important thing -
>>
>> I agree that the exact technical approach we choose is not important
>> but I do think it is important that we don't foster multiple ways of
>> achieving the same end as a developer community. Otherwise we just go
>> off and do our own favourite things and argue that it doesn't matter
>> because it's only the result that's important. The problem is then
>> that the distribution is constructed from an unmaintainable jigsaw of
>> different and competing processes where only certain people know about
>> certain parts of the puzzle. That doesn't feel like a very comfortable
>> place to be.
>>
>> ...snip
>>
>
> I agree there are quite a lot of parts which it would be good to
> simplify. One thing that could help would be to reduce the number of
> all these different dependencies. If we look at the features and
> shades that currently exists how many are really needed? I've already
> asked about why we need the webservice/binding.ws/ejava ones, really i
> think the mains ones are the core/base and perhaps the osgi one, what
> would break if we removed the others?
>
>   ...ant
>

let's split the webservice/binding.ws from ejava. I can't speak to
ejava as I don't know what ejava means precisely (is it an accepted
acronym for something?)

Originally I had thought it important to have web services separate
from base so that people didn't have to have web services if they
didn't want to. I'm not so sure now as you can't run the otests
without web services. The test I have in mind for defining the base
function is what it takes to run the base otests which I would
consider to be...

Assembly
JCAA
JCI
Policy
WebServices (included as you can't run the previous four tests without
web services support so we might as well include it)

everything else would be an optional extension that the user can
choose to include using a simple and obvious common pattern, e.g.

binding-jms
implementation-spring
host-webapp
etc.

I imagine people have different views.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread ant elder
On Wed, Sep 15, 2010 at 10:37 AM, Simon Laws  wrote:
> On Mon, Sep 13, 2010 at 1:58 PM, ant elder  wrote:
>> On Mon, Sep 13, 2010 at 10:31 AM, Simon Laws  
>> wrote:
>>> Hi
>>>
>>>
>>> On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
 What really matters here is the mechanism. The feature poms we have now are
 just some pre-canned profiles to demonstrate ways of grouping modules
 together (like the various Eclipse packages for people to pick). They are
 choices and there are always specific needs to regroup. If you are not 
 happy
 with the grouping, you can easily add yours.
 Thanks,
 Raymond
>>>
>>> Right, the point here is that we are defining a mechanism that is able
>>> to produce the artifacts that we want to see in the binary Tuscany
>>> distribution.
>>
>> There's lots of different ways the artifacts can be produced, what
>> difference does it really make how its done, users are just interested
>> in the artifcats not how they're made. If we have aggregated jars they
>> can be made with the shade plugin or assembly plugin or several other
>> ways, maven users could use the pom type features or just depend on
>> the module jars to get the transitive dependencies, all the approaches
>> work, what happens inside the build to produce the artifacts seems
>> minor, this question you have next seems like the important thing -
>
> I agree that the exact technical approach we choose is not important
> but I do think it is important that we don't foster multiple ways of
> achieving the same end as a developer community. Otherwise we just go
> off and do our own favourite things and argue that it doesn't matter
> because it's only the result that's important. The problem is then
> that the distribution is constructed from an unmaintainable jigsaw of
> different and competing processes where only certain people know about
> certain parts of the puzzle. That doesn't feel like a very comfortable
> place to be.
>
> ...snip
>

I agree there are quite a lot of parts which it would be good to
simplify. One thing that could help would be to reduce the number of
all these different dependencies. If we look at the features and
shades that currently exists how many are really needed? I've already
asked about why we need the webservice/binding.ws/ejava ones, really i
think the mains ones are the core/base and perhaps the osgi one, what
would break if we removed the others?

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread ant elder
On Wed, Sep 15, 2010 at 10:46 AM, Simon Laws  wrote:
>> The shaded base includes more than the feature core mainly because it
>> works and is used differently. When a uses uses the base jar they get
>> that one jar and nothing else so it doesn't really matter if extra
>> things are included in base as long as they don't drag in extra
>> transitive dependencies, the only difference is the jar gets a little
>> bigger but in most situations that doesn't matter. The core feature on
>> the other hand brings in all the module jars it uses individually so
>> the artifacts appear to users and if it did bring in extra stuff like
>> tuscany-stripes then that would look odd to a user who was not using
>> stripes.
>
> I don't understand this stated difference. Let me be a bit more
> precise. Imagine that I had used the "core" feature pom to generate a
> shaded jar, as now happens with the base jar. What would the
> difference be between the generated core.jar and the generated
> base.jar. Apart of course from the content differences I noted in my
> previous note.
>

Apart from the noted content differences theres no significant difference.

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread Simon Laws
> The shaded base includes more than the feature core mainly because it
> works and is used differently. When a uses uses the base jar they get
> that one jar and nothing else so it doesn't really matter if extra
> things are included in base as long as they don't drag in extra
> transitive dependencies, the only difference is the jar gets a little
> bigger but in most situations that doesn't matter. The core feature on
> the other hand brings in all the module jars it uses individually so
> the artifacts appear to users and if it did bring in extra stuff like
> tuscany-stripes then that would look odd to a user who was not using
> stripes.

I don't understand this stated difference. Let me be a bit more
precise. Imagine that I had used the "core" feature pom to generate a
shaded jar, as now happens with the base jar. What would the
difference be between the generated core.jar and the generated
base.jar. Apart of course from the content differences I noted in my
previous note.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-15 Thread Simon Laws
On Mon, Sep 13, 2010 at 1:58 PM, ant elder  wrote:
> On Mon, Sep 13, 2010 at 10:31 AM, Simon Laws  
> wrote:
>> Hi
>>
>>
>> On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
>>> What really matters here is the mechanism. The feature poms we have now are
>>> just some pre-canned profiles to demonstrate ways of grouping modules
>>> together (like the various Eclipse packages for people to pick). They are
>>> choices and there are always specific needs to regroup. If you are not happy
>>> with the grouping, you can easily add yours.
>>> Thanks,
>>> Raymond
>>
>> Right, the point here is that we are defining a mechanism that is able
>> to produce the artifacts that we want to see in the binary Tuscany
>> distribution.
>
> There's lots of different ways the artifacts can be produced, what
> difference does it really make how its done, users are just interested
> in the artifcats not how they're made. If we have aggregated jars they
> can be made with the shade plugin or assembly plugin or several other
> ways, maven users could use the pom type features or just depend on
> the module jars to get the transitive dependencies, all the approaches
> work, what happens inside the build to produce the artifacts seems
> minor, this question you have next seems like the important thing -

I agree that the exact technical approach we choose is not important
but I do think it is important that we don't foster multiple ways of
achieving the same end as a developer community. Otherwise we just go
off and do our own favourite things and argue that it doesn't matter
because it's only the result that's important. The problem is then
that the distribution is constructed from an unmaintainable jigsaw of
different and competing processes where only certain people know about
certain parts of the puzzle. That doesn't feel like a very comfortable
place to be.

...snip

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-13 Thread ant elder
On Mon, Sep 13, 2010 at 10:48 AM, Simon Laws  wrote:
>>
>> Simon and i chatted about this a bit, i'm still not really convinced
>> about what the features give us and would still be interested in
>> answers to the questions in the previous email about the ws and ejava
>> features. I have made a new "base" feature from the shaded base jar
>> and changed the shaded base to use that feature, is anyone more happy
>> with it like that?
>>
>>   ...ant
>>
>
> Personally I like "base" rather "core" as we already have modules/core
> so found the core feature a little confusing. Having said this I'd
> like to understand a bit more about what the make up of base is or
> should be. Looking at core vs base features I see...
>
> Core
> 
> tuscany-assembly
> tuscany-assembly-xml
> tuscany-assembly-xsd
> tuscany-contribution
> tuscany-core
> tuscany-core-databinding
> tuscany-core-spi
> tuscany-databinding
> tuscany-databinding-jaxb
> tuscany-domain-node
> tuscany-extensibility
> tuscany-extensibility-equinox
> tuscany-feature-api
> tuscany-host-corba-jse
> tuscany-host-http
> tuscany-implementation-java-runtime
> tuscany-interface-java
> tuscany-interface-java-jaxws
> tuscany-interface-wsdl
> tuscany-monitor
> tuscany-node-impl
> tuscany-node-launcher
> tuscany-node-launcher-equinox
> tuscany-policy-security
> tuscany-sca-client-impl
> tuscany-shell
> tuscany-xsd
>
> Base
> 
> tuscany-binding-hazelcast-runtime
> tuscany-binding-rmi-runtime
> tuscany-binding-ws-runtime-jaxws-ri
> tuscany-contribution-osgi
> tuscany-data-api
> tuscany-domain-node
> tuscany-endpoint-hazelcast
> tuscany-endpoint-hazelcast-client
> tuscany-extensibility-equinox
> tuscany-host-jetty
> tuscany-host-rmi
> tuscany-implementation-osgi-runtime
> tuscany-implementation-web-runtime
> tuscany-launcher
> tuscany-node-impl-osgi
> tuscany-node-launcher-equinox
> tuscany-sca-client-impl
> tuscany-sca-client-javascript
> tuscany-shell
> tuscany-stripes
> tuscany-wink
>
> So "core" references the basic modules required to get the runtime up.
> Base does as well but it's not as clear cut. There are a few extra
> things in there, stripes, wink etc. Also I assume it relies on
> transitive dependencies for things like assembly etc.
>

The shaded base includes more than the feature core mainly because it
works and is used differently. When a uses uses the base jar they get
that one jar and nothing else so it doesn't really matter if extra
things are included in base as long as they don't drag in extra
transitive dependencies, the only difference is the jar gets a little
bigger but in most situations that doesn't matter. The core feature on
the other hand brings in all the module jars it uses individually so
the artifacts appear to users and if it did bring in extra stuff like
tuscany-stripes then that would look odd to a user who was not using
stripes.

The base jar does include the hazelcast domain support, i guess really
that should be separated out so its not dragged in when you're not
using the distributed domain.

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-13 Thread ant elder
On Mon, Sep 13, 2010 at 10:31 AM, Simon Laws  wrote:
> Hi
>
>
> On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
>> What really matters here is the mechanism. The feature poms we have now are
>> just some pre-canned profiles to demonstrate ways of grouping modules
>> together (like the various Eclipse packages for people to pick). They are
>> choices and there are always specific needs to regroup. If you are not happy
>> with the grouping, you can easily add yours.
>> Thanks,
>> Raymond
>
> Right, the point here is that we are defining a mechanism that is able
> to produce the artifacts that we want to see in the binary Tuscany
> distribution.

There's lots of different ways the artifacts can be produced, what
difference does it really make how its done, users are just interested
in the artifcats not how they're made. If we have aggregated jars they
can be made with the shade plugin or assembly plugin or several other
ways, maven users could use the pom type features or just depend on
the module jars to get the transitive dependencies, all the approaches
work, what happens inside the build to produce the artifacts seems
minor, this question you have next seems like the important thing -

> Another useful question is what should the output
> artifacts be. From past discussion we seem to need...
>
> - full set of Tuscany jars and their dependencies (either naturally
> OSGi or converted to OSGi by Tuscany) should the user whish to pick
> and choose, or more importantly replace, individual parts of the
> runtime
> - shaded jars that present core and extensions that can be easily
> combined on the classpath to create a working runtime
> - suitable OGSi configuration to allow both OSGi runtime and Eclipse
> target platform to be configured with Tuscany and dependency Jars.
>

The things i think we've seen users want is:
- clear dependencies
- less jars is easier
- support for non-maven use

Having just a single binary distribution with everything in a single
modules directory makes it difficult to do anything but take all 200+
jars at 80+Meg. The shaded and -nodep jars in a separate more
structured lib directory make it a bit easier, what alternatives are
there so that the distribution isn't so all or nothing?

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-13 Thread Simon Laws
>
> Simon and i chatted about this a bit, i'm still not really convinced
> about what the features give us and would still be interested in
> answers to the questions in the previous email about the ws and ejava
> features. I have made a new "base" feature from the shaded base jar
> and changed the shaded base to use that feature, is anyone more happy
> with it like that?
>
>   ...ant
>

Personally I like "base" rather "core" as we already have modules/core
so found the core feature a little confusing. Having said this I'd
like to understand a bit more about what the make up of base is or
should be. Looking at core vs base features I see...

Core

tuscany-assembly
tuscany-assembly-xml
tuscany-assembly-xsd
tuscany-contribution
tuscany-core
tuscany-core-databinding
tuscany-core-spi
tuscany-databinding
tuscany-databinding-jaxb
tuscany-domain-node
tuscany-extensibility
tuscany-extensibility-equinox
tuscany-feature-api
tuscany-host-corba-jse
tuscany-host-http
tuscany-implementation-java-runtime
tuscany-interface-java
tuscany-interface-java-jaxws
tuscany-interface-wsdl
tuscany-monitor
tuscany-node-impl
tuscany-node-launcher
tuscany-node-launcher-equinox
tuscany-policy-security
tuscany-sca-client-impl
tuscany-shell
tuscany-xsd

Base

tuscany-binding-hazelcast-runtime
tuscany-binding-rmi-runtime
tuscany-binding-ws-runtime-jaxws-ri
tuscany-contribution-osgi
tuscany-data-api
tuscany-domain-node
tuscany-endpoint-hazelcast
tuscany-endpoint-hazelcast-client
tuscany-extensibility-equinox
tuscany-host-jetty
tuscany-host-rmi
tuscany-implementation-osgi-runtime
tuscany-implementation-web-runtime
tuscany-launcher
tuscany-node-impl-osgi
tuscany-node-launcher-equinox
tuscany-sca-client-impl
tuscany-sca-client-javascript
tuscany-shell
tuscany-stripes
tuscany-wink

So "core" references the basic modules required to get the runtime up.
Base does as well but it's not as clear cut. There are a few extra
things in there, stripes, wink etc. Also I assume it relies on
transitive dependencies for things like assembly etc.

Regards

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-13 Thread Simon Laws
Hi


On Fri, Sep 10, 2010 at 4:43 PM, Raymond Feng  wrote:
> What really matters here is the mechanism. The feature poms we have now are
> just some pre-canned profiles to demonstrate ways of grouping modules
> together (like the various Eclipse packages for people to pick). They are
> choices and there are always specific needs to regroup. If you are not happy
> with the grouping, you can easily add yours.
> Thanks,
> Raymond

Right, the point here is that we are defining a mechanism that is able
to produce the artifacts that we want to see in the binary Tuscany
distribution. Another useful question is what should the output
artifacts be. From past discussion we seem to need...

- full set of Tuscany jars and their dependencies (either naturally
OSGi or converted to OSGi by Tuscany) should the user whish to pick
and choose, or more importantly replace, individual parts of the
runtime
- shaded jars that present core and extensions that can be easily
combined on the classpath to create a working runtime
- suitable OGSi configuration to allow both OSGi runtime and Eclipse
target platform to be configured with Tuscany and dependency Jars.

What else is required as output?

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-10 Thread Raymond Feng
What really matters here is the mechanism. The feature poms we have now are 
just some pre-canned profiles to demonstrate ways of grouping modules together 
(like the various Eclipse packages for people to pick). They are choices and 
there are always specific needs to regroup. If you are not happy with the 
grouping, you can easily add yours. 

Thanks,
Raymond
 
Raymond Feng
rf...@apache.org
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 Sep 10, 2010, at 1:31 AM, ant elder wrote:

> I'm not sure that i see the value of the feature modules. Take the
> webservice or binding-ws ones (they both look like they do the same
> thing), why would you use that when it just does the same as using the
> actual tuscany ws module tuscany-binding-ws-runtime? Or the ejava
> feature that bundles all sorts of unrelated stuff like spring and osgi
> and scripting etc, why would you ever want to use that and drag in a
> whole lot of unnecessary dependencies when instead you can just depend
> on the actual tuscany runtime modules that you need?
> 
>   ...ant
> 
> On Thu, Sep 9, 2010 at 5:46 PM, Raymond Feng  wrote:
>> Hi,
>> There are a few different goals around this area based on previous
>> discussions:
>> 1) A way to group a set of dependencies which are logically used together to
>> perform certain functions
>> 2) A way for application developers to specify the required jars on the
>> class path (w or w/o maven)
>> 3) A way for Tuscany adopters  (end users or embedders) to choose the
>> functions without dragging in all modules
>> Let's try to map these goals to the two approaches we have in Tuscany so far
>> (A: feature poms, B: shade jars)
>> Here is my vote:
>> Goal 1): option A (based on the maven best practice documented at [1])
>> Goal 2): option A for maven users. I'm open to have aggregated jars from
>> option B for non-maven users.
>> The decision is probably related hosting environment:
>> JSE classpath (Option A or B)
>> ANT (Option A or B)
>> Eclipse classpath (Option A or B)
>> OSGi bundles (Option A because we can produce the feature based bundle
>> configurations)
>> WEB-INF/lib (Option A or B. I'm using maven WAR or dependency plugin to
>> handle the jars)
>> Goal 3): option A (they can use the pom project to assemble the tuscany
>> runtimes from core and selected extensions)
>> If we decide to keep both options, I would suggest to align them as follows:
>> a) Use feature poms to group the dependencies that goes into a shade jar
>> b) Use mavne shade plugin to generate the shaded jar for a given feature
>> c) Make the aggregated jars available in maven repo and a separate folder
>> under the distro
>> [1]
>> http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html#pom-relationships-sect-grouping-deps
>> Thanks,
>> Raymond
>> 
>> Raymond Feng
>> rf...@apache.org
>> 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 Sep 9, 2010, at 3:34 AM, Simon Laws (JIRA) wrote:
>> 
>> Review/consolidate 2.x distribution structure
>> -
>> 
>> Key: TUSCANY-3674
>> URL: https://issues.apache.org/jira/browse/TUSCANY-3674
>> Project: Tuscany
>>  Issue Type: Improvement
>>  Components: Java SCA Core Runtime
>>Affects Versions: Java-SCA-2.0-M5
>> Environment: All
>>Reporter: Simon Laws
>> 
>> 
>> We currently have a number of mechanisms for packaging distributed
>> artifacts. Primarily:
>> 
>> - Modules are grouped together into features
>> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/features/)
>> - Modules are grouped together into shaded jars
>> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/shades/)
>> 
>> It's not clear why these grouped functions have to be specified in different
>> pom.xml files in different places in the code base.
>> 
>> Also the resulting 2.x distributions have both a features directory (from
>> the features) and a lib director (containing jars from the shades directory)
>> alongside the modules directory. This is at best confusing.
>> 
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>> 
>> 
>> 



Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-10 Thread ant elder
On Fri, Sep 10, 2010 at 9:47 AM, Simon Laws  wrote:
> On Fri, Sep 10, 2010 at 9:31 AM, ant elder  wrote:
>> I'm not sure that i see the value of the feature modules.
> ...snip
>
> I'm not sure I understand this uncertainty. Is it that you don't see
> the value of
>
> 1/ grouping modules in order to generate modules subsets, manifest
> jars, shaded jars
>
> or
>
> 2/ the specific groups that currently exist in features and shades
>
> or
>
> 3/ something else
>
> Note I'm assuming
>
> A/ that grouping modules using some mechanism is useful
> B/ that the technical differences between features and shades is
> unimportant in the context of this question.
> C/ that the outcome of this discussion will be one way of grouping
> modules regardless of what those groups might be.
>
> Simon
>
> --

Simon and i chatted about this a bit, i'm still not really convinced
about what the features give us and would still be interested in
answers to the questions in the previous email about the ws and ejava
features. I have made a new "base" feature from the shaded base jar
and changed the shaded base to use that feature, is anyone more happy
with it like that?

   ...ant


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-10 Thread Simon Laws
On Fri, Sep 10, 2010 at 9:31 AM, ant elder  wrote:
> I'm not sure that i see the value of the feature modules.
...snip

I'm not sure I understand this uncertainty. Is it that you don't see
the value of

1/ grouping modules in order to generate modules subsets, manifest
jars, shaded jars

or

2/ the specific groups that currently exist in features and shades

or

3/ something else

Note I'm assuming

A/ that grouping modules using some mechanism is useful
B/ that the technical differences between features and shades is
unimportant in the context of this question.
C/ that the outcome of this discussion will be one way of grouping
modules regardless of what those groups might be.

Simon

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


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-10 Thread ant elder
I'm not sure that i see the value of the feature modules. Take the
webservice or binding-ws ones (they both look like they do the same
thing), why would you use that when it just does the same as using the
actual tuscany ws module tuscany-binding-ws-runtime? Or the ejava
feature that bundles all sorts of unrelated stuff like spring and osgi
and scripting etc, why would you ever want to use that and drag in a
whole lot of unnecessary dependencies when instead you can just depend
on the actual tuscany runtime modules that you need?

   ...ant

On Thu, Sep 9, 2010 at 5:46 PM, Raymond Feng  wrote:
> Hi,
> There are a few different goals around this area based on previous
> discussions:
> 1) A way to group a set of dependencies which are logically used together to
> perform certain functions
> 2) A way for application developers to specify the required jars on the
> class path (w or w/o maven)
> 3) A way for Tuscany adopters  (end users or embedders) to choose the
> functions without dragging in all modules
> Let's try to map these goals to the two approaches we have in Tuscany so far
> (A: feature poms, B: shade jars)
> Here is my vote:
> Goal 1): option A (based on the maven best practice documented at [1])
> Goal 2): option A for maven users. I'm open to have aggregated jars from
> option B for non-maven users.
> The decision is probably related hosting environment:
> JSE classpath (Option A or B)
> ANT (Option A or B)
> Eclipse classpath (Option A or B)
> OSGi bundles (Option A because we can produce the feature based bundle
> configurations)
> WEB-INF/lib (Option A or B. I'm using maven WAR or dependency plugin to
> handle the jars)
> Goal 3): option A (they can use the pom project to assemble the tuscany
> runtimes from core and selected extensions)
> If we decide to keep both options, I would suggest to align them as follows:
> a) Use feature poms to group the dependencies that goes into a shade jar
> b) Use mavne shade plugin to generate the shaded jar for a given feature
> c) Make the aggregated jars available in maven repo and a separate folder
> under the distro
> [1]
> http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html#pom-relationships-sect-grouping-deps
> Thanks,
> Raymond
> 
> Raymond Feng
> rf...@apache.org
> 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 Sep 9, 2010, at 3:34 AM, Simon Laws (JIRA) wrote:
>
> Review/consolidate 2.x distribution structure
> -
>
> Key: TUSCANY-3674
> URL: https://issues.apache.org/jira/browse/TUSCANY-3674
> Project: Tuscany
>  Issue Type: Improvement
>  Components: Java SCA Core Runtime
>    Affects Versions: Java-SCA-2.0-M5
> Environment: All
>    Reporter: Simon Laws
>
>
> We currently have a number of mechanisms for packaging distributed
> artifacts. Primarily:
>
> - Modules are grouped together into features
> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/features/)
> - Modules are grouped together into shaded jars
> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/shades/)
>
> It's not clear why these grouped functions have to be specified in different
> pom.xml files in different places in the code base.
>
> Also the resulting 2.x distributions have both a features directory (from
> the features) and a lib director (containing jars from the shades directory)
> alongside the modules directory. This is at best confusing.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
>


Re: [jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-09 Thread Raymond Feng
Hi,

There are a few different goals around this area based on previous discussions:

1) A way to group a set of dependencies which are logically used together to 
perform certain functions 
2) A way for application developers to specify the required jars on the class 
path (w or w/o maven)
3) A way for Tuscany adopters  (end users or embedders) to choose the functions 
without dragging in all modules

Let's try to map these goals to the two approaches we have in Tuscany so far 
(A: feature poms, B: shade jars)

Here is my vote:

Goal 1): option A (based on the maven best practice documented at [1])

Goal 2): option A for maven users. I'm open to have aggregated jars from option 
B for non-maven users.
The decision is probably related hosting environment:

JSE classpath (Option A or B)
ANT (Option A or B)
Eclipse classpath (Option A or B)
OSGi bundles (Option A because we can produce the feature based bundle 
configurations)
WEB-INF/lib (Option A or B. I'm using maven WAR or dependency plugin to handle 
the jars)

Goal 3): option A (they can use the pom project to assemble the tuscany 
runtimes from core and selected extensions)

If we decide to keep both options, I would suggest to align them as follows:

a) Use feature poms to group the dependencies that goes into a shade jar
b) Use mavne shade plugin to generate the shaded jar for a given feature
c) Make the aggregated jars available in maven repo and a separate folder under 
the distro

[1] 
http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html#pom-relationships-sect-grouping-deps

Thanks,
Raymond
 
Raymond Feng
rf...@apache.org
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 Sep 9, 2010, at 3:34 AM, Simon Laws (JIRA) wrote:

> Review/consolidate 2.x distribution structure
> -
> 
> Key: TUSCANY-3674
> URL: https://issues.apache.org/jira/browse/TUSCANY-3674
> Project: Tuscany
>  Issue Type: Improvement
>  Components: Java SCA Core Runtime
>Affects Versions: Java-SCA-2.0-M5
> Environment: All
>Reporter: Simon Laws
> 
> 
> We currently have a number of mechanisms for packaging distributed artifacts. 
> Primarily:
> 
> - Modules are grouped together into features 
> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/features/)
> - Modules are grouped together into shaded jars 
> (http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/shades/)
> 
> It's not clear why these grouped functions have to be specified in different 
> pom.xml files in different places in the code base. 
> 
> Also the resulting 2.x distributions have both a features directory (from the 
> features) and a lib director (containing jars from the shades directory) 
> alongside the modules directory. This is at best confusing. 
> 
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 



[jira] Created: (TUSCANY-3674) Review/consolidate 2.x distribution structure

2010-09-09 Thread Simon Laws (JIRA)
Review/consolidate 2.x distribution structure
-

 Key: TUSCANY-3674
 URL: https://issues.apache.org/jira/browse/TUSCANY-3674
 Project: Tuscany
  Issue Type: Improvement
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-2.0-M5
 Environment: All
Reporter: Simon Laws


We currently have a number of mechanisms for packaging distributed artifacts. 
Primarily:

- Modules are grouped together into features 
(http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/features/)
- Modules are grouped together into shaded jars 
(http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/shades/)

It's not clear why these grouped functions have to be specified in different 
pom.xml files in different places in the code base. 

Also the resulting 2.x distributions have both a features directory (from the 
features) and a lib director (containing jars from the shades directory) 
alongside the modules directory. This is at best confusing. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.