RFR 8192986: Inconsistent handling of exploded modules in jlink

Sundararajan Athijegannathan sundararajan.athijegannathan at oracle.com
Fri Dec 8 03:27:52 UTC 2017


Hi,

* On stricter check for missing module-info.class in a directory: There 
is a similar check for non-modular jars.

jlink --add-modules java.base --module-path t.jar  --output foo
Error: Unable to derive module descriptor for t.jar

t.jar in the above command is a non-modular jar. I think it is better to 
detect and report non-modular exploded dirs as well.

* Fixed to avoid second resolve for "module-info.class" in JlinkTask.java

Please review updated webrev: 
http://cr.openjdk.java.net/~sundar/8192986/webrev.02/

Thanks
-Sundar

On 07/12/17, 9:15 PM, Sundararajan Athijegannathan wrote:
> Hi,
>
> Comments below...
>
> On 07/12/17, 8:54 PM, Claes Redestad wrote:
>> Hi Sundar,
>>
>> thanks for picking this up so quick!
>>
>> On 2017-12-07 16:21, Sundararajan Athijegannathan wrote:
>>> Updated: http://cr.openjdk.java.net/~sundar/8192986/webrev.01/
>>
>> Looks ok, butunless my understanding is flawed it seems the logic is 
>> now getting more strict about a directory on the module path 
>> containing a well-formed module. Should this be made more graceful, 
>> say ignore empty directories? Maybe just warn about malformed and/or 
>> missing modules?
> I'd prefer stricter checks. But I'd like to hear from others as well...
>> Nits:
>>
>> JlinkTask: resolves module-info.class twice (resolve once and pass as 
>> parameter?)
>
> Yes, I'll fix that.
>
>>
>> ExplodedModuleNameTest:
>>
>>   58         if (helper == null) {
>>   59             System.err.println("Test not run");
>>   60             return;
>>   61         }
>>
>> Should this fail the test (by throwing an exception)?
>
> This is similar to other tests. For eg. ModuleNamesOrderTest
>
>>   66         // rename the module containing directory
>>   67         Path renamedModDir = 
>> modDir.resolveSibling("modified_mod8192986");
>>   68         // copy the content from original directory to modified 
>> name directory
>>   69         copyDir(modDir, renamedModDir);
>>
>> Any reason not to use Files.move(modDir, 
>> renamedModDir|,StandardCopyOption.REPLACE_EXISTING|) instead of 
>> copying here?
>>
>
> https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#move(java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.CopyOption...) 
>
>
> "To move a file tree may involve copying rather than moving 
> directories and this can be done using the copy method in conjunction 
> with the Files.walkFileTree utility method."
>
> Thanks,
> -Sundar
>
>> Thanks!
>>
>> /Claes
>>


More information about the jigsaw-dev mailing list