Skip to content

Commit

Permalink
Skip non-tck dist modules and recurse into submodules
Browse files Browse the repository at this point in the history
Signed-off-by: Scott M Stark <[email protected]>
  • Loading branch information
starksm64 committed Feb 11, 2025
1 parent c342db2 commit ab44bca
Showing 1 changed file with 58 additions and 18 deletions.
76 changes: 58 additions & 18 deletions tools/version/src/main/java/ee/tck/versions/VersionRelease.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<String> 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 <version>");
Expand All @@ -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<Element> 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();
Expand All @@ -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);
Expand All @@ -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 {
Expand All @@ -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");
}
Expand Down

0 comments on commit ab44bca

Please sign in to comment.