<?xml version="1.0"?>
<document>

  <properties>
    <author email="pete@kazmier.com">Pete Kazmier</author>
    <author email="jason@zenplex.com">Jason van Zyl</author>
    <title>JRCS</title>
  </properties>

  <body>
    <section name="JRCS - A RCS Archive Parser in Java">
      <p>
        JRCS is a library for parsing and manipulation of RCS archive
        files like the ones produced by the RCS (Revision Control
        System) itself and by CVS (Concurrent Version System).
      </p>
      <p>
        JRCS is distributed under the Apache License.
      </p>
      <p>
        The current version of JRCS is 0.1.2
      </p>
      <subsection name="Diff in Java">
        <p>
          The library also includes a differencing engine that uses a a
          simple, fast, and effective algorithm that I developed. The
          diff engine can be used by itself to compare the contents of
          any two arrays, whatever their contents (yes, you can compare
          text and everything else too).
        </p>
      </subsection>
      <subsection name="Download">
        <p>
          There are two distributions of JRCS:
        </p>
        <ul>
          <li>
            The <a
            href="http://www.suigeneris.org/jrcs/dist/jrcs-full-0.1.2.tar.gz">full</a>
            (~330K) distribution includes everything you need to use the
            library, including the third party libraries <a href=
            "http://www.cacas.org/java/gnu/regexp/">gnu.regexp</a>,
            and <a href="http://www.junit.org">JUnit</a>. Precompiled
            jar files are also included. <a
            href="http://www.suigeneris.org/jrcs/dist/jrcs-full-0.1.2.tar.gz">
            [download]</a>
          </li>
          <li>
            The <a href="http://www.suigeneris.org/jrcs/dist/jrcs-0.1.2.tar.gz">compact</a> (~160K)
            distribution includes everything above except the third party
            libraries, which you can get from their home sites as explained
            below. <a href="http://www.suigeneris.org/jrcs/dist/jrcs-0.1.2.tar.gz">[download]</a>
          </li>
        </ul>
      </subsection>
      <subsection name="Documentation">
        <p>
          Both distributions of JRCS contain bare-bones API documentation
          generated by JavaDoc. There's also a 
          <a href="http://www.suigeneris.org/jrcs/doc/api/">local
          copy</a> of the documentation accessible from this site.
        </p>
        <p>
          In the lack of a user manual, I recommend you examine the test
          suite classes as found in the <code>&lt;jrcs&gt;/tests</code>
          directory in the distribution.
        </p>
      </subsection>
      <subsection name="Third party stuff used/required by JRCS">
        <p>
          The following are third party dependencies:
        </p>
        <table>
          <tr><th>Name</th><th>Description</th></tr>
          <tr>
            <td>JUnit</td>
            <td>
              The library tests are written for the JUnit Testing
              Framework.  For distributions and documentation of JUnit
              see <a href="http://www.junit.org/">http://www.junit.org/</a>.
            </td>
          </tr>
          <tr>
            <td>Ant</td>
            <td>
              Jakarta Ant is used for building the JRCS library. Ant
              is the Jakarta project's build tool. You can get a copy
              of Ant from <a
              href="http://jakarta.apache.org/ant/">http://jakarta.apache.org/ant/</a>.
              You'll need to also download the optional Ant tasks if
              you'll be running JavaCC (more info on JavaCC below).
            </td>
          </tr>
          <tr>
            <td>JavaCC</td>
            <td>
              The RCS parser is constructed using the JavaCC compiler
              compiler.  You can get a copy of JavaCC from <a href=
              "http://www.webgain.com/products/java_cc/">
              http://www.webgain.com/products/java_cc/</a> .  JavaCC
              is not distributable, so you must get a copy of it
              yourself if you intend to use it. Keep in mind that, as
              distributed, this library does not require JavaCC to be
              compiled because all the JavaCC generated .java files are
              included.  If you decide to use JavaCC, please adjust the
              "javacc.lib.dir" property in the build.xml script as
              needed. You'll also need to download the set of optional
              tasks for Ant.
            </td>
          </tr>
        </table>
      </subsection>
      <subsection name="Change Log">
        <p>
          The following is the change log:
        </p>
        <table>
          <tr><th>Date</th><th>Version</th><th>Changes</th></tr>
          <tr>
            <td> 2002.01.08 </td>
            <td> v0.1.2 </td>
            <td>
              Minor changes to distribution
            </td>
          </tr>
          <tr>
            <td> 2001.09.17 </td>
            <td> v0.1.1 </td>
            <td>
              Added Archive.getReleaseVersion() methods to retrieve tip
              version numbers without having to retrieve the the
              release's text.
              <p/>
              Fixed BranchNode.nextInPathTo() so it went on till the tip
              revision when in soft mode.
              <p/>
              Refactored path getting code in Archive.getRelease() to
              make it common to Archive.getReleaseVersion()
            </td>
          </tr>
          <tr>
            <td> 2001.03.22 </td>
            <td> v0.1.0 </td>
            <td>
              Fixed spelling and typing mistakes in the site/docs
            </td>
          </tr>
        </table>
      </subsection>
    </section>
  </body>
</document>
