List of usage examples for org.objectweb.asm.commons SimpleRemapper SimpleRemapper
public SimpleRemapper(final String oldName, final String newName)
From source file:com.navercorp.pinpoint.profiler.instrument.lambda.LambdaFactoryTest.java
License:Apache License
private void renameClass(ClassReader reader, ClassVisitor classVisitor) { String className = "com/navercorp/pinpoint/profiler/instrument/lambda/mock/UnsafeClassMock"; Remapper remapper = new SimpleRemapper(className, className + "2"); ClassRemapper classRemapper = new ClassRemapper(classVisitor, remapper); reader.accept(classRemapper, 0);//from w w w . ja va 2 s. c om }
From source file:org.anon.smart.base.stt.asm.ASMSTTWriter.java
License:Open Source License
public Object createMethod(STTVisitor sttvisit, STTDescriptor stt, Object mthd) { ASMClazzContext cctx = (ASMClazzContext) sttvisit.clazzContext(); ClassVisitor visit = cctx.visitor(); MethodNode nde = (MethodNode) mthd;/*ww w. java 2s . com*/ if (!nde.name.equals(CONSTRUCTOR_NAME)) //ignore constructor { String[] exceptions = new String[nde.exceptions.size()]; nde.exceptions.toArray(exceptions); //TODO check the reference for this MethodVisitor mv = visit.visitMethod(nde.access, nde.name, nde.desc, nde.signature, exceptions); nde.instructions.resetLabels(); nde.accept(new RemappingMethodAdapter(nde.access, nde.desc, mv, new SimpleRemapper(stt.reader().sttname(), cctx.name()))); return nde; } return null; }
From source file:org.apache.drill.exec.compile.MergeAdapter.java
License:Apache License
@Override @SuppressWarnings("unchecked") public void visitEnd() { // add all the fields of the class we're going to merge. for (Iterator<?> it = classToMerge.fields.iterator(); it.hasNext();) { ((FieldNode) it.next()).accept(this); }//from w w w . j a v a 2 s . co m // add all the methods that we to include. for (Iterator<?> it = classToMerge.methods.iterator(); it.hasNext();) { MethodNode mn = (MethodNode) it.next(); if (mn.name.equals("<init>")) { continue; } String[] exceptions = new String[mn.exceptions.size()]; mn.exceptions.toArray(exceptions); MethodVisitor mv = cv.visitMethod(mn.access | Modifier.FINAL, mn.name, mn.desc, mn.signature, exceptions); mn.instructions.resetLabels(); // mn.accept(new RemappingMethodAdapter(mn.access, mn.desc, mv, new // SimpleRemapper("org.apache.drill.exec.compile.ExampleTemplate", "Bunky"))); ClassSet top = set; while (top.parent != null) { top = top.parent; } mn.accept(new RemappingMethodAdapter(mn.access, mn.desc, mv, new SimpleRemapper(top.precompiled.slash, top.generated.slash))); } super.visitEnd(); }
From source file:org.glowroot.agent.weaving.WeavingClassVisitor.java
License:Apache License
@RequiresNonNull("type") private void addMixin(MixinType mixinType) { ClassReader cr = new ClassReader(mixinType.implementationBytes()); ClassNode cn = new ClassNode(); cr.accept(cn, ClassReader.EXPAND_FRAMES); // SuppressWarnings because generics are explicitly removed from asm binaries // see http://forge.ow2.org/tracker/?group_id=23&atid=100023&func=detail&aid=316377 @SuppressWarnings("unchecked") List<FieldNode> fieldNodes = cn.fields; for (FieldNode fieldNode : fieldNodes) { fieldNode.accept(this); }// w w w.j ava 2s.co m // SuppressWarnings because generics are explicitly removed from asm binaries @SuppressWarnings("unchecked") List<MethodNode> methodNodes = cn.methods; for (MethodNode mn : methodNodes) { if (mn.name.equals("<init>")) { continue; } // SuppressWarnings because generics are explicitly removed from asm binaries @SuppressWarnings("unchecked") String[] exceptions = Iterables.toArray(mn.exceptions, String.class); MethodVisitor mv = cw.visitMethod(mn.access, mn.name, mn.desc, mn.signature, exceptions); mn.accept(new RemappingMethodAdapter(mn.access, mn.desc, mv, new SimpleRemapper(cn.name, type.getInternalName()))); } }
From source file:org.glowroot.weaving.WeavingClassVisitor.java
License:Apache License
@RequiresNonNull("type") private void addMixin(MixinType mixinType) { ClassReader cr = new ClassReader(mixinType.implementationBytes()); ClassNode cn = new ClassNode(); cr.accept(cn, ClassReader.EXPAND_FRAMES); // SuppressWarnings because generics are explicitly removed from asm binaries // see http://forge.ow2.org/tracker/?group_id=23&atid=100023&func=detail&aid=316377 @SuppressWarnings("unchecked") List<FieldNode> fieldNodes = cn.fields; for (FieldNode fieldNode : fieldNodes) { fieldNode.accept(this); }// w ww .j av a2s . c om // SuppressWarnings because generics are explicitly removed from asm binaries @SuppressWarnings("unchecked") List<MethodNode> methodNodes = cn.methods; for (MethodNode mn : methodNodes) { if (mn.name.equals("<init>")) { continue; } // SuppressWarnings because generics are explicitly removed from asm binaries @SuppressWarnings("unchecked") String[] exceptions = Iterables.toArray(mn.exceptions, String.class); MethodVisitor mv = cv.visitMethod(mn.access, mn.name, mn.desc, mn.signature, exceptions); checkNotNull(mv); mn.accept(new RemappingMethodAdapter(mn.access, mn.desc, mv, new SimpleRemapper(cn.name, type.getInternalName()))); } }