Posted by gonzo
on December 9, 2003 at 6:55 PM PST
... via JNLP. WebStart/JNLP, I salute you!
Java WebStart is amazing. It is just as simple as that. Installation is trivial and the opportunities to endless. I just combed the JNLP Specification and am impressed with the improvements contained within since I had last tooled around with JNLP.
Enough WebStart gushing ... how am I using JNLP in my day-to-day.
Here's the skinny. I have a rich client that sits on top of JXTA . We've been deploying as a binary, source and cvs for quite some time now and even JNLP. Upon updating to J2SE 1.4.2 I took the time, as should you, to get familiar with the included WebStart mods. Firstly, adding WebStart to your (*nix) env [as if there is any other] is as trivial as adding [j2se]/jre/javaws to your PATH. Next up, I simply had to dust off my original JNLP file.
For my particular app I distribute a single jar, that is myjxta-2.2a.jar, yet I largely (and happily) depend upon JXTA and all it's constituents with which it is comprised, some of which may (or may not) be signed 3rd party jars in turn and can vary over time, etc.
JNLP 1.0.1 (and possibly earlier) inlcludes a really cool "extension resource" such that any one app can reference zero or more "component" JNLP distributions which can, in turn, further reference zero or more component JNLP distributions. The result, of which, is that I, as a JXTA application developer, need no longer care about JXTA deployment details, upgrades, jar signing, etc. To be honest, all of the above are issues that one, to an extent, should be aware of but my point is that with this very enabling deployment model I need not care as much about the constituent details as I was forced to without JNLP, and to that end I "throw mad props" to WebStart/JNLP team.
As a result, my new JNLP file is elegantly simple and included here:
MyJXTA: chat, share ... change the world
Lastly, here's the app in question: MyJXTA 2.2a
I constructed the underlying Platform , Security and CMS jnlp files as well and while they are a bit more involved they are logicaly scoped, can vary independently and readily re-usable ... simply by adding the relevant "extension resources" as shown above.
Java == platform independence
XML == application independence
JXTA == network independence
Secure End-to-End Computing
in my ears : Interpol/Turn on the Bright Lights/The New