RAT (Release Audit Tool) results

The following document contains the results of RAT (Release Audit Tool) .

*****************************************************
Summary
-------
Notes: 2
Binaries: 4
Archives: 0
Standards: 53

Apache Licensed: 34
Generated Documents: 0

JavaDocs are generated and so license header is optional
Generated files do not required license headers

19 Unknown Licenses

*******************************

Archives (+ indicates readable, $ unreadable): 

 
*****************************************************
  Files with AL headers will be marked L
  Binary files (which do not require AL headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc will be marked N
 !????? build.xml
  N     LICENSE.txt
  N     NOTICE.txt
 !????? pom.xml
  AL    project.properties
  AL    project.xml
 !????? src/examples/i18n-jdbc.properties
 !????? src/examples/messageBundle.properties
 !????? src/examples/messageBundle_de.properties
  AL    src/examples/org/apache/i18n/examples/LocalizedExceptionExample.java
  AL    src/examples/org/apache/i18n/examples/QualifiedJdbcExample.java
  AL    src/java/org/apache/commons/i18n/bundles/ErrorBundle.java
  AL    src/java/org/apache/commons/i18n/bundles/MessageBundle.java
  AL    src/java/org/apache/commons/i18n/bundles/TextBundle.java
  AL    src/java/org/apache/commons/i18n/I18nUtils.java
 !????? src/java/org/apache/commons/i18n/JdbcMessageProvider.java
  AL    src/java/org/apache/commons/i18n/LocalizedBundle.java
  AL    src/java/org/apache/commons/i18n/LocalizedError.java
  AL    src/java/org/apache/commons/i18n/LocalizedException.java
  AL    src/java/org/apache/commons/i18n/LocalizedRuntimeException.java
  AL    src/java/org/apache/commons/i18n/MessageManager.java
  AL    src/java/org/apache/commons/i18n/MessageNotFoundException.java
  AL    src/java/org/apache/commons/i18n/MessageProvider.java
  AL    src/java/org/apache/commons/i18n/ResourceBundleMessageProvider.java
  AL    src/java/org/apache/commons/i18n/XMLMessageProvider.java
 !????? src/resources/i18n-messages.properties
 !????? src/resources/i18n-messages_de.properties
 !????? src/site/site.xml
 !????? src/test/messageBundle.properties
 !????? src/test/messageBundle2.properties
 !????? src/test/messageBundle_de.properties
  AL    src/test/org/apache/commons/i18n/bundles/ErrorBundleTest.java
  AL    src/test/org/apache/commons/i18n/bundles/MessageBundleTest.java
  AL    src/test/org/apache/commons/i18n/bundles/TextBundleTest.java
  AL    src/test/org/apache/commons/i18n/I18nUtilsTest.java
  AL    src/test/org/apache/commons/i18n/JdbcMessageProviderTest.java
  AL    src/test/org/apache/commons/i18n/LocalizedBundleTest.java
  AL    src/test/org/apache/commons/i18n/LocalizedErrorTest.java
  AL    src/test/org/apache/commons/i18n/LocalizedExceptionTest.java
  AL    src/test/org/apache/commons/i18n/LocalizedRuntimeExceptionTest.java
  AL    src/test/org/apache/commons/i18n/MessageManagerTest.java
  AL    src/test/org/apache/commons/i18n/MessageNotFoundExceptionTest.java
  AL    src/test/org/apache/commons/i18n/MessageProviderTestBase.java
  AL    src/test/org/apache/commons/i18n/MockProviderTestBase.java
  AL    src/test/org/apache/commons/i18n/MyListResourceBundle.java
  AL    src/test/org/apache/commons/i18n/ResourceBundleMessageProviderTest.java
  AL    src/test/org/apache/commons/i18n/XMLMessageProviderTest.java
 !????? src/test/testMessages.xml
 !????? src/test/variantTestMessages.xml
 !????? xdocs/changes.xml
 !????? xdocs/examples.xml
  B     xdocs/i18n.pdf
  B     xdocs/images/i18n-logo-white.png
  B     xdocs/images/i18n-logo-white.psd
  B     xdocs/images/rss.png
 !????? xdocs/index.xml
  AL    xdocs/issue-tracking.xml
 !????? xdocs/navigation.xml
 !????? xdocs/quickstart.xml
 
 *****************************************************
 Printing headers for files without AL header...
 
 
 =======================================================================
 ==build.xml
 =======================================================================
 <?xml version="1.0"?>

<!--
 And build script for Apache Commons i18n
-->
<project name="commons-i18n" default="jar" basedir=".">

    <!-- Give user a chance to override without editing this file
      (and without typing -D each time it compiles it) -->
    <property file="build.properties"/>
    <property file=".ant.properties" />

    <property name="debug" value="true" />
    <property name="deprecation" value="true" />
    <property name="optimize" value="true" />

    <property name="version" value="0.3" />
    <property name="name" value="commons-i18n" />

    <!--
      ===================================================================
      Set the properties related to the source tree
      ===================================================================
    -->
    <property name="src.dir" value="src" />
    <property name="java.dir" value="${src.dir}/java" />
    <property name="resources.dir" value="${src.dir}/resources" />
    <property name="test.src.dir" value="${src.dir}/test" />
    <property name="lib.dir" value="lib" />
    <property name="docs.dir" value="doc" />
    <property name="dist.dir" value="dist" />

    <!--
      ===================================================================
      Set the properties for the build area
      ===================================================================
    -->
    <property name="build.dir" value="target" />
    <property name="build.classes" value="${build.dir}/classes" />
    <property name="test.classes" value="${build.dir}/test-classes" />
    <property name="build.lib" value="${build.dir}/lib" />
    <property name="build.javadocs" value="${docs.dir}/javadoc" />

    <path id="classpath">
        <pathelement location="${build.classes}" />
        <fileset dir="${lib.dir}" includes="*.jar" />
    </path>

    <!--
      ===================================================================

 =======================================================================
 ==pom.xml
 =======================================================================
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-sandbox-parent</artifactId>
    <version>6</version>
  </parent>
  <artifactId>commons-i18n</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Commons i18n (Sandbox)</name>
  <description>Internationalization package</description>
  <url>http://commons.apache.org/sandbox/i18n/</url>
  <inceptionYear>2004</inceptionYear>
  <developers>
    <developer>
      <id>dflorey</id>
      <name>Daniel Florey</name>
      <email>dflorey@apache.org</email>
      <organization>Apache Software Foundation</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>ozeigermann</id>
      <name>Oliver Zeigermann</name>
      <email>ozeigermann@apache.org</email>
      <organization>Apache Software Foundation</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Mattias Jiderhamn</name>
      <email>mattias.jiderhamn@expertsystem.se</email>
    </contributor>
    <contributor>
      <name>Anaximandro (Woody)</name>
      <email>agodinhost@globo.com</email>
    </contributor>
  </contributors>
  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/commons/sandbox/i18n/trunk/</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/sandbox/i18n/trunk/</developerConnection>
    <url>http://svn.apache.org/repos/asf/commons/sandbox/i18n/trunk/</url>

 =======================================================================
 ==src/examples/i18n-jdbc.properties
 =======================================================================
 jdbc.connect.driver=org.hsqldb.jdbcDriver
jdbc.connect.url=jdbc:hsqldb:.
jdbc.connect.login=sa
jdbc.connect.password=
jdbc.sql.table=messages
jdbc.sql.locale.column=language
jdbc.sql.key.column=id

 =======================================================================
 ==src/examples/messageBundle.properties
 =======================================================================
 # Example for using message bundles using a flat properties-file
helloWorld.title=Hello World
helloWorld.text=I wish you a merry christmas!

 =======================================================================
 ==src/examples/messageBundle_de.properties
 =======================================================================
 # Example for using message bundles using a flat properties-file
helloWorld.title=Hallo Welt
helloWorld.text=Ich wünsche Dir alles Gute und ein frohes Fest!

 =======================================================================
 ==src/java/org/apache/commons/i18n/JdbcMessageProvider.java
 =======================================================================
 package org.apache.commons.i18n;

import javax.sql.DataSource;
import java.util.*;
import java.sql.*;
import java.text.MessageFormat;

/**
 * The <code>JdbcMessageProvider</code> provides messages stored in a database (or other data source)
 * accessible via JDBC. The <code>JdbcMessageProvider</code> only has support for different languages,
 * but if support for country or variant is required one could easily subclass it and override the
 * <code>getLocale</code> method. If <code>getLocale</code> is overridden, the languageColumn parameter
 * (or <code>jdbc.sql.locale.column<code> Map entry) of the constructors may be null, since it will not be used.
 * @author Mattias Jiderhamn
 */
public class JdbcMessageProvider implements MessageProvider {
    /**
     * This Map has locale or language as key, and a Map with the different
     * messages as value.
     */
    private final Map locales = new HashMap();

    private String idColumn;

    private String languageColumn;

    /**
     * Create new JDBC <code>MessageProvider</code> using the provided connection.
     * @param conn The connection to use for initialization.
     * @param table The name of the table holding the messages
     * @param idColumn The name of the column holding the message ID
     * @param languageColumn The name of the column containing the ISO-639 language code.
     * @throws SQLException If there is an error getting data from the table
     */
    public JdbcMessageProvider(Connection conn, String table, String idColumn, String languageColumn)
            throws SQLException {
        this.idColumn = idColumn;
        this.languageColumn = languageColumn;
        init(conn, table);
    }

    /**
     * Create new JDBC <code>MessageProvider</code> using a connection from the provided <code>DataSource</code>. Will
     * get a connection from the <code>DataSource</code>, initialize and then return the connection.
     * @param ds The connection to use for initialization.
     * @param table The name of the table holding the messages
     * @param idColumn The name of the column holding the message ID
     * @param languageColumn The name of the column containing the ISO-639 language code.
     * @throws SQLException If there is an error getting data from the table
     */

 =======================================================================
 ==src/resources/i18n-messages.properties
 =======================================================================
 noMessageEntriesFound=No message entries found for bundle with key {0}
messageEntryNotFound=Message bundle with key {0} does not contain an entry with key {1}
resourceBundleNotFound=Could not find resource bundle with base name {0}, uninstalling it
messageParsingError=Error while parsing message file

 =======================================================================
 ==src/resources/i18n-messages_de.properties
 =======================================================================
 noMessageEntriesFound=Keine Einträge für die Nachricht mit Schlüssel {0} gefunden
messageEntryNotFound=Die Nachricht mit Schlüssel {0} enthält keinen Eintrag mit Schlüssel {1}
resourceBundleNotFound=Übersetzungsdatei mit dem Namen {0} wurde nicht gefunden und wird daher deinstalliert
messageParsingError=Fehler beim Einlesen der Übersetzungsdatei

 =======================================================================
 ==src/site/site.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Commons I18n">
  <bannerRight>
    <name>Commons I18n</name>
    <src>/images/i18n-logo-white.png</src>
    <href>http://commons.apache.org/sandbox/i18n/</href>
  </bannerRight>
  <body>

    <menu name="Commons I18n">
      <item name="Overview" href="/index.html" />
      <item name="Getting started" href="/quickstart.html" />
      <item name="Examples" href="/examples.html" />
    </menu>
    
    <menu name="Development">
      <item name="Mailing Lists"           href="/mail-lists.html"/>
      <item name="Issue Tracking"          href="/issue-tracking.html"/>
      <item name="Team"                    href="/team-list.html"/>
      <item name="Source Repository"       href="/source-repository.html"/>
      <item name="Javadoc (latest)"        href="/apidocs/index.html"/>
    </menu>

  </body>
</project>

 =======================================================================
 ==src/test/messageBundle.properties
 =======================================================================
 # Example for using message bundles using a flat properties-file
helloWorld.title=Hello World
helloWorld.text=Hello World, we are in {0}.
helloWorld.notTranslated=This entry is not translated to any other languages

 =======================================================================
 ==src/test/messageBundle2.properties
 =======================================================================
 # Example 2 for using message bundles using a flat properties-file
onlyInSecond.title=This message exists in another resource bundle

 =======================================================================
 ==src/test/messageBundle_de.properties
 =======================================================================
 # Example for using message bundles using a flat properties-file
helloWorld.title=Hallo Welt
helloWorld.text=Hallo Welt, wir sind in {0}.

 =======================================================================
 ==src/test/testMessages.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1" ?>
<messages>
    <!-- Feel free to insert your locale or correct mispellings here -->
    <message id="helloWorld">
        <locale language="en">
            <entry key="title">Hello World</entry>
            <entry key="text">Hello World, we are in {0}.</entry>
<!--            <entry key="summary">sample summary to test english messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test english messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
            <entry key="notTranslated">This entry is not translated to any other languages</entry>
        </locale>
        <locale language="pt" country="br">
            <entry key="title">olo mundo</entry>
            <entry key="text">hello mundo, nós estamos no {0}.</entry>
<!--            <entry key="summary">sample summary to test portuguese messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test portuguese messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
        <locale language="es">
            <entry key="title">hola mundo</entry>
            <entry key="text">hola mundo, estamos em los {0}.</entry>
<!--            <entry key="summary">sample summary to test spanish messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test spanish messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
        <locale language="it">
            <entry key="title">ciao mondo</entry>
            <entry key="text">ciao mondo, siamo negli {0}.</entry>
<!--            <entry key="summary">sample summary to test italian messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test italian messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
        <locale language="fr">
            <entry key="title">bonjour monde</entry>
            <entry key="text">bonjour monde, nous sommes aux {0}.</entry>
<!--            <entry key="summary">sample summary to test francais messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test francais messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
        <locale language="du">
            <entry key="title">hello wereld</entry>
            <entry key="text">hello wereld, zijn wij in de {0}.</entry>
<!--            <entry key="summary">sample summary to test dutch messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test dutch messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
        <locale language="de">
            <entry key="title">Hallo Welt</entry>
            <entry key="text">Hallo Welt, wir sind in {0}.</entry>
<!--            <entry key="summary">sample summary to test german messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
<!--            <entry key="details">sample deatils to test german messages. Country = {0}, language = {1} and variant = {2}.</entry>-->
        </locale>
    </message>
</messages>

 =======================================================================
 ==src/test/variantTestMessages.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1" ?>
<messages>
    <message id="variants">
        <locale language="en">
            <entry key="theKey">hello world</entry>
        </locale>
        <!-- For Scottish translations, see http://www.whoohoo.co.uk/main.asp?pageid=scottie&topic=translator -->
        <locale language="en" country="GB" variant="scottish">
            <entry key="theKey">Awrite warld</entry>
        </locale>
        <locale country="BW">
            <entry key="theKey">Hello Botswana</entry>
        </locale>
        <locale language="en" variant="baby">
            <entry key="theKey">Ga, ga, ga</entry>
        </locale>
    </message>
</messages>

 =======================================================================
 ==xdocs/changes.xml
 =======================================================================
 <document>
  <properties>
    <title>I18n</title>
    <author email="dflorey@apache.org">Daniel Florey</author>
  </properties>
  <body>
    <release version="0.5" date="2005-02-18">
      <action dev="dflorey" type="add">
        Added localized messages for all log and exception messages in the i18n-component itself
      </action>              
      <action dev="dflorey" type="add">
        Added initial test suite
      </action>              
    </release>
    <release version="0.4" date="2005-02-16">
      <action dev="dflorey" type="add">
        Added localized runtime exception and localized error class
      </action>              
      <action dev="dflorey" type="update">
        Moved all message bundles to bundles-subpackage
      </action>              
    </release>
    <release version="0.3" date="2005-02-14">
      <action dev="dflorey" type="add">
        Added pluggable message providers
      </action>              
      <action dev="dflorey" type="add">
        Added property file based message provider
      </action>              
    </release>
  </body>
</document>

 =======================================================================
 ==xdocs/examples.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1"?>

<document>

 <properties>
  <title>Examples</title>
  <author email="dev@commons.apache.org">Commons Documentation Team</author>
 </properties>

 <body>
 
<section name="Examples">
<p>This page contains some examples showing the capabilities of the i18n-compoenent.
Most of the examples can be found in the components sources in the example-package.</p>
</section>

<section name="Using localized exceptions">
<p>
The following example shows how to take advantage of detailed error information
provided by localized exceptions. In the real world it is no good idea to create
LocalizedExceptions directly, but to create your own subclasses of LocalizedException.</p>
<source>
public class LocalizedExceptionExample {
    private static final Logger logger = Logger
            .getLogger(LocalizedExceptionExample.class.getName());

    public static void main(String[] args) {
        // Install the file providing the required messages for this example
        MessageManager.addMessageProvider("org.apache.commons-i18n.examples",
                new XMLMessageProvider(Thread.currentThread().getContextClassLoader().getResourceAsStream(
                        "exampleMessages.xml")));

        // Simulate the locale of the current user in a multi-user environment
        // such as a web application
        Locale currentUsersLocale = Locale.GERMAN;

        // This is the real part dealing with localized exceptions
        try {
            someMethodThrowingAnException();
        } catch (LocalizedException exception) {
            // Retrieve the detailed localized error message
            ErrorBundle errorMessage = exception.getErrorMessage();

            // Print the summary of this error to the log with level SEVERE
            // using the VM default locale:
            logger.log(Level.SEVERE, errorMessage.getSummary(Locale
                    .getDefault()));

            // Print the details of this error to the log with level FINE
            // using the VM default locale:

 =======================================================================
 ==xdocs/index.xml
 =======================================================================
 <?xml version="1.0"?>

<document>

 <properties>
  <title>Overview</title>
  <author email="dev@commons.apache.org">Commons Documentation Team</author>
 </properties>

 <body>

<section name="The I18n Component">
<p>Developing a localized application is already supported by the Java language in a comfortable way. 
This package adds the feature of localized message bundles that group localized
messages together. Think of a localized error description that consists of title, text, summary and
error details. These localized messages can be grouped together to form a localized error bundle.</p>
<p>This might be very useful in order to display these entries of the error description to the user in different ways. 
In a web based environment it might make sense to format the error title in a different way than the details. When logging
error messages it might be useful to use different log levels for the error summary or the error details.</p>
<p>Localized exceptions make use of this detailed error description. Have a look at the <a href="examples.html">examples</a>
to see localized exception in action.</p>
<p>A <i>MessageManager</i> takes care of handling different pluggable <i>MessageProviders</i> that deal with different
message sources. This allows you to define the messages in your favourite format and 
enables easy migration to the i18n-component.</p>
<p>Each <i>MessageProvider</i> can handle a number of different resources so that a bunch of messages 
defined in a single resource (e.g. a file) can be updated or uninstalled.</p>
<p>To get started go <a href="quickstart.html">here</a>.</p> 
</section>

<section name="Features at a glance">
<ul>
  <li>Messages that are part of an entity can be grouped together using bundles</li>
  <li>The localization takes place lately when accessing message entries. This allows printing the same message in different languages.</li>
  <li>Localized exceptions enable a java applications to provide detailed localized exception messages.</li>
  <li>XML and ResourceBundle based message providers</li>
  <li>Pluggable custom message providers enable access to existing data sources.</li>
</ul>
</section>

<section name="Releases">
<p>
None. This is a <i>sandbox</i> component.
</p>
<ul>
  <li>The code is unreleased</li>
  <li>Methods and classes can and will appear and disappear without warning</li>
  <li>If you like the code and want to push it towards a release, join the mailing list!</li>
</ul>
<p>
You can obtain snapshot builds <a href="http://people.apache.org/repository/commons-i18n/distributions/">here</a>.

 =======================================================================
 ==xdocs/navigation.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE org.apache.commons.menus SYSTEM '../../commons-build/menus/menus.dtd'>
<project name="Commons&#xA0;I18n">
    <title>Commons&#xA0;I18n</title>
    <body>
        <menu name="Commons&#xA0;I18n">
            <item name="Overview" href="/index.html" />
            <item name="Getting started" href="/quickstart.html" />
            <item name="Examples" href="/examples.html" />
        </menu>
        &common-menus;
    </body>
</project>

 =======================================================================
 ==xdocs/quickstart.xml
 =======================================================================
 <?xml version="1.0"?>

<document>

 <properties>
  <title>Quickstart</title>
  <author email="dev@commons.apache.org">Commons Documentation Team</author>
 </properties>

 <body>
 
<section name="Getting started">
<p>In order to get an impression how this component works, we will start with an
	example showing the capabilities of this package.</p>
</section>
<section name="Defining the messages in an XML file">
<p>First of all we need to define some localized messages. There are two default message providers 
included that can be used to provide messages either in an XML-based format or in the well known ResourceBundle format.</p>
	<p>Using XML based files has some advantages:</p>
	<ul>
		<li>You can use an XML-editor of your choice to get assistance while typing the messages</li>
		<li>All entries that belong together are logically grouped into a single XML element</li>
		<li>All provided languages reside in a single file, so it is easy to add a new language (matter of taste?)</li>
		<li>As the whole file gets parsed at initialization time, the localization is very fast</li>
	</ul>
	<source>
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;messages>
  &lt;message id="welcome">
    &lt;locale language="en"> 
	  &lt;entry key="text">Welcome&lt;/entry>
    &lt;/locale> 
    &lt;locale language="de"> 
      &lt;entry key="text">Willkommen&lt;/entry>
    &lt;/locale> 
  &lt;/message>
  &lt;message id="usage">
    &lt;locale language="en"> 
      &lt;entry key="title">Usage&lt;/entry>
      &lt;entry key="text">The application requires the following parameters:&lt;/entry>
      &lt;/locale> 
    &lt;locale language="de"> 
      &lt;entry key="title">Benutzung&lt;/entry>
      &lt;entry key="text">Die folgenden Parameter werden erwartet:&lt;/entry>
    &lt;/locale> 
  &lt;/message>
  &lt;message id="validationFailed">
    &lt;locale language="en">
      &lt;entry key="title">Parameter {0} invalid&lt;/entry>
      &lt;entry key="text">The given value of the parameter {0} is invalid&lt;/entry>