// Path: src/main/java/fr/inria/gforge/spoon/transformation/retry/template/RetryTemplate.java
// public class RetryTemplate extends BlockTemplate {
// 	public RetryTemplate(CtBlock _original_, int _attempts_, long _delay_, boolean _verbose_) {
// 		this._original_ = _original_;
// 		this._attempts_ = _attempts_;
// 		this._delay_ = _delay_;
// 		this._verbose_ = _verbose_;
// 	}
// 
// 	@Parameter
// 	CtBlock _original_;
// 
// 	@Parameter
// 	int _attempts_;
// 
// 	@Parameter
// 	long _delay_;
// 
// 	@Parameter
// 	boolean _verbose_;
// 
// 	@Override
// 	public void block() {
// 		int attempt = 0;
// 		Throwable lastTh = null;
// 		while (attempt++ < _attempts_) {
// 			try {
// 				_original_.S();
// 			} catch (Throwable ex) {
// 				lastTh = ex;
// 				if (_verbose_) {
// 					ex.printStackTrace();
// 				}
// 				try {
// 					Thread.sleep(_delay_);
// 				} catch (InterruptedException ex2) {
// 				}
// 			}
// 		}
// 		if (lastTh != null) {
// 			throw new RuntimeException(lastTh);
// 		}
// 	}
// }
// 
// Path: src/main/java/fr/inria/gforge/spoon/utils/TestSpooner.java
// public class TestSpooner {
// 	final SpoonModelBuilder compiler;
// 
// 	public TestSpooner() throws Exception {
// 		compiler = new TestSpoonCompiler(
// 				new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment()));
// 	}
// 
// 	public TestSpooner addSource(File... files) throws Exception {
// 		for (File file : files) {
// 			compiler.addInputSource(file);
// 		}
// 		return this;
// 	}
// 
// 	public TestSpooner addTemplate(File... files) throws Exception {
// 		for (File file : files) {
// 			compiler.addTemplateSource(file);
// 		}
// 		return this;
// 	}
// 
// 	spoon.reflect.factory.Factory getFactory() {
// 		return compiler.getFactory();
// 	}
// 
// 	public TestSpooner process(CtElement element, Class<? extends Processor>... processors) throws Exception {
// 		// Build spoon model
// 		compiler.build();
// 
// 		ProcessingManager processing = new QueueProcessingManager(compiler.getFactory());
// 
// 		for (Class<? extends Processor> processorClz : processors) {
// 			processing.addProcessor(processorClz.getName());
// 		}
// 		processing.process(element);
// 
// 		return this;
// 	}
// 
// 	public TestSpooner process(Class<? extends Processor>... processors) throws Exception {
// 		// Build spoon model
// 		compiler.build();
// 		
// 		List<Processor<?>> processorsNames = new ArrayList<>();
// 		for (Class<? extends Processor> processor : processors) {
// 			processorsNames.add(processor.newInstance());
// 		}
// 		compiler.process(processorsNames);
// 
// 		return this;
// 	}
// 
// 	public TestSpooner print(File dest) throws Exception {
// 		dest.mkdirs();
// 		for (File file : dest.listFiles()) {
// 			file.delete();
// 		}
// 
// 		//   compiler.getFactory().getEnvironment().setPreserveLineNumbers(true);
// 		compiler.getFactory().getEnvironment().setSourceOutputDirectory(dest);
// 
// 		compiler.generateProcessedSourceFiles(OutputType.COMPILATION_UNITS);
// 		return this;
// 	}
// 
// 	public boolean compile() {
// 		File target = compiler.getSourceOutputDirectory();
// 		final boolean compile = Main.compile(new String[]{"-1.7 " , "-proc:none", target.toString()}, new PrintWriter(System.out), new PrintWriter(System.out),null);
// 		return compile;
// 	}
// 
// 	public Class getSpoonedClass(String classname) throws ClassNotFoundException {
// 		File target = compiler.getSourceOutputDirectory();
// 
// 		ClassLoader classLoader = new SpoonClassLoader(getClass().getClassLoader(), target);
// 		return classLoader.loadClass(classname);
// 	}
// 
// }


import fr.inria.gforge.spoon.transformation.retry.template.RetryTemplate;
import fr.inria.gforge.spoon.utils.TestSpooner;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Collection;
package fr.inria.gforge.spoon.transformation.retry;



/**
 * Created by nicolas on 22/01/2015.
 */
public class RetryTest {
	TestSpooner spooner;

	private static final String TEST_CLASS = TestClass.class.getName();

