At Edward's request, Vamp is no longer required to build our tools. It is still
required by anyone who wishes to cut a Java Web Start release. This should make it easier for a new developer to get up to speed.
This commit is contained in:
parent
86a729ee08
commit
010d8cb972
2 changed files with 193 additions and 130 deletions
209
build.xml
209
build.xml
|
@ -5,6 +5,10 @@
|
||||||
describes how to use this file to build Savant, Jskad,
|
describes how to use this file to build Savant, Jskad,
|
||||||
QuillDriver, and the translation tool.
|
QuillDriver, and the translation tool.
|
||||||
|
|
||||||
|
This build file is the main one, and it uses jwsbuild.xml for
|
||||||
|
building Java Web Start (JWS) releases. See the comments in that
|
||||||
|
file to learn why.
|
||||||
|
|
||||||
Quick start for the impatient: This buildfile looks for the
|
Quick start for the impatient: This buildfile looks for the
|
||||||
following, which are not in the CVS repository:
|
following, which are not in the CVS repository:
|
||||||
|
|
||||||
|
@ -30,19 +34,7 @@
|
||||||
see http://thdltools.sourceforge.net/BuildSystems.html.
|
see http://thdltools.sourceforge.net/BuildSystems.html.
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
<!-- Ant extensions we use: -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- See http://www.vamphq.com/ant.html for vamp*: -->
|
|
||||||
<taskdef name="vampwar" classname="venus.ant.taskdefs.VampWar" />
|
|
||||||
<taskdef name="vampinstaller" classname="venus.ant.taskdefs.VampInstaller" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- set global properties for this build -->
|
<!-- set global properties for this build -->
|
||||||
<property name="key.alias" value="David Germano"/>
|
|
||||||
<property name="keystore" value="file:///f:/thdl/Jskad/thawte/keystore"/>
|
|
||||||
<property name="my.jar.suffix" value="vanilla"/>
|
<property name="my.jar.suffix" value="vanilla"/>
|
||||||
<property name="link.offline" value="false"/>
|
<property name="link.offline" value="false"/>
|
||||||
<property name="javacdashg" value="yes"/>
|
<property name="javacdashg" value="yes"/>
|
||||||
|
@ -62,6 +54,9 @@
|
||||||
<property name="publicjavadocs" location="${docs}/public-javadocs"/>
|
<property name="publicjavadocs" location="${docs}/public-javadocs"/>
|
||||||
<property name="privatejavadocs" location="${docs}/private-javadocs"/>
|
<property name="privatejavadocs" location="${docs}/private-javadocs"/>
|
||||||
|
|
||||||
|
<property name="key.alias" value="David Germano"/>
|
||||||
|
<property name="keystore" value="file:///f:/thdl/Jskad/thawte/keystore"/>
|
||||||
|
|
||||||
<!-- If you have installed the J2EE SDK, then you can compile servlets.
|
<!-- If you have installed the J2EE SDK, then you can compile servlets.
|
||||||
Set this property to the directory containing j2ee.jar:
|
Set this property to the directory containing j2ee.jar:
|
||||||
-->
|
-->
|
||||||
|
@ -354,6 +349,55 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="web-start-releases"
|
||||||
|
depends="jskad-jws,savant-jws,qd-jws,tt-jws"
|
||||||
|
description="Builds the Java Web Start versions of all applications"/>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="jskad-jws"
|
||||||
|
depends="init"
|
||||||
|
description="Builds the Java Web Start version of Jskad">
|
||||||
|
<antcall target="compile-from-scratch-and-call-jws-subbuild">
|
||||||
|
<param name="my.app" value="Jskad"/>
|
||||||
|
<param name="my.prereq" value="jskad-dist"/>
|
||||||
|
</antcall>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- DLC FIXME: package up all the XML jars and the JMF jars and libraries that Savant uses.
|
||||||
|
-->
|
||||||
|
<target name="savant-jws"
|
||||||
|
depends="init"
|
||||||
|
description="Builds the Java Web Start version of Savant">
|
||||||
|
<antcall target="compile-from-scratch-and-call-jws-subbuild">
|
||||||
|
<param name="my.app" value="Savant"/>
|
||||||
|
<param name="my.prereq" value="savant-dist"/>
|
||||||
|
</antcall>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- DLC FIXME: package up all the XML jars and the JMF jars and libraries that QuillDriver uses.
|
||||||
|
-->
|
||||||
|
<target name="qd-jws"
|
||||||
|
depends="init"
|
||||||
|
description="Builds the Java Web Start version of QuillDriver">
|
||||||
|
<antcall target="compile-from-scratch-and-call-jws-subbuild">
|
||||||
|
<param name="my.app" value="QuillDriver"/>
|
||||||
|
<param name="my.prereq" value="qd-dist"/>
|
||||||
|
</antcall>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="tt-jws"
|
||||||
|
depends="init"
|
||||||
|
description="Builds the Java Web Start version of the translation tool">
|
||||||
|
<antcall target="compile-from-scratch-and-call-jws-subbuild">
|
||||||
|
<param name="my.app" value="DictionarySearchAppletAndJavaWebStart"/>
|
||||||
|
<param name="my.prereq" value="tt-applet-plus-jws-dist"/>
|
||||||
|
</antcall>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
<target name="src-dist" depends="init"
|
<target name="src-dist" depends="init"
|
||||||
description="generates the full Jskad+Savant+QuillDriver+Translation Tool source distribution" >
|
description="generates the full Jskad+Savant+QuillDriver+Translation Tool source distribution" >
|
||||||
<!-- Put everything necessary into the zip file -->
|
<!-- Put everything necessary into the zip file -->
|
||||||
|
@ -629,55 +673,6 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
<target name="web-start-releases"
|
|
||||||
depends="jskad-jws,savant-jws,qd-jws,tt-jws"
|
|
||||||
description="Builds the Java Web Start versions of all applications"/>
|
|
||||||
|
|
||||||
|
|
||||||
<target name="jskad-jws"
|
|
||||||
depends="init"
|
|
||||||
description="Builds the Java Web Start version of Jskad">
|
|
||||||
<antcall target="package-for-java-web-start">
|
|
||||||
<param name="my.app" value="Jskad"/>
|
|
||||||
<param name="my.prereq" value="jskad-dist"/>
|
|
||||||
</antcall>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- DLC FIXME: package up all the XML jars and the JMF jars and libraries that Savant uses.
|
|
||||||
-->
|
|
||||||
<target name="savant-jws"
|
|
||||||
depends="init"
|
|
||||||
description="Builds the Java Web Start version of Savant">
|
|
||||||
<antcall target="package-for-java-web-start">
|
|
||||||
<param name="my.app" value="Savant"/>
|
|
||||||
<param name="my.prereq" value="savant-dist"/>
|
|
||||||
</antcall>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- DLC FIXME: package up all the XML jars and the JMF jars and libraries that QuillDriver uses.
|
|
||||||
-->
|
|
||||||
<target name="qd-jws"
|
|
||||||
depends="init"
|
|
||||||
description="Builds the Java Web Start version of QuillDriver">
|
|
||||||
<antcall target="package-for-java-web-start">
|
|
||||||
<param name="my.app" value="QuillDriver"/>
|
|
||||||
<param name="my.prereq" value="qd-dist"/>
|
|
||||||
</antcall>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
|
|
||||||
<target name="tt-jws"
|
|
||||||
depends="init"
|
|
||||||
description="Builds the Java Web Start version of the translation tool">
|
|
||||||
<antcall target="package-for-java-web-start">
|
|
||||||
<param name="my.app" value="DictionarySearchAppletAndJavaWebStart"/>
|
|
||||||
<param name="my.prereq" value="tt-applet-plus-jws-dist"/>
|
|
||||||
</antcall>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
|
|
||||||
<target name="ttsc-init" depends="init"
|
<target name="ttsc-init" depends="init"
|
||||||
description="used internally to set a property when the J2EE SDK or Tomcat's servlet.jar is installed in a place where we can find it. In that case, we can build servlets.">
|
description="used internally to set a property when the J2EE SDK or Tomcat's servlet.jar is installed in a place where we can find it. In that case, we can build servlets.">
|
||||||
<condition property="found.servlet.classes">
|
<condition property="found.servlet.classes">
|
||||||
|
@ -797,6 +792,7 @@
|
||||||
explicit is a Good Thing: -->
|
explicit is a Good Thing: -->
|
||||||
<exclude name="**/*.properties" />
|
<exclude name="**/*.properties" />
|
||||||
<exclude name="**/*.rtf" />
|
<exclude name="**/*.rtf" />
|
||||||
|
<exclude name="**/*.xsl" />
|
||||||
<exclude name="**/*.txt" />
|
<exclude name="**/*.txt" />
|
||||||
<exclude name="**/*.ini" />
|
<exclude name="**/*.ini" />
|
||||||
<exclude name="**/*.html" />
|
<exclude name="**/*.html" />
|
||||||
|
@ -806,93 +802,46 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
<target name="package-for-java-web-start"
|
<target name="compile-from-scratch-and-call-jws-subbuild"
|
||||||
depends="clean"
|
depends="init"
|
||||||
description="Builds the Java Web Start version of ${my.app}">
|
description="Cleans, compiles, and packages the Java Web Start version of ${my.app}">
|
||||||
|
|
||||||
<!-- First, you must give the passwords so that we can sign the JARs. -->
|
<!-- First, you must give the passwords so that we can sign the JARs. -->
|
||||||
<fail message="Use 'ant -Dkeystore.password=psst' to sign a Java Web Start WAR file."
|
<fail message="Use 'ant -Dkeystore.password=psst' to sign a Java Web Start WAR file."
|
||||||
unless="keystore.password"/>
|
unless="keystore.password"/>
|
||||||
<fail message="Use 'ant -Ddgkey.password=psst' to sign a Java Web Start WAR file."
|
<fail message="Use 'ant -Ddgkey.password=psst' to sign a Java Web Start WAR file."
|
||||||
unless="dgkey.password"/>
|
unless="dgkey.password"/>
|
||||||
|
|
||||||
|
<!-- Clean: (FIXME: clean only what you must clean, the appropriate bin dir.) -->
|
||||||
|
<antcall target="clean"/>
|
||||||
|
|
||||||
<!-- Now, having cleaned, we create ${my.app}-JWS.jar: -->
|
<!-- Now, having cleaned, we create ${my.app}-JWS.jar: -->
|
||||||
<antcall target="${my.prereq}">
|
<antcall target="${my.prereq}">
|
||||||
<param name="my.jar.suffix" value="JWS"/>
|
<param name="my.jar.suffix" value="JWS"/>
|
||||||
<param name="javacdashg" value="no"/>
|
<param name="javacdashg" value="no"/>
|
||||||
</antcall>
|
</antcall>
|
||||||
|
|
||||||
<!-- Now use the Venus Application Publisher's (Vamp's) Ant task
|
<!-- Finally, call jwsbuild.xml appropriately: -->
|
||||||
to create a .war file. We don't use Tomcat or the like to
|
<ant antfile="jwsbuild.xml" target="package-for-java-web-start"
|
||||||
distribute our apps at this point, so we don't need the full
|
inheritAll="false" inheritRefs="false">
|
||||||
WAR file. We in fact need only the JAR file inside it.
|
<property name="dist" value="${dist}"/>
|
||||||
There is a ${my.app}.jnlp file inside it, too, but that file
|
|
||||||
uses macros like $$name and $$codebase, which are only
|
|
||||||
appropriate to Tomcat-type environments.
|
|
||||||
|
|
||||||
Thus, we'll run 'jar xf ${my.app}-web-start.war
|
<property name="dgkey.password" value="${dgkey.password}"/>
|
||||||
${my.app}-JWS.jar' to extract the signed JAR file and copy
|
<property name="keystore.password" value="${keystore.password}"/>
|
||||||
the .jar and the ${dist}/${my.app}.jnlp file (NOT the one in
|
<property name="keystore" value="${keystore}"/>
|
||||||
the WAR) to the web server. (Be sure that the web server has
|
<property name="key.alias" value="${key.alias}"/>
|
||||||
its MIME types configured correctly so that the .jnlp file is
|
</ant>
|
||||||
served as an application/jnlp or the like, not text/xml.)
|
|
||||||
|
|
||||||
YES, THIS MEANS WE'RE NOT MAKING FULL USE OF THE VAMP
|
|
||||||
PACKAGE. Yes, it means that we're requiring anyone who
|
|
||||||
wishes to cut a JWS release to install vamp.jar, when we
|
|
||||||
could use the built-in SignJar task instead. BUT, this
|
|
||||||
method means that we're ready for a J2EE application server
|
|
||||||
framework.
|
|
||||||
|
|
||||||
If you change web servers or the location on the web server
|
|
||||||
where the JAR and jnlp file are located, you have to edit
|
|
||||||
${my.app}.jnlp. Note that doing so will mean that users who've
|
|
||||||
installed ${my.app} from the old location will NOT be able to
|
|
||||||
seamlessly upgrade, so don't do this often.
|
|
||||||
|
|
||||||
To install the Vamp Ant task, visit
|
|
||||||
'http://www.vamphq.com/ant.html' and follow the instructions.
|
|
||||||
Note that you *CAN* just vamp.jar into Ant's 'lib' directory
|
|
||||||
with Ant 1.5.1.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<vampwar dest="${dist}/java-web-start/${my.app}-web-start.war">
|
|
||||||
<jnlp src="${dist}/${my.app}.jnlp">
|
|
||||||
<resources>
|
|
||||||
<fileset dir="${dist}/lib">
|
|
||||||
<include name="${my.app}-JWS.jar" />
|
|
||||||
</fileset>
|
|
||||||
</resources>
|
|
||||||
</jnlp>
|
|
||||||
|
|
||||||
<!-- David Chandler signs our JARs for now, and he uses this info: -->
|
|
||||||
<jarsigner
|
|
||||||
keystore = "${keystore}"
|
|
||||||
storepass = "${keystore.password}"
|
|
||||||
keypass = "${dgkey.password}"
|
|
||||||
alias = "${key.alias}"/>
|
|
||||||
</vampwar>
|
|
||||||
|
|
||||||
<!-- Extract the JAR file and delete the WAR file: -->
|
|
||||||
<unwar src="${dist}/java-web-start/${my.app}-web-start.war"
|
|
||||||
dest="${dist}/java-web-start/">
|
|
||||||
<patternset>
|
|
||||||
<include name="${my.app}-JWS.jar"/>
|
|
||||||
<exclude name="**/*"/>
|
|
||||||
</patternset>
|
|
||||||
</unwar>
|
|
||||||
<antcall target="maybe-delete-the-war"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="maybe-delete-the-war" if="delete.the.war" depends="init">
|
|
||||||
<!-- <echo message="deleting the war"/> -->
|
|
||||||
<delete file="${dist}/java-web-start/${my.app}-web-start.war"/>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<!-- My TO-DO list: -->
|
<!-- My TO-DO list: -->
|
||||||
|
|
||||||
<!-- DLC FIXME: we need a compile-all that uses if="" and <available>. -->
|
<!-- DLC FIXME: If we use bootclasspath and -target 1.1, do we need a
|
||||||
|
|
||||||
<!-- DLC FIXME: Now that we use javac -target 1.1, do we need a
|
|
||||||
separate tt-handheld and tt-standalone? -->
|
separate tt-handheld and tt-standalone? -->
|
||||||
|
|
||||||
|
<!-- DLC FIXME: create the .jnlp files based on a template and Ant
|
||||||
|
properties. Edward e-mailed thdltools-devel requesting something
|
||||||
|
like this. -->
|
||||||
|
|
114
jwsbuild.xml
Normal file
114
jwsbuild.xml
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
<!-- @author David Chandler, dchandler@users.sourceforge.net
|
||||||
|
|
||||||
|
We have a document,
|
||||||
|
http://thdltools.sourceforge.net/BuildSystems.html, that you
|
||||||
|
probably should read. FIXME: update this document to describe
|
||||||
|
the two-buildfile system.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project name="THDLTools" default="fail-nicely" basedir=".">
|
||||||
|
|
||||||
|
|
||||||
|
<description>
|
||||||
|
This Jakarta Ant buildfile is used to build the Java Web Start
|
||||||
|
releases of Jskad, Savant, QuillDriver, and the Translation Tool.
|
||||||
|
This is separate from build.xml because to use this build file,
|
||||||
|
you must have installed the Venus Application Publisher's (Vamp's)
|
||||||
|
Ant tasks. Read the comments of this buildfile to learn more, or
|
||||||
|
see http://thdltools.sourceforge.net/BuildSystems.html.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- Ant extensions we use: -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- See http://www.vamphq.com/ant.html for vamp*: -->
|
||||||
|
<taskdef name="vampwar" classname="venus.ant.taskdefs.VampWar" />
|
||||||
|
<taskdef name="vampinstaller" classname="venus.ant.taskdefs.VampInstaller" />
|
||||||
|
|
||||||
|
|
||||||
|
<target name="fail-nicely" description="Tells the user to use build.xml, not this subbuildfile.">
|
||||||
|
<fail message="Do not use this file directly; use build.xml file instead, which then uses this file."/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="this-init">
|
||||||
|
<!-- Create the time stamp -->
|
||||||
|
<tstamp/>
|
||||||
|
|
||||||
|
<mkdir dir="${dist}/java-web-start"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="package-for-java-web-start"
|
||||||
|
depends="this-init"
|
||||||
|
description="Builds the Java Web Start version of ${my.app} given that you have compiled it (and from scratch, since our compilation procedure doesn't konw about dependencies)">
|
||||||
|
|
||||||
|
<!-- First, you must give the passwords so that we can sign the JARs. -->
|
||||||
|
<fail message="Use 'ant -Dkeystore.password=psst' to sign a Java Web Start WAR file."
|
||||||
|
unless="keystore.password"/>
|
||||||
|
<fail message="Use 'ant -Ddgkey.password=psst' to sign a Java Web Start WAR file."
|
||||||
|
unless="dgkey.password"/>
|
||||||
|
|
||||||
|
<!-- Use the Venus Application Publisher's (Vamp's) Ant task to
|
||||||
|
create a .war file. If you use Tomcat or the like to
|
||||||
|
distribute, then the WAR is all you need. If not, you don't
|
||||||
|
need the full WAR file. You in fact need only the JAR file
|
||||||
|
inside it. There is a ${my.app}.jnlp file inside it, too,
|
||||||
|
but that file uses macros like $$name and $$codebase, which
|
||||||
|
are only appropriate to Tomcat-type environments.
|
||||||
|
|
||||||
|
Thus, you non-Tomcat-users should run 'jar xf
|
||||||
|
${my.app}-web-start.war ${my.app}-JWS.jar' to extract the
|
||||||
|
signed JAR file and copy the .jar and the
|
||||||
|
${dist}/${my.app}.jnlp file (NOT the one in the WAR) to the
|
||||||
|
web server. (Be sure that the web server has its MIME types
|
||||||
|
configured correctly so that the .jnlp file is served as an
|
||||||
|
application/jnlp or the like, not text/xml.)
|
||||||
|
|
||||||
|
Yes, it means that we're requiring anyone who wishes to cut a
|
||||||
|
JWS release to install vamp.jar, when we could use the
|
||||||
|
built-in SignJar task instead for non-Tomcat-users. BUT,
|
||||||
|
this method means that we're ready for a J2EE application
|
||||||
|
server framework like the one at Virginia.
|
||||||
|
|
||||||
|
If you change web servers or the location on the web server
|
||||||
|
where the JAR and jnlp file are located, you have to edit
|
||||||
|
${my.app}.jnlp. Note that doing so will mean that users who've
|
||||||
|
installed ${my.app} from the old location will NOT be able to
|
||||||
|
seamlessly upgrade, so don't do this often.
|
||||||
|
|
||||||
|
To install the Vamp Ant task, visit
|
||||||
|
'http://www.vamphq.com/ant.html' and follow the instructions.
|
||||||
|
Note that you *CAN* just drop vamp.jar into Ant's 'lib'
|
||||||
|
directory with Ant 1.5.1.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<vampwar dest="${dist}/java-web-start/${my.app}-web-start.war">
|
||||||
|
<jnlp src="${dist}/${my.app}.jnlp">
|
||||||
|
<resources>
|
||||||
|
<fileset dir="${dist}/lib">
|
||||||
|
<include name="${my.app}-JWS.jar" />
|
||||||
|
</fileset>
|
||||||
|
</resources>
|
||||||
|
</jnlp>
|
||||||
|
|
||||||
|
<jarsigner
|
||||||
|
keystore = "${keystore}"
|
||||||
|
storepass = "${keystore.password}"
|
||||||
|
keypass = "${dgkey.password}"
|
||||||
|
alias = "${key.alias}"/>
|
||||||
|
</vampwar>
|
||||||
|
|
||||||
|
<!-- Extract the JAR file: -->
|
||||||
|
<unwar src="${dist}/java-web-start/${my.app}-web-start.war"
|
||||||
|
dest="${dist}/java-web-start/">
|
||||||
|
<patternset>
|
||||||
|
<include name="${my.app}-JWS.jar"/>
|
||||||
|
<exclude name="**/*"/>
|
||||||
|
</patternset>
|
||||||
|
</unwar>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
</project>
|
Loading…
Reference in a new issue