<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  Copyright 2003-2004 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
<document>

  <header>
    
    <title>Gump: Getting Started</title>
  <authors>
  	<person name="Adam R. B. Jack" email="ajack@apache.org"/>
  </authors></header>

<body>

<!--
  <section><title>Getting started with Gump</title>     
    <p>There are a number of ways to work with Gump, and
    </p>
    <table>
        <tr><th>Interest</th><th>Why</th><th>Descriprion</th></tr>
                <tr>
            <td>What is Gump&gt;</td>
            <td>Want Gump 101</td>
            <td/>
        </tr>
        
        <tr>
            <td>Getting your project Gumped</td>
            <td>Continuous integrate is powerful</td>
            <td>This is a typical entry point, you know Gump is there, you want to
                benefit from the service (but you don't have time to look deeper into
                Gump's internals)</td>
        </tr>
        
        <tr>
            <td>Getting your own (custom) Gump</td>
            <td>You want to Gump your private projects</td>
            <td>This is becomming more and more popular, as Gump matures
                to be more easily installable.</td>
        </tr>
        
        <tr>
            <td>Developing Gump</td>
            <td>You wish it did more</td>
            <td>Gump is an awesome continuous integration build tool,
                but in custom environments there are site specific additions
                that might be nice, or there are core features it lacks.
                Here is how to start.</td>
        </tr>
    </table>

    <section><title>gump101</title>
      <p/>
    </section>
    
    <section><title>project</title>
      <p>Submitting a new <link href="project.html">project</link> </p>
    </section>

    <section><title>custom</title>
     <p>You wish to install a local Gump</p>
    </section>

    <section><title>developer</title>
     <p/>
    </section>
    
    -->
    
    <section><title>Planning</title>
      <p>The bare minimum required to get started is a JDK, a JAXP 1.1
      compliant parser, a command prompt (bash or Windows NT/2K), and Perl.
      Perl is only used at the moment for some of the publishing and
      notification, so it can be omitted.</p>
      
      <p>It is highly recommended at this point that you review the
      description of the data definitions used by Gump, starting with
      the <link href="site:om/overview">overview</link>.</p>
      
      <section><title>Pre-requisites</title>
      	<section><title>Source Control System</title>
      	<p>One of these two is required.</p>
      	<ul>
      		<li>CVS -- Concurrent Versioning System</li>
      		<li>SVN -- <fork href="http://subversion.tigris.org">Subversion</fork></li>
      	</ul>
      	</section>
      	<section><title>Jar Download</title>
      	<p>This is optional.</p>
      	<ul>
      		<li>Ruper -- <fork href="http://incubator.apache.org/projects/ruper.html">Resource Updater</fork></li>
      	</ul>
		</section>
	  </section>
    </section>

    <section><title>Getting the source to Gump</title>
      <source>
      export CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic
      cvs login
      cvs co gump
      </source>

      <p>If prompted for the password, enter <strong>anoncvs</strong></p>
    </section>

    <section><title>Defining your workspace</title>
      <p>Two sample workspaces are provided, rubix and rubypad.  Find the
      one that is closest to your needs and make a copy of it.  The suggested
      name for the file you create is your host name.</p>

      <p>Again, reference the <link href="site:om/overview">overview</link> to see
      how you can add projects, define your own profiles, and the modify
      which version of referenced projects you want to build.</p>

      <p>You will also need to directly modify the <code>gen.bat</code>
      or <code>gen.sh</code> scripts to specify where to find the JAXP
      implementation to use.  At the present time, recent releases of
      Xalan are recommended for performance reasons; but the JAXP
      reference implementation will likely catch up shortly.</p>

      <p><strong>Note:</strong> Yes, it is tacky that you should have to modify this
      file directly.  Patches are welcome.  Meanwhile, cvs does a fairly
      good job of merging changes.</p>
    </section>

    <section><title>Installing Packages</title>
      <p>Packages for which source is not easily accessible are not built by Gump.
      Where such packages are required prerequisites for building other projects, Gump
      allows binary versions of the package to be installed to satisfy the prerequisites.
      Your workspace definition specifies where installed packages are to be found.
      </p>

      <p>A list of some of the packages you might want to install can be found
      <link href="http://cvs.apache.org/builds/gump/latest/packages.html">
      here</link>.</p>

      <p><strong>JDK 1.4</strong> includes both <code>jaxp</code> and <code>jsse</code>
      which were previously available as separately installable packaged.
      The dependencies on these packages are now marked as optional. If you are
      using a JDK prior to 1.4, the packages must be installed. For JDK 1.4 and
      later the packages need not be installed and the version provided with the
      JDK will be utilised.
      </p>
    </section>
</body>
</document>