	@Before
	public void setUp() throws Exception {
		spooner = new TestSpooner()
				.addSource(new File("src/main/java/" + TEST_CLASS.replaceAll("\\.", "/") + ".java"))
				.addTemplate(
// Path: src/main/java/fr/inria/gforge/spoon/transformation/retry/template/RetryTemplate.java
// public class RetryTemplate extends BlockTemplate {
// 	public RetryTemplate(CtBlock _original_, int _attempts_, long _delay_, boolean _verbose_) {
// 		this._original_ = _original_;
// 		this._attempts_ = _attempts_;
// 		this._delay_ = _delay_;
// 		this._verbose_ = _verbose_;
// 	}
// 
// 	@Parameter
// 	CtBlock _original_;
// 
// 	@Parameter
// 	int _attempts_;
// 
// 	@Parameter
// 	long _delay_;
// 
// 	@Parameter
// 	boolean _verbose_;
// 
// 	@Override
// 	public void block() {
// 		int attempt = 0;
// 		Throwable lastTh = null;
// 		while (attempt++ < _attempts_) {
// 			try {
// 				_original_.S();
// 			} catch (Throwable ex) {
// 				lastTh = ex;
// 				if (_verbose_) {
// 					ex.printStackTrace();
// 				}
// 				try {
// 					Thread.sleep(_delay_);
// 				} catch (InterruptedException ex2) {
// 				}
// 			}
// 		}
// 		if (lastTh != null) {
// 			throw new RuntimeException(lastTh);
// 		}
// 	}
// }
// 
// Path: src/main/java/fr/inria/gforge/spoon/utils/TestSpooner.java
// public class TestSpooner {
// 	final SpoonModelBuilder compiler;
// 
// 	public TestSpooner() throws Exception {
// 		compiler = new TestSpoonCompiler(
// 				new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment()));
// 	}
// 
// 	public TestSpooner addSource(File... files) throws Exception {
// 		for (File file : files) {
// 			compiler.addInputSource(file);
// 		}
// 		return this;
// 	}
// 
// 	public TestSpooner addTemplate(File... files) throws Exception {
// 		for (File file : files) {
// 			compiler.addTemplateSource(file);
// 		}
// 		return this;
// 	}
// 
// 	spoon.reflect.factory.Factory getFactory() {
// 		return compiler.getFactory();
// 	}
// 
// 	public TestSpooner process(CtElement element, Class<? extends Processor>... processors) throws Exception {
// 		// Build spoon model
// 		compiler.build();
// 
// 		ProcessingManager processing = new QueueProcessingManager(compiler.getFactory());
// 
// 		for (Class<? extends Processor> processorClz : processors) {
// 			processing.addProcessor(processorClz.getName());
// 		}
// 		processing.process(element);
// 
// 		return this;
// 	}
// 
// 	public TestSpooner process(Class<? extends Processor>... processors) throws Exception {
// 		// Build spoon model
// 		compiler.build();
// 		
// 		List<Processor<?>> processorsNames = new ArrayList<>();
// 		for (Class<? extends Processor> processor : processors) {
// 			processorsNames.add(processor.newInstance());
// 		}
// 		compiler.process(processorsNames);
// 
// 		return this;
// 	}
// 
// 	public TestSpooner print(File dest) throws Exception {
// 		dest.mkdirs();
// 		for (File file : dest.listFiles()) {
// 			file.delete();
// 		}
// 
// 		//   compiler.getFactory().getEnvironment().setPreserveLineNumbers(true);
// 		compiler.getFactory().getEnvironment().setSourceOutputDirectory(dest);
// 
// 		compiler.generateProcessedSourceFiles(OutputType.COMPILATION_UNITS);
// 		return this;
// 	}
// 
// 	public boolean compile() {
// 		File target = compiler.getSourceOutputDirectory();
// 		final boolean compile = Main.compile(new String[]{"-1.7 " , "-proc:none", target.toString()}, new PrintWriter(System.out), new PrintWriter(System.out),null);
// 		return compile;
// 	}
// 
// 	public Class getSpoonedClass(String classname) throws ClassNotFoundException {
// 		File target = compiler.getSourceOutputDirectory();
// 
// 		ClassLoader classLoader = new SpoonClassLoader(getClass().getClassLoader(), target);
// 		return classLoader.loadClass(classname);
// 	}
// 
// }


// Path: src/main/java/fr/inria/gforge/spoon/transformation/retry/RetryTest.java
import fr.inria.gforge.spoon.transformation.retry.template.RetryTemplate;
import fr.inria.gforge.spoon.utils.TestSpooner;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Collection;

package fr.inria.gforge.spoon.transformation.retry;



/**
 * Created by nicolas on 22/01/2015.
 */
public class RetryTest {
	TestSpooner spooner;

	private static final String TEST_CLASS = TestClass.class.getName();

	@Before
	public void setUp() throws Exception {
		spooner = new TestSpooner()
				.addSource(new File("src/main/java/" + TEST_CLASS.replaceAll("\\.", "/") + ".java"))
				.addTemplate(
						new File("src/main/java/" + RetryTemplate.class.getName().replaceAll("\\.", "/") + ".java"));