diff --git a/src/main/java/spoon/Launcher.java b/src/main/java/spoon/Launcher.java index f35570968b6..11713e42213 100644 --- a/src/main/java/spoon/Launcher.java +++ b/src/main/java/spoon/Launcher.java @@ -710,15 +710,15 @@ public void process() { @Override public void prettyprint() { + OutputType outputType = OutputType.fromString(jsapActualArgs.getString("output-type")); long tstart = System.currentTimeMillis(); try { - OutputType outputType = OutputType.fromString(jsapActualArgs.getString("output-type")); modelBuilder.generateProcessedSourceFiles(outputType, typeFilter); } catch (Exception e) { throw new SpoonException(e); } - if (getEnvironment().isCopyResources()) { + if (!outputType.equals(OutputType.NO_OUTPUT) && getEnvironment().isCopyResources()) { for (File dirInputSource : modelBuilder.getInputSources()) { if (dirInputSource.isDirectory()) { final Collection resources = FileUtils.listFiles(dirInputSource, RESOURCES_FILE_FILTER, ALL_DIR_FILTER); diff --git a/src/main/java/spoon/compiler/SpoonResourceHelper.java b/src/main/java/spoon/compiler/SpoonResourceHelper.java index 4cf90fce10e..f8c6cc3e379 100644 --- a/src/main/java/spoon/compiler/SpoonResourceHelper.java +++ b/src/main/java/spoon/compiler/SpoonResourceHelper.java @@ -95,13 +95,7 @@ public static SpoonFolder createFolder(File f) throws FileNotFoundException { return new FileSystemFolder(f); } if (isArchive(f)) { - ZipFolder zipFolder = new ZipFolder(f); - File tempFile = File.createTempFile("ZIP", "ZIP"); - tempFile.delete(); - tempFile.mkdirs(); - zipFolder.extract(tempFile); - tempFile.deleteOnExit(); - return new FileSystemFolder(tempFile); + return new ZipFolder(f); } } catch (IOException e) { Launcher.LOGGER.error(e.getMessage(), e); diff --git a/src/main/java/spoon/support/compiler/FileSystemFile.java b/src/main/java/spoon/support/compiler/FileSystemFile.java index 493ec3f61e4..76511610486 100644 --- a/src/main/java/spoon/support/compiler/FileSystemFile.java +++ b/src/main/java/spoon/support/compiler/FileSystemFile.java @@ -33,6 +33,10 @@ public class FileSystemFile implements SpoonFile { File file; + public FileSystemFile(String path) { + this(new File(path)); + } + public FileSystemFile(File file) { super(); try { diff --git a/src/main/java/spoon/testing/utils/ModelUtils.java b/src/main/java/spoon/testing/utils/ModelUtils.java index ca268b65743..6d6a0509340 100644 --- a/src/main/java/spoon/testing/utils/ModelUtils.java +++ b/src/main/java/spoon/testing/utils/ModelUtils.java @@ -106,7 +106,7 @@ public static void canBeBuilt(String outputDirectory, int complianceLevel) { public static void canBeBuilt(File outputDirectoryFile, int complianceLevel, boolean noClasspath) { final Launcher launcher = new Launcher(); - final Factory factory = launcher.createFactory(); + final Factory factory = launcher.getFactory(); factory.getEnvironment().setComplianceLevel(complianceLevel); factory.getEnvironment().setNoClasspath(noClasspath); final SpoonCompiler compiler = launcher.createCompiler(factory); @@ -124,13 +124,4 @@ public static void canBeBuilt(String outputDirectory, int complianceLevel, boole canBeBuilt(new File(outputDirectory), complianceLevel, noClasspath); } - public static File getSpoonedDirectory(Class testClass) { - String file = testClass.getName().replaceAll("\\.", "/"); - return new File("./target/spooned/" + file); - } - - public static File getBuildDirectory(Class testClass) { - String file = testClass.getName().replaceAll("\\.", "/"); - return new File("./target/spooned-build/" + file); - } } diff --git a/src/test/java/spoon/processing/ProcessingTest.java b/src/test/java/spoon/processing/ProcessingTest.java index a3cb9cee5c9..5e5e092cc08 100644 --- a/src/test/java/spoon/processing/ProcessingTest.java +++ b/src/test/java/spoon/processing/ProcessingTest.java @@ -32,8 +32,8 @@ public class ProcessingTest { public void testInterruptAProcessor() throws Exception { final Launcher launcher = new Launcher(); launcher.getEnvironment().setNoClasspath(true); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/processing/"); - launcher.setSourceOutputDirectory("./target/trash"); final MyProcessor processor = new MyProcessor(); launcher.addProcessor(processor); try { diff --git a/src/test/java/spoon/reflect/ast/CloneTest.java b/src/test/java/spoon/reflect/ast/CloneTest.java index 460ce244999..6af6c917c2d 100644 --- a/src/test/java/spoon/reflect/ast/CloneTest.java +++ b/src/test/java/spoon/reflect/ast/CloneTest.java @@ -21,8 +21,8 @@ public class CloneTest { @Test public void testCloneMethodsDeclaredInAST() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); - launcher.setSourceOutputDirectory("./target/trash"); // interfaces. launcher.addInputResource("./src/main/java/spoon/reflect/code"); launcher.addInputResource("./src/main/java/spoon/reflect/declaration"); @@ -77,8 +77,8 @@ private boolean isRootDeclaration(CtInterface intrface) { @Test public void testCloneCastConditional() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); - launcher.setSourceOutputDirectory("./target/trash"); launcher.addInputResource("./src/test/resources/spoon/test/visitor/ConditionalRes.java"); diff --git a/src/test/java/spoon/reflect/ast/ParentTest.java b/src/test/java/spoon/reflect/ast/ParentTest.java index e5ea2fd9ced..7925e1570ff 100644 --- a/src/test/java/spoon/reflect/ast/ParentTest.java +++ b/src/test/java/spoon/reflect/ast/ParentTest.java @@ -28,8 +28,8 @@ public void testParentSetInSetter() throws Exception { // contract: Check that all setters protect their parameter. final Launcher launcher = new Launcher(); final Factory factory = launcher.getFactory(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); - launcher.setSourceOutputDirectory("./target/trash"); // interfaces. launcher.addInputResource("./src/main/java/spoon/reflect/code"); launcher.addInputResource("./src/main/java/spoon/reflect/declaration"); diff --git a/src/test/java/spoon/reflect/visitor/CtInheritanceScannerMethodsTest.java b/src/test/java/spoon/reflect/visitor/CtInheritanceScannerMethodsTest.java index 5ac10c3b5a1..795a9f728ed 100644 --- a/src/test/java/spoon/reflect/visitor/CtInheritanceScannerMethodsTest.java +++ b/src/test/java/spoon/reflect/visitor/CtInheritanceScannerMethodsTest.java @@ -26,9 +26,9 @@ public class CtInheritanceScannerMethodsTest { public void testMethodsInInheritanceScanner() throws Exception { // contract: CtInheritanceScanner must declare all scanner and visitor methods. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); launcher.addProcessor(new CheckVisitorProcessor(CtInheritanceScanner.class).withScanners().withVisitors()); - launcher.setSourceOutputDirectory("./target/trash"); // interfaces. launcher.addInputResource("./src/main/java/spoon/reflect/code"); launcher.addInputResource("./src/main/java/spoon/reflect/declaration"); diff --git a/src/test/java/spoon/reflect/visitor/CtScannerTest.java b/src/test/java/spoon/reflect/visitor/CtScannerTest.java index 8ee2434c79a..dffebabea54 100644 --- a/src/test/java/spoon/reflect/visitor/CtScannerTest.java +++ b/src/test/java/spoon/reflect/visitor/CtScannerTest.java @@ -26,9 +26,9 @@ public class CtScannerTest { public void testScannerContract() throws Exception { // contract: CtScanner must call enter and exit methods in each visit methods. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); launcher.addProcessor(new CheckScannerProcessor()); - launcher.setSourceOutputDirectory("./target/trash"); // interfaces. launcher.addInputResource("./src/main/java/spoon/reflect/code"); launcher.addInputResource("./src/main/java/spoon/reflect/declaration"); diff --git a/src/test/java/spoon/reflect/visitor/CtVisitorTest.java b/src/test/java/spoon/reflect/visitor/CtVisitorTest.java index 2c4ddb0af66..fc5ec9906a4 100644 --- a/src/test/java/spoon/reflect/visitor/CtVisitorTest.java +++ b/src/test/java/spoon/reflect/visitor/CtVisitorTest.java @@ -26,9 +26,9 @@ public class CtVisitorTest { public void testMethodsInVisitor() throws Exception { // contract: CtVisitor must declare all visit methods. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); launcher.addProcessor(new CheckVisitorProcessor(CtVisitor.class).withVisitors()); - launcher.setSourceOutputDirectory("./target/trash"); // interfaces. launcher.addInputResource("./src/main/java/spoon/reflect/code"); launcher.addInputResource("./src/main/java/spoon/reflect/declaration"); diff --git a/src/test/java/spoon/support/compiler/jdt/JDTBatchCompilerTest.java b/src/test/java/spoon/support/compiler/jdt/JDTBatchCompilerTest.java index d40b3dc74ac..890b5f1fabe 100644 --- a/src/test/java/spoon/support/compiler/jdt/JDTBatchCompilerTest.java +++ b/src/test/java/spoon/support/compiler/jdt/JDTBatchCompilerTest.java @@ -11,8 +11,8 @@ public class JDTBatchCompilerTest { @Test public void testCompileGeneratedJavaFile() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/support/compiler/jdt/testclasses/Foo.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.setBinaryOutputDirectory("./target/binaries"); launcher.getEnvironment().setShouldCompile(true); launcher.buildModel(); diff --git a/src/test/java/spoon/test/annotation/AnnotationTest.java b/src/test/java/spoon/test/annotation/AnnotationTest.java index 64c55d8c20b..cabb3242033 100644 --- a/src/test/java/spoon/test/annotation/AnnotationTest.java +++ b/src/test/java/spoon/test/annotation/AnnotationTest.java @@ -3,6 +3,7 @@ import org.junit.Before; import org.junit.Test; import spoon.Launcher; +import spoon.OutputType; import spoon.processing.AbstractAnnotationProcessor; import spoon.processing.ProcessingManager; import spoon.reflect.code.CtBlock; @@ -73,14 +74,14 @@ import static spoon.testing.utils.ModelUtils.canBeBuilt; public class AnnotationTest { + private Launcher launcher; private Factory factory; - @Before public void setUp() throws Exception { - final Launcher launcher = new Launcher(); + launcher = new Launcher(); launcher.run(new String[] { "-i", "./src/test/java/spoon/test/annotation/testclasses/", - "-o", "./target/spooned/" + "--output-type", "nooutput" }); factory = launcher.getFactory(); } @@ -633,6 +634,9 @@ public void testUsageOfParametersInTypeAnnotation() throws Exception { @Test public void testOutputGeneratedByTypeAnnotation() throws Exception { + // we only write to disk here + launcher.setSourceOutputDirectory(new File("./target/spooned/")); + launcher.getModelBuilder().generateProcessedSourceFiles(OutputType.CLASSES); canBeBuilt(new File("./target/spooned/spoon/test/annotation/testclasses/"), 8); } diff --git a/src/test/java/spoon/test/api/APITest.java b/src/test/java/spoon/test/api/APITest.java index d658b9f2ed6..43a67fd8192 100644 --- a/src/test/java/spoon/test/api/APITest.java +++ b/src/test/java/spoon/test/api/APITest.java @@ -51,9 +51,9 @@ public class APITest { public void testBasicAPIUsage() throws Exception { // this test shows a basic usage of the Launcher API without command line // and asserts there is no exception - SpoonAPI spoon = new Launcher(); + Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); spoon.addInputResource("src/test/resources/spoon/test/api"); - spoon.setSourceOutputDirectory("target/spooned"); spoon.run(); Factory factory = spoon.getFactory(); for (CtPackage p : factory.Package().getAll()) { @@ -87,7 +87,7 @@ public void init() { }; spoon.run(new String[] { "-i", "src/test/resources/spoon/test/api/", - "-o", "target/spooned/apitest" + "-o", "fancy/fake/apitest" // we shouldn't write anything anyway }); Assert.assertEquals(2, l.size()); } @@ -338,8 +338,8 @@ public void accept(CtVisitor visitor) { } final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); - launcher.setSourceOutputDirectory("./target/trash/"); // Implementations launcher.addInputResource("./src/main/java/spoon/support/reflect/code"); launcher.addInputResource("./src/main/java/spoon/support/reflect/declaration"); diff --git a/src/test/java/spoon/test/arrays/ArraysTest.java b/src/test/java/spoon/test/arrays/ArraysTest.java index 1a8cf2512b4..850c053645d 100644 --- a/src/test/java/spoon/test/arrays/ArraysTest.java +++ b/src/test/java/spoon/test/arrays/ArraysTest.java @@ -40,8 +40,8 @@ public void testArrayReferences() throws Exception { @Test public void testInitializeWithNewArray() throws Exception { Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/resources/noclasspath/Foo.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.getEnvironment().setNoClasspath(true); launcher.run(); diff --git a/src/test/java/spoon/test/executable/ExecutableTest.java b/src/test/java/spoon/test/executable/ExecutableTest.java index 672ee1cbc30..e5767fb3790 100644 --- a/src/test/java/spoon/test/executable/ExecutableTest.java +++ b/src/test/java/spoon/test/executable/ExecutableTest.java @@ -21,8 +21,8 @@ public class ExecutableTest { @Test public void testInfoInsideAnonymousExecutable() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/executable/testclasses/AnonymousExecutableSample.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final List anonymousExecutables = Query.getElements(launcher.getFactory(), new TypeFilter(CtAnonymousExecutable.class)); diff --git a/src/test/java/spoon/test/fieldaccesses/FieldAccessTest.java b/src/test/java/spoon/test/fieldaccesses/FieldAccessTest.java index b2ec853e9fb..03f23c329f7 100644 --- a/src/test/java/spoon/test/fieldaccesses/FieldAccessTest.java +++ b/src/test/java/spoon/test/fieldaccesses/FieldAccessTest.java @@ -292,10 +292,10 @@ public void testTypeDeclaredInAnonymousClass() throws Exception { @Test public void testFieldAccessDeclaredInADefaultClass() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/Tacos.java"); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/internal/Foo.java"); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/internal/Bar.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtType aTacos = launcher.getFactory().Type().get(Tacos.class); @@ -344,9 +344,9 @@ public void testTypeOfFieldAccess() throws Exception { @Test public void testFieldAccessWithoutAnyImport() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/Kuu.java"); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/Mole.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtType aType = launcher.getFactory().Type().get(Kuu.class); @@ -385,8 +385,8 @@ public void visitCtFieldWrite(CtFieldWrite fieldWrite) { public void testGetReference() throws Exception { final Launcher launcher = new Launcher(); launcher.getEnvironment().setShouldCompile(true); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/fieldaccesses/testclasses/"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aClass = launcher.getFactory().Class().get(B.class); diff --git a/src/test/java/spoon/test/filters/FilterTest.java b/src/test/java/spoon/test/filters/FilterTest.java index 03656504616..0eaaf89abb4 100644 --- a/src/test/java/spoon/test/filters/FilterTest.java +++ b/src/test/java/spoon/test/filters/FilterTest.java @@ -233,8 +233,8 @@ public void testOverridingMethodFromAbstractClass() throws Exception { // contract: When we declare an abstract method on an abstract class, we must return all overriding // methods in sub classes and anonymous classes. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aClass = launcher.getFactory().Class().get(AbstractTostada.class); @@ -255,8 +255,8 @@ public void testOverridingMethodFromSubClassOfAbstractClass() throws Exception { // contract: When we ask all overriding methods from an overriding method, we must returns all methods // below and not above (including the declaration). final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aTostada = launcher.getFactory().Class().get(Tostada.class); @@ -280,8 +280,8 @@ public void testOverridingMethodFromInterface() throws Exception { // contract: When we declare a method in an interface, we must return all overriding // methods in sub classes and anonymous classes. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtInterface aITostada = launcher.getFactory().Interface().get(ITostada.class); @@ -302,8 +302,8 @@ public void testOverridingMethodFromSubClassOfInterface() throws Exception { // contract: When we ask all overriding methods from an overriding method, we must returns all methods // below and not above (including the declaration). final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass anAbstractTostada = launcher.getFactory().Class().get(AbstractTostada.class); @@ -322,8 +322,8 @@ public void testOverriddenMethodFromAbstractClass() throws Exception { // contract: When we declare an abstract method on an abstract class, we must return an empty list // when we ask all overriden methods from this declaration. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aClass = launcher.getFactory().Class().get(AbstractTostada.class); @@ -336,8 +336,8 @@ public void testOverriddenMethodsFromSubClassOfAbstractClass() throws Exception // contract: When we ask all overridden methods from an overriding method, we must returns all methods // above and not below. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aTostada = launcher.getFactory().Class().get(Tostada.class); @@ -358,8 +358,8 @@ public void testOverriddenMethodFromInterface() throws Exception { // contract: When we declare a method in an interface, we must return an empty list // when we ask all overridden methods from this declaration. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtInterface aITostada = launcher.getFactory().Interface().get(ITostada.class); @@ -373,8 +373,8 @@ public void testOverriddenMethodFromSubClassOfInterface() throws Exception { // contract: When we ask all overridden methods from an overriding method, we must returns all methods // above and not below. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass anAbstractTostada = launcher.getFactory().Class().get(AbstractTostada.class); @@ -395,8 +395,8 @@ public void testInvocationFilterWithExecutableInLibrary() throws Exception { // contract: When we have an invocation of an executable declared in a library, // we can filter it and get the executable of the invocation. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/filters/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtClass aTacos = launcher.getFactory().Class().get(Tacos.class); diff --git a/src/test/java/spoon/test/imports/ImportTest.java b/src/test/java/spoon/test/imports/ImportTest.java index c599ba64e09..ab2a4472a14 100644 --- a/src/test/java/spoon/test/imports/ImportTest.java +++ b/src/test/java/spoon/test/imports/ImportTest.java @@ -51,6 +51,7 @@ public class ImportTest { @Test public void testImportOfAnInnerClassInASuperClassPackage() throws Exception { Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); Factory factory = spoon.createFactory(); SpoonCompiler compiler = spoon.createCompiler(factory, SpoonResourceHelper @@ -93,6 +94,7 @@ public void testImportOfAnInnerClassInASuperClassAvailableInLibrary() throws Exc @Test public void testImportOfAnInnerClassInAClassPackage() throws Exception { Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); Factory factory = spoon.createFactory(); SpoonCompiler compiler = spoon.createCompiler(factory, SpoonResourceHelper @@ -110,6 +112,7 @@ public void testImportOfAnInnerClassInAClassPackage() throws Exception { @Test public void testNewInnerClassDefinesInItsClassAndSuperClass() throws Exception { Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); Factory factory = spoon.createFactory(); SpoonCompiler compiler = spoon.createCompiler(factory, @@ -130,6 +133,7 @@ public void testNewInnerClassDefinesInItsClassAndSuperClass() throws Exception { @Test public void testMissingImport() throws Exception { Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); Factory factory = spoon.createFactory(); factory.getEnvironment().setNoClasspath(true); factory.getEnvironment().setLevel("OFF"); @@ -146,7 +150,7 @@ public void testMissingImport() throws Exception { public void testSpoonWithImports() throws Exception { final Launcher launcher = new Launcher(); launcher.run(new String[] { - "-i", "./src/test/java/spoon/test/imports/testclasses", "-o", "./target/spooned", "--with-imports" + "-i", "./src/test/java/spoon/test/imports/testclasses", "--output-type", "nooutput", "--with-imports" }); final CtClass aClass = launcher.getFactory().Class().get(ChildClass.class); final CtClass anotherClass = launcher.getFactory().Class().get(ClientClass.class); @@ -165,7 +169,7 @@ public void testSpoonWithImports() throws Exception { public void testStaticImportForInvocationInNoClasspath() throws Exception { final Launcher launcher = new Launcher(); launcher.run(new String[] { - "-i", "./src/test/resources/import-static", "-o", "./target/spoon", "--noclasspath" + "-i", "./src/test/resources/import-static", "--output-type", "nooutput", "--noclasspath" }); final List> elements = new SortedList(new CtLineElementComparator()); @@ -273,6 +277,7 @@ public void testImportOfInvocationOfStaticMethod() throws Exception { public void testImportStaticAndFieldAccess() throws Exception { // contract: Qualified field access and an import static should rewrite in fully qualified mode. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/imports/testclasses/internal4/"); launcher.addInputResource("./src/test/java/spoon/test/imports/testclasses/Tacos.java"); launcher.buildModel(); @@ -298,10 +303,10 @@ public void testFullQualifiedNameImport() throws Exception { private Factory getFactory(String...inputs) { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); for (String input : inputs) { launcher.addInputResource(input); } - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); return launcher.getFactory(); } diff --git a/src/test/java/spoon/test/intercession/IntercessionTest.java b/src/test/java/spoon/test/intercession/IntercessionTest.java index 95907d7b70d..db5f673caec 100644 --- a/src/test/java/spoon/test/intercession/IntercessionTest.java +++ b/src/test/java/spoon/test/intercession/IntercessionTest.java @@ -191,7 +191,7 @@ public void testSettersAreAllGood() throws Exception { final Launcher launcher = new Launcher(); launcher.run(new String[] { "-i", "./src/main/java", - "-o", "./target/spooned", + "--output-type", "nooutput", "--source-classpath", systemClassPath }); final Factory factory = launcher.getFactory(); @@ -236,6 +236,7 @@ public boolean matches(CtMethod element) { @Test public void testResetCollectionInSetters() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); final Factory factory = launcher.getFactory(); launcher.getEnvironment().setNoClasspath(true); // interfaces. diff --git a/src/test/java/spoon/test/javadoc/JavaDocTest.java b/src/test/java/spoon/test/javadoc/JavaDocTest.java index 8eb8541a34d..8bdd8543d3e 100644 --- a/src/test/java/spoon/test/javadoc/JavaDocTest.java +++ b/src/test/java/spoon/test/javadoc/JavaDocTest.java @@ -44,11 +44,11 @@ public void testJavaDocReprint() throws Exception { @Test public void testJavadocNotPresentInAST() throws Exception { - SpoonAPI launcher = new Launcher(); + Launcher launcher = new Launcher(); launcher.getEnvironment().setCommentEnabled(false); launcher.getEnvironment().setNoClasspath(true); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/javadoc/testclasses/"); - launcher.setSourceOutputDirectory("./target/trash/"); launcher.run(); new CtScanner() { diff --git a/src/test/java/spoon/test/lambda/LambdaTest.java b/src/test/java/spoon/test/lambda/LambdaTest.java index ca176188da8..6165599fdc6 100644 --- a/src/test/java/spoon/test/lambda/LambdaTest.java +++ b/src/test/java/spoon/test/lambda/LambdaTest.java @@ -1,22 +1,7 @@ package spoon.test.lambda; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static spoon.testing.utils.ModelUtils.canBeBuilt; -import static spoon.testing.utils.ModelUtils.getBuildDirectory; -import static spoon.testing.utils.ModelUtils.getSpoonedDirectory; - -import java.io.File; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Collectors; - import org.junit.Before; import org.junit.Test; - import spoon.Launcher; import spoon.OutputType; import spoon.compiler.SpoonCompiler; @@ -42,7 +27,20 @@ import spoon.test.lambda.testclasses.Tacos; import spoon.testing.utils.ModelUtils; +import java.io.File; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static spoon.testing.utils.ModelUtils.canBeBuilt; + public class LambdaTest { + private Launcher launcher; private Factory factory; private CtType foo; private CtType bar; @@ -52,16 +50,14 @@ public class LambdaTest { @Before public void setUp() throws Exception { - final Launcher launcher = new Launcher(); - this.factory = launcher.createFactory(); + launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); + this.factory = launcher.getFactory(); factory.getEnvironment().setComplianceLevel(8); compiler = launcher.createCompiler(this.factory); - compiler.setSourceOutputDirectory(getSpoonedDirectory(getClass())); - compiler.setBinaryOutputDirectory(getBuildDirectory(getClass())); compiler.addInputSource(new File("./src/test/java/spoon/test/lambda/testclasses/")); compiler.build(); - compiler.generateProcessedSourceFiles(OutputType.COMPILATION_UNITS); foo = factory.Type().get(Foo.class); bar = factory.Type().get(Bar.class); @@ -269,7 +265,9 @@ public boolean matches(CtIf element) { @Test public void testCompileLambdaGeneratedBySpoon() throws Exception { - canBeBuilt(getSpoonedDirectory(getClass()), 8); + launcher.setSourceOutputDirectory(new File("./target/spooned/")); + launcher.getModelBuilder().generateProcessedSourceFiles(OutputType.CLASSES); + canBeBuilt(new File("./target/spooned/spoon/test/lambda/testclasses/"), 8); } @Test diff --git a/src/test/java/spoon/test/main/MainTest.java b/src/test/java/spoon/test/main/MainTest.java index 5db8ab220b9..78700154ff9 100644 --- a/src/test/java/spoon/test/main/MainTest.java +++ b/src/test/java/spoon/test/main/MainTest.java @@ -246,9 +246,9 @@ private boolean isDeclaredInSuperClass(CtFieldReference reference) { @Test public void test() throws Exception { final Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); spoon.addInputResource("./src/test/java/spoon/test/main/testclasses"); spoon.addInputResource("./src/main/java/spoon/template/Parameter.java"); - spoon.setSourceOutputDirectory("./target/trash"); spoon.getEnvironment().setNoClasspath(true); spoon.run(); diff --git a/src/test/java/spoon/test/parent/ParentTest.java b/src/test/java/spoon/test/parent/ParentTest.java index b8ab2a7ee10..a78264d1e77 100644 --- a/src/test/java/spoon/test/parent/ParentTest.java +++ b/src/test/java/spoon/test/parent/ParentTest.java @@ -51,6 +51,7 @@ public class ParentTest { @Before public void setup() throws Exception { Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); factory = spoon.createFactory(); spoon.createCompiler( factory, @@ -116,9 +117,9 @@ public void testParentPackage() throws Exception { public void testParentOfCtPackageReference() throws Exception { // contract: a parent at a top level must be the root package and in the code, the element which call getParent(). final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); launcher.addInputResource("./src/test/resources/reference-package"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtType panini = launcher.getFactory().Type().get("Panini"); @@ -284,8 +285,8 @@ public boolean matches(CtStatement element) { @Test public void testHasParent() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/resources/reference-package/Panini.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.getEnvironment().setNoClasspath(true); launcher.run(); diff --git a/src/test/java/spoon/test/reference/ExecutableReferenceTest.java b/src/test/java/spoon/test/reference/ExecutableReferenceTest.java index 0f3146e65b6..a97c529da26 100644 --- a/src/test/java/spoon/test/reference/ExecutableReferenceTest.java +++ b/src/test/java/spoon/test/reference/ExecutableReferenceTest.java @@ -30,7 +30,7 @@ public class ExecutableReferenceTest { public void testCallMethodOfClassNotPresent() throws Exception { final Launcher launcher = new Launcher(); launcher.run(new String[] { - "-i", "./src/test/resources/executable-reference", "-o", "./target/spooned/test/resources", "--noclasspath" + "-i", "./src/test/resources/executable-reference", "--output-type", "nooutput", "--noclasspath" }); final List> references = Query.getReferences(launcher.getFactory(), new ReferenceTypeFilter>(CtExecutableReference.class) { @Override @@ -106,8 +106,8 @@ public void testSuperClassInGetAllExecutables() throws Exception { @Test public void testSpecifyGetAllExecutablesMethod() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/reference/testclasses"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtInterface foo = launcher.getFactory().Interface().get(spoon.test.reference.testclasses.Foo.class); diff --git a/src/test/java/spoon/test/reference/TypeReferenceTest.java b/src/test/java/spoon/test/reference/TypeReferenceTest.java index 9a20aa2fd97..c49c722e0c2 100644 --- a/src/test/java/spoon/test/reference/TypeReferenceTest.java +++ b/src/test/java/spoon/test/reference/TypeReferenceTest.java @@ -63,6 +63,7 @@ public void testGetAllExecutablesForInterfaces() throws Exception { */ Launcher spoon = new Launcher(); + spoon.setArgs(new String[] {"--output-type", "nooutput" }); Factory factory = spoon.createFactory(); spoon.createCompiler(factory, SpoonResourceHelper.resources("./src/test/java/spoon/test/reference/Foo.java")).build(); @@ -454,8 +455,8 @@ public void testAnonymousClassesHaveAnEmptyStringForItsNameInNoClasspath() throw @Test public void testConstructorCallInNoClasspath() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/resources/noclasspath/Demo5.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.getEnvironment().setNoClasspath(true); launcher.run(); diff --git a/src/test/java/spoon/test/replace/ReplaceTest.java b/src/test/java/spoon/test/replace/ReplaceTest.java index c2e640fbae8..cd22f96b96b 100644 --- a/src/test/java/spoon/test/replace/ReplaceTest.java +++ b/src/test/java/spoon/test/replace/ReplaceTest.java @@ -273,9 +273,9 @@ public boolean matches(CtTypeReference reference) { public void testReplaceAPackageReferenceByAnotherOne() throws Exception { // contract: replace a package reference of a reference to another package. final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.getEnvironment().setNoClasspath(true); launcher.addInputResource("./src/test/resources/reference-package"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.run(); final CtType panini = launcher.getFactory().Type().get("Panini"); diff --git a/src/test/java/spoon/test/signature/SignatureTest.java b/src/test/java/spoon/test/signature/SignatureTest.java index 6c1b897ac5f..76bac0a70ab 100644 --- a/src/test/java/spoon/test/signature/SignatureTest.java +++ b/src/test/java/spoon/test/signature/SignatureTest.java @@ -292,8 +292,8 @@ public void testUnboundFieldSignature(){ @Test public void testArgumentNotNullForExecutableReference() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/resources/variable/PropPanelUseCase_1.40.java"); - launcher.setSourceOutputDirectory("./target/trash"); launcher.getEnvironment().setNoClasspath(true); launcher.run(); diff --git a/src/test/java/spoon/test/template/TemplateTest.java b/src/test/java/spoon/test/template/TemplateTest.java index e60d7435706..6c488194058 100644 --- a/src/test/java/spoon/test/template/TemplateTest.java +++ b/src/test/java/spoon/test/template/TemplateTest.java @@ -14,6 +14,7 @@ import spoon.reflect.factory.Factory; import spoon.reflect.visitor.ModelConsistencyChecker; import spoon.reflect.visitor.filter.NameFilter; +import spoon.support.compiler.FileSystemFile; import spoon.support.template.Parameters; import spoon.template.Substitution; import spoon.template.TemplateMatcher; @@ -227,9 +228,9 @@ public void testTemplateMatcher() throws Exception { @Test public void testExtensionBlock() throws Exception { final Launcher launcher = new Launcher(); + launcher.setArgs(new String[] {"--output-type", "nooutput" }); launcher.addInputResource("./src/test/java/spoon/test/template/Logger.java"); - launcher.addInputResource("./src/test/java/spoon/test/template/LoggerTemplate.java"); - launcher.setSourceOutputDirectory("./target/trash"); + launcher.addTemplateResource(new FileSystemFile("./src/test/java/spoon/test/template/LoggerTemplate.java")); launcher.addProcessor(new LoggerTemplateProcessor()); launcher.getEnvironment().setSourceClasspath(System.getProperty("java.class.path").split(File.pathSeparator)); try {