<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<!--
 To produce reports, use the reporting profile, for example: mvn -Preporting clean site
 You may need to use the -U option to update your environment if you get an error.
 -->
<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-parent</artifactId>
    <version>58</version>
  </parent>
  <groupId>commons-codec</groupId>
  <artifactId>commons-codec</artifactId>
  <version>1.16.0</version>
  <name>Apache Commons Codec</name>
  <inceptionYear>2002</inceptionYear>
  <description>
     The Apache Commons 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>
  <url>https://commons.apache.org/proper/commons-codec/</url>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/CODEC</url>
  </issueManagement>
  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-codec</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-codec</developerConnection>
    <url>https://github.com/apache/commons-codec</url>
    <tag>HEAD</tag>
  </scm>
  <distributionManagement>
    <site>
      <id>stagingSite</id>
      <name>Apache Staging Website</name>
      <url>${commons.deployment.protocol}://people.apache.org/www/commons.apache.org/commons-${commons.componentid}/</url>
    </site>
  </distributionManagement>
  <developers>
    <developer>
      <name>Henri Yandell</name>
      <id>bayard</id>
      <email>bayard@apache.org</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>
      <id>ggregory</id>
      <name>Gary Gregory</name>
      <email>ggregory at apache.org</email>
      <url>https://www.garygregory.com</url>
      <organization>The Apache Software Foundation</organization>
      <organizationUrl>https://www.apache.org/</organizationUrl>      
      <roles>
        <role>PMC Member</role>
      </roles>
      <timezone>America/New_York</timezone>
      <properties>
        <picUrl>https://people.apache.org/~ggregory/img/garydgregory80.png</picUrl>
      </properties>
    </developer>
    <developer>
      <name>David Graham</name>
      <id>dgraham</id>
      <email>dgraham@apache.org</email>
    </developer>
    <developer>
      <name>Julius Davies</name>
      <id>julius</id>
      <email>julius@apache.org</email>
      <organizationUrl>http://juliusdavies.ca/</organizationUrl>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <name>Thomas Neidhart</name>
      <id>tn</id>
      <email>tn@apache.org</email>
    </developer>
    <developer>
      <name>Rob Tompkins</name>
      <id>chtompki</id>
      <email>chtompki@apache.org</email>
    </developer>
    <developer>
      <name>Matt Sicker</name>
      <id>mattsicker</id>
      <email>mattsicker@apache.org</email>
      <url>https://musigma.blog/</url>
    </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>DigestUtil</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>
    <contributor>
      <name>Jochen Wiedmann</name>
      <email>jochen@apache.org</email>
      <roles>
        <role>Base64 code [CODEC-69]</role>
      </roles>
    </contributor>
    <contributor>
      <name>Sebastian Bazley</name>
      <email>sebb@apache.org</email>
      <roles>
        <role>Streaming Base64</role>
      </roles>
    </contributor>
    <contributor>
      <name>Matthew Pocock</name>
      <email>turingatemyhamster@gmail.com</email>
      <roles>
        <role>Beider-Morse phonetic matching</role>
      </roles>
    </contributor>
    <contributor>
      <name>Colm Rice</name>
      <email>colm_rice at hotmail dot com</email>
      <roles>
        <role>Submitted Match Rating Approach (MRA) phonetic encoder and tests [CODEC-161]</role>
      </roles>
    </contributor>
    <contributor>
      <name>Adam Retter</name>
      <organization>Evolved Binary</organization>
      <roles>
        <role>Base16 Input and Output Streams</role>
      </roles>
    </contributor>
  </contributors>
  <dependencies>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.12.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest</artifactId>
      <version>2.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <commons.componentid>codec</commons.componentid>
    <commons.module.name>org.apache.commons.codec</commons.module.name>
    <commons.jira.id>CODEC</commons.jira.id>
    <commons.jira.pid>12310464</commons.jira.pid>
    <!-- Ensure copies work OK (can be removed later when this is in parent POM) -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <commons.encoding>UTF-8</commons.encoding>
    <checkstyle.header.file>${basedir}/src/conf/checkstyle-header.txt</checkstyle.header.file>
    <checkstyle.config.file>${basedir}/src/conf/checkstyle.xml</checkstyle.config.file>
    <japicmp.skip>false</japicmp.skip>
    <jacoco.skip>false</jacoco.skip>
    <!-- Commons Release Plugin -->
    <commons.release.version>1.16.0</commons.release.version>
    <commons.bc.version>1.15</commons.bc.version>
    <commons.rc.version>RC2</commons.rc.version>
    <commons.release-plugin.version>1.7</commons.release-plugin.version>
    <commons.release.isDistModule>true</commons.release.isDistModule>
    <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
    <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>    
    <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
  </properties>
  <build>
    <defaultGoal>clean install apache-rat:check japicmp:cmp checkstyle:check javadoc:javadoc</defaultGoal>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>${commons.scm-publish.version}</version>
          <configuration>
            <ignorePathsToDelete>
              <ignorePathToDelete>archive**</ignorePathToDelete>
            </ignorePathsToDelete>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <configuration>
            <configLocation>${checkstyle.config.file}</configLocation>
            <enableRulesSummary>false</enableRulesSummary>
            <headerFile>${checkstyle.header.file}</headerFile>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
            <resourceExcludes>NOTICE.txt,LICENSE.txt,**/pom.properties,**/sha512.properties</resourceExcludes>
          </configuration>
        </plugin>        
      </plugins>
    </pluginManagement>
    <plugins>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>src/test/resources/org/apache/commons/codec/bla.tar</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/bla.tar.xz</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/empty.bin</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/small.bin</exclude>
          </excludes>
        </configuration>
      </plugin>

      <!-- Add Java 9 Automatic-Module-Name -->
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive combine.children="append">
            <!-- Temporary fix, remove this after this has implemented in parent pom -->
            <manifestEntries>
              <Automatic-Module-Name>${commons.module.name}</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/*AbstractTest.java</exclude>
            <exclude>**/*PerformanceTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>src/assembly/bin.xml</descriptor>
            <descriptor>src/assembly/src.xml</descriptor>
          </descriptors>
          <tarLongFileMode>gnu</tarLongFileMode>
        </configuration>
      </plugin>
      <!-- Allow use of mvn checkstyle:checkstyle. Must agree with reporting section below. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
      <!-- Specify source for JDK 11+ javadoc tool to ignore the 'unnamed' module.
           See: https://bugs.openjdk.java.net/browse/JDK-8212233.
           To be removed with parent 49. -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <source>${maven.compiler.source}</source>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <configuration>
          <ignores>
            <!-- JDK9 breaks compatibility by returning ByteBuffer not Buffer -->
            <ignore>java.nio.ByteBuffer</ignore>
          </ignores>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>src/test/resources/org/apache/commons/codec/bla.tar</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/bla.tar.xz</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/empty.bin</exclude>
            <exclude>src/test/resources/org/apache/commons/codec/small.bin</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <!-- We need to specify reportSets because 2.9.1 creates two reports -->
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${commons.pmd.version}</version>
        <configuration>
          <targetJdk>${maven.compiler.target}</targetJdk>
          <linkXref>true</linkXref>
          <rulesets>
            <ruleset>${basedir}/src/conf/pmd.xml</ruleset>
          </rulesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <tags>
            <tag>TODO</tag>
            <tag>NOPMD</tag>
            <tag>NOTE</tag>
          </tags>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>javancss-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
    <profile>
      <id>java9+</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <!-- coverall version 4.3.0 does not work with java 9, see https://github.com/trautonen/coveralls-maven-plugin/issues/112 -->
        <coveralls.skip>true</coveralls.skip>
      </properties>
    </profile>
  </profiles>
</project>
