Applets Reloaded Introducing the Next-Generation Java Plug-in

Document Sample
Applets Reloaded Introducing the Next-Generation Java Plug-in Powered By Docstoc
					Applets Reloaded:
Introducing the Next-Generation
Java™ Plug-In Technology
Kenneth Russell
Sven Gothel
Java SE Deployment Team
Sun Microsystems, Inc.
TS-6290
Learn how to deploy leading-edge Java™ platform
content into the web browser using the next-
generation Java Plug-In technology




                                 2008 JavaOneSM Conference | java.sun.com/javaone |   2
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 Java Runtime Environment (JRE™) Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript™ Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   3
Architectural Overview

 Ground-up rewrite of the support for applets in the web
 browser
 Applets are no longer executed in a Java Virtual Machine
 (JVM™) inside the web browser
 Instead, a separate JVM machine process is launched to
 execute the applets
 By default, only one JVM machine is launched
  • Same resource consumption and sharing properties as the “classic”
    Java Plug-In technology
 Opportunity to launch more than one JVM machine
  • To support per-applet command-line arguments, heap size requests,
    and more
 Architectural similarities to Java Web Start technology, but
 tighter browser integration
                                                2008 JavaOneSM Conference | java.sun.com/javaone |   4
Architectural Overview


                         Applet 1




                         Applet 2



    HTML-Webpage         Applet 3




                             2008 JavaOneSM Conference | java.sun.com/javaone |   5
Architectural Overview




                            Fat Client JVM 1

                                    OS Process 2
         Thin Server JVM



         OS Process 1
                           Fat Client JVM 2

                                  OS Process 3

                                   2008 JavaOneSM Conference | java.sun.com/javaone |   6
Advantages

 Improved reliability
 Improved user experience
  • Applets launch in the background
 Built-in JNLP support
 Per-applet command line arguments
  • Heap size, Java 2D™ API acceleration options...
 Improved Java/JavaScript programming language integration
 Improved Windows Vista support
  • Signed applets now work correctly in Protected Mode Internet Explorer




                                                 2008 JavaOneSM Conference | java.sun.com/javaone |   7
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   8
Deploying Applets Using JNLP

 Most significant feature in new plug-in is ability to launch
 applets directly from JNLP files
 Same descriptor used by Java Web Start software
 More powerful than classic “archive”, “code”,
 “cache_archive” parameters
 Provides access to advanced JNLP extensions previously
 available only to Java Web Start software applications*
  • *Small set was previously available, with restrictions; these
    restrictions have now been removed
 Provides access to the JNLP APIs from applets
  • PersistenceService, DownloadService
 Provides control over heap size, command-line arguments,
 JRE version selection, and auto-download
  • Same capabilities as Java Web Start software for applications
                                               2008 JavaOneSM Conference | java.sun.com/javaone |   9
Basic JNLP Example

 <applet width=”500” height=”500”>
   <param name=”jnlp_href” value=”my_applet.jnlp”>
 </applet>




                                       2008 JavaOneSM Conference | java.sun.com/javaone |   10
Basic JNLP Example

 <?xml version=”1.0” encoding=”UTF-8”?>
 <jnlp href=”my_applet.jnlp”>
   <information>
     <title=”My Applet”>
     <vendor>My Company, Inc.</vendor>
     <offline-allowed />
   </information>
   <resources>
     <j2se version=”1.4+”
         href=”http://java.sun.com/products/autodl/j2se” />
     <jar href=”my_jar_1.jar” main=”true” />
     <jar href=”my_jar_2.jar” />
   </resources>
   <applet-desc name=”My Applet”
                main-class=”com.mycompany.MyApplet”
                width=”1”
                height=”1” />
 </jnlp>
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   11
Discussion

 Basically behaves exactly like an application started with
 Java Web Start software
 jnlp_href parameter bridges between the web page
 and the JNLP description of the applet
 Supports only the <applet-desc> JNLP tag
  • Does not make sense to launch applications
 Applet tag and JNLP file have overlapping mechanisms for
 specifying things like the width and height
 Will discuss interpretation of duplicate parameters




                                          2008 JavaOneSM Conference | java.sun.com/javaone |   12
Referencing Resources

 New capability to reference your resources with relative
 paths
 Allows migration of content from server to server and place
 to place
 Best practice:
  • Do not specify a codebase in your JNLP tag
  • Let the Java Plug-In technology supply it automatically




                                          2008 JavaOneSM Conference | java.sun.com/javaone |   13
