<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2002-2005 The Apache Software Foundation.
 
Licensed 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.
-->
<project>
    <pomVersion>3</pomVersion>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <currentVersion>1.4-SNAPSHOT</currentVersion>
    <inceptionYear>2002</inceptionYear>
    <name>Codec</name>
    <shortDescription>Simple encoders and decoders</shortDescription>
    <description>
   The codec package contains simple encoder and decoders for
   various formats such as Base64 and Hexadecimal.  In addition to these
   widely used encoders and decoders, the codec package also maintains a
   collection of phonetic encoding utilities.
  </description>
    <logo>/images/logo.png</logo>
    <url>http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</url>
    <package>org.apache.commons.${pom.artifactId.substring(8)}</package>
    <organization>
        <name>The Apache Software Foundation</name>
        <url>http://jakarta.apache.org</url>
        <logo>http://jakarta.apache.org/images/original-jakarta-logo.gif</logo>
    </organization>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>/LICENSE.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <gumpRepositoryId>jakarta</gumpRepositoryId>
    <issueTrackingUrl>http://issues.apache.org/bugzilla/</issueTrackingUrl>
    <siteAddress>jakarta.apache.org</siteAddress>
    <siteDirectory>/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</siteDirectory>
    <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory>
    <repository>
        <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/${pom.artifactId.substring(8)}/trunk</connection>
        <url>http://svn.apache.org/repos/asf/jakarta/commons/proper/${pom.artifactId.substring(8)}/trunk</url>
    </repository>
    <mailingLists>
        <mailingList>
            <name>Commons Dev List</name>
            <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
            <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
        </mailingList>
        <mailingList>
            <name>Commons User List</name>
            <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
            <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
        </mailingList>
    </mailingLists>
    <versions>
        <version>
            <id>1.1-rc1</id>
            <name>1.1-rc1</name>
            <tag>CODEC_1_1_RC1</tag>
        </version>
        <version>
            <id>1.1</id>
            <name>1.1</name>
            <tag>CODEC_1_1</tag>
        </version>
        <version>
            <id>1.2-rc1</id>
            <name>1.2-rc1</name>
            <tag>CODEC_1_2_RC1</tag>
        </version>
        <version>
            <id>1.2</id>
            <name>1.2</name>
            <tag>CODEC_1_2</tag>
        </version>
    </versions>
    <branches>
  </branches>
    <developers>
        <developer>
            <name>Henri Yandell</name>
            <id>bayard</id>
            <email>bayard@generationjava.com</email>
        </developer>
        <developer>
            <name>Tim OBrien</name>
            <id>tobrien</id>
            <email>tobrien@apache.org</email>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <name>Scott Sanders</name>
            <id>sanders</id>
            <email>sanders@totalsync.com</email>
        </developer>
        <developer>
            <name>Rodney Waldhoff</name>
            <id>rwaldhoff</id>
            <email>rwaldhoff@apache.org</email>
        </developer>
        <developer>
            <name>Daniel Rall</name>
            <id>dlr</id>
            <email>dlr@finemaltcoding.com</email>
        </developer>
        <developer>
            <name>Jon S. Stevens</name>
            <id>jon</id>
            <email>jon@collab.net</email>
        </developer>
        <developer>
            <name>Gary D. Gregory</name>
            <id>ggregory</id>
            <email>ggregory@seagullsw.com</email>
            <organization>Seagull Software</organization>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>David Graham</name>
            <id>dgraham</id>
            <email>dgraham@apache.org</email>
        </developer>
    </developers>
    <contributors>
        <contributor>
            <name>Christopher O'Brien</name>
            <email>siege@preoccupied.net</email>
            <roles>
                <role>hex</role>
                <role>md5</role>
                <role>architecture</role>
            </roles>
        </contributor>
        <contributor>
            <name>Martin Redington</name>
            <roles><role>representing xml-rpc</role></roles>
        </contributor>
        <contributor>
            <name>Jeffery Dever</name>
            <roles><role>representing http-client</role></roles>
        </contributor>
        <contributor>
            <name>Steve Zimmermann</name>
            <email>steve.zimmermann@heii.com</email>
            <roles><role>documentation</role></roles>
        </contributor>
        <contributor>
            <name>Benjamin Walstrum</name>
            <email>ben@walstrum.com</email>
        </contributor>
        <contributor>
            <name>Oleg Kalnichevski</name>
            <email>oleg@ural.ru</email>
            <roles><role>representing http-client</role></roles>
        </contributor>
        <contributor>
            <name>Dave Dribin</name>
            <email>apache@dave.dribin.org</email>
            <roles><role>digest util</role></roles>
        </contributor>
        <contributor>
            <name>Alex Karasulu</name>
            <email>aok123 at bellsouth.net</email>
            <roles><role>Submitted Binary class and test</role></roles>
        </contributor>
        <contributor>
            <name>Matthew Inger</name>
            <email>mattinger at yahoo.com</email>
            <roles><role>Submitted DIFFERENCE algorithm for Soundex and RefinedSoundex</role></roles>
        </contributor>
    </contributors>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <url>http://www.junit.org</url>
            <properties>
              <scope>test</scope>
            </properties>
        </dependency>
    </dependencies>
    <issueTrackingUrl>http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Commons&amp;component=Codec&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time</issueTrackingUrl>
    <build>
        <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
        <sourceDirectory>src/java</sourceDirectory>
        <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
        <integrationUnitTestSourceDirectory/>
        <aspectSourceDirectory/>
        <!-- Unit test classes -->
        <unitTest>
            <includes>
                <include>**/Test*.java</include>
                <include>**/*Test.java</include>
            </includes>
            <excludes>
                <exclude>**/*AbstractTest.java</exclude>
            </excludes>
            <resources>
                <resource>
                    <directory>${pom.build.unitTestSourceDirectory}</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
        </unitTest>
    </build>
    <reports>
        <report>maven-changes-plugin</report>
        <report>maven-changelog-plugin</report>
        <report>maven-checkstyle-plugin</report>
        <report>maven-clover-plugin</report>
        <report>maven-developer-activity-plugin</report>
        <report>maven-file-activity-plugin</report>
        <!--   <report>maven-findbugs-plugin</report> -->
        <report>maven-javadoc-plugin</report>
        <report>maven-jdepend-plugin</report>
        <report>maven-jdiff-plugin</report>
        <report>maven-junit-report-plugin</report>
        <report>maven-jxr-plugin</report>
        <report>maven-license-plugin</report>
        <!--   <report>maven-linkcheck-plugin</report> -->
        <!--   <report>maven-jellydoc-plugin</report> -->
        <!--   <report>maven-statcvs-plugin</report> -->
        <!--   <report>maven-tasklist-plugin</report> -->
    </reports>
</project>
