<?xml version="1.0" encoding="UTF-8"?>
<project name="ProjJava" default="build" basedir=".">
<!-- main targets -->
<!-- add optional targets to depends list if needed -->
<target name="build" depends="setProps,init.build,build.woapp,ssdd,war"/>
<target name="compileAndBuild" depends="setProps,init.build,compile,build.woapp,ssdd,war"/>
<target name="install" depends="setProps,init.install,build.woapp,ssdd,war"/>
<target name="clean" depends="setProps">
<delete dir="dist"/>
</target>
<!-- property determination -->
<target name="setProps">
<property file="${user.home}${file.separator}build.properties"/>
<property file="build.properties"/>
<property file="${user.home}${file.separator}Library${file.separator}wobuild.properties"/>
<condition property="wo.properties.check.failed">
<not>
<and>
<isset property="wo.wosystemroot"/>
<isset property="wo.wolocalroot"/>
</and>
</not>
</condition>
<fail message="Could not find ${user.home}${file.separator}Library${file.separator}wobuild.properties." if="wo.properties.check.failed"/>
<property name="install.dir" value="${wo.wolocalroot}/Library/WebObjects/Applications"/>
</target>
<!-- basic initializations -->
<target name="init.install">
<tstamp/>
<property name="dest.dir" value="${install.dir}"/>
</target>
<target name="init.build">
<tstamp/>
<property name="dest.dir" value="dist"/>
</target>
<!-- woproject tasks -->
<target name="build.woapp">
<taskdef name="woapplication" classname="org.objectstyle.woproject.ant.WOApplication">
</taskdef>
<!-- add webXML="true" to generate a web.xml file -->
<woapplication name="${
project.name}" stdFrameworks="false" destDir="${dest.dir}" customInfoPListContent="${customInfoPListContent}" principalClass="${principalClass}" webXML="${webXML}" webXML_CustomContent="${webXML_CustomContent}">
<classes dir="${classes.dir}">
<patternset>
<includesfile name="woproject/classes.include.patternset"/>
<excludesfile name="woproject/classes.exclude.patternset"/>
</patternset>
</classes>
<wsresources dir="WebServerResources">
<patternset>
<include name="**/*"/>
<exclude name="CVS"/>
<exclude name=".svn"/>
<excludesfile name="woproject/wsresources.exclude.patternset"/>
</patternset>
</wsresources>
<resources dir="Resources">
<patternset>
<include name="**/*"/>
<exclude name="CVS"/>
<exclude name=".svn"/>
<excludesfile name="woproject/resources.exclude.patternset"/>
</patternset>
</resources>
<resources dir="Components">
<patternset>
<include name="**/*"/>
<exclude name="CVS"/>
<exclude name=".svn"/>
<excludesfile name="woproject/resources.exclude.patternset"/>
</patternset>
</resources>
<frameworks root="${wo.wolocalroot}" embed="${servletDeployment}">
<patternset>
<includesfile name="woproject/ant.frameworks.wo.wolocalroot"/>
</patternset>
</frameworks>
<frameworks root="${user.home}" embed="${servletDeployment}">
<patternset>
<includesfile name="woproject/ant.frameworks.user.home"/>
</patternset>
</frameworks>
<frameworks root="${wo.wosystemroot}" embed="${servletDeployment}">
<patternset>
<includesfile name="woproject/ant.frameworks.wo.wosystemroot"/>
</patternset>
</frameworks>
<otherclasspath root="${wo.wosystemroot}">
<patternset>
<includesfile name="woproject/ant.classpaths.wo.wosystemroot"/>
</patternset>
</otherclasspath>
<!--<lib dir="Libraries">
<include name="*.jar"/>
<exclude name="**/*.woa/**"/>
</lib>-->
</woapplication>
</target>
<!-- optional targets -->
<!-- war target-->
<!-- To use this target remove the if="${never}" statement and follow the instructions for the ssdd target -->
<target name="war" if="servletDeployment" depends="ssdd">
<include name="**"/>
</fileset>
</war>
</target>
<!-- ssdd target-->
<!-- To use this target
1) remove the if="${never}" statement
2) change embed=true in the woapp target above
3) create the LICENSE in your project directory
4) add JavaWOJSPServlet in your WOFrameworks build path
5) Edit the build.properties file
6) set webXML = true
-->
<target name="ssdd" if="servletDeployment" depends="build.woapp">
<include name="web.xml"/>
</fileset>
</copy>
<fileset dir="..">
<include name="LICENSE"/>
</fileset>
</copy>
<fileset dir="${dest.dir}">
</fileset>
</copy>
<!-- copy the frameworks to the WEBINFROOT/Library directory -->
<include name="Library/**"/>
</fileset>
</copy>
<include name="Resources/**"/>
</fileset>
</copy>
<include name="**/Resources/**/*.jar"/>
</fileset>
<mapper type="flatten"/>
</copy>
<!-- Get the necessary Frameworks from the webobjects system root instead of the project wrapper -->
<copy todir="${dest.dir}/${
project.name}/WEB-INF/lib" file="${wo.wosystemroot}/Library/Frameworks/JavaWOJSPServlet.framework/WebServerResources/Java/JavaWOJSPServlet_client.jar"/>
<fileset dir="${wo.wosystemroot}/Library/Frameworks/JavaWOJSPServlet.framework/Resources/">
<include name="WOtaglib_1_0.tld"/>
</fileset>
</copy>
<!-- the WebObject Extensions -->
<fileset dir="/Library/WebObjects/Extensions/">
<include name="*.jar"/>
<exclude name="servlet.jar"/>
</fileset>
<mapper type="flatten"/>
</copy>
<!-- fix the Macos*ClassPath.txt files -->
<replaceregexp file="${dest.dir}/${
project.name}/WEB-INF/${
project.name}.woa/Contents/MacOS/MacOSClassPath.txt" match="APPROOT/Resources/Java/${project.name.lowercase}.jar" replace="APPROOT/${
project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true"/>
<replaceregexp file="${dest.dir}/${
project.name}/WEB-INF/${
project.name}.woa/Contents/MacOS/MacOSXServerClassPath.txt" match="APPROOT/Resources/Java/${project.name.lowercase}.jar" replace="APPROOT/${
project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true"/>
<replaceregexp file="${dest.dir}/${
project.name}/WEB-INF/web.xml" match="WEBINFROOT/Resources/Java/${project.name.lowercase}.jar" replace="WEBINFROOT/${
project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true"/>
<!-- fix the web.xml file to remove the extra Frameworks/ directory level for the frameworks -->
<replaceregexp file="${dest.dir}/${
project.name}/WEB-INF/web.xml" match="WEBINFROOT/Frameworks//" replace="WEBINFROOT/" byline="true"/>
</target>
<target name="compile" depends="setProps,init.build">
<taskdef name="wocompile" classname="org.objectstyle.woproject.ant.WOCompile"/>
<mkdir dir="bin"/>
<wocompile srcdir="Sources" destdir="bin">
<frameworks root="${wo.dir.user.home.library.frameworks}">
<patternset>
<includesfile name="woproject/ant.frameworks.user.home"/>
</patternset>
</frameworks>
<frameworks root="${wo.wolocalroot}">
<patternset>
<includesfile name="woproject/ant.frameworks.wo.wolocalroot"/>
</patternset>
</frameworks>
<frameworks root="${wo.wosystemroot}">
<patternset>
<includesfile name="woproject/ant.frameworks.wo.wosystemroot"/>
</patternset>
</frameworks>
<classpath>
<fileset dir="${wo.wolocalroot}">
<patternset>
<includesfile name="woproject/ant.frameworks.wo.wolocalroot"/>
</patternset>
</fileset>
<fileset dir="Libraries">
<filename name="**/*.jar"/>
</fileset>
</classpath>
</wocompile>
</target>
</project>