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] Commented: (HARMONY-2957) Update pack200 project layout and ensure 1.4 compatibility
Date Wed, 10 Jan 2007 06:20:27 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-2957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12463474
] 

Alex Blewitt commented on HARMONY-2957:
---------------------------------------

Yes, the Java5 classes need to be compiled with Java 5 -- in Sun's infinite wisdom, the Packer/Unpacker
interfaces have generics in them:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/Pack200.Packer.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/Pack200.Unpacker.html

Also, the only coupling between the archive and the pack200 modules is dynamic, with the use
of the Class.forName(). However, there is a tight coupling between the Packer/Unpacker and
code in the pack200 module (e.g. calls to Segment) and they'll become a little bit more complex
over time, with the requirement to have more than just a minimal implementation at a later
date.

Lastly, for the pack200 module to be used by other systems, these interfaces will be needed
(assuming a plug-in replacement for Sun's Pack200 code). So they really need to be with the
pack200 module, as opposed to the archive module.

If the desire is to get rid of the extra Java5 directory, then we can create another project
dependent on the pack200 project, and then set that up for Java5 compatibility. But the dependency
tree will need to look like pack200-java5 -> pack200 -> archive.

> Update pack200 project layout and ensure 1.4 compatibility
> ----------------------------------------------------------
>
>                 Key: HARMONY-2957
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2957
>             Project: Harmony
>          Issue Type: Improvement
>          Components: Classlib
>            Reporter: Alex Blewitt
>         Assigned To: Nathan Beyer
>            Priority: Minor
>         Attachments: pack200-java5.jar, pack200-project.patch
>
>
> This patch adds support for the Eclipse project to be based on 1.4 compatibility, rather
than 1.5 compatibility. I've split the Java source into two; src/main/java and src/main/java5
-- the latter needs to be compiled with a 1.5 system, the former with a 1.4 system. I've amended
the build.xml appropriately to have multiple targets in the appropriate sections, and tested
it out (though I've had to hack the build to get it to work on Mac OS X).
> I'm pretty sure there's a cleaner way of adding source folders than I've done, but I'm
open to suggestions. The src/main/java needs to be compiled on a 1.4 system, and the src/main/java5
needs to be compiled on a 1.5 (or with 1.5 support, anyway). To make life easier for an Eclipse
developer working on the project in 1.4 mode, the java5 has been exported to pack200-java5.jar
and included in with the patch (though, for some reason, the diff tool doesn't like binary
files so I'm having to attach it manually). 
> I've fixed the SegmentTest; I'm not sure if inheriting this again is a case of deleting
the make/excludes* files; but I've not done that in this patch. I can supply another patch
if this is the case.
> I've also written a new test to ensure that the compiled class files are generated with
1.4 compatibility, which should hopefully prevent this form being inadvertently reverted in
the future.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message