<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 from org.apache.maven.plugins:maven-changes-plugin:2.12.1:changes-report at 14 September 2021
 | Rendered using Apache Maven Fluido Skin 1.9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
    <meta name="author" content="Eric Pugh" />
    <title>Fulcrum Localization &#x2013; Fulcrum Localization</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><a href="https://turbine.apache.org/" id="bannerLeft" title="Apache Turbine"><img src="https://turbine.apache.org/images/turbine-project.png"  alt="Apache Turbine"/></a></div>
          <div class="pull-right"></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
        <li id="publishDate">Last Published: 14 September 2021<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.0.8-SNAPSHOT</li>
      <li class="pull-right"><span class="divider">|</span>
<a href="https://turbine.apache.org/fulcrum/" class="externalLink" title="Fulcrum">Fulcrum</a></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="https://turbine.apache.org/" class="externalLink" title="Turbine">Turbine</a></li>
      <li class="pull-right"><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a></li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Overview</li>
    <li><a href="index.html" title="Main"><span class="none"></span>Main</a></li>
   <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-down"></span>Project Reports</a>
     <ul class="nav nav-list">
      <li class="active"><a href="#"><span class="none"></span>Changes</a></li>
      <li><a href="apidocs/index.html" title="Javadoc"><span class="none"></span>Javadoc</a></li>
      <li><a href="testapidocs/index.html" title="Test Javadoc"><span class="none"></span>Test Javadoc</a></li>
      <li><a href="xref/index.html" title="Source Xref"><span class="none"></span>Source Xref</a></li>
      <li><a href="xref-test/index.html" title="Test Source Xref"><span class="none"></span>Test Source Xref</a></li>
      <li><a href="cpd.html" title="CPD"><span class="none"></span>CPD</a></li>
      <li><a href="pmd.html" title="PMD"><span class="none"></span>PMD</a></li>
      <li><a href="surefire-report.html" title="Surefire Report"><span class="none"></span>Surefire Report</a></li>
      <li><a href="jacoco/index.html" title="JaCoCo"><span class="none"></span>JaCoCo</a></li>
      <li><a href="jacoco-aggregate/index.html" title="JaCoCo Aggregate"><span class="none"></span>JaCoCo Aggregate</a></li>
      <li><a href="jdepend-report.html" title="JDepend"><span class="none"></span>JDepend</a></li>
      <li><a href="rat-report.html" title="Rat Report"><span class="none"></span>Rat Report</a></li>
      <li><a href="taglist.html" title="Tag List"><span class="none"></span>Tag List</a></li>
      <li><a href="findbugs.html" title="FindBugs"><span class="none"></span>FindBugs</a></li>
     </ul></li>
   <li class="nav-header">Apache</li>
    <li><a href="https://www.apache.org/" class="externalLink" title="Apache Website"><span class="none"></span>Apache Website</a></li>
    <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li>
    <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works"><span class="none"></span>How the ASF works</a></li>
    <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a></li>
    <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li>
    <li><a href="https://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <hr />
            <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
            </div>
          </div>
        </header>
        <main id="bodyColumn"  class="span10" >
<section>
<h2><a name="Fulcrum_Localization"></a>Fulcrum Localization</h2><section>
<h3><a name="Release_History"></a>Release History</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Version</th>
<th>Date</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="#a1.0.8">1.0.8</a></td>
<td>in SVN</td>
<td>&#160;</td></tr>
<tr class="a">
<td><a href="#a1.0.7">1.0.7</a></td>
<td>2019-01-23</td>
<td>&#160;</td></tr>
<tr class="b">
<td><a href="#a1.0.6">1.0.6</a></td>
<td>2009-06-18</td>
<td>&#160;</td></tr>
<tr class="a">
<td><a href="#a1.0.5">1.0.5</a></td>
<td>2004-11-24</td>
<td>&#160;</td></tr>
<tr class="b">
<td><a href="#a1.0.4">1.0.4</a></td>
<td></td>
<td>&#160;</td></tr>
<tr class="a">
<td><a href="#a1.0-alpha-3">1.0-alpha-3</a></td>
<td></td>
<td>&#160;</td></tr></table></section><section>
<h3 id="a1.0.8">Release 1.0.8 &#x2013; in SVN</h3>
<p>No changes in this release.</p></section><section>
<h3 id="a1.0.7">Release 1.0.7 &#x2013; 2019-01-23</h3>
<table border="0" class="table table-striped">
<tr class="b">
<th>Type</th>
<th>Changes</th>
<th>By</th></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Moved changes.xml location for inclusion in report generation</td>
<td><a href="team-list.html#painter">painter</a></td></tr>
<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Update to Java 8</td>
<td><a href="team-list.html#painter">painter</a></td></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Added commons-lang3</td>
<td><a href="team-list.html#painter">painter</a></td></tr>
<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Update unit tests to BaseUnit5Test</td>
<td><a href="team-list.html#painter">painter</a></td></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Update to yaafi-1.0.8 and testcontainer 1.0.8</td>
<td><a href="team-list.html#painter">painter</a></td></tr></table></section><section>
<h3 id="a1.0.6">Release 1.0.6 &#x2013; 2009-06-18</h3>
<table border="0" class="table table-striped">
<tr class="b">
<th>Type</th>
<th>Changes</th>
<th>By</th></tr>
<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Added a Maven-2 build.</td>
<td><a href="team-list.html#tv">tv</a></td></tr>
<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Split the service into a simple one that does not depend on servlet-api
        and an extended one that does. This allows to use the service in non-web
        environments without hassles.</td>
<td><a href="team-list.html#tv">tv</a></td></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Fix unit tests to run properly in non US english environments. Thanks to Kostyantyn Shchekotykhin.</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr></table></section><section>
<h3 id="a1.0.5">Release 1.0.5 &#x2013; 2004-11-24</h3>
<table border="0" class="table table-striped">
<tr class="b">
<th>Type</th>
<th>Changes</th>
<th>By</th></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Merge api and impl jars into one project. Thanks to Kostyantyn Shchekotykhin.</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr>
<tr class="b">
<td><img src="images/remove.gif" alt="Remove" title="Remove" /></td>
<td>Remove Localization, it was a facade that shouldn't be here.
        Facade's of this nature are specific to the user...</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Tweak dependencies to build under gump.</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr>
<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Bump versions, clean up dependencies</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr></table></section><section>
<h3 id="a1.0.4">Release 1.0.4 &#x2013; </h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Type</th>
<th>Changes</th>
<th>By</th></tr>
<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Use inherited getLogger() instead of Log in classes
        extending AbstractLogEnabled.</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr>
<tr class="a">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Update to use Merlin 3.3.0</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr>
<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Merlinized code with input from Stephen</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr></table></section><section>
<h3 id="a1.0-alpha-3">Release 1.0-alpha-3 &#x2013; </h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Type</th>
<th>Changes</th>
<th>By</th></tr>
<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>New Localization class that is a facade to the underlying service.</td>
<td><a href="team-list.html#epugh">epugh</a></td></tr></table></section></section>
        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>&#169;      2005&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>
</p>
        </div>
      </div>
    </footer>
  </body>
</html>
