alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

<project name="Publish Build" default="default">

<!-- Properties that must be passed to this script:
	buildDirectory: Path to perform the build in.  (A working directory)
	buildType:		Type of build (nightly, integration etc.)
	buildId:		Build name
	buildLabel:		<buildType>--
-->
<property name="result" value="${buildDirectory}/${buildLabel}" />

<!--name of generated index page-->
<property name="indexFileName" value="index.html" />

<target name="default">
	<antcall target="countFiles" />
	<antcall target="generateIndex" />
	<antcall target="getStaticFiles" />
</target>
	
<target name="generateIndex">
 
  <property name="class" value="org.eclipse.releng.generators.TestResultsGenerator" />
  <taskdef name="indexResults" classname="${class}" />
   
<!--
	isBuildTested:  true|false  should JUnit plugin test results be used to generate index page
	dropTokenList:  comma separated list of strings which should be replaced by the fileName attribute settings in the testManifest.xml.
	xmlDirectoryName:  path to directory containing JUnit plugin test results in xml format (see doc is org.eclipse.test).
	dropDirectoryName: path to directory containing the result of the build.
	testResultsTemplateFileName:  path to template file used to generate page with links to JUnit test results	
	testResultsHtmlFileName:  name of file which will be generated with links to JUnit test results
	dropHtmlFileName:  name of generated index page
	hrefTestResultsTargetPath:  relative path from index page to directory containing JUnit html test results
	hrefCompileLogsTargetPath:  relative path from index page directory containing compilelogs
	testManifestFileName:	name of xml file containing descriptions of zip types and log files

	
	
-->
	
	<property name="xmlDirectoryName" value="${result}/testresults/xml" />
	<property name="dropDirectoryName" value="${result}" />
	<property name="testResultsTemplateFileName" value="${basedir}/templateFiles/testResults.php.template" />
	<property name="dropTemplateFileName" value="${basedir}/templateFiles/index.html.template" />
	<property name="testResultsHtmlFileName" value="testResults.php" />
	<property name="hrefTestResultsTargetPath" value="testresults/html" />
	<property name="hrefCompileLogsTargetPath" value="compilelogs" />
	<property name="compileLogsDirectoryName" value="${result}/compilelogs" />
	<property name="testManifestFileName" value="${basedir}/testManifest.xml" />

	
  <indexResults 
    isBuildTested="${isBuildTested}"
    buildType="${buildType}"
    dropTokenList="${dropTokenList}"
  	platformIdentifierToken="${platformIdentifierToken}"
  	platformSpecificTemplateList="${platformSpecificTemplateList}"
    dropHtmlFileName="${indexFileName}"
    xmlDirectoryName="${xmlDirectoryName}"
    dropDirectoryName="${dropDirectoryName}"
    testResultsTemplateFileName="${testResultsTemplateFileName}"
    dropTemplateFileName="${dropTemplateFileName}"
    testResultsHtmlFileName="${testResultsHtmlFileName}"
    hrefTestResultsTargetPath="${hrefTestResultsTargetPath}"
    hrefCompileLogsTargetPath="${hrefCompileLogsTargetPath}"
    compileLogsDirectoryName="${compileLogsDirectoryName}"
    testManifestFileName="${testManifestFileName}"
  />

	<tstamp>
		<format property="TODAY" pattern="MMMM d, yyyy"/>
	</tstamp>
	
  	<!--  Insert Build Type descriptor  -->
  	<antcall target="${buildType}" />
  	
  	<!--  Insert Build Date  -->
	<replace file="${result}/${indexFileName}" token="@date@" value="${TODAY}"/>
	<replace dir="${result}" value="${TODAY}">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
	
  	<!--  Insert Build Name  -->
	<replace file="${result}/${indexFileName}" token="@build@" value="${buildId}"/>
	<replace dir="${result}" value="${buildId}">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>


  	<!--  Update timestamp on file to permit overwrite through Ant copy task  -->
	<touch file="${result}/${indexFileName}" />
	<touch>
	    <fileset dir="${result}">
	    	<include name="**/*.php"/>
	    </fileset>
	</touch>
		
</target>


<target name="getStaticFiles">
	<!--get static files required in the buildLabel directory-->
	<copy todir="${result}">
		<fileset dir="staticDropFiles" />
	</copy>
	
	<!--copy buildnotes from plugin directories-->
	<mkdir dir="${result}/buildnotes" />
	<copy todir="${result}/buildnotes" flatten="true">
		<fileset dir="${buildDirectory}/plugins" includes="**/buildnotes_*.html" />
	</copy>
</target>

<target name="countFiles">
<!--	files.count is a file that should exist in the drop directory with a count of the zip files in the same directory.
		It is required to generate a link to the build on the downloads page.
 -->
 <taskdef name="countFiles" classname="org.eclipse.releng.generators.FileCounter" />
 
	<countFiles 
		sourceDirectory="${result}"
		filterString=".zip,.tar.gz"
		outputFile="${result}/files.count"
	/>
	
</target>

<!--Build type descriptors-->
<target name="I">
	<replace file="${result}/${indexFileName}" token="@type@" value="Integration"/>
	<replace dir="${result}" value="Integration">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>
	
<target name="N">
	<replace file="${result}/${indexFileName}" token="@type@" value="Nightly"/>
	<replace dir="${result}" value="Nightly">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>
	
<target name="M">
	<replace file="${result}/${indexFileName}" token="@type@" value="Maintenance"/>
	<replace dir="${result}" value="Maintenance">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>

<target name="R">
	<replace file="${result}/${indexFileName}" token="@type@" value="Release"/>
	<replace dir="${result}" value="Release">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>
	
<target name="S">
	<replace file="${result}/${indexFileName}" token="@type@" value="Stable"/>
	<replace dir="${result}" value="Stable">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>

<target name="T">
	<replace file="${result}/${indexFileName}" token="@type@" value="Test"/>
	<replace dir="${result}" value="Test">
	  <include name="**/*.php"/>
	  <replacetoken>
	</replace>
</target>
	
</project>
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.