You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2007/04/12 10:43:07 UTC
svn commit: r527837 - in /harmony/enhanced/buildtest/trunk: build.xml
download.xml parameters.xml
Author: smishura
Date: Thu Apr 12 01:43:06 2007
New Revision: 527837
URL: http://svn.apache.org/viewvc?view=rev&rev=527837
Log:
Add a set of targets to manage build-and-test infra dependencies
Added:
harmony/enhanced/buildtest/trunk/download.xml
harmony/enhanced/buildtest/trunk/parameters.xml
Modified:
harmony/enhanced/buildtest/trunk/build.xml
Modified: harmony/enhanced/buildtest/trunk/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/build.xml?view=diff&rev=527837&r1=527836&r2=527837
==============================================================================
--- harmony/enhanced/buildtest/trunk/build.xml (original)
+++ harmony/enhanced/buildtest/trunk/build.xml Thu Apr 12 01:43:06 2007
@@ -23,18 +23,11 @@
http://incubator.apache.org/harmony
</description>
+ <import file="download.xml"/>
+
<!--The cc.property file contains the nameand values of properties-->
<property file="cc.properties" />
-
- <!-- files we need -->
- <property name="cc.filename" value="cruisecontrol-bin-2.5" />
- <property name="junitjar.filename" value="ant-junit-1.6.5" />
-
- <!-- where to fetch from -->
- <property name="cc.location" value="http://umn.dl.sourceforge.net/sourceforge/cruisecontrol/" />
- <property name="junitjar.location" value="http://mirrors.ibiblio.org/pub/mirrors/maven2/ant/ant-junit/1.6.5/" />
-
<!-- where to assemble all the pieces -->
<property name="target.dir" location="cc" />
<mkdir dir="${target.dir}" />
@@ -168,29 +161,26 @@
Main setup - download, unpack, checkout
========================================== -->
<target name="setup" description="fetch and setup build/test/ci system"
- depends="set.proxy,no.proxy">
-
- <!-- get the version of CruiseControl unless we have the zip locally -->
-
- <get src="${cc.location}${cc.filename}.zip" dest="${cc.filename}.zip" usetimestamp="true" verbose="true" />
+ depends="set.proxy,no.proxy,download">
- <get src="${junitjar.location}${junitjar.filename}.jar" dest="${junitjar.filename}.jar" usetimestamp="true" verbose="true" />
+ <property name="cc.filename" location="${depends}/cruisecontrol_2.6.1/cruisecontrol.zip" />
+ <property name="junitjar.filename" value="${depends}/ant-junit-1.6.5/ant-junit-1.6.5.jar" />
<!-- unzip it, rename, add ant-junit jar and cleanout the junk -->
- <unzip src="${cc.filename}.zip" dest="." />
+ <unzip src="${cc.filename}" dest="." />
- <move file="${cc.filename}" tofile="${target.dir}" />
+ <move file="cruisecontrol-bin-2.5" tofile="${target.dir}" />
<delete dir="${target.dir}/projects/connectfour" includeEmptyDirs="true" verbose="false" />
<delete dir="${target.dir}/logs/connectfour" includeEmptyDirs="true" verbose="false" />
<delete file="${target.dir}/config.xml" />
<delete file="${target.dir}/copyres.xml" />
- <delete dir="${cc.filename}" includeEmptyDirs="true" verbose="false" />
+ <delete dir="cruisecontrol-bin-2.5" includeEmptyDirs="true" verbose="false" />
<!-- copy the ant-junit jar to cc/lib -->
- <copy file="${junitjar.filename}.jar" todir="${target.dir}/lib" />
+ <copy file="${junitjar.filename}" todir="${target.dir}/lib" />
<copy todir="${target.dir}" flatten="yes">
<fileset dir="config/xsl" />
Added: harmony/enhanced/buildtest/trunk/download.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/download.xml?view=auto&rev=527837
==============================================================================
--- harmony/enhanced/buildtest/trunk/download.xml (added)
+++ harmony/enhanced/buildtest/trunk/download.xml Thu Apr 12 01:43:06 2007
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project default="download">
+ <description>
+ Framework for managing project dependencies
+ </description>
+
+ <!-- temporary file to store intermediate results of iteration -->
+ <property name="tmp.file" value="tmp.txt" />
+
+ <!-- root directory for storing downloaded files -->
+ <property name="depends" value="depends" />
+
+ <!-- ============================
+ Entry point of the framework
+ ============================ -->
+ <target name="download"
+ depends="-setup-proxy"
+ description="Downloads dependencies">
+
+ <!-- default properties file -->
+ <property name="props.file" value="parameters.xml" />
+
+ <xmlproperty file="${props.file}" />
+
+ <!-- flash propertyset as string to file for iteration -->
+ <!-- the string has the following format: -->
+ <!-- "name1=file1, name2=file2 ..." -->
+ <propertyset id="tmp.id">
+ <propertyref regex="parameters\.external\..+\.file$" />
+ <regexpmapper from="parameters\.external\.(.+)\.file$" to="\1" />
+ </propertyset>
+ <property name="tmp.str" refid="tmp.id" />
+ <echo message="${tmp.str}" file="${tmp.file}" />
+
+ <!-- iterate over propertyset fetching required dependencies -->
+ <ant antfile="download.xml" target="-iterate" inheritall="false">
+ <propertyset>
+ <propertyref prefix="parameters.external" />
+ </propertyset>
+ </ant>
+
+ <delete file="${tmp.file}" />
+ </target>
+
+ <!-- ============================
+ Targets for iteration over propertyset of external dependencies
+ ============================ -->
+ <target name="-next" if="donext">
+ <!-- make ant iterate over propertyset: -->
+ <!-- load a name of dependency from temporary file and -->
+ <!-- flash the rest of dependencies back to the file. -->
+ <loadproperties srcfile="${tmp.file}">
+ <filterchain>
+ <tokenfilter>
+ <replaceregex pattern="^([^=]+)=.*" replace="name=\1" />
+ </tokenfilter>
+ </filterchain>
+ </loadproperties>
+ <loadproperties srcfile="${tmp.file}">
+ <filterchain>
+ <tokenfilter>
+ <replaceregex pattern="^[^=]+=[^,]+,? ?(.*)$"
+ replace="rest=\1" />
+ </tokenfilter>
+ </filterchain>
+ </loadproperties>
+ <echo message="${rest}" file="${tmp.file}" />
+
+ <!-- do download for the dependency -->
+ <fetch resource="${name}" />
+
+ <ant antfile="download.xml" target="-iterate" inheritall="false">
+ <propertyset>
+ <propertyref prefix="parameters.external" />
+ </propertyset>
+ </ant>
+ </target>
+
+ <target name="-iterate">
+ <!-- check if next iteration should be done -->
+ <condition property="donext">
+ <length file="${tmp.file}" length="0" when="greater" />
+ </condition>
+ <ant antfile="download.xml" target="-next" inheritAll="false">
+ <propertyset>
+ <propertyref prefix="parameters.external" />
+ <propertyref name="donext" />
+ </propertyset>
+ </ant>
+ </target>
+
+ <!-- ============================
+ Downloading dependencies
+ ============================ -->
+ <macrodef name="fetch">
+ <attribute name="resource" />
+ <sequential>
+ <property name="url"
+ value="${parameters.external.@{resource}.url}" />
+ <property name="dirlocation"
+ location="${depends}/${parameters.external.@{resource}.dir}" />
+ <property name="filelocation"
+ location="${dirlocation}/${parameters.external.@{resource}.file}" />
+ <available property="exists" type="file" file="${filelocation}" />
+ <condition property="md5"
+ value="${parameters.external.@{resource}.md5}">
+ <isset property="parameters.external.@{resource}.md5" />
+ </condition>
+
+ <ant antfile="download.xml" target="-download" />
+ </sequential>
+ </macrodef>
+
+ <target name="-download" depends="-really-download,-check-md5" />
+
+ <target name="-really-download" unless="exists">
+ <mkdir dir="${dirlocation}" />
+ <get verbose="true"
+ usetimestamp="true"
+ src="${url}"
+ dest="${filelocation}" />
+ </target>
+
+ <target name="-check-md5" if="md5">
+ <checksum file="${filelocation}" property="cur.md5" />
+ <condition property="md5.verified" value="true">
+ <equals arg1="${cur.md5}" arg2="${md5}" />
+ </condition>
+ <fail unless="md5.verified">
+...
+
+File ${filelocation} has incorrect md5 checksum. Expected:
+ ${md5}
+found:
+ ${cur.md5}
+
+ </fail>
+ <echo>Checksum verified for ${filelocation}</echo>
+ </target>
+
+ <!-- ============================
+ Set up the proxy
+ ============================ -->
+ <target name="-setup-proxy"
+ if="http.proxyHost"
+ description="Set up the proxy">
+ <echo>Setting up the proxy: ${http.proxyHost}:${http.proxyPort}</echo>
+ <setproxy proxyhost="${http.proxyHost}" proxyport="${http.proxyPort}" />
+ </target>
+</project>
Added: harmony/enhanced/buildtest/trunk/parameters.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/trunk/parameters.xml?view=auto&rev=527837
==============================================================================
--- harmony/enhanced/buildtest/trunk/parameters.xml (added)
+++ harmony/enhanced/buildtest/trunk/parameters.xml Thu Apr 12 01:43:06 2007
@@ -0,0 +1,17 @@
+<parameters>
+ <required/>
+ <optional/>
+ <external>
+ <ant-junit>
+ <dir>ant-junit-1.6.5</dir>
+ <file>ant-junit-1.6.5.jar</file>
+ <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/ant/ant-junit/1.6.5/ant-junit-1.6.5.jar</url>
+ </ant-junit>
+ <cc>
+ <dir>cruisecontrol_2.6.1</dir>
+ <file>cruisecontrol.zip</file>
+ <url>http://umn.dl.sourceforge.net/sourceforge/cruisecontrol/cruisecontrol-bin-2.5.zip</url>
+ </cc>
+ </external>
+</parameters>
+