aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java151
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java50
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java23
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java9
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/internal/DependencyFregeTask.java41
-rw-r--r--src/test/java/ch/fhnw/thga/gradleplugins/SharedTaskLogicTest.java14
6 files changed, 79 insertions, 209 deletions
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
index a7c2b35..ce384cb 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
@@ -2,7 +2,6 @@ package ch.fhnw.thga.gradleplugins;
import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_DOWNLOAD_DIRECTORY;
import static ch.fhnw.thga.gradleplugins.FregePlugin.COMPILE_FREGE_TASK_NAME;
-import static ch.fhnw.thga.gradleplugins.FregePlugin.DEPS_FREGE_TASK_NAME;
import static ch.fhnw.thga.gradleplugins.FregePlugin.FREGE_EXTENSION_NAME;
import static ch.fhnw.thga.gradleplugins.FregePlugin.FREGE_PLUGIN_ID;
import static ch.fhnw.thga.gradleplugins.FregePlugin.REPL_FREGE_TASK_NAME;
@@ -14,7 +13,6 @@ import static org.gradle.testkit.runner.TaskOutcome.FROM_CACHE;
import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
import static org.gradle.testkit.runner.TaskOutcome.UP_TO_DATE;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.BufferedWriter;
@@ -41,15 +39,22 @@ import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.api.io.TempDir;
-import ch.fhnw.thga.gradleplugins.internal.DependencyFregeTask;
-
@TestInstance(Lifecycle.PER_CLASS)
-public class FregePluginFunctionalTest {
- private static final String NEW_LINE = System.lineSeparator();
- private static final String SIMPLE_FREGE_CODE = String.join(NEW_LINE, "module ch.fhnw.thga.Completion where",
- NEW_LINE, NEW_LINE, " complete :: Int -> (Int, String)", NEW_LINE,
- " complete i = (i, \"Frege rocks\")",
- NEW_LINE);
+public class FregePluginFunctionalTest
+{
+ private static final String NEW_LINE = System.lineSeparator();
+ private static final String FREGE_COMPLETION_MODULE_CODE =
+ String.join
+ (
+ NEW_LINE,
+ "module ch.fhnw.thga.Completion where",
+ NEW_LINE,
+ NEW_LINE,
+ " complete :: Int -> (Int, String)",
+ NEW_LINE,
+ " complete i = (i, \"Frege rocks\")",
+ NEW_LINE
+ );
private static FregeDTOBuilder fregeBuilder;
@@ -96,9 +101,12 @@ public class FregePluginFunctionalTest {
private void setupDefaultFregeProjectStructure(String fregeCode, String fregeFileName, String buildFileConfig)
throws Exception {
- Files.createDirectories(testProjectDir.toPath().resolve(Paths.get("src", "main", "frege")));
- File fregeFile = testProjectDir.toPath().resolve(Paths.get("src", "main", "frege", fregeFileName))
- .toFile();
+ Files.createDirectories(testProjectDir.toPath().resolve(Paths.get(
+ "src", "main", "frege", "ch", "fhnw", "thga"
+ )));
+ File fregeFile = testProjectDir.toPath().resolve(Paths.get(
+ "src", "main", "frege", "ch", "fhnw", "thga", fregeFileName
+ )).toFile();
writeToFile(fregeFile, fregeCode);
appendToFile(buildFile, buildFileConfig);
}
@@ -171,7 +179,7 @@ public class FregePluginFunctionalTest {
String completionFr = "Completion.fr";
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, minimalBuildFileConfig);
BuildResult result = runGradleTask(COMPILE_FREGE_TASK_NAME);
@@ -193,7 +201,7 @@ public class FregePluginFunctionalTest {
String buildConfigWithCompilerFlags = createFregeSection(fregeBuilder.version("'3.25.84'")
.release("'3.25alpha'").compilerFlags("['-v', '-make', '-O', '-hints']")
.build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr,
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr,
buildConfigWithCompilerFlags);
BuildResult result = runGradleTask(COMPILE_FREGE_TASK_NAME);
@@ -216,7 +224,7 @@ public class FregePluginFunctionalTest {
Path customMainSourceDir = testProjectDir.toPath().resolve(Paths.get("src", "frege"));
Files.createDirectories(customMainSourceDir);
File completionFr = customMainSourceDir.resolve("Completion.fr").toFile();
- writeToFile(completionFr, SIMPLE_FREGE_CODE);
+ writeToFile(completionFr, FREGE_COMPLETION_MODULE_CODE);
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'")
.mainSourceDir("layout.projectDirectory.dir('src/frege')")
@@ -240,7 +248,7 @@ public class FregePluginFunctionalTest {
String completionFr = "Completion.fr";
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, minimalBuildFileConfig);
BuildResult first = runGradleTask(COMPILE_FREGE_TASK_NAME);
assertEquals(SUCCESS, first.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome());
@@ -254,7 +262,7 @@ public class FregePluginFunctionalTest {
String completionFr = "Completion.fr";
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, minimalBuildFileConfig);
BuildResult first = runGradleTask(COMPILE_FREGE_TASK_NAME, "--build-cache");
assertEquals(SUCCESS, first.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome());
@@ -268,7 +276,7 @@ public class FregePluginFunctionalTest {
BuildResult second = runGradleTask(COMPILE_FREGE_TASK_NAME, "--build-cache");
assertEquals(SUCCESS, second.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, "");
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, "");
BuildResult third = runGradleTask(COMPILE_FREGE_TASK_NAME, "--build-cache");
assertEquals(FROM_CACHE, third.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome());
}
@@ -284,7 +292,7 @@ public class FregePluginFunctionalTest {
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, minimalBuildFileConfig);
setupDefaultFregeProjectStructure(frobCode, frobFr, "");
BuildResult result = runGradleTask(COMPILE_FREGE_TASK_NAME);
@@ -318,7 +326,7 @@ public class FregePluginFunctionalTest {
String buildConfigWithIllegalCompilerFlags = createFregeSection(fregeBuilder
.version("'3.25.84'")
.release("'3.25alpha'").compilerFlags("['-make', '-bla']").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr,
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr,
buildConfigWithIllegalCompilerFlags);
BuildResult result = runAndFailGradleTask(COMPILE_FREGE_TASK_NAME);
@@ -339,7 +347,7 @@ public class FregePluginFunctionalTest {
String minimalBuildFileConfigWithoutMake = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").compilerFlags("['-v']")
.build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr,
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr,
minimalBuildFileConfigWithoutMake);
setupDefaultFregeProjectStructure(frobCode, frobFr, "");
@@ -376,7 +384,7 @@ public class FregePluginFunctionalTest {
String buildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'")
.mainModule("'ch.fhnw.thga.Completion'").build());
- setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, buildFileConfig);
+ setupDefaultFregeProjectStructure(FREGE_COMPLETION_MODULE_CODE, completionFr, buildFileConfig);
BuildResult result = runAndFailGradleTask(RUN_FREGE_TASK_NAME);
assertTrue(project.getTasks().getByName(RUN_FREGE_TASK_NAME) instanceof RunFregeTask);
@@ -400,90 +408,6 @@ public class FregePluginFunctionalTest {
}
}
- @Nested
- @TestInstance(Lifecycle.PER_CLASS)
- @IndicativeSentencesGeneration(
- separator = " -> ",
- generator = DisplayNameGenerator.ReplaceUnderscores.class)
- class Deps_frege_task_works {
- @Test
- void given_minimal_build_file_config() throws Exception {
- String completionFr = "Completion.fr";
- String minimalBuildFileConfig = createFregeSection(
- fregeBuilder
- .version("'3.25.84'")
- .release("'3.25alpha'")
- .build());
- setupDefaultFregeProjectStructure(
- SIMPLE_FREGE_CODE,
- completionFr,
- minimalBuildFileConfig);
-
- BuildResult result = runGradleTask(
- DEPS_FREGE_TASK_NAME,
- "-q",
- String.format("--replSource=%s", completionFr));
-
- assertTrue(
- project.getTasks().getByName(DEPS_FREGE_TASK_NAME)
- instanceof DependencyFregeTask);
- assertEquals(SUCCESS, result.task(":" + DEPS_FREGE_TASK_NAME).getOutcome());
- assertTrue(result.getOutput().contains("frege3.25.84.jar"));
- assertFalse(result.getOutput().contains("Completion.java"));
- assertFalse(
- testProjectDir
- .toPath()
- .resolve("/build/classes/main/frege/ch/fhnw/thga/Completion.java").toFile()
- .exists());
- }
-
-
- @Test
- void given_build_file_config_with_dependencies() throws Exception {
- String completionFr = "Completion.fr";
- String minimalBuildFileConfig = createFregeSection(
- fregeBuilder
- .version("'3.25.84'")
- .release("'3.25alpha'")
- .build());
- setupDefaultFregeProjectStructure(
- SIMPLE_FREGE_CODE,
- completionFr,
- minimalBuildFileConfig);
- appendToFile(
- buildFile,
- String.join(
- System.lineSeparator(),
- "repositories {",
- "mavenCentral()",
- "}"));
- appendToFile(
- buildFile,
- String.join(
- System.lineSeparator(),
- "dependencies {",
- "implementation group: 'org.json', name: 'json', version: '20211205'",
- "}"));
-
- BuildResult result = runGradleTask(
- DEPS_FREGE_TASK_NAME,
- "-q",
- String.format("--replSource=%s", completionFr));
-
- assertTrue(
- project.getTasks().getByName(DEPS_FREGE_TASK_NAME)
- instanceof DependencyFregeTask);
- assertEquals(SUCCESS, result.task(":" + DEPS_FREGE_TASK_NAME).getOutcome());
- assertTrue(result.getOutput().contains("frege3.25.84.jar"));
- assertTrue(result.getOutput().contains("org.json"));
- assertFalse(result.getOutput().contains("Completion.java"));
- assertFalse(
- testProjectDir
- .toPath()
- .resolve("/build/classes/main/frege/ch/fhnw/thga/Completion.java").toFile()
- .exists());
- }
- }
@Nested
@TestInstance(Lifecycle.PER_CLASS)
@@ -500,10 +424,10 @@ public class FregePluginFunctionalTest {
fregeBuilder
.version("'3.25.84'")
.release("'3.25alpha'")
- .replSource(String.format("'%s'", completionFr))
+ .replSource(String.format("'ch.fhnw.thga.Completion'"))
.build());
setupDefaultFregeProjectStructure(
- SIMPLE_FREGE_CODE,
+ FREGE_COMPLETION_MODULE_CODE,
completionFr,
minimalReplModuleConfig);
@@ -515,12 +439,7 @@ public class FregePluginFunctionalTest {
assertEquals(SUCCESS, result.task(":" + REPL_FREGE_TASK_NAME).getOutcome());
assertTrue(result.getOutput().contains("java -cp"));
assertTrue(result.getOutput().contains("frege3.25.84.jar"));
- assertFalse(result.getOutput().contains("Completion.java"));
- assertFalse(
- testProjectDir
- .toPath()
- .resolve("/build/classes/main/frege/ch/fhnw/thga/Completion.java").toFile()
- .exists());
+ assertTrue(result.getOutput().contains("Completion.java"));
}
}
@@ -541,7 +460,7 @@ public class FregePluginFunctionalTest {
.release("'3.25alpha'")
.build());
setupDefaultFregeProjectStructure(
- SIMPLE_FREGE_CODE,
+ FREGE_COMPLETION_MODULE_CODE,
completionFr,
minimalBuildFileConfig);
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java
index bc3c8f7..c280607 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java
@@ -3,16 +3,13 @@ package ch.fhnw.thga.gradleplugins;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import java.util.function.BiFunction;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
import org.gradle.api.DefaultTask;
-import org.gradle.api.file.Directory;
import org.gradle.api.file.DirectoryProperty;
-import org.gradle.api.file.FileTree;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.model.ObjectFactory;
import org.gradle.api.provider.ListProperty;
@@ -31,25 +28,8 @@ import org.gradle.api.tasks.TaskAction;
@CacheableTask
public abstract class CompileFregeTask extends DefaultTask {
+ private static final String FREGE_FILES_GLOB_PATTERN = "**/*.fr";
private final JavaExec javaExec;
- private static final String FREGE_FILES_GLOB_PATTERN = "**/*.fr";
- private static final BiFunction<String, Directory, FileTree>
- excludeReplSourceFile =
- (String replSource,
- Directory srcDir) ->
- {
- if (replSource.isEmpty()) return srcDir.getAsFileTree();
- return srcDir.getAsFileTree().matching(
- pattern ->
- {
- pattern.exclude(
- String.format(
- "**/%s",
- replSource)
- );
- }
- );
- };
@InputFile
@PathSensitive(PathSensitivity.RELATIVE)
@@ -66,7 +46,7 @@ public abstract class CompileFregeTask extends DefaultTask {
public abstract Property<String> getFregeDependencies();
@Input
- public abstract Property<String> getReplSource();
+ public abstract Property<String> getFregeMainModuleName();
@OutputDirectory
public abstract DirectoryProperty getFregeOutputDir();
@@ -82,15 +62,19 @@ public abstract class CompileFregeTask extends DefaultTask {
}
@Internal
- public final Provider<FileTree> getSourceFileTree() {
- return getReplSource().zip(
- getFregeMainSourceDir(),
- excludeReplSourceFile);
+ public final Provider<List<String>> getCompileItems() {
+ return getFregeMainModuleName()
+ .map(name ->
+ {
+ return name.isEmpty() ? getFregeSourceFiles().get()
+ : List.of(name);
+ });
}
@Internal
- public final Provider<List<String>> getSourceFiles() {
- return getSourceFileTree()
+ public final Provider<List<String>> getFregeSourceFiles() {
+ return getFregeMainSourceDir()
+ .map(srcDir -> srcDir.getAsFileTree())
.map(tree -> tree.matching(pattern -> pattern.include(FREGE_FILES_GLOB_PATTERN)))
.map(tree -> tree.getFiles().stream()
.map(file -> file.getAbsolutePath())
@@ -111,14 +95,14 @@ public abstract class CompileFregeTask extends DefaultTask {
javaExec = objectFactory.newInstance(JavaExec.class);
}
- private List<String> buildCompilerArgsFromProperties(List<String> directoryArg)
+ private List<String> buildCompilerArgsFromProperties(List<String> targetDirectoryArg)
{
return Stream.of(
getDependencyArg().get(),
getFregeCompilerFlags().get(),
- directoryArg,
+ targetDirectoryArg,
getSourcePathArg().get(),
- getSourceFiles().get())
+ getCompileItems().get())
.filter(lists -> !lists.isEmpty())
.flatMap(Collection::stream)
.collect(Collectors.toList());
@@ -126,11 +110,11 @@ public abstract class CompileFregeTask extends DefaultTask {
@TaskAction
public void compileFrege() {
- List<String> directoryArg = List.of(
+ List<String> targetDirectoryArg = List.of(
"-d",
getFregeOutputDir().getAsFile().get().getAbsolutePath());
javaExec.setClasspath(getProject().files(getFregeCompilerJar()))
- .setArgs(buildCompilerArgsFromProperties(directoryArg)).exec();
+ .setArgs(buildCompilerArgsFromProperties(targetDirectoryArg)).exec();
}
} \ 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 a318b81..ce2ce01 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
@@ -5,8 +5,6 @@ import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.tasks.TaskProvider;
-import ch.fhnw.thga.gradleplugins.internal.DependencyFregeTask;
-
public class FregePlugin implements Plugin<Project>
{
public static final String SETUP_FREGE_TASK_NAME = "setupFrege";
@@ -54,7 +52,7 @@ public class FregePlugin implements Plugin<Project>
task.getFregeOutputDir().set(extension.getOutputDir());
task.getFregeCompilerFlags().set(extension.getCompilerFlags());
task.getFregeDependencies().set(implementation.getAsPath());
- task.getReplSource().set("");
+ task.getFregeMainModuleName().set("");
}
);
@@ -63,28 +61,15 @@ public class FregePlugin implements Plugin<Project>
RunFregeTask.class,
task ->
{
- task.dependsOn(compileFregeTask);
- task.getFregeCompilerJar().set(
- setupFregeCompilerTask.get().getFregeCompilerOutputPath());
- task.getFregeOutputDir().set(extension.getOutputDir());
+
task.getMainModule().set(extension.getMainModule());
- task.getFregeDependencies().set(implementation.getAsPath());
- }
- );
-
- project.getTasks().register(
- DEPS_FREGE_TASK_NAME,
- DependencyFregeTask.class,
- task ->
- {
task.dependsOn(compileFregeTask.map(
compileTask ->
{
- compileTask.getReplSource().set(task.getReplSource());
+ compileTask.getFregeMainModuleName().set(task.getMainModule());
return compileTask;
})
.get());
- task.dependsOn(compileFregeTask);
task.getFregeCompilerJar().set(
setupFregeCompilerTask.get().getFregeCompilerOutputPath());
task.getFregeOutputDir().set(extension.getOutputDir());
@@ -101,7 +86,7 @@ public class FregePlugin implements Plugin<Project>
task.dependsOn(compileFregeTask.map(
compileTask ->
{
- compileTask.getReplSource().set(task.getReplSource());
+ compileTask.getFregeMainModuleName().set(task.getReplSource());
return compileTask;
})
.get());
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
index dd18270..7903d7e 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
@@ -4,9 +4,11 @@ import org.gradle.api.DefaultTask;
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.file.RegularFileProperty;
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.TaskAction;
import org.gradle.api.tasks.options.Option;
@@ -27,6 +29,13 @@ public abstract class ReplFregeTask extends DefaultTask {
description = "The filename which you want to load into the repl, e.g. 'myFregeFile.fr'")
public abstract Property<String> getReplSource();
+ @Internal
+ public final Provider<String> getReplClassName()
+ {
+ return getReplSource()
+ .map(replSource -> replSource.substring(replSource.lastIndexOf(".")));
+ }
+
@TaskAction
public void printStartFregeReplCommand() {
System.out.println("Execute the following command to start the Frege Repl:");
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/internal/DependencyFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/internal/DependencyFregeTask.java
deleted file mode 100644
index 87f4d2b..0000000
--- a/src/main/java/ch/fhnw/thga/gradleplugins/internal/DependencyFregeTask.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package ch.fhnw.thga.gradleplugins.internal;
-
-import org.gradle.api.DefaultTask;
-import org.gradle.api.file.DirectoryProperty;
-import org.gradle.api.file.RegularFileProperty;
-import org.gradle.api.provider.Property;
-import org.gradle.api.tasks.Input;
-import org.gradle.api.tasks.InputDirectory;
-import org.gradle.api.tasks.InputFile;
-import org.gradle.api.tasks.TaskAction;
-import org.gradle.api.tasks.options.Option;
-
-import ch.fhnw.thga.gradleplugins.SharedTaskLogic;
-
-public abstract class DependencyFregeTask extends DefaultTask {
- @InputFile
- public abstract RegularFileProperty getFregeCompilerJar();
-
- @Input
- public abstract Property<String> getFregeDependencies();
-
- @InputDirectory
- public abstract DirectoryProperty getFregeOutputDir();
-
- @Input
- @Option(option = "replSource",
- description = "The filename which you want to load into the repl, e.g. 'myFregeFile.fr'")
- public abstract Property<String> getReplSource();
-
-
- @TaskAction
- public void fregeDependencies() {
- System.out.println(
- SharedTaskLogic.setupClasspath(
- getProject(),
- getFregeDependencies(),
- getFregeCompilerJar(),
- getFregeOutputDir())
- .get().getAsPath());
- }
-}
diff --git a/src/test/java/ch/fhnw/thga/gradleplugins/SharedTaskLogicTest.java b/src/test/java/ch/fhnw/thga/gradleplugins/SharedTaskLogicTest.java
new file mode 100644
index 0000000..6f10d70
--- /dev/null
+++ b/src/test/java/ch/fhnw/thga/gradleplugins/SharedTaskLogicTest.java
@@ -0,0 +1,14 @@
+package ch.fhnw.thga.gradleplugins;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.TestInstance.Lifecycle;
+
+@TestInstance(Lifecycle.PER_CLASS)
+public class SharedTaskLogicTest
+{
+ @Test
+ void given_valid_frege_module_name_then_can_extract_class_name()
+ {
+ }
+} \ No newline at end of file