United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6695848 Must break compile-time dependencies to enable ports to other operating systems
JDK-6695848 : Must break compile-time dependencies to enable ports to other operating systems

Details
Type:
Bug
Submit Date:
2008-04-30
Status:
Closed
Updated Date:
2010-09-08
Project Name:
JDK
Resolved Date:
2008-06-16
Component:
deploy
OS:
generic
Sub-Component:
plugin
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6u10
Fixed Versions:
6u10 (b24)

Related Reports

Sub Tasks

Description
In order to increase adoption of the new Java Plug-In, it is essential that it be rapidly ported to as many platforms as possible as quickly as possible. Currently there are certain compile-time dependencies that must be broken in order to achieve better portability of the sources.

                                    

Comments
SUGGESTED FIX

http://sa.sfbay.sun.com/projects/deployment_data/6u10/6695848.2
                                     
2008-04-30
EVALUATION

To facilitate rapid adoption of the new Java Plug-In, it must be
easily portable to other operating systems. Currently there are
several compile-time and algorithmic depenencies that prevent this.
The following changes have therefore been made:

  - Compile-time dependencies on the old plug-in's AppletViewer and
    related classes have been removed.

  - References to the old plug-in's
    sun.plugin.viewer.context.PluginAppletContext and
    sun.plugin.viewer.context.PluginBeansContext classes from the
    BrowserService interface, which is implemented by the new plug-in,
    have been removed, their types instead raised to java.lang.Object.
    Downcasts have been introduced at the call sites. These
    dependencies will go away with the old plug-in anyway, as the
    concepts are not used in the new plug-in.

  - The "reload" functionality of the gray box painter's error panel
    has been factored out to allow separate implementation for the old
    and new plug-ins. (The current code in the workspace does not work
    for the case of the new plug-in and has never worked -- this was
    not noticed until now.)

  - The code from JarCacheUtil.verifyJarVersions(), which was
    incorrectly specialized for the old plug-in, has been pulled into
    the old plug-in's AppletViewer class.

  - The code in the JVMParameters class which parses and comprehends
    the boot class path has been changed to look for a specific list
    of jars rather than try to infer things based on a predefined
    notion of the default boot class path for the JVM, which is
    OS- and vendor-specific.

  - Some errors in the C code for the Unix plug-in port (where C
    functions did not return values, etc.) have been corrected, as
    well as an unnecessary dependence in console.c removed.

  - Some additional performance traces were inserted into
    Applet2Environment for better diagnosability of initial bringup.

  - The failure case in MessagePassingExecutionContext.getProxyList()
    was changed to ease initial porting.

  - Extraneous debugging printouts were removed.

  - Error checking was added to the AbstractPlugin.cpp native code to
    avoid browser crashes in failure situations.

  - Explicit references to the EmbeddedFrame class in PluginMain have
    been eschewed in favor of direct references to the new plug-in's
    PluginEmbeddedFrame concept to allow ports the flexibility of not
    subclassing sun.awt.EmbeddedFrame.
                                     
2008-04-30



Hardware and Software, Engineered to Work Together