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,
|
||||
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
|
||||
following, which are not in the CVS repository:
|
||||
|
||||
|
@ -30,19 +34,7 @@
|
|||
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" />
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 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="link.offline" value="false"/>
|
||||
<property name="javacdashg" value="yes"/>
|
||||
|
@ -62,6 +54,9 @@
|
|||
<property name="publicjavadocs" location="${docs}/public-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.
|
||||
Set this property to the directory containing j2ee.jar:
|
||||
-->
|
||||
|
@ -354,6 +349,55 @@
|
|||
</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"
|
||||
description="generates the full Jskad+Savant+QuillDriver+Translation Tool source distribution" >
|
||||
<!-- Put everything necessary into the zip file -->
|
||||
|
@ -629,55 +673,6 @@
|
|||
</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"
|
||||
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">
|
||||
|
@ -797,6 +792,7 @@
|
|||
explicit is a Good Thing: -->
|
||||
<exclude name="**/*.properties" />
|
||||
<exclude name="**/*.rtf" />
|
||||
<exclude name="**/*.xsl" />
|
||||
<exclude name="**/*.txt" />
|
||||
<exclude name="**/*.ini" />
|
||||
<exclude name="**/*.html" />
|
||||
|
@ -806,93 +802,46 @@
|
|||
</target>
|
||||
|
||||
|
||||
<target name="package-for-java-web-start"
|
||||
depends="clean"
|
||||
description="Builds the Java Web Start version of ${my.app}">
|
||||
<target name="compile-from-scratch-and-call-jws-subbuild"
|
||||
depends="init"
|
||||
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. -->
|
||||
<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"/>
|
||||
|
||||
<!-- Clean: (FIXME: clean only what you must clean, the appropriate bin dir.) -->
|
||||
<antcall target="clean"/>
|
||||
|
||||
<!-- Now, having cleaned, we create ${my.app}-JWS.jar: -->
|
||||
<antcall target="${my.prereq}">
|
||||
<param name="my.jar.suffix" value="JWS"/>
|
||||
<param name="javacdashg" value="no"/>
|
||||
</antcall>
|
||||
|
||||
<!-- Now use the Venus Application Publisher's (Vamp's) Ant task
|
||||
to create a .war file. We don't use Tomcat or the like to
|
||||
distribute our apps at this point, so we don't need the full
|
||||
WAR file. We 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.
|
||||
<!-- Finally, call jwsbuild.xml appropriately: -->
|
||||
<ant antfile="jwsbuild.xml" target="package-for-java-web-start"
|
||||
inheritAll="false" inheritRefs="false">
|
||||
<property name="dist" value="${dist}"/>
|
||||
|
||||
Thus, we'll 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, 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"/>
|
||||
<property name="dgkey.password" value="${dgkey.password}"/>
|
||||
<property name="keystore.password" value="${keystore.password}"/>
|
||||
<property name="keystore" value="${keystore}"/>
|
||||
<property name="key.alias" value="${key.alias}"/>
|
||||
</ant>
|
||||
</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>
|
||||
|
||||
<!-- My TO-DO list: -->
|
||||
|
||||
<!-- DLC FIXME: we need a compile-all that uses if="" and <available>. -->
|
||||
|
||||
<!-- DLC FIXME: Now that we use javac -target 1.1, do we need a
|
||||
<!-- DLC FIXME: If we use bootclasspath and -target 1.1, do we need a
|
||||
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