com.sun.opengl.util

Class JOGLAppletLauncher


public class JOGLAppletLauncher
extends Applet

Basic JOGL installer for Applets. The key functionality this class supplies is the ability to deploy unsigned applets which use JOGL. It may also be used to deploy signed applets in which case multiple security dialogs will be displayed.

On the server side the codebase must contain jogl.jar and all of the jogl-natives-*.jar files from the standard JOGL distribution. This is the location from which the JOGL library used by the applet is downloaded. The codebase additionally contains the jar file of the user's potentially untrusted applet. The jogl.jar and all jogl-natives jars must be signed by the same entity, which is typically Sun Microsystems, Inc. Sample applet code:

 <applet code="com.sun.opengl.util.JOGLAppletLauncher"
      width=600
      height=400
      codebase="/lib"
      archive="jogl.jar,your_applet.jar">
   <param name="subapplet.classname" VALUE="untrusted.JOGLApplet">
   <param name="subapplet.displayname" VALUE="My JOGL Applet">
   <param name="progressbar" value="true">
   <param name="cache_archive" VALUE="jogl.jar,your_applet.jar">
   <param name="cache_archive_ex" VALUE="jogl.jar;preload,your_applet.jar;preload">
 </applet>
 

There are some limitations with this approach. It is not possible to specify e.g. -Dsun.java2d.noddraw=true or -Dsun.java2d.opengl=true for better control over the Java2D pipeline as it is with Java Web Start. There appear to be issues with multiple JOGL-based applets on the same web page, though multiple instances of the same applet appear to work. The latter may simply be a bug which needs to be fixed.

The JOGL natives are cached in the user's home directory (the value of the "user.home" system property in Java) under the directory .jogl_ext. The Java Plug-In is responsible for performing all other jar caching. If the JOGL installation is updated on the server, the .jogl_ext cache will automatically be updated.

This technique requires that JOGL has not been installed in to the JRE under e.g. jre/lib/ext. If problems are seen when deploying this applet launcher, the first question to ask the end user is whether jogl.jar and any associated DLLs, .so's, etc. are installed directly in to the JRE. The applet launcher has been tested primarily under Mozilla and Firefox; there may be problems when running under, for example, Opera.

Authors:
Lilian Chamontin
Kenneth Russell

Constructor Summary

JOGLAppletLauncher()

Method Summary

void
destroy()
Applet
getSubApplet()
Helper method to make it easier to call methods on the sub-applet from JavaScript.
void
init()
Applet initialization
void
start()
start asynchroneous loading of libraries if needed
void
stop()

Constructor Details

JOGLAppletLauncher

public JOGLAppletLauncher()

Method Details

destroy

public void destroy()

getSubApplet

public Applet getSubApplet()
Helper method to make it easier to call methods on the sub-applet from JavaScript.

init

public void init()
Applet initialization

start

public void start()
start asynchroneous loading of libraries if needed

stop

public void stop()

Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.