From ce8646d4b5a1d6dd03d9c9c176e6dcc46e0b02cf Mon Sep 17 00:00:00 2001 From: Sergey Morgunov Date: Wed, 30 Aug 2023 13:43:29 +0300 Subject: [PATCH] [Gradle] Use real Twirl compiler --- .../gradle/internal/TwirlCompileAction.java | 41 ++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/gradle-twirl/src/main/java/play/twirl/gradle/internal/TwirlCompileAction.java b/gradle-twirl/src/main/java/play/twirl/gradle/internal/TwirlCompileAction.java index 00cafb07..7ba573ea 100644 --- a/gradle-twirl/src/main/java/play/twirl/gradle/internal/TwirlCompileAction.java +++ b/gradle-twirl/src/main/java/play/twirl/gradle/internal/TwirlCompileAction.java @@ -3,19 +3,50 @@ */ package play.twirl.gradle.internal; +import java.io.File; +import java.util.Collection; +import java.util.List; +import org.gradle.api.logging.Logger; +import org.gradle.api.logging.Logging; import org.gradle.workers.WorkAction; +import play.japi.twirl.compiler.TwirlCompiler; +import scala.io.Codec; public abstract class TwirlCompileAction implements WorkAction { + private static final Logger LOGGER = Logging.getLogger(TwirlCompileAction.class); + @Override public void execute() { try { - System.out.println( - "Compile Twirl template " - + getParameters().getSourceFile().getAsFile().get().getName() - + " into " - + getParameters().getDestinationDirectory().getAsFile().get().getCanonicalPath()); + File sourceFile = getParameters().getSourceFile().getAsFile().get(); + File sourceDirectory = getParameters().getSourceDirectory().getAsFile().get(); + File destinationDirectory = getParameters().getDestinationDirectory().getAsFile().get(); + String formatterType = getParameters().getFormatterType().get(); + getParameters().getTemplateImports().addAll(TwirlCompiler.DEFAULT_IMPORTS); + Collection imports = getParameters().getTemplateImports().get(); + List constructorAnnotations = getParameters().getConstructorAnnotations().get(); + String sourceEncoding = getParameters().getSourceEncoding().get(); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug( + "Compile Twirl template [{}/{}] {} from {} into {}", + formatterType, + sourceEncoding, + sourceFile.getName(), + sourceDirectory.getCanonicalPath(), + destinationDirectory.getCanonicalPath()); + } + TwirlCompiler.compile( + sourceFile, + sourceDirectory, + destinationDirectory, + formatterType, + imports, + constructorAnnotations, + Codec.string2codec(sourceEncoding), + false); } catch (Exception e) { + LOGGER.error(e.getMessage(), e); throw new RuntimeException(e); } }