Java Webstart Issues

Okay guys, its feedback into Sun time again!
This thread is for a very specific purpose so lets try to keep it on-topic.

The purpose is to collect all the things that we might do to Java Web Start to make it more useful to you. The idea is to create a list that we can approach the Web Start guys with.

SO… please post here any RFE ideas you have for Webstart. if you could, at the same time, tell us what category this falls into of the following arbitrary levels… :wink:

(1) A blocker to my using Webstart at all for my application.
(2) Something that would make Webstart much more usable for my application.
(3) Something that would make my life much easier using Webstart.
(4) Something I just thought of thats cool but I have no immediate intention of using :slight_smile:

As much detailed info as you can give us on your project and how this RFE would impact it would be great :slight_smile:

Okay, shoot away!

Open access to more (i.e. ALL) VM options … I think this is already a RFE.
I need to specify the garbage collector for instance. Basically if I can do it from a command line with the java.exe I want to be able to do it from WebStart… In some cases there will be things that should only be allowed for signed applications… (e.g. bootclasspath)

That’s the BIG one.

Ability for my application to install itself in a location specified by the user, but retaining Web Starts ability to keep it current.

It should be possible to download an application bundle or distribute a bundle on CD and have it install in this way, such that WebStart can manage updates… I know we could still use JNLP with our own client, but there is no sense in having everyone re-invent the wheel in terms of automatic software updaters.

On Windows applications installed via WebStart should show up in and be managed from the Add/Remove programs control panel.
** edit ** this may be there already

There should be the ability to retain older versions of applications so you can fall back if a newer version fails to work for you or you simply prefer the previous version.

The trust relationship should be made clearer to the users - who don’t have a good grasp of what certificates are. They are asked to trust a “Company” not a “program”… and from that point on they implicitly trust ALL programs from that sam company… I think that must be made more clear - OR provide a mechanism to trust on a per jnlp URL basis. I think users will grasp the concept better if they authorize every new application and have the option to say that they “trust all content from x”. Internet Explorer seems to do this with Active-X controls… allowing for a “start it this time” option, and an “always trust these guys” option.

The Preferences area of the Web Start application launcher should make it easy to manage trusted companies. Right now all I see is a way to display Root Certificates. How do I reset things so I’m asked again if I trust XYZ whenever an update is available or I choose to launch a new application from them? Note, I want to do this yet still be able to run the code that I have already downloaded and decided is ok to run.

+1 for swpalmers points

[quote]On Windows applications installed via WebStart should show up in and be managed from the Add/Remove programs control panel.
[/quote]
Isn’t that already so?

Yeah well, I have the obvious one: Make JWS installable from a machine with no previous JRE installed. That’s relevant for win32 (at least for browsers != IE where some activex plugin apparantly exists) and for linux.

That would be a category (2) RFE for me.

And also relevant for JWS but probably not directly part of JWS: Make the initial JRE install smaller and/or module based. Individual modules can then be fetched on demand (JWS already does that for our own applications).

  • elias

Just echoing what’s already been said, with further refinement:

u A blocker to my using Webstart at all for my application.[/u]

Just the sheer bloody size of the JRE. As Elias said, a modular JRE would be fantastic. It’s also much, much, much easier to do than you might expect - I’ve already done it :smiley: Hey and guess what, you don’t even have to change anything!! You can actually get Webstart to download and use AWT/Java2D/Swing etc without any modification. If the jars were placed in a “well-known” location @ Sun then you’d basically have them treated like standard extensions and we’d all just be downloading them once, as needed. Unfortunately as Webstart is not a native application it still needs 5MB of extra bumpf. If it were turned into a crisp, native GUI running atop the minimum JVM, you’d have a winner.

In terms of bang-for-buck this has got to be the very easiest one to implement - if I can manage it in an afternoon (and I did), then so can the mighty engineering resources at Sun.

Then I won’t be breaking any pesky licensing rules :smiley:

It would also be highly advisable to ditch the shitty Metal L&F from Java altogether if at all possible and use something with a bit of class like the Alloy L&F. Metal apps look incredibly unprofessional.

u Something that would make Webstart much more usable for my application. [/u]

Being able to pass -X parameters to the JVM - depending on the exact VM version and vendor.

u Something that would make my life much easier using Webstart.[/u]

It’s just a little thing, but a GUI JNLP builder would be a really great, easy little tool to ship with the JDK. Drag and drop jars into it, get it to sign them for you with your own keystore, write out a JNLP file. Job done. You need to really help people start using Webstart and right now it involves reading some rather complicated documents about signing and keystores and XML files.

On a related note - I have discovered since how to pre-install applications using Webstart and local file URLs and then subsequently drag down updated code from the Web but it’s not exactly straightforward, requiring as it does a special webserver module to handle JAR versioning. Maybe a Webstart version handling module for IIS and Apache would be a good thing to offer as an actual product. I’d buy it for $25.

Cas :slight_smile:

Cat 2: (but optimistic!) An option (in user’s settings - i.e. not config’d automatically by my app) to automatically scan for updates, in the same manner as MS WindowsUpdate.

Basically, if a user has a problem with playing the game, but I fix the bug next week, will they ever start up the game again and find it’s been fixed? Probably not. But, if they get a note “it’s been updated” they are much much more likely to try again.

Just a thought…

