aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle4
-rw-r--r--gradle.properties2
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java10
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java3
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java27
5 files changed, 16 insertions, 30 deletions
diff --git a/build.gradle b/build.gradle
index f64913d..3e1ef66 100644
--- a/build.gradle
+++ b/build.gradle
@@ -40,7 +40,9 @@ tasks.register('functionalTest', Test) {
check.dependsOn functionalTest
tasks.withType(Test).configureEach {
- useJUnitPlatform()
+ useJUnitPlatform {
+ includeTags 'debug'
+ }
}
dependencies {
diff --git a/gradle.properties b/gradle.properties
index aa3263c..4e2b9ee 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,2 +1,2 @@
group = ch.fhnw.thga
-version = 1.4.1-alpha \ No newline at end of file
+version = 1.5.0-alpha \ No newline at end of file
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
index 395d26f..ac1a038 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
@@ -34,6 +34,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.IndicativeSentencesGeneration;
import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
@@ -362,16 +363,19 @@ public class FregePluginFunctionalTest {
@TestInstance(Lifecycle.PER_CLASS)
@IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class)
class Repl_frege_task_works {
- @Test
+ @Test
+ @Tag("debug")
void given_minimal_build_file_config() throws Exception {
- Files.createDirectories(testProjectDir.toPath().resolve(Paths.get("src", "main", "frege")));
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
appendToFile(buildFile, minimalBuildFileConfig);
- BuildResult result = runGradleTask(REPL_FREGE_TASK_NAME);
+ BuildResult result = runGradleTask(REPL_FREGE_TASK_NAME, "-q");
assertTrue(project.getTasks().getByName(REPL_FREGE_TASK_NAME) instanceof ReplFregeTask);
assertEquals(SUCCESS, result.task(":" + REPL_FREGE_TASK_NAME).getOutcome());
+ Path expectedFregeJarPath = testProjectDir.toPath()
+ .resolve(Paths.get(DEFAULT_DOWNLOAD_DIRECTORY, "frege3.25.84.jar")).toAbsolutePath();
+ assertTrue(result.getOutput().contains(expectedFregeJarPath.toString()));
}
}
} \ No newline at end of file
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
index 5fc89b2..b4948e6 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
@@ -42,9 +42,8 @@ public class FregePlugin implements Plugin<Project> {
task.getFregeDependencies().set(implementation.getAsPath());
});
project.getTasks().register(REPL_FREGE_TASK_NAME, ReplFregeTask.class, task -> {
- task.dependsOn(compileFregeTask);
+ task.dependsOn(setupFregeCompilerTask);
task.getFregeCompilerJar().set(setupFregeCompilerTask.get().getFregeCompilerOutputPath());
- task.getFregeOutputDir().set(extension.getOutputDir());
task.getFregeDependencies().set(implementation.getAsPath());
});
}
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
index 9541861..5a915c0 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
@@ -1,55 +1,36 @@
package ch.fhnw.thga.gradleplugins;
-import javax.inject.Inject;
-
import org.gradle.api.DefaultTask;
-import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.file.FileCollection;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.logging.Logger;
import org.gradle.api.logging.Logging;
-import org.gradle.api.model.ObjectFactory;
import org.gradle.api.provider.Property;
import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.Input;
-import org.gradle.api.tasks.InputDirectory;
import org.gradle.api.tasks.InputFile;
import org.gradle.api.tasks.Internal;
-import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.TaskAction;
public abstract class ReplFregeTask extends DefaultTask {
public static final Logger LOGGER = Logging.getLogger(SetupFregeTask.class);
- public static final String REPL_MAIN_CLASS = "frege.repl.FregeRepl";
-
- private final JavaExec javaExec;
@InputFile
public abstract RegularFileProperty getFregeCompilerJar();
- @InputDirectory
- public abstract DirectoryProperty getFregeOutputDir();
-
@Input
public abstract Property<String> getFregeDependencies();
@Internal
public final Provider<FileCollection> getClasspath() {
return getFregeDependencies().map(depsClasspath -> {
- return depsClasspath.isEmpty() ? getProject().files(getFregeCompilerJar(), getFregeOutputDir())
- : getProject().files(getFregeCompilerJar(), getFregeOutputDir(), depsClasspath);
+ return depsClasspath.isEmpty() ? getProject().files(getFregeCompilerJar())
+ : getProject().files(getFregeCompilerJar(), depsClasspath);
});
}
- @Inject
- public ReplFregeTask(ObjectFactory objectFactory) {
- javaExec = objectFactory.newInstance(JavaExec.class);
- }
-
@TaskAction
- public void startFregeRepl() {
- javaExec.setStandardInput(System.in);
- javaExec.getMainClass().set(REPL_MAIN_CLASS);
- javaExec.setClasspath(getClasspath().get()).exec();
+ public void fregeReplDependencies() {
+ System.out.println(getClasspath().get().getAsPath());
}
}