diff options
-rw-r--r-- | build.properties.sample | 26 | ||||
-rw-r--r-- | build.xml | 259 | ||||
-rw-r--r-- | default.properties | 81 | ||||
-rw-r--r-- | src/assembly/src.xml | 3 |
4 files changed, 369 insertions, 0 deletions
diff --git a/build.properties.sample b/build.properties.sample new file mode 100644 index 000000000..41bee9a45 --- /dev/null +++ b/build.properties.sample @@ -0,0 +1,26 @@ +# 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. +########################################################################## +# Sample Ant build.properties file +# +# This setup assumes dependent jars are in a local maven 2 repository. +# However the jars are located, the properties ending in ".jar" need +# expand to full paths to the jars. +########################################################################## + +# Repository base path - unnecessary if full jar paths are provided below +repository=${user.home}/.m2/repository +junit.home=${repository}/junit/junit/4.7/ +easymock.home=${repository}/org/easymock/easymock/2.5.2/ diff --git a/build.xml b/build.xml new file mode 100644 index 000000000..2e1181f28 --- /dev/null +++ b/build.xml @@ -0,0 +1,259 @@ +<!-- +/* + * 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$ +--> +<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"/> + <!-- The Sun Javadoc for versions prior to 1.3 are off-line. --> + <property name="jdk.javadoc" value="http://java.sun.com/j2se/1.3/docs/api/"/> + + <!-- ========== 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}"/> + </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}"/> + <available property="jdk.1.5.present" classname="java.lang.StringBuilder"/> + </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}"> + <classpath refid="compile.classpath"/> + </javac> + <copy todir="${build.home}/classes" filtering="on"> + <fileset dir="${source.home}" excludes="**/*.java"/> + </copy> + </target> + + <!-- Compile EnumUtilsLang76Test using source/target 1.5 if JDK 1.5 present (see LANG-76) --> + <target name="test.compile.jdk15" depends="compile" description="Run test for LANG-76" if="jdk.1.5.present"> + <echo message="Compiling EnumUtilsLang76Test using source/target 1.5"/> + <mkdir dir="${build.home}/tests"/> + <javac srcdir="${test.home}" destdir="${build.home}/tests" + target="1.5" source="1.5" + includes="org/apache/commons/lang/enums/EnumUtilsLang76Test.java"> + <classpath refid="test.classpath"/> + </javac> + </target> + + <target name="compile.tests" depends="compile,test.compile.jdk15" 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}"> + <exclude name="org/apache/commons/lang/enums/EnumUtilsLang76Test.java" if="jdk.1.5.present"/> + <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"/> + <exclude name="**/EntitiesPerformanceTest.java"/> + <exclude name="**/RandomUtilsFreqTest.java"/> + </fileset> + </batchtest> + </junit> + </target> + + <!-- + RandomUtils frequency tests have been put in a separate test case which + is only run when using this target because it fails too frequently. + See https://issues.apache.org/jira/browse/LANG-592 + --> + <target name="test-random-freq" depends="compile.tests" description="Run RandomUtilsFreqTest"> + <echo message="Running RandomUtilsFreqTest unit test ..."/> + <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" /> + <test name="org.apache.commons.lang.math.RandomUtilsFreqTest" todir="${build.home}/test-reports"/> + </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/lang/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" + link="${jdk.javadoc}" + source="${compile.source}"> + <classpath refid="compile.classpath"/> + </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> + <attribute name="Specification-Title" value="Commons Lang"/> + <attribute name="Specification-Version" value="${component.version}"/> + <attribute name="Specification-Vendor" value="The Apache Software Foundation"/> + <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"/> + <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> diff --git a/default.properties b/default.properties new file mode 100644 index 000000000..42813d47b --- /dev/null +++ b/default.properties @@ -0,0 +1,81 @@ +# +# 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. +# + +# $Id$ + +# The location of the "junit.jar" JAR file +junit.jar = ${junit.home}/junit-4.7.jar + +# The location of the Easymock jar +easymock.jar = ${easymock.home}/easymock-2.5.2.jar + +# Whether or not to fork tests +junit.fork = true + +# The name of this component +component.name = commons-lang + +# The primary package name of this component +component.package = org.apache.commons.lang3 + +# The title of this component +component.title = Core Language Utilities + +# The current version number of this component +component.version = 3.0 + +# The name that is used to create the jar file +final.name = ${component.name}-${component.version} + +# The base directory for compilation targets +build.home = target + +# The base directory for component configuration files +conf.home = src/conf + +# The base directory for component sources +source.home = src/main/java + +# The base directory for unit test sources +test.home = src/test/java + +# Should Java compilations set the 'debug' compiler option? +compile.debug = true + +# Should Java compilations set the 'deprecation' compiler option? +compile.deprecation = true + +# Should Java compilations set the 'optimize' compiler option? +compile.optimize = true + +# Generate class files for specific VM version (e.g., 1.1 or 1.2). +# Note that the default value depends on the JVM that is running Ant. +# In particular, if you use JDK 1.4+ the generated classes will not be usable +# for a 1.1 Java VM unless you explicitly set this attribute to the value 1.1 +# (which is the default value for JDK 1.1 to 1.3). +compile.target = 1.5 + +# Specifies the source version for the Java compiler. +# Corresponds to the source attribute for the ant javac task. +# Valid values are 1.3, 1.4, 1.5. +compile.source = 1.5 + +# Should all tests fail if one does? +test.failonerror = true + +# The test runner to execute +test.runner = junit.textui.TestRunner diff --git a/src/assembly/src.xml b/src/assembly/src.xml index 5a8d1fb8e..bc53e598a 100644 --- a/src/assembly/src.xml +++ b/src/assembly/src.xml @@ -31,6 +31,9 @@ <include>pom.xml</include> <include>PROPOSAL.html</include> <include>RELEASE-NOTES.txt</include> + <include>build.xml</include> + <include>default.properties</include> + <include>build.properties.sample</include> </includes> </fileSet> <fileSet> |