Hi Jaikiran,

I think the changes to ZipFileSystem are OK.

The test overall is good.  I am going to streamline it a bit and remove the 
long lines (we try to keep lines to around 80 characters).

I will push a revised webrev out once I do this over the next few days


Best
Lance

> On Feb 12, 2020, at 1:39 AM, Jaikiran Pai <jai.forums2...@gmail.com> wrote:
> 
> I realized that the verify() method in the testcase can include a couple of 
> more tests while dealing with the JarInputStream. So I've updated that method 
> and created a fresh webrev which is available at 
> https://cr.openjdk.java.net/~jpai/webrev/8211917/3/webrev/ 
> <https://cr.openjdk.java.net/~jpai/webrev/8211917/3/webrev/>
> -Jaikiran
> 
> On 11/02/20 10:03 pm, Jaikiran Pai wrote:
>> Hello Lance,
>> 
>> On 05/02/20 3:13 am, Lance Andersen wrote:
>>> Hi Jaikiran,
>>> 
>>> Thank you again for tackling this feature request.
>>> 
>>> Overall, I think this looks OK.
>>> 
>>> In ZipFileSystem.java, I would reverse the if statement given a MANiFEST.MF 
>>> present is going to be the exception vs the norm.  Perhaps something 
>>> similar to:
>>> 
>>> ————————————
>>> if(manifestInode == null || manifestProcessed) {
>>>     inode = inodeIterator.next();
>>>     if(inode == manifestInode)
>>>         continue;
>>> } else {
>>>     inode = manifestInode;
>>>     manifestProcessed = true;
>>> }
>>> —————————————————
>>> 
>> Done.
>> 
>> 
>> 
>>> A few comments/suggestions on the test:
>>> 
>>> I would prefer  that the tests use the newer FileSystems:: newFileSystem 
>>> methods for the patch to the current openjdk repository
>> Done - updated the testcase to use the newer available APIs.
>> 
>> 
>> 
>>> Please use Map.of() vs Collections.xxxMap
>> Done.
>> 
>> 
>> 
>>> We should test with STORED and DEFLATED specified for compression.  
>>> I would look at the CopyMoveTest and leverage the Entry class and verify 
>>> method in this test.  This will keep the tests looking somewhat similar
>> Done - the testcase now tests the default (== DEFLATED), STORED and 
>> (explicit) DEFLATED compression methods.
>> 
>> 
>> 
>>> Please add a test which copies the Manifest from an OS file to the JAR
>> Done. New testManifestCopiedFromOSFile test method added.
>> 
>> 
>> 
>>> I would consider adding a test which creates a JAR with a Manifest and then 
>>> uses Files::copy to create a another JAR from the original JAR
>> Done. New testDuplicateJar test method added.
>> 
>> 
>> 
>>> I would consider a test which creates the JAR via  the jar tool(using the 
>>> ToolProvider API) and then updates the JAR via ZipFS
>> Done. New testJarToolGeneratedJarWithManifest added.
>> 
>> 
>> 
>>> You may want to consider executing the JAR if you are setting the main 
>>> class attribute see the LargeEntriesTest as an example
>> In my initial version, I included the Main-Class manifest attribute only to 
>> make sure the manifest file that is being verified is indeed the one we had 
>> added in the tests. I did not have any intention of testing the "Main-Class" 
>> semantics. In this newer updated version of the test case, I decided to just 
>> remove the "Main-Class" and instead use a dummy manifest attribute that I 
>> just check for equality. I decided to remove         the "Main-Class" 
>> attribute since I didn't want this test to do too many things. Let me know 
>> if you prefer that the Main-Class to stay and be verified that it can be 
>> launched.
>> 
>> All these changes are now part of the new webrev which is at 
>> https://cr.openjdk.java.net/~jpai/webrev/8211917/2/webrev/ 
>> <https://cr.openjdk.java.net/~jpai/webrev/8211917/2/webrev/>
>> -Jaikiran
>> 

 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> 
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| 
Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>



Reply via email to