harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Blewitt (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-599) Pack200 implementation for Harmony (work in progress)
Date Tue, 13 Jun 2006 23:13:29 GMT
Pack200 implementation for Harmony (work in progress)

         Key: HARMONY-599
         URL: http://issues.apache.org/jira/browse/HARMONY-599
     Project: Harmony
        Type: New Feature

  Components: Contributions, Classlib  
    Reporter: Alex Blewitt
    Priority: Minor
 Attachments: pack200.impl.zip

This is the first part of the pack200 implementation. It includes code for decoding a sequence
of values from an input stream (though s=2 codes are not yet supported) and can parse the
constant pool headers out of an archive. Although the values make sense from introspecting
the output, there are some significant things missing so far (other than the remainder of
the archive format)
* s=2 decodings are not supported, largely because I don't have any test data to show what
the values should be
* the attributeDefinitionLayout affects the default codec that is used for each band. Currently,
only the default band codec is known; if this contains any vlaues, the parser won't work
* I'm not sure if some of the index values are supposed to be 1-indexed instead of 0-indexed,
such that cp[0] == null/0. I suspect that a zero value transmitted means something specific.
* The test code looks for HelloWorld.pack, which is a packed Jar of the HelloWorld.class.
Currently, I don't assert any values from it, just that it parses (or not) as well as hand-inspecting
the values. A better test class with known values that can be asserted (or a family of them)
will be better
* The input stream passed to the parse method must be buffered and GUnzipped before use. Although
pack files may be optionally post-compressed with GZip (most are) there isn't any mechanism
to peek the values
of the header to determine whether or not they're valid.

Given that it's incomplete, it doesn't implement/provide the standard java.util.jar Pack200
interfaces yet.

This has been built with Eclipse on a Mac(Java 5) so I hope that the classes are referenceable
inside harmony. I've attached my .classpath and .project along with it if necessary. I hope
that someone can create an appropriate classlib location, and I can then sync this with SVN
to provide patches.

I've not done all the documentation, but I've done most of the important bits (with the exception
of the cpUTF8 parsing in Segment). Any patches to documentation welcome -- or even proof reading

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message