[kepler-dev] Re: [SDM-SPA] javadoc, junit, installer for Windows

Christopher Hylands Brooks cxh at eecs.berkeley.edu
Tue Mar 30 18:05:07 PST 2004

BTW - My method of building installers is to create signed jar files
for the various components and then use these signed jar files in
WebStart to create one master installation that should in theory work
for all platforms.

I then take unsigned versions of the jar files and use these with

The advantage of use WebStart is that it is much faster to
rebuild a jar and substitute it into the WebStart directories and then
download just that jar file than it is to rebuild an InstallAnywhere
Installer, uninstall the old installation, download the possibly huge
installer and reinstall.

In principle, the way we create a WebStart configuration is
conceptually similar to how build.xml probably works, except our jar
files are listed in a makefile instead of in build.xml(?)  The
makefile automatically generates the WebStart configurations from the
jar files listed in $PTII/mk/jnlp.mk

I have a random collection of notes about WebStart at

However, I still need to configure InstallAnywhere by hand.
The InstallAnywhere file format is XML, so in theory the file
could be configured by hand.  One issue with InstallAnywhere is that
it is tricky to create multiple installers.  One can have
an installer with multiple packages in it (full, docs, examples), 
but it is tricky to create a smaller installer that has just the

BTW - We are currently using InstallAnywhere Enterprise. 
There is InstallAnywhere Standard edition, but it does
not support USER_MAGIC_FOLDERS, which we needed to set up a shortcut
folder in 2002.  The details are a bit foggy, but basically I wanted 
to create
Start -> Programs -> Ptolemy -> Ptplot 5.2
instead of
Start -> Programs -> Ptplot 5.2
because the Ptolemy project has several different products, and
it is better if they are grouped together.

We ended up upgrading to InstallAnywhere Enterprise, which is roughly
$1500/year for one seat.

If you can use the free version of InstallAnywhere, then that would be

Note that there is also a InstallAnywhere Mac OS X Edition that is
extra, I'm not sure what it gets you.

I'm disappointed that NSIS does not support Mac OS, I was going to try
it out.  Locally, the Ptolemy group has no Mac users, though I do have
access to a Mac OS X laptop.  I would like to work with Mac OS X users
on getting Ptolemy II to work better on that platform.  

There is a list of limitations at

Ptolemy II requires Java 1.4 or later because we use the java.net.URI
and Exception chaining.

JDK 1.2.2 has a bug involving compiling inner classes with protected

The RTOS domain uses java.util.Timer, which is present in JDK 1.3
and later.

I don't think Mac OS 9.x has a Java 1.4 installation.

http://developer.apple.com/java/faq/index.html#gen_5 says:
>Q: Is there a J2SE release for Mac OS 9 and earlier?

>A: The latest Mac OS Runtime for Java on Mac OS 9 provided a 1.1.8
>Java VM. There are no plans to bring any versions of J2SE to Mac OS
>9. If you are looking to make use of certain extension APIs on Mac OS
>9, such as Swing, JavaHelp, or the newer Collections API, keep in
>mind that you can download 1.1.x versions of these libraries from

I don't have much interest in supporting Mac OS 9.x users, but
if there were trivial patches necessary to support Ptolemy under MacOS
9.x, I would fold them in.

Xiaowen Xin <xin2 at llnl.gov> writes:
> I don't have any experience on Mac OS; do you know what kind of package
> management system it uses?

I don't know either.  I'd wager that rpm has been ported to Mac OS X.
rpm is available under Cygwin and Solaris. 

> Since Mac OS X is a BSD with some modifications, do you think the
> scientists can be expected to know how to run a shell script?  It
> should be easy to distribute a shell script (like Sun does with
> Java) for the Unix users.

Yes, Mac OS X users could run shell scripts, though that is a little
bear skins and stone knives.  The advantage of WebStart is that the
user gets a more modern click-to-install installer, the disadvantage
is that everything is bundled up in jar files, so it makes it harder
for WebStart users to extend the system.

I think that Mac OS X users could certainly handle the
"./configure; make fast" method of installing Ptolemy II.
Presumably they could do something similar for installing your

At the risk of repeating myself, as I said earlier, I had tried
InstallShield, and it was not very good.  Maybe it is better now.

