Sophie Net: Vamp HQ - Luxor XUL - Rachel - Apollo - The Saturn Times - The Richmond Post
vamphq.com Logo
All the tools to deliver rich, cross-plattform, zero-admin desktop apps built on open standards today
About
OverviewFront Page
What's NewHistory As It Happens
Upcoming EventsWhere Do I Go Tommorrow?
ScreenshotsPictures, Pictures, Pictures
TestimonialsWhat Users Say About Vamp
CreditsThanks, Thanks, Thanks
ContactAre You Real? - Ich Spreche Deutsch
Site MapFind It Quick
Projects
Vamp StudioPackage, Sign and Publish Your App
Package ManagerCreate and Share Your Own CD App Collections
App CentralFind the Best Apps On The Web
JNLP ValidatorDTD, XML Schema, Relax
jnlp2htmlCreate Your Own App Catalog
Web Start Cache ExplorerUnder the Hood: Web Start's Cache Revealed
Web Start Cache UtilityInject Your App Into Web Start's Cache
Ant Task SuiteAutomate, Automate, Automate
vampgetGrab Apps for Offline Consumption
CD App InstallerCreate Your Own Single-Jar, Offline Installer
CD App Installer IICreate Your Onw Self-Executing, Single-Jar Installer
CD Installer MissionGreat Things Are Coming
Download
BinariesGet It Now
DocumentationPDF Booklets, Presentations
Support
DiscussionAsk Questions
FAQAnswer, Answers, Answers
Professional Services
InfoHire Me - Yes, I'm Available
Web Start
Web Start LinksEverything to Get Started
Unofficial FAQAnswers, Answers, Answers
JNLP Tag Quick ReferenceQuick Reference to Tags and Attributes
JNLP Tag ReferenceAll Tags Explained, Real-World Examples
Configuration ReferenceHand-tune Web Start's configuration (jawaws.cfg); all config settings explained
Offline Installer TutorialCreate Offline, No-Java, High-Speed Installer for Web Start under Windows
Installation ResourcesCreate Your Own Java Runtime Plus Web Start Installer
os and arch CollectionLinux, Windows, Mac, Solaris
Java 2 Runtime DirectoryLinux, Windows, Mac, Solaris
Web Start 2.0If I Were King
Print Version Print Version

Clio - Vamp's CD App Installer for JNLP

Download Clio Now download link


What is Clio?

Clio is Vamp's CD App Installer for JNLP. Clio lets you build single-jar offline installers that serve your apps through a built-in, multi-threaded, light-weight web server to Web Start.

Clio uses the user's computer name in the jnlp codebase instead of localhost or 127.0.0.1 that only allow loopbacks. Clio patches the jnlp codebase in the jnlp file on-the-fly before it sends it off to Web Start to allow you to share the app packed up with Clio with everyone.

Clio also lets you change the jnlp file's codebase on the command line if you need to troubeshoot an installation in case the installers default port is in use or proxy settings confuse Web Start, for example.

Clio is designed as a small self-contained java app with no third-party library dependencies such as SAX 1 or 2 compliant xml parsers. Clio includes a tiny xml parser and runs in all classpath settings and spares you from jar hell.

Clio allows you to create your own installers manually by adding your jnlp startup file, jars and a special installer.properties file to Clio's jar. In Vamp Studio your own single-jar offline Clio installer is just a click away as Vamp Studio has Clio built-in and creates the required installer.properties file automatically.

First Impression

Clio's welcome panel (aka start-up screen)

Clio First Impression

Clio's web server status panel after successfully serving Karsten Lentzsch's jDiskReport to Web Start

Clio Web Server Status

Command Line Quick Reference
Usage: venus.installer.Tool [options]
Option Description
-n <hostname> host name or host address used for jnlp codebase
-p <port> port used for internal web server and jnlp codebase
-v verbose output (log ip info, http requests, etc.)
-h help (show help page)
Examples

run Clio's built-in web server on port 5151 and use jnlp codebase hostname:5151

venus.installer.Tool -p 5151

run Clio's built-in web server on default port and use jnlp codebase 127.0.0.1

venus.installer.Tool -n 127.0.0.1

run Clio's built-in web server on port 5151 and use jnlp codebase barnaby:5151

venus.installer.Tool -n barnaby -p 5151

run Clio in verbose mode and use default jnlp codebase hostname

venus.installer.Tool -v
Roll Your Own

To roll your own offline, single-jar, self-contained installer for Web Start you need to add your app's jars and jnlp files plus an extra installer.properties file to Clio's jar.

