Commit graph

98 commits

Author SHA1 Message Date
dchandler
879b477902 Made some ad-hoc tests in test.java into JUnit tests, run by 'ant
check'.

NORM_NFD was replaced with NORM_NFKD in three cases in testMostlyNFKD.
2003-03-22 03:24:56 +00:00
dchandler
1205210b36 Removed every last trace of QuillDriver and Savant from this file. 2003-03-22 02:48:21 +00:00
eg3p
744cc70796 I removed all tasks relating to Savant and QuillDriver.
I could have also removed the references to extensions
such as xalan.jar, xercesImpl.jar and so forth, but Iwasn't
sure if Tibbibl needed them or not.
2003-03-14 00:31:45 +00:00
dchandler
b49c441e6e Minor touch-up to my previous commit. I'd left out the invocation of
the JUnit tests and subsequent report generation.
2003-02-10 04:37:04 +00:00
dchandler
bb19c4f6d1 You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions.  If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds].  This is a side effect of improving the nightly builds.

Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.

If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:

#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh

where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad.  Here's
doTheBuild.sh:

#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
     echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
 && rm -fr ${DEST}/* \
 && cp dist/nightlyBuild.zip $DEST \
 && cd $DEST \
     && unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
dchandler
56de29cf4f jskad-all-in-one-dist, and thus jskad-jws, was botched.
nightly-build now cleans only ${bin} so that ${dist}'s files stay
around.

We now unwar all JAR files.
2003-02-03 08:21:37 +00:00
dchandler
69b07cda65 Added some utility targets pour moi.
Better error checking.

There's now a nightly builds HTML page, for use with a script like the
following:

#! /bin/sh
JSKAD=/www/nightly/Jskad
DEST=/www/nightly/builds
HISTORY=/www/nightly/history
DATE=`date`
if test ! -d $DEST; then \
     echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(rm -fr ${DEST}/* && cd $JSKAD && cvs -f -z3 update -dP && ant dc-nightly-build \
 && cp dist/nightlyBuild.zip $DEST && cd $DEST && unzip nightlyBuild.zip \
 && rm nightlyBuild.zip && \
  (cd docs \
   && mv private-javadocs-*.zip private-javadocs-today.zip \
   && mv public-javadocs-*.zip public-javadocs-today.zip \
   && mkdir public && mkdir private && \
    (cd public \
     && unzip ../public-javadocs-today.zip) && \
    (cd private \
     && unzip ../private-javadocs-today.zip)) \
 && \
  (cd source \
   && mv THDL-Tools-src-*.zip THDL-Tools-src-today.zip))
if test $? != 0; then echo "NIGHTLY BUILD FAILED on $DATE" >> $HISTORY; exit 2; fi
(cd $JSKAD && ant check)
DDATE=`date`
if test $? != 0; then echo "'ant check' FAILED on $DATE" >> $HISTORY; exit 3; fi
DDDATE=`date`
echo "Success on start=$DATE build=$DDATE check=$DDDATE" >> $HISTORY
exit 0
2003-02-03 06:24:52 +00:00
dchandler
72ee4fc7d2 Added the initial version of Tibbibl, which Nathaniel Garson of UVa
e-mailed to me.  Tibbibl is an editor for XML-based bibliographies of
Tibetan texts.  All I did was change the package from org.thdl.xml to
org.thdl.tib.bibl and add boilerplate; no changes to Than's code were
made.

Tibbibl features a diacritic input tool which Jskad might want to
swipe.
2003-02-01 05:08:02 +00:00
dchandler
32a08c06c3 Gives a nice error message now if Fonts/TibetanMachineWeb cannot be found. 2003-01-27 04:27:51 +00:00
dchandler
a31fed2ea7 We're now set up to support automated unit tests. Besides the fact
that I like unit tests, my Unicode conversion work is going to have to
be thorougly tested for reasons I will outline in
http://thdltools.sf.net/BuildSystems.html later today.

Added the freely licensed JUnit 3.8.1 binary to the repository, along
with some README files.  Added a new supporting buildfile,
junitbuild.xml.  'ant clean check' is now good to go (though it uses
the text UI for JUnit, and some developers may want the Swing GUI)

Also, I cleaned up build.xml a bit, including adding all buildfiles
(but not junit.jar and things like that) to the source distribution
('ant src-dist') rather than just build.xml.
2003-01-12 20:24:01 +00:00
dchandler
fdfedb4419 Added some tests for org.thdl.tib.text.tshegbar. These tests are preliminary,
and for this package only.

I'm committing in order to sync with my laptop, really.  This stuff will disappear
and reappear in better form later, after a holiday of coding and eggless,
alcohol-free nog.
2002-12-20 04:34:56 +00:00
dchandler
35425f3753 So that javadoc build works again, this property is now just a string, not a
location.

Andres, this may mean that you need to do something different to build
javadocs with links to local JDOM/Sun javadocs.
2002-12-09 02:18:03 +00:00
dchandler
983a9e2045 ThdlVersion.java is now generated before making Javadocs. 2002-12-09 01:58:17 +00:00
dchandler
53aa2e2309 Added jskad_doc.html (a revision of which is up at
http://iris.lib.virginia.edu/tibet/tools/jskad_doc.html) to the repository.  The
build puts this into Jskad's JARs, but Jskad itself does not allow for viewing
it.  In Java, that's a ten-minute job, but I haven't done it.
2002-12-07 17:53:24 +00:00
dchandler
a3a1923d42 I haven't tested this, but it should make it easier to experiment with the links
from our Javadocs to Sun's Javadocs.
2002-12-01 18:53:09 +00:00
dchandler
efa69fe225 At Andres' request, I added ConsoleScannerFilter to the build of both the
Standalone version and the Handheld version.
2002-11-28 02:51:29 +00:00
dchandler
cfb111eeb1 Added a nightly-build target that creates a zip file
dist/nightlyBuild.zip.  As the suggestive name implies, coupling this
with a shell script like '(cvs -f -q update -dP && ant nightly-build
&& scp dist/nightlyBuild.zip && ssh 'cd wherever/ && unzip foo') ||
email_error_message' would yield a nightly build process for us.
2002-11-18 22:16:07 +00:00
dchandler
0e70c7fb97 No longer including JMF or Savant in the JWS or self-contained JARs. 2002-11-18 17:16:34 +00:00
dchandler
d200b03d66 Updated the build system so that you must do a cvs checkout of the
'Fonts' module inside the 'Jskad' module.  I.e., you must now have the
tree like so:

Jskad/
   source/
   dist/
   Fonts/
       TibetanMachineWeb/
   .
   .
   .

This is because the THDL tools now optionally (and by default) load
the TibetanMachineWeb fonts automatically.

Updated the build system so that the 'web-start-releases' and
'self-contained-dist' targets JAR up optional JARs to create
double-clickable, self-contained joy.  Even the TMW fonts are in the
JARs now.

Changed the strings describing two Jskad keyboards so that "keyboard"
is no longer in the description.  It's in the label next to the combo
box.

Jskad now saves preferences on exit or when the user selects a menu
item (that is there for debugging mainly) to ~/my_thdl_preferences.txt
on *nix or C:\my_thdl_preferences.txt on Win32.  I don't know the
correct Mac location.

There's a new paradigm for telling org.thdl.util.ThdlOptions that a
user preference has been changed.  If, for example, a combo box is
manipulated so that the ACIP keyboard is selected, then you must call
a certain method in ThdlOptions.
2002-11-18 16:12:25 +00:00
dchandler
5ffb813019 Jskad's "About" dialog box now lists the time of compilation. Ant
creates source/org/thdl/util/ThdlVersion.java when you execute the
jskad-compile target.
2002-11-16 19:18:44 +00:00
dchandler
9f232fc5e2 The JARs built no longer have "-JWS" and "-vanilla" suffixes.
Instead, there are dist/lib-jws/ and dist/lib-vanilla/ directories.
2002-11-16 18:04:47 +00:00
dchandler
5d212a0671 Now you can truly compile without either JMF or QT4J in your
extensions/ directory tree.  If and only if they are present,
integration with them is compiled in.

Removed a FIXME that I'd fixed a long time ago.
2002-11-16 16:35:25 +00:00
eg3p
1e6ab8eeec Made sure that MessageBundle files are copied over
to Savant binary directories, now that Savant is using
these internationalization files.
2002-11-02 20:22:42 +00:00
dchandler
92fd1bf0b6 Added AcipToWylie to the tt-standalone build. 2002-11-02 17:09:36 +00:00
dchandler
f26dd53da3 Changed the build so that Savant and QuillDriver's builds include
Smart*Player.java, which are accessed via reflection.  Cleaned up the
code a bit so that it would compile in so doing.

Changed the 'options.txt' preferences file to reflect the new method
of selecting media players.
2002-10-27 19:12:13 +00:00
dchandler
d211930e68 At Edward's request, the codebase for Java Web Start releases may now
be specified on the command line via
'ant -Djnlp.codebase="http://foo.bar/baz"'.

This means that dist/ no longer contains .jnlp files; they are created by Ant
instead.
2002-10-25 11:56:05 +00:00
dchandler
010d8cb972 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.
2002-10-25 11:04:24 +00:00
dchandler
86a729ee08 Javadocs are generated using a classpath with all the extras. The included
files list is now foolproof, also.
2002-10-25 10:58:44 +00:00
dchandler
36e8959817 Updated the classes and resource in tt-servlet to meet Andres's specs. 2002-10-25 00:21:34 +00:00
dchandler
002f49323a There are now two ways to specify servlet classes, and the second
is completely general.
2002-10-24 13:53:27 +00:00
dchandler
f38290efd2 If you've used 'ant -Dj2ee.sdk.home="C:\j2sdkee1.3.1\lib"', then the dist
and compile targets will build the servlet form of the translation tool.  If you
haven't, they won't build it.

Added comments.

Made it easier to change the build classpath inside a target while retaining
reusability.

Fixed typo: ttbin should've been ttservletbin.
2002-10-23 01:08:52 +00:00
dchandler
6a8753df3b Updated this to keep up with the new documentation on our build systems. 2002-10-20 22:40:49 +00:00
dchandler
7f24759ff6 You can now easily extend the classpath by putting .zip files into
extensions/drop-ins/.
2002-10-18 02:57:57 +00:00
eg3p
7cb7f14759 Changed qd-compile to compile org/thdl/tib/text/TibetanHTML.java, necessary for xsl transformations. 2002-10-15 21:14:31 +00:00
dchandler
eeabe3df80 Leave the Java Web Start WAR file on disk unless ant is invoked with the
-Ddelete.the.war= option.

Added 'ant -Dkeystore=foo' and 'ant -Dkey.alias' properties to ease
the creation of Java Web Start releases.
2002-10-15 02:14:54 +00:00
dchandler
08e4e2fc57 Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.

How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences.  Finally, for
robustness, a default may be optionally hard-coded in the source.

I made several things configurable, too:

the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.

The only known problems are the following:

The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation.  Likewise for the location of the
system-wide preferences file.  You can change them using 'java -D', though.

There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
dchandler
00d5dd86c3 The javadocs' external links were busted, so now we do a -link, not a
-linkoffline, by default.

The four Tibetan keyboards are described in four RTF files, these are now
handled in Jskad's build.
2002-10-13 20:44:31 +00:00
dchandler
aafcd89440 The docs in the comments of build.xml regarding cutting a Java Web Start
release have been updated.  The .war file is now deleted after the build
mines it for the goodies.  If we use Tomcat or another app server down the
road, we'll be ready to go.
2002-10-12 20:01:04 +00:00
dchandler
d50b41b87f The build system now creates Java Web Start releases for all four programs.
At present, dist/*.jnlp refer to my own personal web server, and the build
system is aware of my personal keystore because creating a JWS release
involves signing JARs.  It will be very simple to change this once we have
a real PKI certificate and once we deploy on thdl.org.

Note that Savant and QuillDriver's releases are only half-done right now;
they do not include the XML and JMF libraries yet.
2002-10-12 18:30:14 +00:00
dchandler
5cfd45cf32 Formatted to 80 columns in honor of the punch card.
Added BinaryFileGenerator to the DictionarySearchStandalone JAR at
Andres' request.
2002-10-12 03:11:51 +00:00
dchandler
4e10517b71 I factored out some subtasks that were repeated throughout.
The binary JARs now contain license docs.

There are now four builds for the four faces of the translation tool.

By default, class files will now be compiled for the 1.1 JVM, even if you
use J2SDK 1.4 to compile them.  'ant -Dtarget.jvm=1.2' gives you 1.4's
default.  I'm not sure what 1.2 buys us, but it means we don't work on
a large number of JVMs in the field.
2002-10-10 06:00:32 +00:00
dchandler
755a6be6fd The source release now contains docs/*package-list so that
'ant private-javadocs' will work.

Removed Jskad's source release.  We'll have an all-in-one source
release (for now, anyway).
2002-10-06 20:42:02 +00:00
dchandler
31bfe278ea Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile.  It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files.  That would be a relative path,
though, and until we have an installer, I don't know what to put in there.

That means that, for now, you invoke Savant with
  'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
           org.thdl.savant.SavantShell'

BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.

No longer uses manifests/*.  Ant has a <manifest> task that we use instead.

Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
dchandler
6646b360fb Now builds the translation tool, both with and without servlets.
Puts all JARs in extensions on the CLASSPATH.

Manifest files from manifests/ are now used when building the distributions.
2002-10-05 06:36:23 +00:00
dchandler
baf7a7c17d Now invokes javac with the -g option by default.
Better in several ways.  Aware of the translation tool, though targets for the
translation tool do not yet exist.
2002-10-04 04:24:45 +00:00
dchandler
f796a44967 Fixed the 'ant jskad-compile' target. I swear it worked once, but I have not
a clue why.  Running ant with 1.3.1 vs. 1.4, maybe?
2002-10-04 03:24:27 +00:00
dchandler
6a32f90249 Fixed a couple of dependencies; fixed some typos. 2002-10-03 02:55:19 +00:00
dchandler
3ad36a3f8e Added standard CVS file .cvsignore.
Added Apache Ant build file, with tasks to do all the usual, plus tasks to make all-in-one binary JAR of Jskad, binary JARs of Savant, QD, and Jskad, several types of source distributions, some fairly nice Javadoc API docs, etc.  It's still a work in progress.
2002-09-30 02:28:17 +00:00