< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java
Print this page
rev 47453 : imported patch jdk-new-asm-update.patch
*** 56,82 ****
import java.util.function.IntSupplier;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import jdk.internal.module.Checks;
- import jdk.internal.module.ClassFileAttributes;
- import jdk.internal.module.ClassFileConstants;
import jdk.internal.module.DefaultRoots;
import jdk.internal.module.IllegalAccessMaps;
import jdk.internal.module.ModuleHashes;
import jdk.internal.module.ModuleInfo.Attributes;
import jdk.internal.module.ModuleInfoExtender;
import jdk.internal.module.ModuleReferenceImpl;
import jdk.internal.module.ModuleResolution;
import jdk.internal.module.ModuleTarget;
! 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.ClassWriter;
import jdk.internal.org.objectweb.asm.MethodVisitor;
import jdk.internal.org.objectweb.asm.Opcodes;
-
import static jdk.internal.org.objectweb.asm.Opcodes.*;
import jdk.tools.jlink.internal.ModuleSorter;
import jdk.tools.jlink.plugin.Plugin;
import jdk.tools.jlink.plugin.PluginException;
--- 56,80 ----
import java.util.function.IntSupplier;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import jdk.internal.module.Checks;
import jdk.internal.module.DefaultRoots;
import jdk.internal.module.IllegalAccessMaps;
import jdk.internal.module.ModuleHashes;
import jdk.internal.module.ModuleInfo.Attributes;
import jdk.internal.module.ModuleInfoExtender;
import jdk.internal.module.ModuleReferenceImpl;
import jdk.internal.module.ModuleResolution;
import jdk.internal.module.ModuleTarget;
!
import jdk.internal.org.objectweb.asm.ClassReader;
import jdk.internal.org.objectweb.asm.ClassVisitor;
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.MethodVisitor;
+ import jdk.internal.org.objectweb.asm.ModuleVisitor;
import jdk.internal.org.objectweb.asm.Opcodes;
import static jdk.internal.org.objectweb.asm.Opcodes.*;
import jdk.tools.jlink.internal.ModuleSorter;
import jdk.tools.jlink.plugin.Plugin;
import jdk.tools.jlink.plugin.PluginException;
*** 433,460 ****
+ descriptor.name() + " are not present: " + nonExistPackages);
}
}
boolean hasModulePackages() throws IOException {
! Set<String> attrTypes = new HashSet<>();
! ClassVisitor cv = new ClassVisitor(Opcodes.ASM5) {
@Override
! public void visitAttribute(Attribute attr) {
! attrTypes.add(attr.type);
}
};
!
! // prototype of attributes that should be parsed
! Attribute[] attrs = new Attribute[] {
! new ClassFileAttributes.ModulePackagesAttribute()
};
try (InputStream in = getInputStream()) {
// parse module-info.class
ClassReader cr = new ClassReader(in);
! cr.accept(cv, attrs, 0);
! return attrTypes.contains(ClassFileConstants.MODULE_PACKAGES);
}
}
/**
* Returns true if module-info.class should be rewritten to add the
--- 431,459 ----
+ descriptor.name() + " are not present: " + nonExistPackages);
}
}
boolean hasModulePackages() throws IOException {
! Set<String> packages = new HashSet<>();
! ClassVisitor cv = new ClassVisitor(Opcodes.ASM6) {
@Override
! public ModuleVisitor visitModule(String name,
! int flags,
! String version) {
! return new ModuleVisitor(Opcodes.ASM6) {
! public void visitPackage(String pn) {
! packages.add(pn);
}
};
! }
};
try (InputStream in = getInputStream()) {
// parse module-info.class
ClassReader cr = new ClassReader(in);
! cr.accept(cv, 0);
! return packages.size() > 0;
}
}
/**
* Returns true if module-info.class should be rewritten to add the
< prev index next >