Applet-Desc Tag

 <?xml version=”1.0” encoding=”UTF-8”?>
 <jnlp href=”my_applet.jnlp”>
   <information>
     <title=”My Applet”>
     <vendor>My Company, Inc.</vendor>
     <offline-allowed />
   </information>
   <resources>
     <j2se version=”1.4+”
         href=”http://java.sun.com/products/autodl/j2se” />
     <jar href=”my_jar_1.jar” main=”true” />
     <jar href=”my_jar_2.jar” />
   </resources>
   <applet-desc name=”My Applet”
                main-class=”com.mycompany.MyApplet”
                width=”1”
                height=”1” />
 </jnlp>
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   14
Applet-Desc Tag

 width and height are ignored
  • Browser always overrides because it knows best how big the applet
    needs to be
  • Relative width and height supported in applet tag (i.e., “50%”)
 main-class parameter always used
  • code parameter from applet tag is ignored
  • Enables backward compatibility mechanisms (described later)




                                                  2008 JavaOneSM Conference | java.sun.com/javaone |   15
Information Tag

 <?xml version=”1.0” encoding=”UTF-8”?>
 <jnlp href=”my_applet.jnlp”>
   <information>
     <title=”My Applet”>
     <vendor>My Company, Inc.</vendor>
     <offline-allowed />
   </information>
   <resources>
     <j2se version=”1.4+”
         href=”http://java.sun.com/products/autodl/j2se” />
     <jar href=”my_jar_1.jar” main=”true” />
     <jar href=”my_jar_2.jar” />
   </resources>
   <applet-desc name=”My Applet”
                main-class=”com.mycompany.MyApplet”
                width=”1”
                height=”1” />
 </jnlp>
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   16
Information Tag

 Keep in mind that the information tag is required




                                       2008 JavaOneSM Conference | java.sun.com/javaone |   17
Resources Tag

 <?xml version=”1.0” encoding=”UTF-8”?>
 <jnlp href=”my_applet.jnlp”>
   <information>
     <title=”My Applet”>
     <vendor>My Company, Inc.</vendor>
     <offline-allowed />
   </information>
   <resources>
     <j2se version=”1.4+”
         href=”http://java.sun.com/products/autodl/j2se” />
     <jar href=”my_jar_1.jar” main=”true” />
     <jar href=”my_jar_2.jar” />
   </resources>
   <applet-desc name=”My Applet”
                main-class=”com.mycompany.MyApplet”
                width=”1”
                height=”1” />
 </jnlp>
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   18
Resources Tag

 Note requirement of main jar specification per JNLP spec
 Different than old-style applets where archive parameter
 simply specified a list of jars




                                          2008 JavaOneSM Conference | java.sun.com/javaone |   19
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   20
Command Line Arguments

 <?xml version=”1.0” encoding=”UTF-8”?>
 <jnlp href=”my_applet.jnlp”>
   ...
   <resources>
     <j2se version=”1.4+”
         href=”http://java.sun.com/products/autodl/j2se”
         max-heap-size=”128m”
         java-vm-args=”-verbose:gc” />
     <property name=”sun.java2d.opengl” value=”true” />
     ...
   </resources>
   ...
 </jnlp>




                                       2008 JavaOneSM Conference | java.sun.com/javaone |   21
Command Line Arguments

 Low-level command line arguments may be specified
 for each applet
  • System properties
  • Maximum heap size
  • JVM machine arguments
 Plug-In launches a new JVM machine instance when necessary
  • When no existing instance satisfies the command-line argument request
 System still runs multiple applets per JVM machine instance
 Sharing algorithm is deliberately loosely specified
  • Can get arbitrarily complicated
  • Might require revision later
  • Consult the release notes


                                                2008 JavaOneSM Conference | java.sun.com/javaone |   22
Command Line Arguments

 An applet may force itself into its own JVM machine instance
 separate from all other applets
   <param name=”separate_jvm” value=”true” />

 Useful when migrating certain kinds of desktop applications
 to work in the web browser
  • Signed applets which have global networking state




                                          2008 JavaOneSM Conference | java.sun.com/javaone |   23
Command Line Arguments

 Java Web Start software has a notion of “secure”
 command line arguments
  • System properties and JVM machine arguments
 Java Plug-In reuses the same definitions
  • Consult release notes and Java Web Start Developers' Guide
 To enable non-secure arguments:
  • Sign your applet
  • Sign your JNLP file




                                                 2008 JavaOneSM Conference | java.sun.com/javaone |   24
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   25
JRE Version Selection

 May run a particular applet on a particular version of the JRE
 <j2se version=”1.4+” ...>
 <j2se version=”1.5*” ...>

 Useful for enterprises which want to QA their applets against
 a particular JRE version
 Supersedes earlier version selection mechanisms like CLSID in
 Internet Explorer
  • Consult release notes for details
 Auto-download is supported
  • Better overall auto-download support for both Java Web Start software
    and Java Plug-In coming soon
  • Server-side changes only; no changes to client JNLPs
                                                  2008 JavaOneSM Conference | java.sun.com/javaone |   26
