<html>
<head>
  <meta http-equiv="content-type" content="">
  <title></title>
</head>

<body>
<h1>Developing Apache Axiom</h1>

<h2>Working with Subversion</h2>

<p>The Axiom development team uses Subversion for source control. Subversion
is a compelling replacement for CVS, developed under the auspices of the
Tigris community and is licensed under an Apache compatible license. To learn
more about Subversion or to download the latest distribution, visit the <a
href="http:///subversion.tigris.org">Subversion project site</a>.  If you are
looking for guidance on setting up and installing Subversion, please read the
ASF <a href="http://www.apache.org/dev/version-control.html">Source Code
Repositories page</a>.</p>

<h2>Checkout Axiom from Subversion</h2>

<p>When checking out the latest version of Axiom from the Foundation's
Subversion repository you must use one of the following URLs depending on
your level of access to the Axiom source code:</p>
<ul>
  <li><b>If you are not a committer:</b> Use <a
    href="http://svn.apache.org/repos/asf/webservices/commons/trunk/modules/axiom">http://svn.apache.org/repos/asf/webservices/commons/trunk/modules/axiom</a></li>
  <li><b>If you are a committer:</b> Use <a
    href="https://svn.apache.org/repos/asf/webservices/commons/trunk/modules/axiom">https://svn.apache.org/repos/asf/webservices/commons/trunk/modules/axiom</a></li>
</ul>
If you are a committer, make sure that you have selected an svnpasswd.  To do
this you must log into svn.apache.org.  For more information, please read the
ASF <a href="http://www.apache.org/dev/version-control.html">Source Code
Repositories page</a>. 

<p>Once you have successfully installed Subversion, you can check out Axiom
trunk by following these steps:</p>
<ol type="1">
  <li>Run <strong>svn co &lt;repository URL&gt; axiom</strong> where
    repository URL is one of the URLs from the previous list.</li>
  <li>This step will check out the latest version of the Axiom Java codebase
    to a directory named "axiom".  The second parameter to the svn co selects
    a directory to create on your local machine.  If you want to checkout
    Axiom to a different directory, feel free to change Axiom to any other
    directory name.</li>
  <li>To update your working copy to the latest version from the repository.
    Execute the <strong>svn update</strong> command.</li>
  <li>If you would like to submit a patch, you can execute <strong>svn
    diff</strong> to create a unified diff for submission to the WS-Commons JIRA
    issue tracker.</li>
</ol>

<h2>Installing Maven 1</h2>

<p>Axiom's build is based on Maven 1.  Maven is a build system that allows
for the reuse of common build projects across multiple projects.  For
information about obtaining, installing, and configuring Maven 1, please see
the <a href="http://maven.apache.org">Maven project page</a>.  To use Maven
to build the Axiom project, follow these simple steps:</p>
<ol type="1">
  <li>Install <a href="http://maven.apache.org/">Maven</a>. See <a
    href="http://maven.apache.org/start/install.html">here</a> for
    instructions.
    <ul>
      <li>Create a MAVEN_HOME environment variable.</li>
      <li>Add MAVEN_HOME/bin to your PATH</li>
    </ul>
  </li>
  <li>Go to the axiom folder in the command prompt and type
    <strong>maven<strong>.</strong></strong></li>
  <li>Maven will then automatically download all the jars, compile, test and
    build the Axiom deliverables.</li>
</ol>

<h2>Configuring your IDE</h2>

<p>The Axiom development team uses a variety of development tools from vi to
emacs to Eclipse to Intellij/IDEA.  The following section is not an
endorsement of a specific set of tools, it is simply meant as a pointer to
ease the process of getting started with Axiom development.</p>
<ul>
  <li><strong>Intellij IDEA </strong>: type <strong>maven
    idea</strong>. This will generate the necessary IDEA .ipr,
    .iml and .iws project files</li>
<li><strong>Eclipse</strong>: type <strong>maven
    eclipse</strong>. This will generate the necessary eclipse .project,
    .and .classpath project files</li>
  </ul>
</body>
</html>
