Search in sources :

Example 21 with ClassReader

use of org.apache.xbean.asm6.ClassReader in project tomee by apache.

the class DynamicSubclass method copyClassAnnotations.

private static void copyClassAnnotations(final Class<?> clazz, final ClassVisitor newClass) throws ProxyGenerationException {
    try {
        final ClassReader classReader = new ClassReader(readClassFile(clazz));
        final ClassVisitor visitor = new CopyClassAnnotations(newClass);
        classReader.accept(visitor, ClassReader.SKIP_CODE);
    } catch (final IOException e) {
        throw new ProxyGenerationException(e);
    }
}
Also used : ProxyGenerationException(org.apache.openejb.util.proxy.ProxyGenerationException) ClassReader(org.apache.xbean.asm5.ClassReader) ClassVisitor(org.apache.xbean.asm5.ClassVisitor) IOException(java.io.IOException)

Example 22 with ClassReader

use of org.apache.xbean.asm6.ClassReader in project tomee by apache.

the class DependenceValidationTest method file.

private static void file(final File file, final DependencyVisitor dependencyVisitor) {
    try {
        final InputStream in = IO.read(file);
        try {
            final ClassReader classReader = new ClassReader(in);
            classReader.accept(dependencyVisitor, ClassWriter.COMPUTE_MAXS);
        } finally {
            IO.close(in);
        }
    } catch (final IOException e) {
        e.printStackTrace();
        fail(e.getMessage());
    }
}
Also used : InputStream(java.io.InputStream) ClassReader(org.apache.xbean.asm5.ClassReader) IOException(java.io.IOException)

Example 23 with ClassReader

use of org.apache.xbean.asm6.ClassReader in project component-runtime by Talend.

the class ProxyGenerator method findJavaVersion.

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);
        if (visitor.version != 0) {
            return visitor.version;
        }
    } catch (final Exception e) {
    // no-op
    }
    // version
    return javaVersion;
}
Also used : InputStream(java.io.InputStream) ClassReader(org.apache.xbean.asm6.ClassReader) ObjectStreamException(java.io.ObjectStreamException)

Example 24 with ClassReader

use of org.apache.xbean.asm6.ClassReader in project component-runtime by Talend.

the class BeamIOTransformer method rewrite.

private byte[] rewrite(final ConfigurableClassLoader loader, final String className, final byte[] classfileBuffer, final ClassLoader tmpLoader) {
    final String plugin = loader.getId();
    final ClassReader reader = new ClassReader(classfileBuffer);
    final ComponentClassWriter writer = new ComponentClassWriter(className.replace('/', '.'), tmpLoader, reader, ClassWriter.COMPUTE_FRAMES);
    final ComponentClassVisitor visitor = new ComponentClassVisitor(writer, plugin);
    reader.accept(visitor, ClassReader.SKIP_FRAMES);
    return writer.toByteArray();
}
Also used : ClassReader(org.apache.xbean.asm6.ClassReader)

Aggregations

IOException (java.io.IOException)15 InputStream (java.io.InputStream)12 ClassReader (org.apache.xbean.asm5.ClassReader)11 ClassReader (org.apache.xbean.asm6.ClassReader)8 JarEntry (java.util.jar.JarEntry)5 ClassReader (jodd.asm5.ClassReader)4 File (java.io.File)3 FileInputStream (java.io.FileInputStream)3 FileOutputStream (java.io.FileOutputStream)3 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Optional.ofNullable (java.util.Optional.ofNullable)3 JarOutputStream (java.util.jar.JarOutputStream)3 Stream (java.util.stream.Stream)3 EXPAND_FRAMES (org.apache.xbean.asm6.ClassReader.EXPAND_FRAMES)3 ClassWriter (org.apache.xbean.asm6.ClassWriter)3 COMPUTE_FRAMES (org.apache.xbean.asm6.ClassWriter.COMPUTE_FRAMES)3 ClassRemapper (org.apache.xbean.asm6.commons.ClassRemapper)3 Remapper (org.apache.xbean.asm6.commons.Remapper)3