--- old/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/m4/p4/Main.java Fri Oct 27 09:25:21 2017 +++ new/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/m4/p4/Main.java Fri Oct 27 09:25:21 2017 @@ -35,35 +35,13 @@ import java.util.Map; import java.util.Set; -import jdk.internal.module.ClassFileAttributes; -import jdk.internal.module.ClassFileAttributes.ModuleTargetAttribute; -import jdk.internal.module.ClassFileConstants; -import jdk.internal.org.objectweb.asm.Attribute; -import jdk.internal.org.objectweb.asm.ClassReader; -import jdk.internal.org.objectweb.asm.ClassVisitor; -import jdk.internal.org.objectweb.asm.Opcodes; +import jdk.internal.module.ModuleInfo; +import jdk.internal.module.ModuleInfo.Attributes; public class Main { private static boolean hasModuleTarget(InputStream in) throws IOException { - ModuleTargetAttribute[] modTargets = new ModuleTargetAttribute[1]; - ClassVisitor cv = new ClassVisitor(Opcodes.ASM5) { - @Override - public void visitAttribute(Attribute attr) { - if (attr instanceof ModuleTargetAttribute) { - modTargets[0] = (ModuleTargetAttribute)attr; - } - } - }; - - // prototype of attributes that should be parsed - Attribute[] attrs = new Attribute[] { - new ModuleTargetAttribute() - }; - - // parse module-info.class - ClassReader cr = new ClassReader(in); - cr.accept(cv, attrs, 0); - return modTargets[0] != null && modTargets[0].targetPlatform() != null; + ModuleInfo.Attributes attrs = ModuleInfo.read(in, null); + return attrs.target() != null; } private static boolean hasModuleTarget(String modName) throws IOException {