jetty-repo
----------
Goal: shortest path to publishing the jetty jars in a p2-repository.
No external dependency in the produced repository, no mirroring of any jars unrelated to jetty.
During the build tycho requires that all dependencies be resolved transitively.
We depend on orbit and the platform repositories for this.

Using maven-tycho as it can publish artifacts located in maven repositories into p2-repositories.
Single feature that contains all the jetty jars. That feature is only useful to be able to have tycho publish the jetty-jars.



Building
--------
Steps:

1. Update the version number
   Use the set-version.sh script. This accepts an argument of the new version number, eg:
       > set-version.sh 9.1.0.RC0

   Alternatively, you can set the variable NEW_VERSION to be the new version number, eg:
       >  export NEW_VERSION=9.1.0.RC0
       >  set-version.sh

   You can set the variable OLD_VERSION to override the old version number. If you don't set it,
   then the script will parse the pom.xml to extract the <version> instead. Leaving the OLD_VERSION 
   unset and letting the script determine it is the safest course of action.


2. Do the maven/tycho build:

   Here's an example with all options set:

       > mvn -DBRANCH_NAME=jetty-9 -Dset_pom_version=9.1.0.RC0 -Djetty_release_version=9.1.0.RC0 -Ddelete_tycho_meta=true -Dforce_context_qualifier= -Dpack_and_sign=true -Dmaven.repo.local=/tmp/jetty-builds/jetty7/localRepo -DforceContextQualifier=  -Djetty-release-version=9.1.0.RC0 clean verify -X -U
   

3. Do the post build:

       > post-tycho.sh


Hudson Builds on Eclipse
------------------------

There are jobs set up on the Hudson instance on build.eclipse.org that will start a build:

   jetty-rt-bundles-9.1 (for jetty-9.1)
   jetty-rt-bundles     (for jetty-9)
   jetty-rt-bundles-8   (for jetty-8)
   jetty-rt-bundles-7   (for jetty-7)


When using these jobs, you will need to manually start a build. You will be presented with a form asking you to fill in build parameters,
which are the source of the values you see in Step 2 maven build above.

It is ESSENTIAL that you supply values for the following:

   set_pom_version
   jetty_release_version


Generally, the values for both of these will be identical, ie the latest jetty release number. If you don't provide a value for the set_pom_version,
then the p2 feature that is generated will default to the values contained in the pom.xml and feature.xml files that were last checked in. For jetty-9.1
this is version 9.1.0. set_pom_version controls the version number of the p2 feature, whilst jetty_release_version controls the version number of 
the jetty jars used.
