RFR: 8252725: Refactor jlink GenerateJLIClassesPlugin code

sundararajan.athijegannathan at oracle.com sundararajan.athijegannathan at oracle.com
Fri Sep 4 01:34:29 UTC 2020


Looks good to me.

Few minor comment:

* traceFileStream (and even the preexisting mainArgument) is accessed 
only inside GenerateJLIClassesPlugin. Could be private?

-Sundar

On 04/09/20 3:41 am, Yumin Qi wrote:
> HI, Mandy
>
>   Thanks for review and comment.
>
>
> Yumin
>
> On 9/3/20 9:13 AM, Mandy Chung wrote:
>>
>>
>> On 9/3/20 8:36 AM, Yumin Qi wrote:
>>> Hi, Please review
>>>
>>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8252725
>>>
>>> webrev: http://cr.openjdk.java.net/~minqi/2020/8252725/webrev-01/
>>>
>>
>> Looks good to me.   Sundar should also review it.
>>
>> A few things to mention compared to the proposed patch from 8247536:  
>> we no longer log the error case for LF_RESOLVE since it's ignored 
>> anyway.  As the code is moved to java.lang.invoke, we also clean up 
>> the code to use constants and methods defined in LambdaForm and 
>> MethodTypeForm and BasicType (rather than duplicating such definitions).
>>
>> Mandy
>>>
>>> Summary: The work is part of 8247536, which supports archive 
>>> pre-generated java.lang.invoke classes in CDS. In this patch (thanks 
>>> to Mandy):
>>>
>>> 1. Two methods for tracing SPECIES_RESOLVE and LF_RESOLVE are added 
>>> to GenerateJLIClassesHelper: traceSpeciesType and traceLambdaForm 
>>> respectively;
>>>
>>> 2. Move log file parsing work to java.lang.InvokeJLIClassesHelper;
>>>
>>> 3. Clean up interface APIs since old APIs no longer used with the 
>>> moving;
>>>
>>> 4. New API JavaLangInvokeAccess::generateHolderClassesreturns a map 
>>> of class name, which in internal form as key rather than the jimage 
>>> entry point, vs class bytes.
>>>
>>> This makes both JLI and CDS can use the new interface easily. CDS 
>>> will add a new function (in 8247536 patch, only for convenience for 
>>> converting the map to array) to GenerateJLIClassesHelper to call the 
>>> new added interface API (generateHolderClasses)to regenerate holder 
>>> classes during dump time.
>>>
>>>
>>> Thanks
>>>
>>> Yumin
>>>
>>>
>>


More information about the core-libs-dev mailing list