Re: Add/Remove programs on windows… [quote]Isn’t that already so?
[/quote]
Hmmm… it might be… I guess only for applications that you have chosen to create a standard shortcut for. I did a quick check on my machine add it looked like it wasn’t the case, but I didn’t check thoroughly.

Question for Cas (even though its arguably slightly off topic)

Making the JRE truely modular I think is far harder then you imagine. All the GUI elements are really intertwined in the native code.

BUT doing what you did, which was basically to throw out EVERYTHING graphical, audio, input, etc and have a bare VM with maybe java.lang, java.net, java.io/nio and java.util, then add in JOGL/JOAL/JInput. This might be technically doable.

Does this meet your goal?

The reason its off topic is that such a VM could not run Webstart as it exists today because it has GUI elements. Which leads to thought 2, would a “Webstart engine” that had no GUI built into it be of value then?

[quote]would a “Webstart engine” that had no GUI built into it be of value then?
[/quote]
I think so. If it could be used as a general update mechanism that could update JARs placed in an arbitrary folder.

I would like to see an option in JNLP that would let you specify if the user can decide to upgrade or not when a new version exists.

Especially from a game perspective - people may choose not to upgrade until the majority of the third-party servers are upgraded. Or they may be on dial up…

This is the forced early adopters issue swpalmer brought up in this thread: http://www.java-gaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=OnLin;action=display;num=1070383305

I would place this in category (2) as unless you control the game servers - using JWS has a rather large downside in this area. If you do control the game servers then under the new scheme you could simply force people to upgrade as currently is the case.

Will.

Sorry, I know its off topic (maybe another thread would be worth while)

But how would that be doable, JOGL is dependant on AWT is it not?

Kev

[quote]Sorry, I know its off topic (maybe another thread would be worth while)

But how would that be doable, JOGL is dependant on AWT is it not?
[/quote]
Yes, but as he (and others) use LWJGL they’re not dependent on AWT at all :wink:

A webstart engine combined with a modular JRE would be of tremendous value. That way, the updating of jars could be done completely independently of the underlying presentation of progress bars etc. In fact it makes much sense to separate the GUI from the engine anyway.

  • elias

A webstart engine combined with a modular JRE would be of tremendous value. That way, the updating of jars could be done completely independently of the underlying presentation of progress bars etc. In fact it makes much sense to separate the GUI from the engine anyway.

  • elias

Argh, new this was going to get complicated. I was getting at how is it possible to do a modular JVM without AWT and then add JOGL as a module…

I’m aware of this thing you call LWJGL, I’m just waiting for someone with the knowledge to write the rendering layer for Xith… then I might use it :slight_smile:

Kev

You’re all confused!

It turns out that AWT really isn’t intertwined at all! AWT (and Java2D) as a single chunk is actually a very simple big fat bunch of packages and dlls that all peel off in one chunk.

On top of that, Swing was really easy to peel off separately as well in one big chunk. Remember that Swing used to come as a completely independent package! Although AWT and Swing may be a tiny bit intertwined - it doesn’t matter; if there are a few naughty classes from Swing mixed up in AWT now, just ship them with the AWT module. Who cares?

The Java Media framework is a bolt-on.

Then there’s a load of ancillary technology (which TBH baffles me as to how it got in J2SE in the first place) such as CORBA which, again, is just one big chunk.

Etc. etc. etc. it’s just not quite as complicated as we all thought, and the mechanisms to download the AWT dlls and jars as extensions are built in to Webstart already. Result!

All that’s required is that base JRE with all the security and networking capability that I’ve conveniently got lying around on my HDD, and the Webstart engine can simply call into native code to present a native GUI to the user. The whole thing should be under 3MB zipped which is a fantastic saving and yet still achieves what Sun really wanted achieved, which is that a standard VM gets everywhere.

Oh, and for Bob’s sake, ditch that crappy installer in your current JRE install which bloats you about 2MB straight up. Use Nullsoft’s installer with 7zip. You will be amazed! There’s no excuse for bloated installers.

Cas :slight_smile:

[quote]Oh, and for Bob’s sake, ditch that crappy installer in your current JRE install which bloats you about 2MB straight up. Use Nullsoft’s installer with 7zip. You will be amazed! There’s no excuse for bloated installers.
[/quote]
+1

Install Shield is the worst installer I have ever encountered, both as a developer (creating installers) and an end user (installing stuff). No wonder it’s what Microsoft includes with their dev tools :slight_smile:

Not really relevant to this thread though. Unless we are talking about the need for a Web Start stand-alone installer that doesn’t include a complete JRE, but just enough native code to grab a JNLP file and then grab and run the real installer for the latest J2SE version that the app can run on… From that point the ‘full’ Web Start will be installed.

[quote]I’m aware of this thing you call LWJGL, I’m just waiting for someone with the knowledge to write the rendering layer for Xith… then I might use it :slight_smile:
[/quote]
I’ve got the basics up and running, but my free time suddenly disappeared. However, my current contract work is as dead as a Norwegian Blue, so I’ll hopefully be able to finish it off over Christmas.

Thats fantastic news!

Kev

Yep I think thats what I said. It isn’t really “modular” though, its more minimal. Thats not a hard goal technically and might even be doable these days business wise. No promises of result but I’ll try to stay on top of the idea internally and see where it goes.

I don’t think you’ll see that from Sun, but maybe the idea of the Webstart Engine is salable inside, in which case you could always write that GUI stuff yourself…

Whats your feeling on InstallAnywhere, since you seem to have done the comparisons?