JDK-6601859 : Use 7-zip for Java kernel core msi file and it or java.util.zip.GZIP*Stream for bundle compression
  • Type: Enhancement
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6u5
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • CPU: generic
  • Submitted: 2007-09-06
  • Updated: 2010-09-17
  • Resolved: 2008-06-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
6u10 b10Fixed 7Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
The Java Kernel engineering team has requested Sun legal clearance to use 7-Zip (http://www.7-zip.org) as the mechanism for bundle compression to reduce download overhead. 
This RFE is to prototype and test use of 7-Zip and then integrate use of its binaries for compressing and uncompressing bundles after legal approval is received. The size of the 7-Zip .dll file(s) needed for decompression is still being determined, but the overall savings for a typical bundle collection is expected to be significant.

The tradeoff of benefit vs overhead and complication with using the 7-Zip binaries make this approach painful. A second approach (requiring separate legal approval) using the 7-Zip SDK (but only modifying one of it's "public domain" files, not any under LGPL) is being prototyped.

Also, compression of the Java Kernel .msi file is a much better alternative to the current Microsoft (internal cab file) compression used now. So this RFE and the prototype work has been extended to cover the JK .msi file as well as bundle files.

EVALUATION If 7-Zip compression is not available for bundle files, GZIP{Input,Output}Stream will be used as an alternative to jar/zip compression in the bundle archive files themselves, so bundle compression will be uniformly on the "back end" of the deploy build process.

EVALUATION Use of 7-Zip with a "no compression" cab file within the JK .msi file results in roughly 500KB savings, at a cost of roughly 50-302KB of overhead from inclusion of 7-Zip with the installer (the former being "best" use of the SDK approach and the latter being use of the .dll collection included in the primary 7-Zip binary distribution.

EVALUATION An initial, approximate table of expected savings for bundle sizes available with 7-Zip, (not counting the size of the 7-Zip decompression code) is available here: http://j2se.east/deployment/www/webrevs/psoper/jkcompress.html