JRE Version Selection

 If a very old JRE version is requested, restrictions are enforced
  • User will be prompted if applet attempts to load unsigned code
 Note that since JNLP support is first available in Java Plug-In in
 Java Platform, Standard Edition 6 (Java SE 6) Update 10,
 version specifications like “1.4+” are basically meaningless
  • Will have more meaning when “1.7+” is needed
 Some technical limitations
  • As early as 1.4.2 supported on Windows
  • As early as 1.5 supported on X11 (Unix) platforms
  • 1.3.1 and earlier are not supported




                                             2008 JavaOneSM Conference | java.sun.com/javaone |   27
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   28
Tip: Avoiding Relaunches

 First JVM machine used to parse the JNLP file might not
 satisfy command-line argument or JRE version requests
 In this case applet is relaunched in a new JVM machine
 instance
 For the time being, can give the system a “hint” using applet
 parameters developed for old-style (non-JNLP) applets
 <param name=”java_arguments”
    value=”-Xmx128m -Dsun
 .java2d.opengl=true”>
 Any arguments specified in the JNLP file will override these,
 but JVM machine instance will be reused if the arguments
 are compatible
 We hope to eliminate the need for this optimization later in
 the release
                                          2008 JavaOneSM Conference | java.sun.com/javaone |   29
Faster Startup

 Can use the <update> tag in the JNLP file to drastically reduce
 startup time for second and subsequent launches
     <update check=”background”>

 Will use the version of the app that is already in the cache
 Downloads updated version of the app in the background
 Next launch picks up the new version




                                            2008 JavaOneSM Conference | java.sun.com/javaone |   30
Maintaining Backward Compatibility

 Can author content which runs with earlier versions of Java
 Plug-In, but which takes advantage of new features
 Simply provide a fully-formed <applet> tag as well as the
 jnlp_href parameter
 Earlier JRE versions will ignore the jnlp_href parameter
 The new Java Plug-In technology will ignore the archive
 and code parameters and use only the JNLP file to launch
 the applet
 On-line demos use this technique to show a small applet,
 which runs on earlier JRE versions, encouraging users to
 upgrade
  • Consult release notes


                                          2008 JavaOneSM Conference | java.sun.com/javaone |   31
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   32
Using JNLP Extensions

 It is now trivial to use advanced JNLP extensions inside
 applets
  • OpenGL for 3D graphics via JOGL
  • OpenAL for 3D spatialized audio via JOAL
  • NASA World Wind Java for visualization of Earth and other planets
  • JavaFX™ Player components such as video, scene graph, WebKit
 Simply refer to the extension JNLP in the resources section
 <extension name=”jogl” href=
 ”http://download.java.net/.../jogl.jnlp” />
 Developers can provide extensions to the Java platform
 Provides great flexibility in partitioning application into
 independently upgradable pieces
 Consult release notes for detailed examples

                                              2008 JavaOneSM Conference | java.sun.com/javaone |   33
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   34
Maintaining Corporate Identity

 By default, animated “S” logo is displayed while loading large
 applets
 Can replace this logo with a custom image
 New support for animated GIF images
  • Act as an indeterminate progress bar
 Better control over foreground and background color
 Better control over placement of image
  • Can auto-center it in applet area
 Better control over appearance
  • Can turn off box border




                                          2008 JavaOneSM Conference | java.sun.com/javaone |   35
Maintaining Corporate Identity

 <applet codebase=”...” code=”...” ...>
   <!-- Use an animated GIF as a loading indicator -->
   <param name=”image” value=”ajax-loader.gif”>
   <!-- Turn off the border before the applet is loaded -->
   <param name=”boxborder” value=”false”>
   <!-- Center the image in the applet's area -->
   <param name=”centerimage” value=”true”>
   <!-- The surrounding web page uses white on black-->
   <param name=”boxbgcolor” value=”#000000”>
   <param name=”boxfgcolor” value=”#ffffff”>
 </applet>




                                       2008 JavaOneSM Conference | java.sun.com/javaone |   36
