Sophie Net: Vamp HQ - Luxor XUL - Rachel - Apollo - Lopica - The Saturn Times - The Richmond Post
Apollo Logo
Launch Web Start Apps Without Web Start
Overview . Download . Apollo @ Sourceforge

Apollo - Open Source Test Skeleton Toolkit for Java Web Start

Note, this page has moved and now lives at http://ajax.sourceforge.net/apollo. Please click on the new address and update any bookmarks you might have.

What is Apollo?

Apollo is an open-source developer test skeleton toolkit for Web Start. Apollo lets you turbo-charge Web Start apps without Web Start to speed up your compile/run/test/debug/goof-off cycle avoiding the hassle of stuffing, signing, uploading or downloading your jars every time you rearrange a comma in your source code.

What is not Apollo?

Apollo is not a replacement for Web Start (OpenJNLP, NetX or any other app launcher). Apollo is more like a test emulator (such as POSE - Palm OS Emulator) helping you to speed up your development between full-blown, time-consuming, irreplaceable, real Web Start workouts. Apollo can't fake every Web Start bell and whistle (e.g. download on demand) but outshines Sun's Web Start dumb dev pack stubs that merely let you compile your source. Apollo lets you popup your household browser and more without calling in the Web Start machinery.

Overview - How it works

Apollo consists of a jar that you can use to replace Sun's javax.jnlpx stubs residing in jnlp.jar that only allow you to compile your code and that ship with Sun's Web Start dev pack.

Apollo is a thin wrapper around Sun's javax.jnlpx services. If your app runs under Web Start Apollo will automatically detect it and pass all runtime service calls (such as poping up a browser window) on to the Web Start engine. If your app, however, runs without Web Start Apollo will kick in and mimick Web Start's runtime services.

To use Apollo replace all javax.jnlpx imports with apollo. Example:

import javax.jnlpx.*;   // Web Start only 
import apollo.*;        // Web Start plus Apollo-propelled stand-alone launching

To spare you from learning yet another API set Apollo reuses all runtime service class and method names. The only exception is Apollo's ServiceManager class that adds type-safe methods to lookup pre-defined runtime services (e.g. lookupBasicService()) avoiding unexpected runtime errors and reducing source code bloat. Example:

import javax.jnlp.*
...
BasicService bs = (BasicService) ServiceManager.lookup( "javax.jnlp.BasicService" );
bs.showDocument( new URL( "http://vamphq.com/times" ) );   

becomes

	
import apollo.*;
...
BasicService bs = ServiceManager.lookupBasicService();
bs.showDocument( new URL( "http://vamphq.com/times" ) );   

or

import apollo.*;
...
ServiceManager.lookupBasicService().showDocument( new URL( "http://vamphq.com/times" ) );   

That's all for today.

Limitiations

Apollo currently only supports the javax.jnlp.BrowserService service. More services such as muffins (aka persistence/isolated storage) will follow.

Links/Resources

Browser Launchers

Full-fledged, open-source app launchers (aka Web Start clones)

Misc

More Quick Links: Batik SVG · Velocity · Python · Jython · JDOM · dom4j · Jaxen · Eclipse SWT · Mono · Gtk# · Qt# · Mozilla · Web Start · Skin L&F · Kunststoff L&F · Relax NG
SourceForge Logo Send your comments, suggestions, praise or poems to webmistress@vamphq.com Copyright © 2001, 2002, 2003 Gerald Bauer