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