From bd4dee98fa31160cda318820721accee1f01250e Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Sun, 26 Jan 2025 14:46:54 -0600 Subject: [PATCH] Move auto-imports to an ImportCustomizer defined in DefaultWebViewComponentTemplateCompileUnit. --- .../transpile/DefaultGroovyTranspiler.java | 21 ++----------------- ...ltWebViewComponentTemplateCompileUnit.java | 17 ++++++++++++++- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java index 002a5f3..50583ae 100644 --- a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java +++ b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java @@ -34,19 +34,9 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { return SimpleTranspilerConfiguration.withDefaults(); } - protected void addAutomaticImports(WebViewComponentModuleNode moduleNode, TranspilerConfiguration configuration) { - configuration.getImports().forEach(moduleNode::addImport); - configuration.getStaticImports().forEach(staticImport -> moduleNode.addStaticImport( - staticImport.getV1(), staticImport.getV2(), staticImport.getV3() - )); - configuration.getStarImports().forEach(moduleNode::addStarImport); - configuration.getStaticStarImports().forEach(moduleNode::addStaticStarImport); - } - protected WebViewComponentModuleNode initModuleNode( ComponentTemplateCompileUnit compileUnit, - WebViewComponentSourceUnit sourceUnit, - TranspilerConfiguration configuration + WebViewComponentSourceUnit sourceUnit ) { final var moduleNode = new WebViewComponentModuleNode(sourceUnit); sourceUnit.setModuleNode(moduleNode); @@ -56,7 +46,6 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { moduleNode.setPackageName(defaultPackageName); } - this.addAutomaticImports(moduleNode, configuration); return moduleNode; } @@ -218,12 +207,6 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { CompilationUnitNode compilationUnitNode, String templateClassSimpleName ) throws ComponentTemplateCompileException { - // resolver, transpilerConfiguration, and positionSetter - final ClassLoaderComponentClassNodeResolver resolver = new ClassLoaderComponentClassNodeResolver( - compileUnit, - compilerConfiguration.getGroovyClassLoader() - ); - final var transpilerConfiguration = this.getConfiguration(resolver); // transpilerConfiguration, and positionSetter final var transpilerConfiguration = this.getConfiguration(); final PositionSetter positionSetter = transpilerConfiguration.getPositionSetter(); @@ -241,7 +224,7 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { // prepare moduleNode final WebViewComponentModuleNode moduleNode = this.initModuleNode( - compileUnit, sourceUnit, transpilerConfiguration + compileUnit, sourceUnit ); // prepare mainClassNode diff --git a/web-view-components/src/main/java/groowt/view/component/web/compiler/DefaultWebViewComponentTemplateCompileUnit.java b/web-view-components/src/main/java/groowt/view/component/web/compiler/DefaultWebViewComponentTemplateCompileUnit.java index 30f9d8f..f715a86 100644 --- a/web-view-components/src/main/java/groowt/view/component/web/compiler/DefaultWebViewComponentTemplateCompileUnit.java +++ b/web-view-components/src/main/java/groowt/view/component/web/compiler/DefaultWebViewComponentTemplateCompileUnit.java @@ -10,7 +10,9 @@ import groowt.view.component.compiler.source.FileSource; import groowt.view.component.compiler.source.URISource; import groowt.view.component.compiler.source.URLSource; import org.codehaus.groovy.control.CompilationUnit; +import org.codehaus.groovy.control.CompilerConfiguration; import org.codehaus.groovy.control.Janitor; +import org.codehaus.groovy.control.customizers.ImportCustomizer; import org.codehaus.groovy.control.io.ReaderSource; import org.jetbrains.annotations.Nullable; @@ -20,8 +22,20 @@ import java.net.URI; public class DefaultWebViewComponentTemplateCompileUnit extends AbstractComponentTemplateCompileUnit implements ReaderSource, WebViewComponentTemplateCompileUnit { + private static CompilationUnit getCompilationUnit() { + final var configuration = new CompilerConfiguration(); + final var addGroowtImports = new ImportCustomizer(); + addGroowtImports.addStarImports( + "groowt.view.component.web.lib", + "groowt.view.component.web.runtime", + "groowt.view.component.runtime" + ); + configuration.addCompilationCustomizers(addGroowtImports); + return new CompilationUnit(configuration); + } + private final String defaultPackageName; - private final CompilationUnit groovyCompilationUnit = new CompilationUnit(); + private final CompilationUnit groovyCompilationUnit; public DefaultWebViewComponentTemplateCompileUnit( String descriptiveName, @@ -35,6 +49,7 @@ public class DefaultWebViewComponentTemplateCompileUnit extends AbstractComponen } else { this.defaultPackageName = defaultPackageName; } + this.groovyCompilationUnit = getCompilationUnit(); } @Override