<project default="all" basedir=".">
	<import file="build-woproject.xml" />

	<!-- property determination  -->
	<target name="setup-hudson.properties" description="--> setup hudson properties">
		<property file="build.properties" />
		<property environment="env" />

		<property name="repository" value="/data/repository" />
		<property name="hudson.url" value="${env.HUDSON_URL}" />

		<!-- setup some defaults -->
		<property name="wo.version" value="5.4" />
		<property name="wonder.version" value="latest" />
		<property name="wonder.suffix" value="54" />
		<property name="env.WORKSPACE" value="." />
		<property name="workspace" value="${env.WORKSPACE}" />
		<property name="build.root" value="${workspace}/Root" />
		<property name="woproject.jar" value="${repository}/woproject.jar" />

		<available file="ivy.xml" property="using.ivy" />
	</target>

	<target name="check-wolibs" depends="setup-hudson.properties">
		<available type="dir" file="${repository}/WebObjects${wo.version}" property="wolibs.found" />
		<fail message="Unable to locate WebObjects ${wo.version} bundle at ${repository}/WebObjects${wo.version}" unless="wolibs.found" />
		<available type="dir" file="${repository}/WebObjects${wo.version}/System" property="wolibs.suffix" value="/System" />
		<property name="wolibs.suffix" value="" />
	</target>

	<target name="update-project.depends" depends="setup-hudson.properties" if="using.ivy">
		<ant antfile="build-ivy.xml" target="clean-ivy.cache" />
		<ant antfile="build-ivy.xml" target="update-project.depends" />
	</target>

	<target name="setup-hudson.workspace" depends="setup-hudson.properties,check-wolibs,update-project.depends" description="--> setup hudson workspace">
		<mkdir dir="${build.root}/lib/frameworks" />
		<mkdir dir="${build.root}/Library/Frameworks" />
		<mkdir dir="${build.root}/Library/WebObjects/Extensions" />
		<mkdir dir="${build.root}/User/Library/Frameworks" />
		<copy file="${woproject.jar}" todir="${build.root}/lib" />
		<symlink link="${build.root}/System" resource="${repository}/WebObjects${wo.version}${wolibs.suffix}" overwrite="true" failonerror="false" />
		<echo file="${workspace}/wolips.properties">
      user.home=${build.root}
      wo.system.root=${build.root}/System
      wo.user.frameworks=${build.root}/User/Library/Frameworks
      wo.system.frameworks=${build.root}/System/Library/Frameworks
      wo.bootstrapjar=${build.root}/System/Library/WebObjects/JavaApplications/wotaskd.woa/WOBootstrap.jar
      wo.network.frameworks=${build.root}/Network/Library/Frameworks
      wo.api.root=/Developer/ADC%20Reference%20Library/documentation/WebObjects/Reference/API/
      wo.network.root=${build.root}/Network
      wo.extensions=${build.root}/Library/WebObjects/Extensions
      wo.user.root=${build.root}/User
      wo.local.frameworks=${build.root}/Library/Frameworks
      wo.apps.root=${build.root}/Library/WebObjects/Applications
      wo.local.root=${build.root}
    </echo>
		<untar dest="${build.root}/Library/Frameworks" compression="gzip">
			<fileset dir="${build.root}/lib/frameworks">
				<include name="**/*.tar.gz" />
			</fileset>
		</untar>
		<property file="${workspace}/wolips.properties" />
	</target>

	<target name="clean-hudson.workspace" description="--> clean the hudson workspace">
		<delete dir="bin" />
		<delete dir="dist" />
	</target>

	<target name="all" depends="clean-hudson.workspace,setup-hudson.workspace,build,test,javadoc" />

	<target name="test" depends="setup-hudson.workspace,init.build,build.project">
		<ant antfile="build-junit.xml" target="test" />
	</target>
	<target name="javadoc" depends="setup-hudson.workspace,init.build,build.project">
		<ant antfile="build-javadoc.xml" target="javadoc" />
	</target>

</project>
