File apache-commons-codec-build.xml of Package apache-commons-codec

<?xml version="1.0" encoding="UTF-8"?>

<project name="commons-codec" default="package" basedir=".">

  <!-- ====================================================================== -->
  <!-- Build environment properties                                           -->
  <!-- ====================================================================== -->

  <property file="build.properties"/>

  <property name="project.groupId" value="commons-codec"/>
  <property name="project.artifactId" value="commons-codec"/>
  <property name="project.version" value="1.14"/>
  <property name="project.name" value="Apache Commons Codec"/>
  <property name="project.description" value="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."/>
  <property name="project.organization.name" value="The Apache Software Foundation"/>
  <property name="project.organization.url" value="http://commons.apache.org/proper/commons-codec/"/>
  
  <property name="bundle.version" value="${project.version}.0"/>
  <property name="bundle.symbolicName" value="org.apache.commons.codec"/>
  
  <property name="compiler.source" value="1.6"/>
  <property name="compiler.target" value="${compiler.source}"/>

  <property name="build.finalName" value="${project.artifactId}-${project.version}"/>
  <property name="build.dir" value="target"/>
  <property name="build.outputDir" value="${build.dir}/classes"/>
  <property name="build.srcDir" value="src/main/java"/>
  <property name="build.resourceDir.0" value="src/main/resources"/>
  <property name="build.resourceDir.1" value="."/>
  <property name="build.testOutputDir" value="${build.dir}/test-classes"/>
  <property name="build.testDir" value="src/test/java"/>
  <property name="build.testResourceDir.0" value="src/test/resources"/>
  <property name="build.testResourceDir.1" value="."/>
  <property name="test.reports" value="${build.dir}/test-reports"/>
  <property name="reporting.outputDirectory" value="${build.dir}/site"/>

  <!-- ====================================================================== -->
  <!-- Defining classpaths                                                    -->
  <!-- ====================================================================== -->

  <path id="build.classpath"/>
  <path id="build.test.classpath">
    <!-- junit-4.12 hamcrest-core-1.3 commons-lang3-3.5 -->
    <fileset dir="lib">
      <include name="**/*.jar"/>
    </fileset>
  </path>

  <!-- ====================================================================== -->
  <!-- Cleaning up target                                                     -->
  <!-- ====================================================================== -->

  <target name="clean" description="Clean the output directory">
    <delete dir="${build.dir}"/>
  </target>

  <!-- ====================================================================== -->
  <!-- Compilation target                                                     -->
  <!-- ====================================================================== -->

  <target name="compile" description="Compile the code">
    <mkdir dir="${build.outputDir}"/>
    <javac destdir="${build.outputDir}" 
           encoding="UTF-8" 
           nowarn="false" 
           debug="true" 
           optimize="false" 
           deprecation="true" 
           target="${compiler.target}" 
           verbose="false" 
           fork="false" 
           source="${compiler.source}">
      <src>
        <pathelement location="${build.srcDir}"/>
      </src>
      <classpath refid="build.classpath"/>
    </javac>
    <copy todir="${build.outputDir}">
      <fileset dir="${build.resourceDir.0}"/>
    </copy>
    <mkdir dir="${build.outputDir}/META-INF"/>
    <copy todir="${build.outputDir}/META-INF">
      <fileset dir="${build.resourceDir.1}">
        <include name="NOTICE.txt"/>
        <include name="LICENSE.txt"/>
      </fileset>
    </copy>
  </target>

  <!-- ====================================================================== -->
  <!-- Test-compilation target                                                -->
  <!-- ====================================================================== -->

  <target name="compile-tests" 
          depends="compile" 
          description="Compile the test code" 
          unless="test.skip">
    <mkdir dir="${build.testOutputDir}"/>
    <javac destdir="${build.testOutputDir}" 
           encoding="UTF-8" 
           nowarn="false" 
           debug="true" 
           optimize="false" 
           deprecation="true" 
           target="${compiler.target}" 
           verbose="false" 
           fork="false" 
           source="${compiler.source}">
      <src>
        <pathelement location="${build.testDir}"/>
      </src>
      <classpath>
        <path refid="build.test.classpath"/>
        <pathelement location="${build.outputDir}"/>
      </classpath>
    </javac>
    <copy todir="${build.testOutputDir}">
      <fileset dir="${build.testResourceDir.0}"/>
    </copy>
    <mkdir dir="${build.testOutputDir}/META-INF"/>
    <copy todir="${build.testOutputDir}/META-INF">
      <fileset dir="${build.testResourceDir.1}">
        <include name="NOTICE.txt"/>
        <include name="LICENSE.txt"/>
      </fileset>
    </copy>
  </target>

  <!-- ====================================================================== -->
  <!-- Run all tests                                                          -->
  <!-- ====================================================================== -->

  <target name="test" 
          depends="compile-tests, junit-missing" 
          unless="junit.skipped" 
          description="Run the test cases">
    <mkdir dir="${test.reports}"/>
    <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
      <sysproperty key="basedir" value="."/>
      <formatter type="xml"/>
      <formatter type="plain" usefile="false"/>
      <classpath>
        <path refid="build.test.classpath"/>
        <pathelement location="${build.outputDir}"/>
        <pathelement location="${build.testOutputDir}"/>
      </classpath>
      <batchtest todir="${test.reports}" unless="test">
        <fileset dir="${build.testDir}">
          <include name="**/Test*.java"/>
          <include name="**/*Test.java"/>
          <include name="**/*TestCase.java"/>
          <exclude name="**/*AbstractTest.java"/>
          <exclude name="**/*PerformanceTest.java"/>
        </fileset>
      </batchtest>
      <batchtest todir="${test.reports}" if="test">
        <fileset dir="${build.testDir}">
          <include name="**/${test}.java"/>
          <exclude name="**/*AbstractTest.java"/>
          <exclude name="**/*PerformanceTest.java"/>
        </fileset>
      </batchtest>
    </junit>
  </target>

  <target name="test-junit-present">
    <available classname="junit.framework.Test" property="junit.present" classpathref="build.test.classpath"/>
  </target>

  <target name="test-junit-status" 
          depends="test-junit-present">
    <condition property="junit.missing">
      <and>
        <isfalse value="${junit.present}"/>
        <isfalse value="${test.skip}"/>
      </and>
    </condition>
    <condition property="junit.skipped">
      <or>
        <isfalse value="${junit.present}"/>
        <istrue value="${test.skip}"/>
      </or>
    </condition>
  </target>

  <target name="junit-missing" 
          depends="test-junit-status" 
          if="junit.missing">
    <echo>=================================== WARNING ===================================</echo>
    <echo> JUnit is not present in the test classpath or your $ANT_HOME/lib directory. Tests not executed.</echo>
    <echo>===============================================================================</echo>
  </target>

  <!-- ====================================================================== -->
  <!-- Javadoc target                                                         -->
  <!-- ====================================================================== -->

  <target name="javadoc" description="Generates the Javadoc of the application">
    <javadoc sourcepath="${build.srcDir}" 
             packagenames="*" 
             destdir="${reporting.outputDirectory}/apidocs" 
             access="protected" 
             old="false" 
             verbose="false" 
             encoding="UTF-8" 
             version="true" 
             use="true" 
             author="true" 
             splitindex="false" 
             nodeprecated="false" 
             nodeprecatedlist="false" 
             notree="false" 
             noindex="false" 
             nohelp="false" 
             nonavbar="false" 
             serialwarn="false" 
             docencoding="UTF-8" 
             source="${compiler.source}" 
             linksource="true" 
             breakiterator="false">
    </javadoc>
  </target>

  <!-- ====================================================================== -->
  <!-- Package target                                                         -->
  <!-- ====================================================================== -->

  <target name="package" depends="compile,test" description="Package the application">
    <jar jarfile="${build.dir}/${build.finalName}.jar" 
         compress="true" 
         index="false" 
         basedir="${build.outputDir}" 
         excludes="**/package.html">
      <manifest>
		<attribute name="Automatic-Module-Name" value="${bundle.symbolicName}"/>
		<attribute name="Bundle-Description" value="${project.description}"/>
		<attribute name="Bundle-DocURL" value="${project.organization.url}"/>
		<attribute name="Bundle-License" value="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
		<attribute name="Bundle-ManifestVersion" value="2"/>
		<attribute name="Bundle-Name" value="${project.name}"/>
		<attribute name="Bundle-SymbolicName" value="${bundle.symbolicName}"/>
		<attribute name="Bundle-Vendor" value="${project.organization.name}"/>
		<attribute name="Bundle-Version" value="${bundle.version}"/>
		<attribute name="Export-Package" value="org.apache.commons.codec;version=&quot;${project.version}&quot;,org.apache.commons.codec.binary;version=&quot;${project.version}&quot;,org.apache.commons.codec.cli;version=&quot;${project.version}&quot;,org.apache.commons.codec.digest;version=&quot;${project.version}&quot;,org.apache.commons.codec.language;version=&quot;${project.version}&quot;,org.apache.commons.codec.language.bm;version=&quot;${project.version}&quot;,org.apache.commons.codec.net;version=&quot;${project.version}&quot;"/>
		<attribute name="Implementation-Title" value="${project.name}"/>
		<attribute name="Implementation-URL" value="${project.organization.url}"/>
		<attribute name="Implementation-Vendor" value="${project.organization.name}"/>
		<attribute name="Implementation-Vendor-Id" value="${project.groupId}"/>
		<attribute name="Implementation-Version" value="${project.version}"/>
		<attribute name="Import-Package" value="javax.crypto,javax.crypto.spec"/>
		<attribute name="JavaPackages-ArtifactId" value="${project.artifactId}"/>
		<attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
		<attribute name="JavaPackages-Version" value="${project.version}"/>
		<attribute name="Require-Capability" value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=${compiler.target}))&quot;"/>
		<attribute name="Specification-Title" value="${project.name}"/>
		<attribute name="Specification-Vendor" value="${project.organization.name}"/>
		<attribute name="Specification-Version" value="${project.version}"/>
      </manifest>
    </jar>
  </target>

  <!-- ====================================================================== -->
  <!-- A dummy target for the package named after the type it creates         -->
  <!-- ====================================================================== -->

  <target name="jar" depends="package" description="Builds the jar for the application"/>

</project>