Fixed. Updated webrev for the record: http://cr.openjdk.java.net/~sundar/8170289/webrev.03

I'm pushing this as you suggested..

Thanks,
-Sundar

On 19/12/16, 6:55 AM, Mandy Chung wrote:
  282                     throw new RuntimeException(module + " does not have main 
class: " + mainClassName);

- Throwing IllegalArgumentException would probably be better.

  101 err.launcher.value.format:launcher value should be of 
form<command>=<module>: {0}

- should this message include optional main class; something 
like<command>=<module>[/<main-class>]

This validation is done after the image is created.  Can you file a JBS issue 
to separate the launcher file creation and the validation from image creation?  
That can be improved in the future.

Otherwise, looks okay.  No need to send a new webrev.

Mandy
P.S. There is some issue to access cr.openjdk.java.net. I got a copy of 
webrev.02 from Sundar to review.

On Dec 18, 2016, at 7:29 AM, Sundararajan 
Athijegannathan<sundararajan.athijegannat...@oracle.com>  wrote:

Updated it: http://cr.openjdk.java.net/~sundar/8170289/webrev.02

Thanks,
-Sundar

On 17/12/16, 12:33 AM, Mandy Chung wrote:
On Dec 16, 2016, at 8:36 AM, Sundararajan 
Athijegannathan<sundararajan.athijegannat...@oracle.com>   wrote:

Hi,

Please review http://cr.openjdk.java.net/~sundar/8170289/webrev.01/ for 
https://bugs.openjdk.java.net/browse/JDK-8170289
  273             Optional<String>   mainClass = 
ModuleDescriptor.read(stream).mainClass();
  274             if (mainClass.isPresent()) {
  275                 mainClassName = mainClass.get();
  276             }

This should set mainClassName only if the main class is not specified
in the -—launcher option.  One may want to create launchers for
multiple entry points.

I think it should validate if the main class is present in the image.
If not found, it should output an error.

Something to be considered in a future release - the existing implementation
creates the launcher scripts as a special case in DefaultImageBuilder.
It seems cleaner to keep DefaultImageBuilder just for the image creation,
i.e. simply write out entries of the ResourcePool to the image.
The launchers could be added to the ResourcePool entries to the
corresponding module by one builtin plugin implementation.

For this issue, keeping the change to minimal is good.

Mandy


Reply via email to