Merge branch '112-branch'

Conflicts:
	src/changes/changes.xml

LANG-1175: Remove Ant-based build
This closes #112 from github. Thanks to wikier@.
This commit is contained in:
Hen 2016-02-25 20:58:23 -08:00
commit 242e1f5498
8 changed files with 3 additions and 541 deletions

3
.gitignore vendored
View File

@ -4,6 +4,7 @@ target
maven-eclipse.xml
build.properties
site-content
*~
# IntelliJ IDEA files
.idea
@ -15,4 +16,4 @@ site-content
.settings
.classpath
.project
.externalToolBuilders
.externalToolBuilders

View File

@ -1,28 +0,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.
##########################################################################
# 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.12/
hamcrest.home=${repository}/org/hamcrest/hamcrest-all/1.3/
commons-io.home=${repository}/commons-io/commons-io/2.4/
easymock.home=${repository}/org/easymock/easymock/3.3.1/

233
build.xml
View File

@ -1,233 +0,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.
*/
-->
<!--
"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"/>
<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="&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"
encoding="${compile.encoding}"
source="${compile.source}">
<classpath refid="compile.classpath"/>
<link href="${jdk.javadoc}"/>
<link href="${collections.javadoc}"/>
</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>

View File

@ -1,90 +0,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.
#
# $Id$
# The location of the "junit.jar" JAR file
junit.jar = ${junit.home}/junit-4.12.jar
# The location of the Easymock jar
easymock.jar = ${easymock.home}/easymock-3.3.1.jar
# The location of the Commons-IO jar
commons-io.jar = ${commons-io.home}/commons-io-2.4.jar
# The location of Hamcrest jar
hamcrest.jar = ${hamcrest.home}/hamcrest-all-1.3.jar
# Whether or not to fork tests
junit.fork = true
# The name of this component
component.name = commons-lang3
# 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.5-SNAPSHOT
# 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.6
# 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.6
# Specifies the source encoding.
compile.encoding = ISO-8859-1
# Should all tests fail if one does?
test.failonerror = true
# The test runner to execute
test.runner = junit.textui.TestRunner

View File

@ -32,9 +32,6 @@
<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>
<include>README.md</include>
<include>CONTRIBUTING.md</include>
</includes>

View File

@ -22,6 +22,7 @@
<body>
<release version="3.5" date="tba" description="tba">
<action issue="LANG-1175" type="fix" dev="wikier" due-to="Benedikt Ritter">Remove Ant-based build</action>
<action issue="LANG-1192" type="add" dev="chas" due-to="Dominik Stadler">FastDateFormat support of the week-year component (uppercase 'Y')</action>
<action issue="LANG-1194" type="fix" dev="chas">Limit max heap memory for consistent Travis CI build</action>
<action issue="LANG-1186" type="fix" dev="chas" due-to="NickManley">Fix NullPointerException in FastDateParser$TimeZoneStrategy</action>

View File

@ -1,25 +0,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.
##########################################################################
# Sample Ant build.properties file for creating RCs and releasing
##########################################################################
# Your apache ID - it is used for the Build-By MANIFEST header, when
# creating the RC jars and when uploading the website
apache.id=luckyRM
# checkout directory for the release distribution repo
release.path=${user.home}/lang-rc
# SSH keyfile holding the private key
ssh.keyfile=${user.home}/.ssh/id_rsa

View File

@ -1,161 +0,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.
*/
-->
<!--
Build file for creating release candidates and releasing lang.
$Id$
-->
<project name="release-lang" basedir="../../">
<target name="-init">
<property file="src/release-tools/build.properties" />
<property file="default.properties" />
<!-- provide some defaults -->
<property name="release.path" value="${user.home}/lang-rc" />
<property name="apache.id" value="dev@commons.apache.org" />
<property name="ssh.keyfile" value="${user.home}/.ssh/id_rsa"/>
<property name="release.url" value="https://dist.apache.org/repos/dist/dev/commons/lang" />
<macrodef name="mvn">
<attribute name="goal"/>
<element name="more-args" implicit="true" optional="true"/>
<sequential>
<exec executable="mvn">
<arg value="@{goal}" />
<more-args/>
</exec>
</sequential>
</macrodef>
<available property="dist-dir-exists?"
file="${release.path}"
type="dir"/>
</target>
<target name="pre-rc" depends="-init"
description="Prepares the download page and the release notes for rolling out a RC">
<mvn goal="changes:announcement-generate">
<arg value="-Prelease-notes"/>
</mvn>
<mvn goal="commons:download-page">
<arg value="-Dcommons.componentid=lang"/>
</mvn>
</target>
<target name="-clear-local-repo" depends="-init">
<property name="repo.path" value="${user.home}/.m2/repository/org/apache/commons/${component.name}/${component.version}" />
<delete dir="${repo.path}" />
</target>
<target name="-build-maven-artifacts" depends="-clear-local-repo">
<input message="Please enter gpg passphrase..." addproperty="gpg.pass">
<handler type="secure" />
</input>
<mvn goal="deploy">
<arg value="-Prelease" />
<arg value="-Ptest-deploy" />
<arg value="-Duser.name=${apache.id}" />
<arg value="-Dgpg.passphrase=${gpg.pass}" />
</mvn>
</target>
<target name="-populate-dist-repo"
depends="-build-maven-artifacts, -prepare-dist-area">
<copy todir="${release.path}/binaries">
<fileset dir="${repo.path}">
<include name="*bin.zip*" />
<include name="*bin.tar.gz*"/>
</fileset>
</copy>
<copy todir="${release.path}/source">
<fileset dir="${repo.path}">
<include name="*src.zip*" />
<include name="*src.tar.gz*"/>
</fileset>
</copy>
<copy file="RELEASE-NOTES.txt" todir="${release.path}" />
</target>
<target name="rc" description="Create the RC"
depends="-populate-dist-repo, -create-site"/>
<target name="-create-site" depends="-init">
<echo message="Creating site" />
<mvn goal="site"/>
</target>
<target name="upload-site" depends="-init"
description="Uploads and publishes the site to the RM's apache webspace">
<zip destfile="target/site.zip">
<zipfileset dir="target/site" prefix="${final.name}"/>
</zip>
<input message="Please enter ssh passphrase..." addproperty="ssh.pass">
<handler type="secure" />
</input>
<scp localFile="target/site.zip"
remoteToDir="${apache.id}@people.apache.org:."
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
<sshexec username="${apache.id}" host="people.apache.org"
command="unzip -d public_html site.zip"
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
<sshexec username="${apache.id}" host="people.apache.org"
command="rm site.zip"
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
</target>
<target name="nexus-bundle" depends="-build-maven-artifacts"
description="Creates an upload bundle suitable for Nexus Snapshot Upload">
<jar destfile="target/upload-bundle.jar">
<fileset dir="${repo.path}">
<include name="*.jar"/>
<include name="*.jar.asc"/>
<include name="*.pom"/>
<include name="*.pom.asc"/>
</fileset>
</jar>
</target>
<target name="-prepare-dist-area" depends="-checkout-dist, -update-dist"/>
<target name="-checkout-dist" depends="-init" unless="dist-dir-exists?">
<echo message="Checking out ${release.url} -> ${release.path}"/>
<exec executable="svn">
<arg value="co" />
<arg value="${release.url}" />
<arg value="${release.path}" />
</exec>
</target>
<target name="-update-dist" depends="-init" if="dist-dir-exists?">
<echo message="Updating ${release.path}"/>
<exec executable="svn" dir="${release.path}">
<arg value="up" />
</exec>
</target>
</project>