Re: Ant Task changes for war generation

From: David Avendasora (webobject..vendasora.com)
Date: Wed Aug 27 2008 - 12:02:06 EDT

  • Next message: Chuck Hill: "Re: Ant Task changes for war generation"

    You are likely correct that I've been lucky.

    My windows CLSSPATH.TXT does reflect the bad path, but my web.xml has
    the right one. Does the web.xml override the classpath files for a
    servlet?

    I really don't fully understand the inner-workings of WO when it comes
    to deployment. I just know that what I currently have works on 3
    different Tomcat installs.

    Dave

    On Aug 27, 2008, at 10:37 AM, Stefan Klein wrote:

    > Then your a lucky man.
    > But how did Tomcat find your Application class. The Windows class
    > path file has the same error as the one that is fixed in the <!--
    > fix the Macos*ClassPath.txt files --> section.
    >
    > Stefan
    >
    > David Avendasora schrieb:
    >> Interesting. I have been deploying to a WAR that runs in Tomcat on
    >> Windows Server 2000/2003 and OS X and I don't have to make any of
    >> these changes.
    >>
    >> Dave
    >>
    >>
    >> On Aug 27, 2008, at 7:41 AM, Stefan Klein wrote:
    >>
    >>> Hi,
    >>>
    >>> I tried out the war generation (Eclipse 3.3; WOLips 3.3.5390,
    >>> WinXP, WO 5.2.4).
    >>> To get it work i had to change some lines.
    >>> You can find the changes in the attachment (search for SWK).
    >>> I think some of the changes are relevant for Mac OS as well.
    >>>
    >>> Stefan
    >>> <project name="FlussWin54" 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">
    >>> <war destfile="${dest.dir}/${project.name}.war" webxml="$
    >>> {dest.dir}/${project.name}/WEB-INF/web.xml">
    >>> <fileset dir="${dest.dir}/${project.name}">
    >>> <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">
    >>> <mkdir dir="${dest.dir}/${project.name}/WEB-INF/classes" />
    >>> <mkdir dir="${dest.dir}/${project.name}/WEB-INF/tlds" />
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/">
    >>> <fileset dir="${dest.dir}/${project.name}.woa/Contents/">
    >>> <include name="web.xml" />
    >>> </fileset>
    >>> </copy>
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/">
    >>> <fileset dir="."> <!-- SWK fix: replace ".." with "." -->
    >>> <include name="LICENSE" />
    >>> </fileset>
    >>> </copy>
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/">
    >>> <fileset dir="${dest.dir}">
    >>> <include name="${project.name}.woa/**" />
    >>> </fileset>
    >>> </copy>
    >>> <!-- copy the frameworks to the WEBINFROOT/Library
    >>> directory -->
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/">
    >>> <fileset dir="${dest.dir}/${project.name}.woa/Contents">
    >>> <include name="Library/**" />
    >>> </fileset>
    >>> </copy>
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/">
    >>> <fileset dir="${dest.dir}/${project.name}.woa">
    >>> <include name="Resources/**" />
    >>> </fileset>
    >>> </copy>
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/lib/">
    >>> <fileset dir="${dest.dir}/${project.name}/WEB-INF">
    >>> <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" />
    >>>
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/tlds">
    >>> <fileset dir="${wo.wosystemroot}/Library/Frameworks/
    >>> JavaWOJSPServlet.framework/Resources/">
    >>> <include name="WOtaglib_1_0.tld" />
    >>> </fileset>
    >>> </copy>
    >>> <!-- the WebObject Extensions -->
    >>> <copy todir="${dest.dir}/${project.name}/WEB-INF/lib">
    >>> <fileset dir="${wo.wolocalroot}/Library/WebObjects/
    >>> Extensions/"><!-- SWK fix: added ${wo.wolocalroot} -->
    >>> <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" />
    >>>
    >>> <!-- SWK fix Windows\CLSSPATH.TXT -->
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/$
    >>> {project.name}.woa/Contents/Windows/CLSSPATH.txt" match="APPROOT\
    >>> \Resources\\Java\\${project.name.lowercase}.jar" replace="APPROOT/$
    >>> {project.name}.woa/Contents/Resources/Java/$
    >>> {project.name.lowercase}.jar" byline="true" />
    >>>
    >>> <!-- SWK fix the UNIXClassPath.txt files -->
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/$
    >>> {project.name}.woa/Contents/Unix/UNIXClassPath.txt" match="APPROOT/
    >>> Resources/Java/${project.name.lowercase}.jar" replace="APPROOT/$
    >>> {project.name}.woa/Contents/Resources/Java/$
    >>> {project.name.lowercase}.jar" byline="true" />
    >>>
    >>> <!-- SWK fix Windows : Change the Backslash -->
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/
    >>> web.xml" match="WEBINFROOT//" replace="WEBINFROOT/" byline="true" />
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/
    >>> web.xml" match="\\Library/WebObjects" replace="/Library/
    >>> WebObjects" byline="true" />
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/
    >>> web.xml" match="\\Resources\\Java\\" replace="/Resources/Java/"
    >>> byline="true" />
    >>>
    >>> <!-- SWK fix : Path to WOtaglib -->
    >>> <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/
    >>> web.xml" match="/WEB-INF/tlds//WEB-INF/tlds/WOtaglib_1_0.tld"
    >>> replace="/WEB-INF/tlds/WOtaglib_1_0.tld" byline="true" />
    >>> <!-- fix the web.xml file: the app itself needs
    >>> project.name/Contents -->
    >>>
    >>> <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>
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Aug 27 2008 - 12:02:27 EDT