2018-10-22 12:28:35 +02:00
<!--
/*
* 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.
*/
-->
<!--
"Lang" component of the Apache Commons Subproject
$Id: build.xml 1583140 2014-03-30 13:51:54Z britter $
-->
<project name= "Lang" default= "compile" basedir= "." >
<!-- ========== Initialize Properties ===================================== -->
<property file= "${user.home}/${component.name}.build.properties" />
<property file= "${user.home}/build.properties" />
<property file= "${basedir}/build.properties" />
<property file= "${basedir}/default.properties" />
<property name= "jdk.javadoc" value= "http://docs.oracle.com/javase/6/docs/api/" />
<property name= "collections.javadoc" value= "http://commons.apache.org/collections/api-release/" />
<!-- ========== Construct compile classpath =============================== -->
<path id= "compile.classpath" >
<pathelement location= "${build.home}/classes" />
</path>
<!-- ========== Construct unit test classpath ============================= -->
<path id= "test.classpath" >
<pathelement location= "${build.home}/classes" />
<pathelement location= "${build.home}/tests" />
<pathelement location= "${junit.jar}" />
<pathelement location= "${easymock.jar}" />
<pathelement location= "${commons-io.jar}" />
<pathelement location= "${hamcrest.jar}" />
</path>
<!-- ========== Executable Targets ======================================== -->
<target name= "init" description= "Initialize and evaluate conditionals" >
<echo message= "-------- ${component.name} ${component.version} --------" />
<filter token= "name" value= "${component.name}" />
<filter token= "package" value= "${component.package}" />
<filter token= "version" value= "${component.version}" />
<filter token= "compile.source" value= "${compile.source}" />
<filter token= "compile.target" value= "${compile.target}" />
<mkdir dir= "${build.home}" />
</target>
<!-- ========== Compile Targets ========================================= -->
<target name= "compile" depends= "init" description= "Compile shareable components" >
<mkdir dir= "${build.home}/classes" />
<javac srcdir= "${source.home}" destdir= "${build.home}/classes" debug= "${compile.debug}" deprecation= "${compile.deprecation}" target= "${compile.target}" source= "${compile.source}" excludes= "${compile.excludes}" optimize= "${compile.optimize}" includeantruntime= "false" encoding= "${compile.encoding}" >
<classpath refid= "compile.classpath" />
</javac>
<copy todir= "${build.home}/classes" filtering= "on" >
<fileset dir= "${source.home}" excludes= "**/*.java,**/*.html" />
</copy>
</target>
<target name= "compile.tests" depends= "compile" description= "Compile unit test cases" >
<mkdir dir= "${build.home}/tests" />
<javac srcdir= "${test.home}" destdir= "${build.home}/tests" debug= "${compile.debug}" deprecation= "off" target= "${compile.target}" source= "${compile.source}" optimize= "${compile.optimize}" includeantruntime= "false" encoding= "${compile.encoding}" >
<classpath refid= "test.classpath" />
</javac>
<copy todir= "${build.home}/tests" filtering= "on" >
<fileset dir= "${test.home}" excludes= "**/*.java" />
</copy>
</target>
<!-- ========== Unit Tests ========================================= -->
<target name= "test" depends= "compile.tests" description= "Run all unit test cases" >
<echo message= "Running unit tests ..." />
<mkdir dir= "${build.home}/test-reports" />
<junit printsummary= "true" showoutput= "true" fork= "yes" haltonfailure= "${test.failonerror}" >
<classpath refid= "test.classpath" />
<formatter type= "plain" usefile= "true" />
<!-- If test.entry is defined, run a single test, otherwise run all valid tests -->
<test name= "${test.entry}" todir= "${build.home}/test-reports" if= "test.entry" />
<batchtest fork= "yes" todir= "${build.home}/test-reports" unless= "test.entry" >
<fileset dir= "${test.home}" >
<include name= "**/*Test.java" />
<exclude name= "**/Abstract*Test.java" />
</fileset>
</batchtest>
</junit>
</target>
<target name= "clean" description= "Clean build and distribution directories" >
<delete dir= "${build.home}" />
</target>
<target name= "all" depends= "clean,test,compile" description= "Clean and compile all components" />
<!-- ========== JavaDocs ========================================= -->
<target name= "javadoc" depends= "compile" description= "Create component Javadoc documentation" >
<mkdir dir= "${build.home}" />
<mkdir dir= "${build.home}/apidocs" />
<tstamp >
<format property= "current.year" pattern= "yyyy" />
</tstamp>
<javadoc sourcepath= "${source.home}"
destdir="${build.home}/apidocs"
overview="${source.home}/org/apache/commons/lang3/overview.html"
packagenames="org.apache.commons.*"
excludepackagenames="${javadoc.excludepackagenames}"
author="false"
version="true"
doctitle="< h1> Commons Lang ${component.version}< /h1> "
windowtitle="Lang ${component.version}"
bottom="Copyright & copy; 2001-${current.year} - Apache Software Foundation"
use="true"
encoding="${compile.encoding}"
source="${compile.source}">
</javadoc>
</target>
<!-- ========== Jar Targets ========================================= -->
<target name= "jar" depends= "compile" description= "Create jar" >
<mkdir dir= "${build.home}/classes/META-INF" />
<copy file= "LICENSE.txt" tofile= "${build.home}/classes/META-INF/LICENSE.txt" />
<copy file= "NOTICE.txt" tofile= "${build.home}/classes/META-INF/NOTICE.txt" />
<jar jarfile= "${build.home}/${final.name}.jar" >
<manifest >
2021-02-16 20:48:03 +01:00
<attribute name= "Automatic-Module-Name" value= "org.apache.commons.lang3" />
<attribute name= "Bundle-Description" value= "Apache Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are considered to be so standard as to justify existence in java.lang." />
<attribute name= "Bundle-DocURL" value= "http://commons.apache.org/proper/commons-lang/" />
<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= "Apache Commons Lang" />
<attribute name= "Bundle-SymbolicName" value= "org.apache.commons.lang3" />
<attribute name= "Bundle-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Bundle-Version" value= "${component.version}" />
<attribute name= "Export-Package" value= "org.apache.commons.lang3;version="${component.version}",org.apache.commons.lang3.arch;version="${component.version}",org.apache.commons.lang3.builder;version="${component.version}",org.apache.commons.lang3.concurrent;version="${component.version}",org.apache.commons.lang3.event;version="${component.version}",org.apache.commons.lang3.exception;version="${component.version}",org.apache.commons.lang3.math;version="${component.version}",org.apache.commons.lang3.mutable;version="${component.version}",org.apache.commons.lang3.reflect;version="${component.version}",org.apache.commons.lang3.text;version="${component.version}",org.apache.commons.lang3.text.translate;version="${component.version}",org.apache.commons.lang3.time;version="${component.version}",org.apache.commons.lang3.tuple;version="${component.version}"" />
2018-10-22 12:28:35 +02:00
<attribute name= "Implementation-Title" value= "Commons Lang" />
<attribute name= "Implementation-Version" value= "${component.version}" />
<attribute name= "Implementation-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Implementation-Vendor-Id" value= "org.apache" />
2021-02-16 20:48:03 +01:00
<attribute name= "Include-Resource" value= "META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt=NOTICE.txt" />
<attribute name= "Require-Capability" value= "osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=${compile.target}))"" />
<attribute name= "Specification-Title" value= "Commons Lang" />
<attribute name= "Specification-Version" value= "${component.version}" />
<attribute name= "Specification-Vendor" value= "The Apache Software Foundation" />
2018-10-22 12:28:35 +02:00
<attribute name= "X-Compile-Source-JDK" value= "${compile.source}" />
<attribute name= "X-Compile-Target-JDK" value= "${compile.target}" />
</manifest>
<fileset dir= "${build.home}/classes" >
<include name= "**/*.class" />
<include name= "**/LICENSE.txt" />
<include name= "**/NOTICE.txt" />
</fileset>
</jar>
</target>
<target name= "javadoc-jar" depends= "javadoc" description= "Create JavaDoc jar" >
<jar jarfile= "${build.home}/${final.name}-javadoc.jar" >
<manifest >
<attribute name= "Specification-Title" value= "Commons Lang API" />
<attribute name= "Specification-Version" value= "${component.version}" />
<attribute name= "Specification-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Implementation-Title" value= "Commons Lang API" />
<attribute name= "Implementation-Version" value= "${component.version}" />
<attribute name= "Implementation-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Implementation-Vendor-Id" value= "org.apache" />
</manifest>
<fileset dir= "${build.home}/apidocs" />
<fileset dir= "${basedir}" >
<include name= "LICENSE.txt" />
<include name= "NOTICE.txt" />
</fileset>
</jar>
</target>
<target name= "source-jar" depends= "init" description= "Create JavaDoc jar" >
<jar jarfile= "${build.home}/${final.name}-sources.jar" >
<manifest >
<attribute name= "Specification-Title" value= "Commons Lang Source" />
<attribute name= "Specification-Version" value= "${component.version}" />
<attribute name= "Specification-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Implementation-Title" value= "Commons Lang Source" />
<attribute name= "Implementation-Version" value= "${component.version}" />
<attribute name= "Implementation-Vendor" value= "The Apache Software Foundation" />
<attribute name= "Implementation-Vendor-Id" value= "org.apache" />
</manifest>
<fileset dir= "${source.home}" >
<include name= "**/*.java" />
</fileset>
<fileset dir= "${basedir}" >
<include name= "LICENSE.txt" />
<include name= "NOTICE.txt" />
</fileset>
</jar>
</target>
<!-- ========== Distribution ========================================= -->
<target name= "dist" depends= "clean,jar,source-jar,javadoc-jar" description= "Create binary distribution" >
<!-- binary distro -->
<zip destfile= "${build.home}/${final.name}.zip" >
<zipfileset dir= "${basedir}" prefix= "${final.name}"
includes="LICENSE.txt,
NOTICE.txt,
RELEASE-NOTES.txt"
/>
<zipfileset dir= "${build.home}" includes= "*.jar," prefix= "${final.name}" />
<zipfileset dir= "${build.home}/apidocs" prefix= "${final.name}/apidocs" />
</zip>
<tar destfile= "${build.home}/${final.name}.tar.gz" compression= "gzip" >
<zipfileset src= "${build.home}/${final.name}.zip" />
</tar>
<!-- source distro -->
<zip destfile= "${build.home}/${final.name}-src.zip" >
<zipfileset dir= "${basedir}" prefix= "${final.name}-src"
includes="build.xml,
build.xml,
checkstyle.xml,
default.properties,
LICENSE.txt,
NOTICE.txt,
pom.xml,
RELEASE-NOTES.txt"
/>
<zipfileset dir= "${basedir}/src" prefix= "${final.name}-src/src" />
</zip>
<tar destfile= "${build.home}/${final.name}-src.tar.gz" compression= "gzip" >
<zipfileset src= "${build.home}/${final.name}-src.zip" />
</tar>
</target>
</project>