From 96d86f5f30d71e884e6be10046dd31d3b017b38c Mon Sep 17 00:00:00 2001 From: Wikum Weerakutti Date: Wed, 28 Aug 2024 22:07:55 +0530 Subject: [PATCH] O3-3434: SDK Command: Remove dependencies from distro.properties --- integration-tests/pom.xml | 4 ---- .../maven/plugins/RemoveDependency.java | 24 +++++++++++-------- .../maven/plugins/model/DistroProperties.java | 8 +++++-- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 07986a2b..7c785992 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -42,9 +42,5 @@ hamcrest-library test - - org.mockito - mockito-core - diff --git a/maven-plugin/src/main/java/org/openmrs/maven/plugins/RemoveDependency.java b/maven-plugin/src/main/java/org/openmrs/maven/plugins/RemoveDependency.java index 726ff58f..cf65f35d 100644 --- a/maven-plugin/src/main/java/org/openmrs/maven/plugins/RemoveDependency.java +++ b/maven-plugin/src/main/java/org/openmrs/maven/plugins/RemoveDependency.java @@ -8,10 +8,9 @@ import org.openmrs.maven.plugins.model.DistroProperties; import java.io.File; -import java.util.Properties; -import java.util.stream.Collectors; +import java.util.ArrayList; -@Mojo(name = "rm-dependency", requiresProject = false) +@Mojo(name = "remove", requiresProject = false) public class RemoveDependency extends AbstractTask { /** @@ -34,28 +33,33 @@ public void executeTask() throws MojoExecutionException, MojoFailureException { File distroFile = new File(userDir, DistroProperties.DISTRO_FILE_NAME); if (distroFile.exists()) { distro = distroFile.getAbsolutePath(); + } else { + throw new MojoFailureException("Please specify a distro file"); } } - Properties properties = new Properties(); + DistroProperties properties = null; if (StringUtils.isNotBlank(distro)) { - properties = distroHelper.resolveDistroPropertiesForStringSpecifier(distro, versionsHelper).getProperties(); + properties = distroHelper.resolveDistroPropertiesForStringSpecifier(distro, versionsHelper); } + if (properties == null) { + throw new MojoFailureException("Invalid distro file"); + } + if (StringUtils.isBlank(property)) { property = wizard.promptForMissingValueWithOptions("Enter the property you want to remove", - null, null, properties.keySet().stream().map(prop -> (String) prop).collect(Collectors.toList())); + null, null, new ArrayList<>(properties.getPropertyNames())); } if (StringUtils.isNotBlank(property)) { - if (!properties.containsKey(property)) { + if (!properties.getPropertyNames().contains(property)) { throw new MojoExecutionException("The property " + property + " was not found in the distro"); } - properties.remove(property); - DistroProperties distroProperties = new DistroProperties(properties); - distroProperties.saveTo(new File(distro).getParentFile()); + properties.removeProperty(property); + properties.saveTo(new File(distro).getParentFile()); } } } diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/model/DistroProperties.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/model/DistroProperties.java index d57ddad1..9c6f8b7e 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/model/DistroProperties.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/model/DistroProperties.java @@ -271,8 +271,12 @@ public List getExclusions() { return Arrays.asList(exclusions.split(",")); } - public Properties getProperties() { - return properties; + public Set getPropertyNames() { + return properties.stringPropertyNames(); + } + + public void removeProperty(String property) { + properties.remove(property); } private String getPlaceholderKey(String string){