<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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>Apache Gump&#x2122;</title>
  <authors><person name="Sam Ruby" email="rubys@us.ibm.com"/></authors></header>

<body>

  <section><title>workspace</title>
    <p>This represents the combination of projects (either referenced
    directly or indirectly, via profiles) that are to be built together.
    By default, workspaces are named after the hostname of the computer
    which you are building on.</p>

    <table>
      <tr>
        <th>Attribute</th>
        <th>Description</th>
        <th>Required?</th>
      </tr>
      <tr>
        <td>basedir</td>
        <td>Fully qualified directory into which all projects will be 
          extracted built.
        </td>
        <td>No</td>
      </tr>
      <tr>
        <td>name</td>
        <td>Name of this workspace.
        </td>
        <td>Yes</td>
      </tr>
      <tr>
        <td>pkgdir</td>
        <td>Default directory in which to find projects which are installed
          as packages instead of being built.  Examples being various jars
          which can be downloaded from Sun's web site.
        </td>
        <td>No</td>
      </tr>
      <tr>
        <td>cvsdir</td>
        <td>Workarea for cvs extracts.  The generated update script will
          do the cvs checkouts or updates into this directory.  The generated
          build script will copy the results into the basedir prior to
          building.
        </td>
        <td>No.  Defaults to ${basedir}/cvs</td>
      </tr>
      <tr>
        <td>logdir</td>
        <td>Directory into which the generated html logs are placed.</td>
        <td>No.  Defaults to ${basedir}/log</td>
      </tr>
      <tr>
        <td>jardir</td>
        <td>Directory into which the generated jars are copied.  This
        May be useful for a number of reasons.  First, the results
        themselves may be something worth publishing.  Second, it allows
        an greater range of development - e.g., build clean won't affect
        the availability of jars.  Finally, it may allow you to get further
        without hitting command line length restrictions.</td>
        <td>No.  If this option is not specified, the jars aren't copied.</td>
      </tr>
      <tr>
        <td>version</td>
        <td>Which version of the Apache Gump dtd this workspace was defined against.
          The current version is "0.4".
        </td>
        <td>Yes</td>
      </tr>
      <!--tr>
        <td>sync</td>
        <td>The name of the command, along with any desired parameters, used to
          synchronize the build directory with the cvs directory.  This can make
          a <em>considerable</em> performance advantage over the default action
          which is to recursively remove the directory and copy the entire
          directory tree.  Recommended value for this parameter is
          <code>"rsync -r -a - -delete"</code>. <em>Note:</em> Not used ny Python Gump,
          which builds this in.
         </td>
        <td>No</td>
      </tr-->
      <tr>
        <td>bootclass</td>
        <td>If this value is set to "yes", it will enable placing jars on the
          bootclasspath.  Default is "no".  Consider this function 
          experimental at this time.  See the description for
          <link href="project.html">project</link> for details.
        </td>
        <td>No</td>
      </tr>
      <tr>
        <td>makeCommand</td>
        <td>The make executable to use.</td>
        <td>No, defaults to make.</td>
      </tr>
      <tr>
        <td>mvnRepoProxyPort</td>
        <td>TCP port to bind the mvn repository proxy to.</td>
        <td>No, defaults to 8192.</td>
      </tr>
      <tr>
        <td>logurl</td>
        <td>Public URL that makes the contens of <code>logdir</code>
          available.  This will be used in nag emails.</td>
        <td>No.  Defaults to ""</td>
      </tr>
      <tr>
        <td>mailserver</td>
        <td>SMTP server to use when sending nag emails.</td>
        <td>No.  Defaults to mail.apache.org</td>
      </tr>
      <tr>
        <td>administrator</td>
        <td>Email address that receives the final report when a Gump
          run is finished.</td>
        <td>No.</td>
      </tr>
      <tr>
        <td>email</td>
        <td>Email address that is the sender of the final report when
          a Gump run is finished.</td>
        <td>No.</td>
      </tr>
    </table>
    <p/>

    <section><title>property</title>
      <p>Global properties which are to be applied to every Ant execution.
      Commonly used to specify the "build.sysclasspath" property which
      tells Ant how to deal with classpaths specified inside the build.xml
      files</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>name</td>
          <td>Name of the property to set.</td>
          <td>Yes</td>
        </tr>
        <tr>
          <td>value</td>
          <td>Desired value</td>
          <td>Yes</td>
        </tr>
      </table>
    </section>

    <section><title>sysproperty</title>

      <p>Global properties which are to be applied to every Ant
      execution.  Unlike <link href="#property">property</link> this
      will be translated into a Java system property that is passed to
      the Java VM instead of the application.  Commonly used to
      specify the "java.awt.headless" property which tells the Java VM
      to run in "headless mode" so that it doesn't require an X-server
      on Unix or a logged in user on MacOS X.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>name</td>
          <td>Name of the property to set.</td>
          <td>Yes</td>
        </tr>
        <tr>
          <td>value</td>
          <td>Desired value</td>
          <td>Yes</td>
        </tr>
      </table>
    </section>

    <section><title>profile</title>
      <p>Collections of projects and repositories.  While a complete
      profile can be defined here, typically one is referenced via
      href.  For a complete description, see the documentation for
      <link href="profile.html">profile</link>.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>href</td>
          <td>URI of the file containing the profile definition</td>
          <td>Yes</td>
        </tr>
      </table>
    </section>

    <section><title>module</title>
      <p>An individual module to be included.  While a complete
      module can be defined here, typically one is referenced via
      href.  For a complete description, see the documentation for
      <link href="module.html">module</link>.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>href</td>
          <td>URI of the file containing the module definition</td>
          <td>Yes</td>
        </tr>
      </table>
    </section>

    <section><title>project</title>
      <p>An individual project to be included.  While a complete
      project can be defined here, typically one is referenced via
      href.  For a complete description, see the documentation for
      <link href="project.html">project</link>.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>name</td>
          <td>Name of the project to be modified</td>
          <td>Yes</td>
        </tr>
        <tr>
          <td>home</td>
          <td>Convenient way to specify an override for a root/home
            element.
          </td>
          <td>No</td>
        </tr>
      </table>
    </section>

    <section><title>repository</title>
      <p>An repository from which one or more modules may be obtained
      While a complete repository can be defined here, typically one is
      referenced via href.  For a complete description, see the documentation
      for <link href="repository.html">repository</link>.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>href</td>
          <td>URI of the file containing the repository definition</td>
          <td>Yes</td>
        </tr>
        <tr>
          <td>method</td>
          <td>Convenient way to specify an override for a root/method
            element
          </td>
          <td>No</td>
        </tr>
        <tr>
          <td>user</td>
          <td>Convenient way to specify an override for a root/user
            element
          </td>
          <td>No</td>
        </tr>
        <tr>
          <td>path</td>
          <td>Convenient way to specify an override for a root/path
            element
          </td>
          <td>No</td>
        </tr>
      </table>
    </section>


    <!--section><title>javadoc</title>
      <p>Enables publishing of a summary page linking all of the javadocs
      produced in the process.  This will be placed in the workspace log
      directory with the name "javadoc.html".</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>url</td>
          <td>The prefix to be used for hrefs on the javadoc.html page.
          This can be used to point directly into the build directory or
          used in conjunction with the <code>dir</code> attribute described
          below.  If this attribute is not specified, <code>file:///</code>
          urls will be generated - this is generally only suitable for
          viewing on the local machine.</td>
          <td>No</td>
        </tr>
        <tr>
          <td>dir</td>
          <td>This attribute tells where the physical directory associated with
          the url can be found.  <strong>Note:</strong> the script which copies the
          javadocs to this directory is named pubdoc.pl and is placed in the
          work subdirectory of gump.  Normally, it would be executed
          immediately after a "build all"</td>
          <td>No</td>
        </tr>
      </table>
    </section-->

    <section><title>junitreport</title>
      <p>Enables publishing of a summary page linking all of the junit
      reports produced in the process.  This will be placed in the
      workspace log directory with the name "junitreport.html".</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>url</td>
          <td>The prefix to be used for hrefs on the junitreport.html
          page. This can be used to point directly into the build
          directory or used in conjunction with the <code>dir</code>
          attribute described below.  If this attribute is not
          specified, <code>file:///</code> urls will be generated - this
          is generally only suitable for viewing on the local
          machine.</td>
          <td>No</td>
        </tr>
        <tr>
          <td>dir</td>
          <td>This attribute tells where the physical directory
          associated with the url can be found.  <strong>Note:</strong> the script
          which copies the reports to this directory is named
          pubreport.pl and is placed in the work subdirectory of gump.
          You can generate this script using 'ant pubreport'.
          Normally, it would be executed immediately after a
          "build all"</td>
          <td>No</td>
        </tr>
      </table>
    </section>

    <section><title>nag</title>
      <p>Gump will send email reports of first time build successes/failures to a list of recipients.		
      <strong>Note:</strong> reminder failure reports will be sent on <strong>--oficial</strong> runs.</p>

      <p>A nag element in the workspace can be used to override some
      values in project's <link href="project.html#nag">nag</link>
      elements, which are used to define which reports will be
      sent.</p>

      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>to</td>
          <td>Overrides the <strong>to</strong> attributes of the nag elements in all
          projects.</td>
          <td>No</td>
        </tr>
        <tr>
          <td>from</td>
          <td>Overrides the <strong>from</strong> attributes of the nag elements in all
          projects.</td>
          <td>No</td>
        </tr>
        <tr>
          <td>prefix</td>
          <td>A prefix to put into the subject of all generated nag
          mails, defaults to "[GUMP]".</td>
          <td>No</td>
        </tr>
      </table>
    </section>
	
	
    <section><title>database</title>
      <p>Gump will utilize a <fork href="https://mysql.org">MySQL</fork> database
		for storing statistics and run information. Without this element Gump
		will default to using a DBM database (not currently available on with Python on Microsoft &trade; platforms)
		for statistics.
		
      <strong>Note:</strong> MySQL SQL scripts for creating the database tables
	  are to be found in ./mysql.</p>


      <table>
        <tr>
          <th>Attribute</th>
          <th>Description</th>
		  <th>Default</th>
          <th>Required?</th>
        </tr>
        <tr>
          <td>host</td>
          <td>The hostname that the MySQL server resides upon</td>
		  <td>localhost</td>
          <td>No</td>
        </tr>
        <tr>
          <td>user</td>
          <td>The username Gump uses to log in with</td>
		  <td>root</td>
          <td>No</td>
        </tr>
        <tr>
          <td>passwd</td>
          <td>The passwd Gump uses to log in with</td>
		  <td></td>
          <td>No</td>
        </tr>
        <tr>
          <td>database</td>
          <td>The database Gump uses</td>
		  <td>gump</td>
          <td>No</td>
        </tr>
      </table>
    </section>
  </section>
</body>
</document>
