From 1747463818690eb4ed5c499f161007024955b67f Mon Sep 17 00:00:00 2001 From: Herman Muhereza Date: Wed, 28 Aug 2024 18:46:29 +0300 Subject: [PATCH] SDK-332: Correct the O3 Versions displayed during setup of an instance (#285) --- .../maven/plugins/utility/DefaultWizard.java | 16 +++++++++------- .../maven/plugins/utility/VersionsHelper.java | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java index 8c3e53e3f..dcc4a648c 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java @@ -1,7 +1,5 @@ package org.openmrs.maven.plugins.utility; -import static org.openmrs.maven.plugins.utility.PropertiesUtils.loadPropertiesFromFile; - import com.google.common.collect.Lists; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; @@ -52,6 +50,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static org.openmrs.maven.plugins.utility.PropertiesUtils.loadPropertiesFromFile; + /** * Class for attribute helper functions */ @@ -782,11 +782,11 @@ private Map getDistroVersionsOptionsMap(Set versions, Ve * @return A LinkedHashMap containing the generated options map. */ private Map getO3VersionsOptionsMap(VersionsHelper versionsHelper, - String optionTemplate) { + String optionTemplate) { Map optionsMap = new LinkedHashMap<>(); { - Artifact artifact = new Artifact("distro-emr-configuration", "3.0.0-SNAPSHOT", "org.openmrs", "zip"); + Artifact artifact = new Artifact("distro-emr-configuration", "3.0.0", "org.openmrs", "zip"); for (ArtifactVersion version : versionsHelper.getAllVersions(artifact, MAX_OPTIONS_SIZE)) { optionsMap.put(String.format(optionTemplate, version.toString()), artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + version); } @@ -797,10 +797,12 @@ private Map getO3VersionsOptionsMap(VersionsHelper versionsHelpe } { - Artifact artifact = new Artifact("referenceapplication-distro", "3.0.0-SNAPSHOT", "org.openmrs.distro", "zip"); + Artifact artifact = new Artifact("referenceapplication-distro", "3.0.0", "org.openmrs.distro", "zip"); for (ArtifactVersion version : versionsHelper.getAllVersions(artifact, MAX_OPTIONS_SIZE)) { - optionsMap.put(String.format(optionTemplate, version.toString()), artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + version); - + if (!version.toString().endsWith("-SNAPSHOT") && optionsMap.size() < MAX_OPTIONS_SIZE) { + optionsMap.put(String.format(optionTemplate, version), + artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + version); + } } } diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/VersionsHelper.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/VersionsHelper.java index ad0a8cf96..67f46a043 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/VersionsHelper.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/VersionsHelper.java @@ -2,6 +2,7 @@ import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.artifact.versioning.ComparableVersion; import org.apache.maven.execution.MavenSession; import org.apache.maven.project.MavenProject; import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException; @@ -11,6 +12,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; /** * Created by user on 27.05.16. @@ -69,13 +71,21 @@ private List getVersions(Artifact artifact){ public List getAllVersions(Artifact artifact, int maxSize) { List versions = getVersions(artifact); sortDescending(versions); + Optional firstNonSnapshotVersion = versions.stream() + .filter(version -> !version.toString().endsWith("-SNAPSHOT")) + .findFirst(); + + if (firstNonSnapshotVersion.isPresent()) { + ArtifactVersion firstNonSnapshot = firstNonSnapshotVersion.get(); + versions.removeIf(version -> version.toString().endsWith("-SNAPSHOT") + && new ComparableVersion(version.toString()).compareTo(new ComparableVersion(firstNonSnapshot.toString())) < 0); + } + return versions.subList(0, Math.min(versions.size(), maxSize)); } - @SuppressWarnings("unchecked") private void sortDescending(List versions){ - Collections.sort(versions); - Collections.reverse(versions); + Collections.sort(versions, (v1, v2) -> new ComparableVersion(v2.toString()).compareTo(new ComparableVersion(v1.toString()))); } /**