private static ClassReader createClassReader(Class declaringClass) throws IOException { InputStream in = null; try { ClassLoader classLoader = declaringClass.getClassLoader(); in = classLoader.getResourceAsStream(declaringClass.getName().replace('.', '/') + ".class"); ClassReader reader = new ClassReader(in); return reader; } finally { if (in != null) { try { in.close(); } catch (IOException ignored) { } } } }
protected void readClassDef(InputStream in) throws IOException { try { ClassReader classReader = new ClassReader(in); classReader.accept(new InfoBuildingVisitor(), ASM_FLAGS); } finally { in.close(); } }
private int findJavaVersion(final Class<?> from) { final String resource = from.getName().replace('.', '/') + ".class"; try (final InputStream stream = from.getClassLoader().getResourceAsStream(resource)) { if (stream == null) { return javaVersion; } final ClassReader reader = new ClassReader(stream); final VersionVisitor visitor = new VersionVisitor(); reader.accept(visitor, SKIP_DEBUG + SKIP_CODE + SKIP_FRAMES); if (visitor.version != 0) { return visitor.version; } } catch (final Exception e) { // no-op } // mainly for JVM classes - outside the classloader, find to fallback on the JVM // version return javaVersion; }
private int findJavaVersion(final Class<?> from) { final String resource = from.getName().replace('.', '/') + ".class"; try (final InputStream stream = from.getClassLoader().getResourceAsStream(resource)) { if (stream == null) { return javaVersion; } final ClassReader reader = new ClassReader(stream); final VersionVisitor visitor = new VersionVisitor(); reader.accept(visitor, SKIP_DEBUG + SKIP_CODE + SKIP_FRAMES); if (visitor.version != 0) { return visitor.version; } } catch (final Exception e) { // no-op } // mainly for JVM classes - outside the classloader, find to fallback on the JVM version return javaVersion; }
protected void readClassDef(InputStream in, String path) throws IOException { ClassReader classReader = new ClassReader(in); classReader.accept(new InfoBuildingVisitor(path), ASM_FLAGS); }
try { in = url.openStream(); ClassReader classReader = new ClassReader(in); String[] superInterfaceNames = classReader.getInterfaces(); for (String superInterfaceName : superInterfaceNames) {
try { in = url.openStream(); ClassReader classReader = new ClassReader(in);
@Override protected boolean isClassAcceptable(String name, InputStream in) throws IOException { ClassReader classReader = new ClassReader(in); String className = classReader.getClassName(); if ((classReader.getAccess() & Opcodes.ACC_INTERFACE) == 0) {