Maintaining Corporate Identity

 Can still do better
 Partition application so that main piece is small
 Use JNLP DownloadService to download the rest of the pieces
 Can draw a progress indicator yourself this way




                                         2008 JavaOneSM Conference | java.sun.com/javaone |   37
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                        2008 JavaOneSM Conference | java.sun.com/javaone |   38
Java/JavaScript Programming Language
Integration
 Bridge between Java and JavaScript programming languages
 has been completely rewritten
 As compatible as possible with previous implicit LiveConnect
 specification from Mozilla
  • Superset of previously available functionality in IE
 Essentially as fast in all cases as previous in-process Java Plug-
 In technology despite the need to communicate between
 processes
  • Significantly improved performance on Mozilla browser family due to
    better efficiency
 Powerful new functionality




                                                2008 JavaOneSM Conference | java.sun.com/javaone |   39
Java-to-JavaScript Programming Language Calls

 netscape.javascript.JSObject class is now fully implemented
 on all browsers
  • Call methods / eval script
  • Add / remove members (where allowed)
  • Get / set array elements
 Provides portable way to call JavaScript from Java
 programming language and thereby interact with
 the web page
 Implementation is safe in the face of multiple threads,
 multiple applets and multiple attached JVM machine
 instances
 Same bootstrapping mechanism as before
  JSObject win = JSObject.getWindow(applet);

                                         2008 JavaOneSM Conference | java.sun.com/javaone |   40
JavaScript-to-Java Calls

 Improved and unified behavior when calling from JavaScript
 programming language on the web page into Java
 MAYSCRIPT attribute is no longer required
 Unified security model
  • JavaScript-to-Java calls are modeled as coming from untrusted Java
    code whose origin is the document base
  • Mozilla-specific concept of signed JavaScript programming language
    code is no longer supported




                                                 2008 JavaOneSM Conference | java.sun.com/javaone |   41
JavaScript-to-Java Calls

 Method lookup and dispatch algorithms are now browser-
 independent
  • True portability between IE and Firefox
 Overloaded method resolution supported
 Advanced argument conversions supported
  • JavaScript-to-Java programming language arrays, including multi-
    dimensional arrays
 “java”, “netscape”, “Packages” keywords now supported on
 all browsers as long as at least one applet is on the web page
  • Not recommended, however
  • Next slide shows new mechanism




                                                 2008 JavaOneSM Conference | java.sun.com/javaone |   42
JavaScript-to-Java Calls

 New per-applet Packages keyword provides access to static Java
 programming language methods and instantiation of new Java
 objects from JavaScript programming language
  • Even user-defined classes
 <applet id=”myApplet” ...>
 <script language=”javascript”>
 var app = document.getElementById(“myApplet”);

  app.Packages.java.lang.System.out.println(“Hello”);
 app.Packages.com.mycompany.MyClass.staticMethod();
 var aJavaObject =
    new app.Packages.com.mycompany.MyClass();
 </script>
 Consult release notes for more examples

                                             2008 JavaOneSM Conference | java.sun.com/javaone |   43
JavaScript-to-Java Calls

 Threading model of JavaScript-to-Java calls has been
 rationalized and is now portable
 A per-applet worker thread handles JavaScript-to-Java calls
  • Separate from all other applet threads
 If a Java-to-JavaScript call is underway, calls back from
 JavaScript to Java against the same applet will be routed to
 the same thread
 Many details to be discussed
 Consult release notes and documentation




                                           2008 JavaOneSM Conference | java.sun.com/javaone |   44
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   45
Manipulating the DOM

 Can manipulate the web page on which the applet lives
 This basic functionality is provided by the JSObject class and
 Java-to-JavaScript calls
 For some time, W3C DOM access has been available via the
 Java Plug-In
  • Inconsistent coverage




                                            2008 JavaOneSM Conference | java.sun.com/javaone |   46
Manipulating the DOM

 Object-oriented DOM access has been rewritten
 New, much simpler bootstrapping entry point
 org.w3c.dom.Document doc =
     com.sun.java.browser.plugin2.DOM.
     getDocument(applet);

 Can then cast to HTMLDocument and descend into the DOM
 Can perform operations from any thread
  • Underlying Java/JavaScript programming language bridge
    is thread safe
 Enables advanced AJAX-style web apps using Java
 programming language

                                        2008 JavaOneSM Conference | java.sun.com/javaone |   47
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A
                                       2008 JavaOneSM Conference | java.sun.com/javaone |   48
