This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 709469b7b750adc12bae11fc1b9abff9007b7f5e Author: Andrus Adamchik <[email protected]> AuthorDate: Sat Aug 8 16:56:58 2026 -0400 ClassGenerationAction cleanup --- .../apache/cayenne/gen/ClassGenerationAction.java | 37 +++++++++------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java index 4c8684401..263e6c8c6 100644 --- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java +++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java @@ -44,8 +44,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collection; -import java.util.HashMap; -import java.util.Map; import java.util.Objects; import java.util.Properties; import java.util.stream.Collectors; @@ -58,8 +56,6 @@ public class ClassGenerationAction { protected final CgenConfiguration configuration; protected final Logger logger; - protected final Map<String, Template> templateCache; - private final ToolsUtilsFactory utilsFactory; private final MetadataUtils metadataUtils; @@ -86,20 +82,22 @@ public class ClassGenerationAction { this.utilsFactory = Objects.requireNonNull(utilsFactory); this.metadataUtils = Objects.requireNonNull(metadataUtils); this.logger = Objects.requireNonNull(logger); + this.context = createContext(configuration.getExternalToolConfig()); + } - String toolConfigFile = configuration.getExternalToolConfig(); + private static Context createContext(String toolConfigFile) { - if (System.getProperty("org.apache.velocity.tools") != null || toolConfigFile != null) { - ToolManager manager = new ToolManager(true, true); - if (toolConfigFile != null) { - FactoryConfiguration config = ConfigurationUtils.find(toolConfigFile); - manager.getToolboxFactory().configure(config); - } - this.context = manager.createContext(); - } else { - this.context = new VelocityContext(); + if (System.getProperty("org.apache.velocity.tools") == null && toolConfigFile == null) { + return new VelocityContext(); } - this.templateCache = new HashMap<>(5); + + ToolManager manager = new ToolManager(true, true); + if (toolConfigFile != null) { + FactoryConfiguration config = ConfigurationUtils.find(toolConfigFile); + manager.getToolboxFactory().configure(config); + } + + return manager.createContext(); } protected void resetContextForArtifact(Artifact artifact) { @@ -207,13 +205,8 @@ public class ClassGenerationAction { validateAttributes(); - try { - for (Artifact artifact : configuration.getArtifacts()) { - execute(artifact); - } - } finally { - // must reset engine at the end of class generator run to avoid memory leaks and stale templates - templateCache.clear(); + for (Artifact artifact : configuration.getArtifacts()) { + execute(artifact); } }