Clio requires that all your hrefs in your jnlp files are relative as it only patches the jnlp.codebase but leaves all hrefs untouched. Absolute hrefs will bypass Clio's web server and Clio, therefore, cannot guarantee their availability. You can use directories in your relative hrefs as long as you recreate the same directory structure inside your installer's jar. Example:

<jnlp spec="1.0+" href="venus.jnlp" codebase="$$codebase">
  [...]
  <icon href="images/venus.gif" />
  [...]
  <jar href="lib/venus.jar" />
  <jar href="lib/velocity-1.0b1.jar" />
  <jar href="lib/bcel.jar" />
  <jar href="lib/skinlf-0.31.jar" />
  [...]

Jar Contents:

Name Path
installer.properties
venus.jnlp
venus.gif images/
bcel.jar lib/
skinlif-0.31.jar lib/
venus.jar lib/
velocity-1.0b1.jar lib/
[...]

Note, that installer.properties must always be in the root directory. If you need more examples for inspiration, you can crack open Clio installers created by Vamp Studio such as vamp-installer.jar download link and dissect them for further study.

installer.properties Reference

Clio requires the following properties in installer.properties for take off:

Key Description Required
name The application's name such as 'Venus Application Publisher'. Required
vendor The application's vendor such as 'Gerald Bauer'. Required
hompage The application's homepage such as 'http://www.vamphq.com/'. Required
jnlp.href The JNLP file's relative href such as 'vanessa.jnlp'. Required
caption Sets what the titlebar of the installer will display. By default, it's '<name> Web Start Installer'. Optional
subcaption.0 Overrides the subcaption for the welcome page. By default, it's ': Welcome'. Optional
subcaption.1 Overrides the subcaption for the web server upload status page. By default, it's ': Upload'. Optional

Example installer.properties:

## Clio CD installer properties

name=Venus Application Publisher
vendor=Gerald Bauer
homepage=http\://www.vamphq.com
jnlp.href=venus.jnlp

Note, that you need to escape : in http://www.vamphq.com/ because Java properties can be separated using either = or : (e.g. homepage: http\://www.vamphq.com).

Create Your Own Welcome Page

You can create your own welcome page if Clio's built-in welcome page fails to suffice. Clio uses the HTML template stored at venus/installer/welcome.htt. To create your own welcome page replace Clio's built-in template with your very own.

Clio uses a simple built-in template engine that replaces all variables starting with $. Note, that variable names can include . and - in addition to letters and digits. Example: $jnlp.href or $jnlp-href

You can use all properties in installer.properties such as name or jnlp.href in your own template. Moreover, you can add your own properties to installer.properties and use them in your own template. In addition to all properties in installer.properties you can use the following built-in properties set by Clio:

Key Description
codebase The JNLP startup file's codebase.

Here is Clio's built-in HTML template for a start:

  <br>
  <font size="+1">
  This will install <b>$name</b> by $vendor using Web Start.

  For more info about $name,
  please visit <a href="$homepage"> $homepage </a>.
  </font>
  <br><br>

  <hr>
  Note, that you can install $name manually in case this installer fails to 
  start your web browser that in turn starts Web Start once you hit install.

  Use the URL below to start $name: <br>
  <a href="$codebase/$jnlp.href"> $codebase/$jnlp.href </a>
  <hr>

  <font size="-1">
  For more info about Vamp Install System, please visit
  <a href="http://www.vamphq.com/clio.html">
 http://www.vamphq.com/clio.html</a>.
  <br>
  For more info about Web Start, please visit
  <a href="http://sun.java.com/products/javawebstart">
  http://sun.java.com/products/javawebstart</a>.
  </font>
Limitations

Clio uses a tiny xml parser to patch jnlp documents. Although Clio's tiny xml parser handles comments, processing instructions and cdata sections correctly, Clio's tiny xml parser might stumble over DTDs. Especially internal DTDs might create unpredictable results in case unbalanced or overlapping opening or closing brackets (< or >) are present. Clio's tiny xml parser currently supports only UTF-8 character encodings and ignores requests for different encodings in <?xml ?>.

Clio doesn't patch individual hrefs but only the jnlp's codebase. Therefore, all resource hrefs in the jnlp file should be relative to the jnlp's codebase. Absolute hrefs will bypass Clio's web server and Clio, therefore, cannot guarantee their availability.

Clio can contain and serve up multiple jnlp files. However, Clio's wizard panel (aka start-up screen) can currently kick off only one app per single-jar installer.

Clio is currently limited to the jnlp's basic download protocol, that is, it cannot fullfill specific version or plattform requests.


All the tools to deliver rich, cross-plattform, zero-admin desktop apps built on open standards today
vamphq.com Logo
Send your comments, suggestions or praise to webmistress@vamphq.com Copyright © 2001, 2002 Gerald Bauer