Hey all,
This has been discussed on some other threads as well, but I think it is
worthwhile to get a clear picture on this. While discussing the current release
process we basically combined the build/package process of the sources with the
creation of the rpm/deb packages for 4.0RC1 (using a combination of maven, ant
and waf). When moving to maven we have the opportunity to better separate the
code build/package process from the creation of any vendor specific packages.
This would for one thing allow others to create packages using their own
insights and combinations of components.
Also from a maven perspective it is good to know what is expected from it. The
way I'm looking at it is that maven builds a binary release in the form of a
tarball. This tarball will contain everything to run the various components in
the source tree. This seems to be more or less what other Apache projects do as
well. I think the components are the following:
* The client webapp (war)
This includes ui components, compiled classes and all
dependencies in a standard java webapp layout
Contains selected optional components based on maven profiles
like netapp, vmware, netscaler etc.
Also systemvm.iso and other components required by the webapp
* The awsapi webapp (war)
This included all awsapi components and dependencies in a
standard java webapp
* The usage server (jar)
This includes the usage server and dependencies as an
executable jar
Next to these artifacts there will be some scripts that are needed by our
builds of the debs/rpms and do utility work like creating a database etc.
Secondary responsibility of maven is to be able to start a debug server for all
three components (with eclipse integration)
The rpms/debs should ideally be built from the tarball mentioned above. The
main change would be to have the builder include the jars in the webapp. This
saves an enormous amount of trouble when building packages as we don't need to
deal with package dependencies anymore. Potentially this makes the webapps also
more portable, people should be able to deploy the war in any j2ee container
and run it.
Current status is that I'm testing the war building for the client api by
starting a debug server directly from maven. The tarball build is also almost
done with the exception of the usage server. I'm happy to continue working on
this together with Edison Su.
Your ideas and feedback please :-)
Cheers,
Hugo