diff --git a/abgabeprotokoll.md b/abgabeprotokoll.md new file mode 100644 index 00000000..6ec54961 --- /dev/null +++ b/abgabeprotokoll.md @@ -0,0 +1,15 @@ +# JavaTXCompiler Klasse +* Konstruktor hat einen weiteren Parameter +* contextPath + * Arrays aus URLs (file-urls) +* Parameter ist Optional +* wird er gesetzt, so werden Classfiles aus den übergebenen Pfaden geladen + * die übergebenen Pfade müssen dabei die Source-Roots sein + * Beispiel: + `import de.test.Klasse;` + * `Klasse.class` liegt in `output/de/test/Klasse.class` + * dann muss contextpath auf `output` gesetzt werden +* wird der Parameter nicht übergeben, so wird der Sourceroot auf das Verzeichnis gesetzt, in dem der Compiler ausgeführt wird +* dies ist das Verhalten vom javac Compiler + + diff --git a/src/test/java/packages/ImportTest.java b/src/test/java/packages/ImportTest.java index 6487c9ab..575da032 100644 --- a/src/test/java/packages/ImportTest.java +++ b/src/test/java/packages/ImportTest.java @@ -24,11 +24,6 @@ public class ImportTest extends TestCase { compiler.generateBytecode(rootDirectory + "output/"); File f = new File(rootDirectory + "output/de/test/ToImport.class"); assertTrue(f.exists()); - compiler = new JavaTXCompiler(new File(rootDirectory+"ToImport.jav")); - compiler.typeInference(); - compiler.generateBytecode(null); - f = new File(rootDirectory + "output/de/test/ToImport.class"); - assertTrue(f.exists()); } @Test @@ -45,4 +40,19 @@ public class ImportTest extends TestCase { f = new File(rootDirectory + "output/de/test/ImportTest.class"); assertTrue(f.exists()); } + + @Test + public void testSetPackageNameInBytecodeAndStandardOutputFolder() throws IOException, ClassNotFoundException { + JavaTXCompiler compiler = new JavaTXCompiler( + Lists.newArrayList(new File(rootDirectory+"ImportTest.jav")), + Lists.newArrayList(new URL("file://"+rootDirectory+"output/"))); + compiler.typeInference(); + File f = new File(rootDirectory + "ImportTest.class"); + if(f.exists() && !f.isDirectory()) { + f.delete(); + } + compiler.generateBytecode(null); + f = new File(rootDirectory + "ImportTest.class"); + assertTrue(f.exists()); + } }