<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.
-->
<document>

    <properties>
        <title>Generating Sandbox JIRA Page</title>
        <author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
    </properties>

    <body>


        <section name="commons:sandbox-jira-page" href="jira-page">

            <subsection name="Overview">
                <p>
                The <code>commons:sandbox-jira-page</code> goal generates a custom JIRA Issue Tracking page for a <strong>Sandbox</strong> component.
                (for  <strong>Proper</strong> components use the <a href="jira-page.html">commons:jira-page</a> goal).
                Execute the goal using the following command: <source>mvn commons:sandbox-jira-page</source>
                </p>

                <p>
                <strong>Note:</strong> The Issue tracking page should only need to be generated initially
                for a component or if the issue tracking template changes.
                </p>

                <p>
                This goal uses the following:
                <ul>
                    <li>The goal is mapped to the ant script/target using the <code>sandbox-jira-page</code> mojo defintion in the 
                        <a href="http://svn.apache.org/repos/asf/commons/proper/commons-build-plugin/trunk/src/main/scripts/generate-xdocs.mojos.xml">generate-xdocs.mojos.xml</a> mapping document</li>
                    <li>Executes the <code>sandbox-jira-page</code> target in
                        <a href="http://svn.apache.org/repos/asf/commons/proper/commons-build-plugin/trunk/src/main/scripts/generate-xdocs.build.xml">generate-xdocs.build.xml</a>
                        ant script</li>
                    <li>Uses the <a href="http://svn.apache.org/repos/asf/commons/proper/commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates/sandbox-issue-tracking-template.xml">sandbox-issue-tracking-template.xml</a>
                        template</li>
                    <li>Uses the <a href="sandbox-jira-page-mojo.html">goal's (i.e. mojo's) parameters</a> to filter values in the template</li>
                </ul>
                </p>
            </subsection>

            <subsection name="Configuration">
                <p>
                To generate a JIRA page, the following <a href="sandbox-jira-page-mojo.html">properties</a>  are configured in the component's <code>pom.xml</code>
                <ul>
                    <li><b>commons.jira.componentid</b> - JIRA's internal (numeric) id for the component</li>
                </ul>
                </p>
                <p>
                Example configuration:
<source><![CDATA[
    <properties>
        <commons.jira.componentid>12311182</commons.jira.componentid>
    </properties> 
]]></source>
                </p>
            </subsection>

        </section>

    </body>
</document>
