LazyMethodGen newMethod = shadow.extractMethod(shadow.getSignature().getExtractableName() + "_extracted" + counter++);
LazyMethodGen newMethod = shadow.extractMethod(shadow.getSignature().getExtractableName() + "_extracted" + counter++, 0, this);
	public void testFancyHello() throws IOException {		BcelAdvice p = new BcelAdvice(null, makePointcutAll(), null, 0, -1, -1, null, null) {            public void specializeOn(Shadow s) {            	super.specializeOn(s);                ((BcelShadow) s).initializeForAroundClosure();            }            public void implementOn(Shadow s) {                BcelShadow shadow = (BcelShadow) s;                LazyMethodGen newMethod = shadow.extractMethod(shadow.getSignature().getExtractableName() + "_extracted" + counter++);                shadow.getRange().append(shadow.makeCallToCallback(newMethod));                if (! shadow.isFallsThrough()) {                    shadow.getRange().append(InstructionFactory.createReturn(newMethod.getReturnType()));                }            }  		};		weaveTest("FancyHelloWorld", "ExtractedFancyHelloWorld", p);	}