I have some notes from March 19, 2001 about the InstallShield limitations
Currently, regular InstallShield installers from Sun for JDK1.5.0-beta
hang on my machine for several minutes.  I really cannot recommend



    Our future users are also Mac based (e.g., Astrophysics)
    Bertram Ludaescher wrote:
    >Our "canonical user" in SPA (Matt C.) is a Mac user, but I don't know
    >whether it is Mac OS X or Mac OS...
    >I also note that many other scientists I bump into (neuroscience,
    >geosciences, ecology, even computer science! ;-) use Macs these days.
    >So I think the desiderate is to support all 3 worlds: Win, Linux, and
    >I don't know how easy/hard it is to do cross-platform installers from
    >the build.xml ...
    >>>>>>"XX" == Xiaowen Xin <xin2 at llnl.gov> writes:
    >XX> Hi Matt,
    >XX> I think you're correct that NSIS doesn't support installing on Mac OS.
    >XX> Do the target scientists use Mac OS X, or are many of them still on th
    >XX> earlier versions of Mac OS?
    >XX> I don't have any experience on Mac OS; do you know what kind of packag
    >XX> management system it uses?
    >XX> Since Mac OS X is a BSD with some modifications, do you think the
    >XX> scientists can be expected to know how to run a shell script?  It shou
    >XX> be easy to distribute a shell script (like Sun does with Java) for the
    >XX> Unix users.
    >XX> As for distributing on Linux, I think it would be fine to distribute
    >XX> binary and source RPMs and Debs.  They are the standard on Linux.  Als
    >XX> it would be easy to write an ant task to create an RPM.
    >XX> Xiaowen
    >XX> On Tue, 2004-03-30 at 14:41, Matt Jones wrote:
    >>>Hey Bertram,
    >>>So, NSIS looks like a nice system, but from my perusal it appears that 
    >>>it doesn't support MacOS.  We were planning on Kepler releases on MacOS 
    >>>as a lot of our target scientists use MacOS, especially the MacOS 
    >>>laptops these days.  Which is another reason I like InstallAnywhereNow, 
    >>>because it generates installers for Windows, MacOS, and linux.
    >>>BTW, I like the idea of generating the installer directly from the 
    >>>build.xml file. I wonder if we could do that with a cross-platform 
    >>>>Hi Xiaowen:
    >>>>So it seems that NSIS is quite interesting then! 
    >>>>I'm cross-posting to kepler-dev to see whether that might be an option 
    >>>>for Kepler as well.
    >>>>>>>>"XX" == Xiaowen Xin <xin2 at llnl.gov> writes:
    >XX> Hi Bertram,
    >XX> NSIS is the Nullsoft Scriptable Install System.
    >XX> I mentioned it in an email dated March 15, cc'ed to sdm-dev, but I
    >XX> didn't make a big deal of it then :)
    >XX> It's a GPL'ed install system analogous to InstallAnywhere or
    >XX> InstallShield.  It basically helps you create an installer.
    >XX> As you might have guessed from the name, it originally came from
    >XX> Nullsoft, the maker of Winamp, and it's still used to build the Winamp
    >XX> installer.
    >XX> makensis.exe is the executable that creates the installer.
    >XX> I like it because it's free (open source and no license fees), and it
    >XX> seems to work pretty well overall.
    >XX> http://nsis.sourceforge.net/home/ <- their homepage
    >XX> http://nsis.sourceforge.net/features/screenshots/ <- screenshots
    >XX> Xiaowen
    >XX> On Tue, 2004-03-30 at 10:46, Bertram Ludaescher wrote:
    >>>>>What is NSIS? What does makensis.exe do?
    >>>>>>>>>>"XX" == Xiaowen Xin <xin2 at llnl.gov> writes:
    >XX> Hi,
    >XX> I've created a javadoc target in build.xml, which generates all the
    >XX> javadoc documentation and puts it in website/documentation/javadoc.
    >XX> usage: ant docs
    >XX> I think this should help us in browsing and writing code.  There were
    >XX> quite a few warnings issued by javadoc.  If your code is generating so
    >XX> warnings, could you please fix them?  This javadoc target will hopeful
    >XX> help us all more thoroughly document our code.
    >XX> I've also created a junit target for ant, which will run all the junit
    >XX> tests in test/junit.
    >XX> usage: ant test
    >XX> I've created one test for the StringConst class in
    >XX> test/junit/org/sdm/spa/StringConstTest.java.  It programmatically
    >XX> creates a workflow with a PNDirector, so it can test the fire() method
    >XX> In the future, when we add new classes to CVS, let's add a junit test
    >XX> for it also.
    >XX> Finally, I've added a target to build an installer for Windows based o
    >XX> NSIS (Nullsoft Scriptable Install System).
    >XX> usage: ant nsis
    >XX> If you're on Cygwin, and you've got NSIS installed, and makensis.exe i
    >XX> in your path, then that target should create a spa.exe in your
    >XX> installer/ directory.  spa.exe is an executable installer for Windows.
    >XX> So if any of you get a chance, please test it out =)
    >XX> Xiaowen
    >XX> _______________________________________________
    >XX> kepler-dev mailing list
    >XX> kepler-dev at ecoinformatics.org
    >XX> http://www.ecoinformatics.org/mailman/listinfo/kepler-dev

More information about the Kepler-dev mailing list