JDK-4485344 : Need ability to manage the extensions installed by java web start.
  • Type: Enhancement
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 1.0.1,1.2.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_nt,windows_2000,windows_xp
  • CPU: x86
  • Submitted: 2001-07-27
  • Updated: 2003-01-10
  • Resolved: 2003-01-10
Related Reports
Duplicate :  
Description
Extensions installed by java web start can be put in the lib/ext directory
of the jre, or put in the cache.  Java Web Start never removes them, and
dosn't keep track of what applications are using what extensions.  
It has been requested that we allow the user to selectivly delete these 
extensions, at least after removing all applications using them.

Name: nt126004			Date: 07/10/2002


FULL PRODUCT VERSION :
All versions 1.3.1 and 1.4.1 Beta

FULL OPERATING SYSTEM VERSION : Windows 2000 SP2, Windows
NT SP6, Solaris 2.8


A DESCRIPTION OF THE PROBLEM :
Currently the JSR-56 specification discusses an extension
installer that should be called when the application is
first installed or when the application is removed as
discussed in section 5.2.3 of JSR-56 V1.0.1.  Currently the
reference implementation on addresses the installation but
does not address the uninstall.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Install a JNLP enabled application
2. Open JWS console
3. Remove the application from the JWS console

EXPECTED VERSUS ACTUAL BEHAVIOR :
Currently when you remove the application from the JWS
console it removes the icons, shortcuts, and clears the
cache but does NOT call the uninstall !  When the user is
removing the application this is obviously an uninstall
otherwise the current implementation would not be cleaning
up the shortcuts and such.

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER WORKAROUND :
No work around method with JWS, currently I have to provide
a JNLP application that will do the uninstall but the user
has to manually click that to clean up their machine ...
not good !
(Review ID: 158544)
======================================================================

Name: nt126004			Date: 09/04/2002


FULL PRODUCT VERSION :
java version "1.3.1_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_03-b03)
Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode)

FULL OPERATING SYSTEM VERSION :
Microsoft Windows 2000 [Version 5.00.2195]

A DESCRIPTION OF THE PROBLEM :
The ExtensionInstaller is called to Install the Extension
but isn't called to uninstall the Extension when the
Application be removed with the Remove-Button from the
Application Manager


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Start Webstart-Application
2. Remove Webstart-Application
3.

EXPECTED VERSUS ACTUAL BEHAVIOR :
I expect that Webstart should call the Extension-Installer
for uninstall. With CommandLine Argument "uninstall" as
Example.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
/* Installer.jnlp */
<?xml version="1.0" encoding="utf-8"?>

<jnlp
	spec="1.0+"
	codebase="http://chri:8080/webstart/app"
	href="installer.jnlp">
	
	<information>
		<title>Installer</title>
		<offline-allowed/>
	</information>
	<security>
		<all-permissions/>
	</security>
	<resources>
		<j2se version="1.3"/>
		<jar href="install.jar"  />
	</resources>
	
	<installer-desc main-class="webstarttest.Install"/>

</jnlp>

/* testprog.jnlp */
<?xml version="1.0" encoding="utf-8"?>

<jnlp
	spec="1.0+"
	codebase="http://chri:8080/webstart/app"
	href="testprog.jnlp">

	<information>
		<title>testprogram</title>
		<offline-allowed/>
	</information>
	
	<security>
		<all-permissions/>
	</security>

	<resources>
		<j2se version="1.3"/>
				<jar href="helloworld.jar"/>
	</resources>
	
	<resources>
		<extension name="installer"
		href="installer.jnlp" >
		</extension>
	</resources>
	
    <application-desc main-class="webstarttest2.helloworld" >
		
	</application-desc>
	
	

</jnlp>


/* Extension Installer */
package webstarttest;

import java.io.PrintStream;
import javax.jnlp.ExtensionInstallerService;
import javax.jnlp.ServiceManager;

public class Install
{

    public Install()
    {
    }

    public static void main(String args[])
    {
        try
        {
            ExtensionInstallerService is = (ExtensionInstallerService)
ServiceManager.lookup("javax.jnlp.ExtensionInstallerService");
            if(is == null)
                System.out.println("ExtensionInstallerService not found");
            is.setStatus("working");
            is.updateProgress(40);
            System.out.println("This is the Installer argument:".concat
(String.valueOf(String.valueOf(args[0]))));
            is.setStatus("ready");
            is.updateProgress(100);
            if(args[0].equalsIgnoreCase("install"))
            {
                System.out.println("Doing Install");
                is.installSucceeded(false);
            } else
            {
                System.out.println("Doing Uninstall");
                System.exit(0);
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        System.exit(0);
    }
}


/* Applikation */
package webstarttest2;

import java.io.PrintStream;

public class helloworld
{

    public helloworld()
    {
    }

    public static void main(String args[])
    {
        System.out.println("Hello World !");
    }
}






---------- END SOURCE ----------
(Review ID: 163916)
======================================================================

Comments
EVALUATION we should provide, at least, an implementation of the uninstall functionality for tiger. see #4872373 - this problem will be tracked seperately from optional package repository ###@###.### 2003-06-01
01-06-2003