aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.properties.sample26
-rw-r--r--build.xml259
-rw-r--r--default.properties81
-rw-r--r--src/assembly/src.xml3
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="&lt;h1&gt;Commons Lang ${component.version}&lt;/h1&gt;"
+ windowtitle="Lang ${component.version}"
+ bottom="Copyright &amp;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>