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.
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.
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.
'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.
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.
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.
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.
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.
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.
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.
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.
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.
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.