Access to Web Services

 Cross-Domain XML specifies how untrusted code may gain
 access to arbitrary web services on the Internet
  • http://crossdomainxml.org/
 Supported by competing technologies to Java programming
 language
 Now supported in Java Plug-In and Java Web Start software
 Unsigned applets and applications may contact popular web
 services if they publish a crossdomain.xml allowing access
  • Amazon, FaceBook, Flickr, Picasa, Yahoo!, YouTube
 Domain restrictions are not implemented
  • Access is only granted if the crossdomain.xml is present and it contains
    only an entry granting access from all domains
 Can specify alternate crossdomain.xml locations via a system
 property
 Consult release notes for details
                                                   2008 JavaOneSM Conference | java.sun.com/javaone |   49
Agenda

 Architectural Overview
 Deploying Applets using JNLP
 Command Line Arguments
 JRE Version Selection
 Performance and Compatibility Tips
 Using JNLP Extensions
 Maintaining Corporate Identity
 Java/JavaScript Programming Language Integration
 Manipulating the DOM
 Access to Web Services
 Experimental Functionality
 Thanks
 Q&A

                                       2008 JavaOneSM Conference | java.sun.com/javaone |   50
Experimental Functionality

 New Java Plug-In technology supports dragging applets out of
 the web browser as a deployment paradigm
  • Applets are mini applications that run anywhere
  • In and out of the browser
 Highly experimental
  • Not guaranteed to be supported in this release or future
    releases
  • Functionality will very likely change
  • Please provide feedback on Java Plug-In forum on java.net




                                         2008 JavaOneSM Conference | java.sun.com/javaone |   51
Experimental Functionality

 Enable with new applet parameter
  <param name=”draggable” value=”true”>
 By default, Alt + Left-click + Drag anywhere in the applet's
 region is the drag gesture
 Can be customized by providing a method on your applet
   public boolean
        isAppletDragStarted(MouseEvent e);




                                            2008 JavaOneSM Conference | java.sun.com/javaone |   52
Experimental Functionality

 Applet is placed into a new top-level Frame
  • Frame is used for Applet subclasses
  • JFrame is used for JApplet subclasses
 By default, the new frame is undecorated and opaque
 Can change this, and perform other custom operations, at the
 time the drag is initiated by providing a method on your
 applet
       public void appletDragStarted();
 At the time this method is called, your applet is in the new
 top-level Frame, that Frame is undecorated, and it is not yet
 visible



                                          2008 JavaOneSM Conference | java.sun.com/javaone |   53
Experimental Functionality

 A separate “close button” separate from the Frame tracks the
 movement of the Frame around the screen if undecorated
 Can customize this by providing a method on your applet
 public void
   setAppletCloseListener(ActionListener l);

 If you implement this method, you should draw some sort of
 close button in your applet's region
 Call the ActionListener when the close button is clicked to
 initiate shutdown of your applet



                                         2008 JavaOneSM Conference | java.sun.com/javaone |   54
Experimental Functionality

 While the web page where the applet came from is still
 visible, the applet can still talk back to the browser
  • Java/JavaScript calls still allowed
  • Can still interact with the surrounding web page
 Once the page is closed, reloaded, or navigated away from,
 the applet is disconnected from the browser
 Services provided to the applet degrade gracefully
  • Java/JavaScript calls disallowed
  • AppletContext.showDocument() is implemented by
    opening a new browser window; target is ignored
  • ...
 When applet is closed, normal applet shutdown occurs
  • stop() and destroy() are called
                                         2008 JavaOneSM Conference | java.sun.com/javaone |   55
  Thanks
Development Team                   Valued Partners
   Calvin Cheung                       Johnny Stenback, Mozilla
   Hao Dong                            Pogo.com
                   Collaborators
   Danielle Pham                       Tony Li, Evergreen
                      Xiaobin Lu
Key Testers                            Bora Ertung, NeuroDNA
                      Joshua Marinacci
   Jitender Singh                      NASA
                      Anthony Rogers
   Hung T. Nguyen                      Apple Computer
                      Andrew Allenson
   Min-Chi Tien                        Jess Holle, PTC
                      Chris Oliver
   Sergei Sapozhnikov Richard Bair     Andy Gullins, Entrust
   Anjana Prabhakar Jasper Potts       Lincoln Goldspink, speed-
                                         trap.com
                                       Raj Advani, UpNext
                                       Oracle
                Manager: Gustavo Galimberti
          Moral Support: James Gosling, Bob Brewin
                                            2008 JavaOneSM Conference | java.sun.com/javaone |   56
Q&A
  2008 JavaOneSM Conference | java.sun.com/javaone |   57
Kenneth Russell
Sven Gothel
Java SE Deployment Team
Sun Microsystems, Inc.
TS-6290




                          2008 JavaOneSM Conference | java.sun.com/javaone |   58