From cb5a2c3b1d0908290352dd3b30241c9fb6ea6b86 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Thu, 31 Jul 2025 15:02:36 +0300 Subject: [PATCH] HBX-3068: Refactor the Ant integration tests to factor out common code - Pull up methods 'getConsoleLogger()' and 'runAntBuild()' - Get rid of the 'output' ByteArrayStream Signed-off-by: Koen Aers --- .../tool/ant/hbm2java/JpaDefaultTestIT.java | 24 ------------------- .../ant/hbm2java/NoAnnotationsTestIT.java | 24 ------------------- .../tool/ant/hbm2java/NoGenericsTestIT.java | 24 ------------------- .../tool/ant/hbm2java/UseGenericsTestIT.java | 24 ------------------- .../tool/ant/tutorial/TutorialTestIT.java | 24 ------------------- .../hibernate/tool/it/ant/TestTemplate.java | 21 ++++++++++++++++ 6 files changed, 21 insertions(+), 120 deletions(-) diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java index 09f109034b..36b9cf01d5 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java @@ -1,16 +1,10 @@ package org.hibernate.tool.ant.hbm2java; -import org.apache.tools.ant.DefaultLogger; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; import org.hibernate.tool.it.ant.TestTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.PrintStream; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; @@ -21,13 +15,11 @@ public class JpaDefaultTestIT extends TestTemplate { private File buildXmlFile; - private ByteArrayOutputStream output; private File databaseFile; private File personFile; @BeforeEach public void beforeEach() { - output = new ByteArrayOutputStream(); databaseFile = new File(getProjectDir(), "database/test.mv.db"); assertFalse(databaseFile.exists()); personFile = new File(getProjectDir(), "generated/Person.java"); @@ -78,14 +70,6 @@ private void createHibernatePropertiesFile() throws Exception { assertTrue(hibernatePropertiesFile.exists()); } - private void runAntBuild() { - Project project = new Project(); - project.setBaseDir(getProjectDir()); - project.addBuildListener(getConsoleLogger()); - ProjectHelper.getProjectHelper().parse(project, buildXmlFile); - project.executeTarget(project.getDefaultTarget()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -100,14 +84,6 @@ private void verifyResult() throws Exception { assertTrue(generatedPersonJavaFileContents.contains("public class Person ")); } - private DefaultLogger getConsoleLogger() { - DefaultLogger consoleLogger = new DefaultLogger(); - consoleLogger.setErrorPrintStream(System.err); - consoleLogger.setOutputPrintStream(new PrintStream(output, true)); - consoleLogger.setMessageOutputLevel(Project.MSG_INFO); - return consoleLogger; - } - private String constructJdbcConnectionString() { return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE"; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java index d0536b93d2..0b1e107918 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java @@ -1,16 +1,10 @@ package org.hibernate.tool.ant.hbm2java; -import org.apache.tools.ant.DefaultLogger; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; import org.hibernate.tool.it.ant.TestTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.PrintStream; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; @@ -21,13 +15,11 @@ public class NoAnnotationsTestIT extends TestTemplate { private File buildXmlFile; - private ByteArrayOutputStream output; private File databaseFile; private File personFile; @BeforeEach public void beforeEach() { - output = new ByteArrayOutputStream(); databaseFile = new File(getProjectDir(), "database/test.mv.db"); assertFalse(databaseFile.exists()); personFile = new File(getProjectDir(), "generated/Person.java"); @@ -78,14 +70,6 @@ private void createHibernatePropertiesFile() throws Exception { assertTrue(hibernatePropertiesFile.exists()); } - private void runAntBuild() { - Project project = new Project(); - project.setBaseDir(getProjectDir()); - project.addBuildListener(getConsoleLogger()); - ProjectHelper.getProjectHelper().parse(project, buildXmlFile); - project.executeTarget(project.getDefaultTarget()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -100,14 +84,6 @@ private void verifyResult() throws Exception { assertTrue(generatedPersonJavaFileContents.contains("public class Person ")); } - private DefaultLogger getConsoleLogger() { - DefaultLogger consoleLogger = new DefaultLogger(); - consoleLogger.setErrorPrintStream(System.err); - consoleLogger.setOutputPrintStream(new PrintStream(output, true)); - consoleLogger.setMessageOutputLevel(Project.MSG_INFO); - return consoleLogger; - } - private String constructJdbcConnectionString() { return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE"; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java index baf55e3704..f15f470aed 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java @@ -1,16 +1,10 @@ package org.hibernate.tool.ant.hbm2java; -import org.apache.tools.ant.DefaultLogger; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; import org.hibernate.tool.it.ant.TestTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.PrintStream; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; @@ -21,13 +15,11 @@ public class NoGenericsTestIT extends TestTemplate { private File buildXmlFile; - private ByteArrayOutputStream output; private File databaseFile; private File personFile; @BeforeEach public void beforeEach() { - output = new ByteArrayOutputStream(); databaseFile = new File(getProjectDir(), "database/test.mv.db"); assertFalse(databaseFile.exists()); personFile = new File(getProjectDir(), "generated/Person.java"); @@ -82,14 +74,6 @@ private void createHibernatePropertiesFile() throws Exception { assertTrue(hibernatePropertiesFile.exists()); } - private void runAntBuild() { - Project project = new Project(); - project.setBaseDir(getProjectDir()); - project.addBuildListener(getConsoleLogger()); - ProjectHelper.getProjectHelper().parse(project, buildXmlFile); - project.executeTarget(project.getDefaultTarget()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -110,14 +94,6 @@ private void verifyResult() throws Exception { assertTrue(generatedItemJavaFileContents.contains("public class Item ")); } - private DefaultLogger getConsoleLogger() { - DefaultLogger consoleLogger = new DefaultLogger(); - consoleLogger.setErrorPrintStream(System.err); - consoleLogger.setOutputPrintStream(new PrintStream(output, true)); - consoleLogger.setMessageOutputLevel(Project.MSG_INFO); - return consoleLogger; - } - private String constructJdbcConnectionString() { return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE"; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java index 93cddd071c..80243e0655 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java @@ -1,16 +1,10 @@ package org.hibernate.tool.ant.hbm2java; -import org.apache.tools.ant.DefaultLogger; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; import org.hibernate.tool.it.ant.TestTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.PrintStream; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; @@ -21,13 +15,11 @@ public class UseGenericsTestIT extends TestTemplate { private File buildXmlFile; - private ByteArrayOutputStream output; private File databaseFile; private File personFile; @BeforeEach public void beforeEach() { - output = new ByteArrayOutputStream(); databaseFile = new File(getProjectDir(), "database/test.mv.db"); assertFalse(databaseFile.exists()); personFile = new File(getProjectDir(), "generated/Person.java"); @@ -82,14 +74,6 @@ private void createHibernatePropertiesFile() throws Exception { assertTrue(hibernatePropertiesFile.exists()); } - private void runAntBuild() { - Project project = new Project(); - project.setBaseDir(getProjectDir()); - project.addBuildListener(getConsoleLogger()); - ProjectHelper.getProjectHelper().parse(project, buildXmlFile); - project.executeTarget(project.getDefaultTarget()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -110,14 +94,6 @@ private void verifyResult() throws Exception { assertTrue(generatedItemJavaFileContents.contains("public class Item ")); } - private DefaultLogger getConsoleLogger() { - DefaultLogger consoleLogger = new DefaultLogger(); - consoleLogger.setErrorPrintStream(System.err); - consoleLogger.setOutputPrintStream(new PrintStream(output, true)); - consoleLogger.setMessageOutputLevel(Project.MSG_INFO); - return consoleLogger; - } - private String constructJdbcConnectionString() { return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE"; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java index f616e148e5..6e1cb14fcc 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java @@ -4,32 +4,24 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.PrintStream; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; -import org.apache.tools.ant.DefaultLogger; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; import org.hibernate.tool.it.ant.TestTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; public class TutorialTestIT extends TestTemplate { private File buildXmlFile; - private ByteArrayOutputStream output; private File databaseFile; private File personFile; @BeforeEach public void beforeEach() { - output = new ByteArrayOutputStream(); databaseFile = new File(getProjectDir(), "database/test.mv.db"); assertFalse(databaseFile.exists()); personFile = new File(getProjectDir(), "generated/Person.java"); @@ -80,14 +72,6 @@ private void createHibernatePropertiesFile() throws Exception { assertTrue(hibernatePropertiesFile.exists()); } - private void runAntBuild() { - Project project = new Project(); - project.setBaseDir(getProjectDir()); - project.addBuildListener(getConsoleLogger()); - ProjectHelper.getProjectHelper().parse(project, buildXmlFile); - project.executeTarget(project.getDefaultTarget()); - } - private void verifyResult() { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -98,14 +82,6 @@ private void verifyResult() { assertTrue(generatedPersonJavaFile.isFile()); } - private DefaultLogger getConsoleLogger() { - DefaultLogger consoleLogger = new DefaultLogger(); - consoleLogger.setErrorPrintStream(System.err); - consoleLogger.setOutputPrintStream(new PrintStream(output, true)); - consoleLogger.setMessageOutputLevel(Project.MSG_INFO); - return consoleLogger; - } - private String constructJdbcConnectionString() { return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE"; } diff --git a/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java b/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java index 943e8d094c..1865b94475 100644 --- a/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java +++ b/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java @@ -1,8 +1,12 @@ package org.hibernate.tool.it.ant; +import org.apache.tools.ant.DefaultLogger; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.ProjectHelper; import org.junit.jupiter.api.io.TempDir; import java.io.File; +import java.io.PrintStream; public abstract class TestTemplate { @@ -19,6 +23,23 @@ protected String constructBuildXmlFileContents() { return buildXmlFileContents.replace("@hibernateToolTaskXml@", hibernateToolTaskXml()); } + protected void runAntBuild() { + File buildXmlFile = new File(getProjectDir(), "build.xml"); + Project project = new Project(); + project.setBaseDir(getProjectDir()); + project.addBuildListener(getConsoleLogger()); + ProjectHelper.getProjectHelper().parse(project, buildXmlFile); + project.executeTarget(project.getDefaultTarget()); + } + + private DefaultLogger getConsoleLogger() { + DefaultLogger consoleLogger = new DefaultLogger(); + consoleLogger.setErrorPrintStream(System.err); + consoleLogger.setOutputPrintStream(System.out); + consoleLogger.setMessageOutputLevel(Project.MSG_INFO); + return consoleLogger; + } + private static final String buildXmlFileContents = " \n" + "