8252725: Refactor jlink GenerateJLIClassesPlugin code

Cleanup code for jlink classes generation, move parsing file work to java.lang.invoke and add a new API in interface JavaLangInvokeAccess to generate holder classes, remove old APIs. The new API is used both by JLI and CDS.

Reviewed-by: mchung, sundar
This commit is contained in:
Yumin Qi 2020-09-04 09:47:18 -07:00
parent 9b5a9b6189
commit 8f36580594
6 changed files with 370 additions and 431 deletions

View file

@ -1764,41 +1764,8 @@ abstract class MethodHandleImpl {
}
@Override
public byte[] generateDirectMethodHandleHolderClassBytes(
String className, MethodType[] methodTypes, int[] types) {
return GenerateJLIClassesHelper
.generateDirectMethodHandleHolderClassBytes(
className, methodTypes, types);
}
@Override
public byte[] generateDelegatingMethodHandleHolderClassBytes(
String className, MethodType[] methodTypes) {
return GenerateJLIClassesHelper
.generateDelegatingMethodHandleHolderClassBytes(
className, methodTypes);
}
@Override
public Map.Entry<String, byte[]> generateConcreteBMHClassBytes(
final String types) {
return GenerateJLIClassesHelper
.generateConcreteBMHClassBytes(types);
}
@Override
public byte[] generateBasicFormsClassBytes(final String className) {
return GenerateJLIClassesHelper
.generateBasicFormsClassBytes(className);
}
@Override
public byte[] generateInvokersHolderClassBytes(final String className,
MethodType[] invokerMethodTypes,
MethodType[] callSiteMethodTypes) {
return GenerateJLIClassesHelper
.generateInvokersHolderClassBytes(className,
invokerMethodTypes, callSiteMethodTypes);
public Map<String, byte[]> generateHolderClasses(Stream<String> traces) {
return GenerateJLIClassesHelper.generateHolderClasses(traces);
}
@Override