From cd5d39b867ad5435039d1a47244252078600ca0b Mon Sep 17 00:00:00 2001 From: Thibault Gagnaux Date: Wed, 7 Jul 2021 17:21:33 +0200 Subject: Refactors tests - Uses the builder pattern to simplify the creation of `build.gradle` test files. - Adds `gradlew clean test` github workflow --- .../thga/gradleplugins/SetupFregeCompilerTask.java | 65 ---------------------- 1 file changed, 65 deletions(-) delete mode 100644 src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java (limited to 'src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java') diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java deleted file mode 100644 index b3d08a1..0000000 --- a/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.fhnw.thga.gradleplugins; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.net.URL; -import java.nio.channels.Channels; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; - -import org.gradle.api.DefaultTask; -import org.gradle.api.GradleException; -import org.gradle.api.file.DirectoryProperty; -import org.gradle.api.file.RegularFile; -import org.gradle.api.logging.Logger; -import org.gradle.api.logging.Logging; -import org.gradle.api.provider.Property; -import org.gradle.api.provider.Provider; -import org.gradle.api.tasks.Input; -import org.gradle.api.tasks.Internal; -import org.gradle.api.tasks.OutputFile; -import org.gradle.api.tasks.TaskAction; - -public abstract class SetupFregeCompilerTask extends DefaultTask { - public static final Logger LOGGER = Logging.getLogger(SetupFregeCompilerTask.class); - - private static final String FREGE_GITHUB_URL_PREFIX = "https://github.com/Frege/frege/releases/download"; - - @Input - public abstract Property getFregeVersion(); - - @Input - public abstract Property getFregeRelease(); - - @Internal - public abstract DirectoryProperty getFregeCompilerOutputDirectory(); - - @Internal - public Provider getFregeVersionJarName() { - return getFregeVersion().map(version -> "frege" + version + ".jar"); - } - - @Internal - public Provider getDownloadUrl() { - return getFregeVersionJarName() - .map(name -> String.join("/", FREGE_GITHUB_URL_PREFIX, getFregeRelease().get(), name)); - } - - @OutputFile - public Provider getFregeCompilerOutputPath() { - return getFregeCompilerOutputDirectory().file(getFregeVersionJarName()); - } - - @TaskAction - public void downloadFregeCompiler() { - String fregeCompilerOutputPath = getFregeCompilerOutputPath().get().getAsFile().getAbsolutePath(); - try (ReadableByteChannel readChannel = Channels.newChannel(new URL(getDownloadUrl().get()).openStream()); - FileOutputStream fregeCompilerOutputStream = new FileOutputStream(fregeCompilerOutputPath);) { - FileChannel writeChannel = fregeCompilerOutputStream.getChannel(); - writeChannel.transferFrom(readChannel, 0, Long.MAX_VALUE); - LOGGER.lifecycle(String.format("Successfully downloaded %s to: %s", getFregeVersionJarName().get(), fregeCompilerOutputPath)); - } catch (IOException e) { - throw new GradleException(e.getMessage()); - } - } -} -- cgit