use of org.apache.xbean.asm5.ClassReader in project tomee by apache.
the class AnnotationFinder method readClassDef.
private void readClassDef(String className, final ClassVisitor visitor) {
classes++;
if (!className.endsWith(".class")) {
className = className.replace('.', '/') + ".class";
}
try {
final URL resource = classLoader.getResource(className);
if (resource != null) {
InputStream in = resource.openStream();
in = new BufferedInputStream(in);
try {
final ClassReader classReader = new ClassReader(in);
classReader.accept(visitor, ASM_FLAGS);
} finally {
in.close();
}
} else {
new Exception("Could not load " + className).printStackTrace();
}
} catch (final IOException e) {
e.printStackTrace();
}
}
use of org.apache.xbean.asm5.ClassReader in project tomee by apache.
the class DynamicSubclass method copyMethodAnnotations.
private static void copyMethodAnnotations(final Class<?> classToProxy, final Map<String, MethodVisitor> visitors) throws ProxyGenerationException {
// Move all the annotations onto the newly implemented methods
// Ensures CDI and JAX-RS and JAX-WS still work
Class clazz = classToProxy;
while (clazz != null && !clazz.equals(Object.class)) {
try {
final ClassReader classReader = new ClassReader(readClassFile(clazz));
final ClassVisitor copyMethodAnnotations = new CopyMethodAnnotations(visitors);
classReader.accept(copyMethodAnnotations, ClassReader.SKIP_CODE);
} catch (final IOException e) {
throw new ProxyGenerationException(e);
}
clazz = clazz.getSuperclass();
}
}
use of org.apache.xbean.asm5.ClassReader in project tomee by apache.
the class ValidationKeysAuditorTest method file.
private static void file(final File file, final KeysAnnotationVisitor visitor) {
try {
final InputStream in = IO.read(file);
try {
final ClassReader classReader = new ClassReader(in);
classReader.accept(visitor, ClassWriter.COMPUTE_FRAMES);
} finally {
IO.close(in);
}
} catch (final IOException e) {
e.printStackTrace();
}
}
use of org.apache.xbean.asm5.ClassReader in project tomee by apache.
the class JpaTest method addNewField.
public static byte[] addNewField(final byte[] origBytes) {
final ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
final FieldAdderClassVisitor visitor = new FieldAdderClassVisitor(classWriter);
final ClassReader classReader = new ClassReader(origBytes);
classReader.accept(visitor, 0);
return classWriter.toByteArray();
}
use of org.apache.xbean.asm5.ClassReader in project tomee by apache.
the class TempClassLoader method isEnum.
/**
* Fast-parse the given class bytecode to determine if it is an
* enum class.
*/
private static boolean isEnum(final byte[] bytes) {
final IsEnumVisitor isEnumVisitor = new IsEnumVisitor();
final ClassReader classReader = new ClassReader(bytes);
classReader.accept(isEnumVisitor, ClassReader.SKIP_DEBUG);
return isEnumVisitor.isEnum;
}
Aggregations