List of usage examples for org.objectweb.asm.util ASMifier ASMifier
public ASMifier()
From source file:ch.raffael.contracts.devtools.browser.BrowserPanel.java
License:Apache License
private void updateSource() { if (tree.getSelectionPath() == null) { asmSource.setText(""); reloadClassAction.setEnabled(false); return;//from w w w . j a va 2s .c o m } BrowserTreeNode node = (BrowserTreeNode) tree.getSelectionPath().getLastPathComponent(); if (node.getKind() != BrowserTreeNode.Kind.CLASS) { asmSource.setText(""); reloadClassAction.setEnabled(false); } else { boolean indent = false; reloadClassAction.setEnabled(true); StringWriter string = new StringWriter(); try (InputStream in = new BufferedInputStream(Files.newInputStream(node.getPath())); PrintWriter out = new PrintWriter(string)) { ASMifier printer = new ASMifier(); ClassReader reader = new ClassReader(in); TraceClassVisitor tracer; if (sourceStyle.getSelectedItem() != null && sourceStyle.getSelectedItem().equals("Bytecode")) { tracer = new TraceClassVisitor(null, new Textifier(), out); } else { tracer = new TraceClassVisitor(null, new ASMifier(), out); indent = true; } reader.accept(tracer, 0); } catch (IOException e) { this.context.require(ErrorDisplayer.class).displayError(root, e); } if (indent) { StringBuilder buf = new StringBuilder(); int d = 0; for (String line : string.toString().split("\\n\\r?|\\r")) { if (line.equals("}")) { d--; } for (int i = 0; i < d; i++) { buf.append(" "); } buf.append(line).append('\n'); if (line.equals("{")) { d++; } } asmSource.setText(buf.toString()); } else { asmSource.setText(string.toString()); } asmSource.setSelectionStart(0); asmSource.setSelectionEnd(0); } }
From source file:ch.sourcepond.utils.podescoin.devel.PrintASMInstructions.java
License:Apache License
@Test public void printInstructions() throws Exception { final ClassReader reader = new ClassReader(WriteInjectorMethodClass.class.getName()); final ClassVisitor visitor = new PrintClassVisitor( new TraceClassVisitor(null, new ASMifier(), new PrintWriter(System.out))); reader.accept(visitor, ClassReader.SKIP_DEBUG); }
From source file:com.android.build.gradle.tasks.fd.InjectBootstrapApplicationTaskTest.java
License:Apache License
private static String asmify(File expected) throws IOException { ClassReader reader = new ClassReader(new FileInputStream(expected)); StringWriter writer = new StringWriter(); try (PrintWriter printWriter = new PrintWriter(writer)) { reader.accept(new TraceClassVisitor(null, new ASMifier(), printWriter), 0); }//from w ww . j a v a 2 s .c om return writer.toString(); }
From source file:com.costlowcorp.eriktools.jardetails.JarNavigationController.java
private void readClass(String filename) { try (JarFile jar = new JarFile(this.file)) { final JarEntry entry = jar.getJarEntry(filename); final ClassNode node = new ClassNode(ASM5); final InputStream in = jar.getInputStream(entry); final ClassReader reader = new ClassReader(in); //reader.accept(node, ClassReader.EXPAND_FRAMES); final Printer asmifier = new ASMifier(); //final InputStream in2 = jar.getInputStream(entry); final ByteArrayOutputStream bout = new ByteArrayOutputStream(); final TraceClassVisitor tracer = new TraceClassVisitor(node, asmifier, new PrintWriter(bout)); reader.accept(tracer, ClassReader.EXPAND_FRAMES); final String className = filename.replace('/', '.').substring(0, filename.length() - ".class".length()); final String javap = JavaPGrabber.INSTANCE.run(file.toPath(), className); Platform.runLater(() -> {//from ww w . j a v a2 s .c o m classDetails.populateClassSummary(node.name, filename, node.sourceFile, node.version, node.superName, node.interfaces); classDetails.populateAsmifierTab(bout.toString()); classDetails.populateJavaPTab(javap); }); } catch (IOException ex) { Logger.getLogger(JarNavigationController.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:no.kantega.helloworld.HelloWorldAsmified.java
License:Apache License
public static void main(String[] args) throws IOException { Class clazz = HelloWorld.class; InputStream inputStream = clazz.getResourceAsStream(clazz.getSimpleName() + ".class"); ClassReader reader = new ClassReader(inputStream); ClassVisitor visitor = new TraceClassVisitor(null, new ASMifier(), new PrintWriter(System.out)); reader.accept(visitor, ClassReader.EXPAND_FRAMES); }
From source file:no.kantega.linecount.RegistryTest.java
License:Apache License
public static void main(String[] args) throws IOException { Class clazz = RegistryTest.class; InputStream inputStream = clazz.getResourceAsStream(clazz.getSimpleName() + ".class"); ClassReader reader = new ClassReader(inputStream); ClassVisitor visitor = new TraceClassVisitor(null, new ASMifier(), new PrintWriter(System.out)); reader.accept(visitor, ClassReader.EXPAND_FRAMES); }
From source file:org.apache.commons.javaflow.helper.ClassTransformerClassLoader.java
License:Apache License
protected byte[] transform(final String pName, final InputStream pClassStream) throws IOException { final byte[] oldClass = IOUtils.toByteArray(pClassStream); final byte[] newClass = transformer.transform(oldClass); // CheckClassAdapter.verify(new ClassReader(newClass), true); // Test case output has been moved to target/test-instrumentation to reduce clutter in main directory new File("target/test-instrumentation").mkdirs(); CheckClassAdapter.verify(new ClassReader(newClass), true, new PrintWriter(new FileOutputStream("target/test-instrumentation/" + transformer.getClass().getSimpleName() + "_" + pName + ".new.check"))); new ClassReader(oldClass).accept(new TraceClassVisitor(null, new ASMifier(), new PrintWriter(new FileOutputStream("target/test-instrumentation/" + transformer.getClass().getSimpleName() + "_" + pName + ".old"))), 0);//from ww w. j a va 2 s .co m new ClassReader(newClass).accept(new TraceClassVisitor(null, new ASMifier(), new PrintWriter(new FileOutputStream("target/test-instrumentation/" + transformer.getClass().getSimpleName() + "_" + pName + ".new"))), 0); return newClass; }
From source file:org.apache.drill.exec.compile.bytecode.ReplaceMethodInvoke.java
License:Apache License
private static ClassVisitor getTracer(boolean asm) { if (asm) {//from w ww . ja v a2s .co m return new TraceClassVisitor(null, new ASMifier(), new PrintWriter(System.out)); } else { return new TraceClassVisitor(null, new Textifier(), new PrintWriter(System.out)); } }
From source file:org.jooby.internal.apitool.BytecodeRouteParser.java
License:Apache License
private ClassNode loadClass(String name) { return Try.apply(() -> { String cname = name.replace("/", "."); ClassNode node = cache.get(cname); if (node == null) { String rname = cname.replace(".", "/") + ".class"; try (InputStream in = loader.getResourceAsStream(rname)) { if (in == null) { throw new FileNotFoundException(rname + " using " + loader); }/*from w w w .j a v a 2s .c o m*/ ClassReader reader = new ClassReader(ByteStreams.toByteArray(in)); node = new ClassNode(); reader.accept(node, 0); cache.put(cname, node); if (log.isDebugEnabled()) { log.info("Source: {}; Class: {}", node.sourceFile, node.name); reader.accept( new TraceClassVisitor(null, new ASMifier(), new PrintWriter(writer(log, name))), 0); } } } return node; }).get(); }
From source file:org.jooby.internal.apitool.Insn.java
License:Apache License
@Override public String toString() { Printer printer = new ASMifier(); TraceMethodVisitor visitor = new TraceMethodVisitor(printer); node.accept(visitor);/*from w w w. ja v a 2 s. c o m*/ return printer.getText().toString(); }