From ab44bcaebd5e1add5a18f16a4f7631d6e721d3ba Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Tue, 11 Feb 2025 21:54:29 +0000 Subject: [PATCH] Skip non-tck dist modules and recurse into submodules Signed-off-by: Scott M Stark --- .../java/ee/tck/versions/VersionRelease.java | 76 ++++++++++++++----- 1 file changed, 58 insertions(+), 18 deletions(-) diff --git a/tools/version/src/main/java/ee/tck/versions/VersionRelease.java b/tools/version/src/main/java/ee/tck/versions/VersionRelease.java index f93a30224c..a4bf5150de 100644 --- a/tools/version/src/main/java/ee/tck/versions/VersionRelease.java +++ b/tools/version/src/main/java/ee/tck/versions/VersionRelease.java @@ -18,6 +18,15 @@ public class VersionRelease { // The x.y version of the platform private static final String TCK_BASE_VERSION = "11.0"; + private static final HashSet SKIPPED_MODULES = new HashSet<>(); + static { + SKIPPED_MODULES.add("core-profile-tck"); + SKIPPED_MODULES.add("expression-language-outside-container"); + SKIPPED_MODULES.add("messaging-outside-container"); + SKIPPED_MODULES.add("persistence-outside-container"); + SKIPPED_MODULES.add("user_guides"); + } + public static void main(String[] args) throws Exception { if (args.length == 0) { System.out.println("Usage: VersionRelease "); @@ -44,9 +53,42 @@ private void run(String version) throws Exception{ document.write(writer); } + // Update the submodule versions + updateModules(null, project, version); + + // Update the release module + File releaseModule = new File("release/pom.xml"); + Document releaseDocument = reader.read(releaseModule); + Element releaseProject = releaseDocument.getRootElement(); + Element releaseVersion = releaseProject.element("parent").element("version"); + releaseVersion.setText(version); + try(FileWriter writer = new FileWriter(releaseModule)) { + releaseDocument.write(writer); + } + + // Write a release script for deploying the artifacts + writeReleaseScript(version); + // Write a bom for the artifacts + } + + void updateModules(File projectDir, Element project, String version) throws Exception { + SAXReader reader = new SAXReader(); List modules = project.elements("modules"); - modules.get(0).elements("module").forEach(module -> { - File moduleFile = new File(module.getText() + "/pom.xml"); + if(modules.isEmpty()) { + return; + } + + for(Element module : modules.get(0).elements("module")) { + String modulePath = module.getText(); + int lastSlash = modulePath.lastIndexOf('/'); + String moduleName = modulePath.substring(lastSlash + 1); + if(SKIPPED_MODULES.contains(moduleName)) { + continue; + } + if(projectDir != null) { + modulePath = projectDir.getAbsolutePath() + "/" + modulePath; + } + File moduleFile = new File(modulePath + "/pom.xml"); try { Document moduleDocument = reader.read(moduleFile); Element moduleProject = moduleDocument.getRootElement(); @@ -57,8 +99,7 @@ private void run(String version) throws Exception{ artifacts.add(testArtifact); System.out.printf("%s\n", testArtifact); if(moduleVersion.startsWith(TCK_BASE_VERSION)) { - System.out.println("Update version"); - moduleProject.element("version").setText(version); + setVersion(moduleProject, version); Element parentVersion = moduleProject.element("parent").element("version"); if (parentVersion.getText().startsWith(TCK_BASE_VERSION)) { parentVersion.setText(version); @@ -68,24 +109,15 @@ private void run(String version) throws Exception{ try(FileWriter writer = new FileWriter(moduleFile)) { moduleDocument.write(writer); } + + Element submodules = moduleProject.element("modules"); + if(submodules != null) { + updateModules(moduleFile.getParentFile(), moduleProject, version); + } } catch (Exception e) { e.printStackTrace(); } - }); - - // Update the release module - File releaseModule = new File("release/pom.xml"); - Document releaseDocument = reader.read(releaseModule); - Element releaseProject = releaseDocument.getRootElement(); - Element releaseVersion = releaseProject.element("parent").element("version"); - releaseVersion.setText(version); - try(FileWriter writer = new FileWriter(releaseModule)) { - releaseDocument.write(writer); } - - // Write a release script for deploying the artifacts - writeReleaseScript(version); - // Write a bom for the artifacts } void writeReleaseScript(String version) throws IOException { @@ -106,6 +138,14 @@ void writeReleaseScript(String version) throws IOException { String getVersion(Element root) { return getInfo(root, "version"); } + void setVersion(Element moduleProject, String version) { + Element versionElement = moduleProject.element("version"); + if (versionElement != null) { + versionElement.setText(version); + } else { + moduleProject.element("parent").element("version").setText(version); + } + } String getGroupId(Element root) { return getInfo(root, "groupId"); }