aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle3
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java188
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java8
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java (renamed from src/functionalTest/java/ch/fhnw/thga/gradleplugins/DownloadFregeCompilerFunctionalTest.java)13
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/Build.java6
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeProjectBuilder.java109
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeSourceFile.java25
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java10
-rw-r--r--src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOBuilder.java17
-rw-r--r--src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java2
10 files changed, 316 insertions, 65 deletions
diff --git a/build.gradle b/build.gradle
index 665835c..fe6d9c0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -84,7 +84,4 @@ tasks.withType(Test).configureEach
includeEngines 'jqwik', 'junit-jupiter'
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}
- filter {
- includeTestsMatching "*FunctionalTest"
- }
}
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java
new file mode 100644
index 0000000..a0512c0
--- /dev/null
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java
@@ -0,0 +1,188 @@
+package ch.fhnw.thga.gradleplugins;
+
+import static ch.fhnw.thga.gradleplugins.FregePlugin.COMPILE_FREGE_TASK_NAME;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.File;
+import java.util.stream.Stream;
+
+import org.gradle.api.Project;
+import org.gradle.testkit.runner.BuildResult;
+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.io.TempDir;
+
+import ch.fhnw.thga.gradleplugins.fregeproject.FregeProjectBuilder;
+import ch.fhnw.thga.gradleplugins.fregeproject.FregeSourceFile;
+import ch.fhnw.thga.gradleplugins.fregeproject.ProjectRoot;
+
+public class CompileFregeTaskFunctionalTest
+{
+ private static final String NEW_LINE = System.lineSeparator();
+ private static final FregeSourceFile COMPLETION_FR = new FregeSourceFile(
+ "src/main/frege/ch/fhnw/thga/Completion.fr",
+ 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
+ )
+ );
+ @Nested
+ @IndicativeSentencesGeneration(
+ separator = " -> ",
+ generator = DisplayNameGenerator.ReplaceUnderscores.class
+ )
+ class Compile_frege_task_works {
+
+ @Test
+ void given_frege_code_in_default_source_dir_and_minimal_build_file_config(
+ @TempDir File testProjectDir)
+ throws Exception
+ {
+ String minimalBuildFileConfig = createFregeSection(
+ FregeDTOBuilder
+ .builder()
+ .version("'3.25.84'")
+ .release("'3.25alpha'")
+ .build()
+ );
+
+ Project project = FregeProjectBuilder
+ .builder()
+ .projectRoot(testProjectDir)
+ .buildFile(minimalBuildFileConfig)
+ .fregeSourceFiles(() -> Stream.of(COMPLETION_FR))
+ .build();
+
+ BuildResult result = runGradleTask(testProjectDir, COMPILE_FREGE_TASK_NAME);
+
+ assertTrue(
+ project
+ .getTasks()
+ .getByName(COMPILE_FREGE_TASK_NAME)
+ instanceof CompileFregeTask
+ );
+ assertEquals(
+ SUCCESS,
+ result.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome()
+ );
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/classes/main/frege/ch/fhnw/thga/Completion.java")
+ .toFile()
+ .exists());
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/classes/main/frege/ch/fhnw/thga/Completion.class")
+ .toFile()
+ .exists());
+ }
+ @Test
+ void given_frege_code_and_many_compiler_flags(
+ @TempDir File testProjectDir)
+ throws Exception
+ {
+ String buildConfigWithCompilerFlags = createFregeSection(
+ FregeDTOBuilder
+ .builder()
+ .version("'3.25.84'")
+ .release("'3.25alpha'")
+ .compilerFlags("['-v', '-make', '-O', '-hints']")
+ .build()
+ );
+ Project project = FregeProjectBuilder
+ .builder()
+ .projectRoot(testProjectDir)
+ .buildFile(buildConfigWithCompilerFlags)
+ .fregeSourceFiles(() -> Stream.of(COMPLETION_FR))
+ .build();
+
+ BuildResult result = runGradleTask(testProjectDir, COMPILE_FREGE_TASK_NAME);
+
+ assertTrue(
+ project
+ .getTasks()
+ .getByName(COMPILE_FREGE_TASK_NAME)
+ instanceof CompileFregeTask
+ );
+ assertEquals(
+ SUCCESS,
+ result.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome()
+ );
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/classes/main/frege/ch/fhnw/thga/Completion.java")
+ .toFile()
+ .exists()
+ );
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/classes/main/frege/ch/fhnw/thga/Completion.class")
+ .toFile()
+ .exists()
+ );
+ }
+ @Test
+ void given_frege_code_in_custom_source_and_output_dir_and_minimal_build_file_config(
+ @TempDir File testProjectDir
+ )
+ throws Exception
+ {
+ String customSourceAndOutputBuildFileConfig = createFregeSection(
+ FregeDTOBuilder
+ .builder()
+ .version("'3.25.84'")
+ .release("'3.25alpha'")
+ .mainSourceDir("layout.projectDirectory.dir('src/frege')")
+ .outputDir("layout.buildDirectory.dir('frege')")
+ .build()
+ );
+ Project project = FregeProjectBuilder
+ .builder()
+ .projectRoot(testProjectDir)
+ .buildFile(customSourceAndOutputBuildFileConfig)
+ .fregeSourceFiles(() -> Stream.of(new FregeSourceFile(
+ "src/frege/ch/fhnw/thga/Completion.fr",
+ COMPLETION_FR.getFregeSourceCode())))
+ .build();
+
+ BuildResult result = runGradleTask(testProjectDir, COMPILE_FREGE_TASK_NAME);
+ System.out.println(result.getOutput());
+ assertTrue(
+ project
+ .getTasks()
+ .getByName(COMPILE_FREGE_TASK_NAME)
+ instanceof CompileFregeTask
+ );
+ assertEquals(
+ SUCCESS,
+ result.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome()
+ );
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/frege/ch/fhnw/thga/Completion.java")
+ .toFile()
+ .exists()
+ );
+ assertTrue(testProjectDir
+ .toPath()
+ .resolve("build/frege/ch/fhnw/thga/Completion.class")
+ .toFile()
+ .exists()
+ );
+ }
+ }
+}
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
index 4355b4a..9cd24c4 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
@@ -44,7 +44,7 @@ import org.junit.jupiter.api.io.TempDir;
public class FregePluginFunctionalTest
{
private static final String NEW_LINE = System.lineSeparator();
- private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.getInstance();
+ private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.builder();
private static final String FREGE_COMPLETION_MODULE_CODE =
String.join
(
@@ -97,7 +97,7 @@ public class FregePluginFunctionalTest
)
class Compile_frege_task_works {
- @Test
+ /*@Test
void given_frege_code_in_default_source_dir_and_minimal_build_file_config(
@TempDir File testProjectDir)
throws Exception
@@ -141,7 +141,7 @@ public class FregePluginFunctionalTest
.exists());
}
- @Test
+ @Test
void given_frege_code_and_many_compiler_flags(
@TempDir File testProjectDir
) throws Exception
@@ -189,7 +189,7 @@ public class FregePluginFunctionalTest
.exists());
}
- /*@Test
+ @Test
void given_frege_code_in_custom_source_dir_and_custom_output_dir_and_minimal_build_file_config()
throws Exception {
Path customMainSourceDir = testProjectDir.toPath().resolve(Paths.get("src", "frege"));
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/DownloadFregeCompilerFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java
index 58f6222..825c555 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/DownloadFregeCompilerFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java
@@ -1,8 +1,7 @@
package ch.fhnw.thga.gradleplugins;
-import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_DOWNLOAD_DIRECTORY;
+import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR;
import static ch.fhnw.thga.gradleplugins.FregePlugin.SETUP_FREGE_TASK_NAME;
-import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeGradleProject;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
@@ -23,10 +22,10 @@ import org.junit.jupiter.api.io.TempDir;
import ch.fhnw.thga.gradleplugins.fregeproject.FregeProjectBuilder;
import ch.fhnw.thga.gradleplugins.fregeproject.ProjectRoot;
-class DownloadFregeCompilerFunctionalTest
+class SetupFregeTaskFunctionalTest
{
- private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.getInstance();
- private static ProjectRoot FREGE_PROJECT_BUILDER = FregeProjectBuilder.getInstance();
+ private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.builder();
+ private static ProjectRoot FREGE_PROJECT_BUILDER = FregeProjectBuilder.builder();
@Nested
@IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class)
@@ -44,6 +43,7 @@ class DownloadFregeCompilerFunctionalTest
Project project = FREGE_PROJECT_BUILDER
.projectRoot(testProjectDir)
.buildFile(minimalBuildFileConfig)
+ .useLocalFregeCompiler(false)
.build();
BuildResult result = runGradleTask(testProjectDir, SETUP_FREGE_TASK_NAME);
@@ -57,7 +57,7 @@ class DownloadFregeCompilerFunctionalTest
assertTrue(
testProjectDir
.toPath()
- .resolve(Paths.get(DEFAULT_DOWNLOAD_DIRECTORY, "frege3.25.84.jar"))
+ .resolve(Paths.get(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR, "frege3.25.84.jar"))
.toFile()
.exists()
);
@@ -79,6 +79,7 @@ class DownloadFregeCompilerFunctionalTest
Project project = FREGE_PROJECT_BUILDER
.projectRoot(testProjectDir)
.buildFile(buildFileConfigWithCustomDownloadDir)
+ .useLocalFregeCompiler(false)
.build();
BuildResult result = runGradleTask(testProjectDir, SETUP_FREGE_TASK_NAME);
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/Build.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/Build.java
index 60fc835..175ccaa 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/Build.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/Build.java
@@ -1,13 +1,15 @@
package ch.fhnw.thga.gradleplugins.fregeproject;
import java.io.IOException;
-import java.nio.file.Path;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
import org.gradle.api.Project;
public interface Build
{
- Build fregeCompiler(Path fregeCompiler);
+ Build useLocalFregeCompiler(boolean useLocalFregeCompiler);
Build settingsFile(String settingsFile);
+ Build fregeSourceFiles(Supplier<Stream<FregeSourceFile>> fregeSourceFiles);
Project build() throws IOException;
}
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeProjectBuilder.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeProjectBuilder.java
index c90c8a8..bb87cdc 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeProjectBuilder.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeProjectBuilder.java
@@ -4,9 +4,11 @@ import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
+import java.util.function.Supplier;
import java.util.stream.Stream;
import org.gradle.api.Project;
@@ -16,25 +18,30 @@ import ch.fhnw.thga.gradleplugins.FregeDTO;
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.GradleBuildFileConversionTest.createPluginsSection;
+import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR;
public final class FregeProjectBuilder implements ProjectRoot, BuildFile, Build
{
- private File projectRoot;
- private String buildFile = createPluginsSection(Stream.of(FREGE_PLUGIN_ID));
- private Path fregeCompiler = Paths.get("src/functionalTest/resources/frege3.25.84.jar");
- private String settingsFile = "rootProject.name='frege-plugin'";
+ private static final String LATEST_COMPILER_VERSION = "3.25.84";
+ private static final Path LOCAL_COMPILER_PATH =
+ Paths.get(String.format(
+ "src/functionalTest/resources/frege%s.jar",
+ LATEST_COMPILER_VERSION)
+ );
- private static volatile FregeProjectBuilder instance;
+ private File projectRoot;
+ private String buildFile = createPluginsSection(
+ Stream.of(FREGE_PLUGIN_ID)
+ );
+ private boolean useLocalFregeCompiler = true;
+ private String settingsFile = "rootProject.name='frege-plugin'";
+ private Supplier<Stream<FregeSourceFile>> fregeSourceFiles = () -> Stream.empty();
- private static String createFregeSection(FregeDTO fregeDTO)
+
+ public static ProjectRoot builder()
{
- return String.format(
- "%s {%s %s%s}",
- FREGE_EXTENSION_NAME,
- System.lineSeparator(),
- fregeDTO.toBuildFile(),
- System.lineSeparator());
- }
+ return new FregeProjectBuilder();
+ }
private static void writeFile(
File destination,
@@ -54,30 +61,54 @@ public final class FregeProjectBuilder implements ProjectRoot, BuildFile, Build
writeFile(destination, content, false);
return destination;
}
+
+ private File writeToFile(FregeSourceFile fregeFile)
+ {
+ Path fregeFilePath = projectRoot.toPath().resolve(fregeFile.getFregeModulePath());
+ try
+ {
+ Files.createDirectories(
+ fregeFilePath
+ .getParent()
+ );
+ return writeToFile(
+ fregeFilePath.toFile(),
+ fregeFile.getFregeSourceCode()
+ );
+ } catch (IOException e)
+ {
+ throw new RuntimeException(e.getMessage(), e.getCause());
+ }
+ }
private static File appendToFile(File destination, String content) throws IOException
{
writeFile(destination, System.lineSeparator() + content, true);
return destination;
- }
+ }
+
+ private File setupLocalFregeCompilerInDefaultPath() throws IOException
+ {
+ Files.createDirectories(
+ projectRoot
+ .toPath()
+ .resolve(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR));
+ return Files.copy(
+ LOCAL_COMPILER_PATH,
+ projectRoot
+ .toPath()
+ .resolve(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR)
+ .resolve(LOCAL_COMPILER_PATH.getFileName())
+ ).toFile();
+ }
private FregeProjectBuilder() {}
- public static ProjectRoot getInstance()
- {
- FregeProjectBuilder result = instance;
- if (result != null) return result;
- synchronized (FregeProjectBuilder.class)
- {
- return instance == null ? new FregeProjectBuilder()
- : instance;
- }
- }
@Override
- public Build fregeCompiler(Path fregeCompiler)
+ public Build useLocalFregeCompiler(boolean useLocalFregeCompiler)
{
- this.fregeCompiler = fregeCompiler;
+ this.useLocalFregeCompiler = useLocalFregeCompiler;
return this;
}
@@ -111,11 +142,27 @@ public final class FregeProjectBuilder implements ProjectRoot, BuildFile, Build
}
@Override
- public Project build() throws IOException {
- File settingsGradle = new File(projectRoot, "settings.gradle");
- writeToFile(settingsGradle, settingsFile);
- File buildGradle = new File(projectRoot, "build.gradle");
- writeToFile(buildGradle, buildFile);
+ public Build fregeSourceFiles(Supplier<Stream<FregeSourceFile>> fregeSourceFiles)
+ {
+ this.fregeSourceFiles = fregeSourceFiles;
+ return this;
+ }
+
+ private File createGradleFile(String filename, String content) throws IOException
+ {
+ return writeToFile(
+ new File(projectRoot, filename),
+ content
+ );
+ }
+
+ @Override
+ public Project build() throws IOException
+ {
+ createGradleFile("settings.gradle", settingsFile);
+ createGradleFile("build.gradle", buildFile);
+ if (useLocalFregeCompiler) setupLocalFregeCompilerInDefaultPath();
+ fregeSourceFiles.get().map(this::writeToFile).findFirst();
Project project = ProjectBuilder
.builder()
.withProjectDir(projectRoot)
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeSourceFile.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeSourceFile.java
new file mode 100644
index 0000000..d45e158
--- /dev/null
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/fregeproject/FregeSourceFile.java
@@ -0,0 +1,25 @@
+package ch.fhnw.thga.gradleplugins.fregeproject;
+
+import java.nio.file.Path;
+
+public class FregeSourceFile
+{
+ private final String modulePath;
+ private final String sourceCode;
+
+ public FregeSourceFile(String modulePath, String sourceCode)
+ {
+ this.modulePath = modulePath;
+ this.sourceCode = sourceCode;
+ }
+
+ public String getFregeModulePath()
+ {
+ return modulePath;
+ }
+
+ public String getFregeSourceCode()
+ {
+ return sourceCode;
+ }
+}
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java
index 5bcbf3d..cfcd393 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java
@@ -10,10 +10,10 @@ import org.gradle.api.provider.ListProperty;
import org.gradle.api.provider.Property;
public abstract class FregeExtension {
- public static final String DEFAULT_DOWNLOAD_DIRECTORY = "lib";
- public static final String DEFAULT_RELATIVE_OUTPUT_DIR = "classes/main/frege";
- public static final String DEFAULT_RELATIVE_SOURCE_DIR = "src/main/frege";
- public static final List<String> DEFAULT_COMPILER_FLAGS = List.of("-O", "-make");
+ public static final String DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR = "lib";
+ public static final String DEFAULT_RELATIVE_OUTPUT_DIR = "classes/main/frege";
+ public static final String DEFAULT_RELATIVE_SOURCE_DIR = "src/main/frege";
+ public static final List<String> DEFAULT_COMPILER_FLAGS = List.of("-O", "-make");
public abstract Property<String> getVersion();
@@ -34,7 +34,7 @@ public abstract class FregeExtension {
@Inject
public FregeExtension(ProjectLayout projectLayout) {
getCompilerDownloadDir()
- .convention(projectLayout.getProjectDirectory().dir(DEFAULT_DOWNLOAD_DIRECTORY));
+ .convention(projectLayout.getProjectDirectory().dir(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR));
getMainSourceDir()
.convention(projectLayout.getProjectDirectory().dir(DEFAULT_RELATIVE_SOURCE_DIR));
diff --git a/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOBuilder.java b/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOBuilder.java
index cae01d5..d7fe9f1 100644
--- a/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOBuilder.java
+++ b/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOBuilder.java
@@ -10,20 +10,11 @@ public final class FregeDTOBuilder implements Builder {
private String compilerFlags = "";
private String replSource = "";
- private static volatile FregeDTOBuilder instance;
+ private FregeDTOBuilder() {}
- private FregeDTOBuilder() {
- }
-
- public static FregeDTOBuilder getInstance() {
- FregeDTOBuilder result = instance;
- if (result != null) {
- return result;
- } else {
- synchronized (FregeDTOBuilder.class) {
- return (instance == null) ? new FregeDTOBuilder() : instance;
- }
- }
+ public static FregeDTOBuilder builder()
+ {
+ return new FregeDTOBuilder();
}
diff --git a/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java b/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java
index c1c920b..cfc60bb 100644
--- a/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java
+++ b/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java
@@ -33,7 +33,7 @@ public class GradleBuildFileConversionTest {
@BeforeEach
void setup() {
- fregeBuilder = FregeDTOBuilder.getInstance();
+ fregeBuilder = FregeDTOBuilder.builder();
}
@Nested