Skip to content

Commit

Permalink
O3-3434: SDK Command: Remove dependencies from distro.properties
Browse files Browse the repository at this point in the history
  • Loading branch information
wikumChamith committed Aug 27, 2024
1 parent 0285a8c commit 5237645
Show file tree
Hide file tree
Showing 4 changed files with 120 additions and 0 deletions.
4 changes: 4 additions & 0 deletions integration-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,9 @@
<artifactId>hamcrest-library</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.openmrs.maven.plugins;

import org.apache.maven.plugin.MojoExecutionException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openmrs.maven.plugins.model.DistroProperties;
import org.openmrs.maven.plugins.utility.DistroHelper;

import java.io.File;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

public class RemoveDependencyTest extends AbstractSdkIntegrationTest {

private String distroFile;


private DistroProperties originalProperties;

@Before
public void setUp() {
distroFile = testDirectory + File.separator + "openmrs-distro.properties";
originalProperties = DistroHelper.getDistroPropertiesFromFile(new File(distroFile));
}

@Test
public void shouldRemoveExistingDependency() throws Exception {
DistroProperties distroProperties = DistroHelper.getDistroPropertiesFromFile(new File(distroFile));
assertNotNull(distroProperties);

assertTrue(distroProperties.getAllKeys().contains("omod.uicommons"));

addTaskParam("distro", distroFile);
addTaskParam("property", "omod.uicommons");

executeTask("rm-dependency");
assertSuccess();

distroProperties = DistroHelper.getDistroPropertiesFromFile(new File(distroFile));
assertFalse(distroProperties.getAllKeys().contains("omod.uicommons"));
}

@After
public void reset() throws MojoExecutionException {
originalProperties.saveTo(new File(distroFile).getParentFile());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package org.openmrs.maven.plugins;

import org.apache.commons.lang.StringUtils;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.openmrs.maven.plugins.model.DistroProperties;

import java.io.File;
import java.util.Properties;
import java.util.stream.Collectors;

@Mojo(name = "rm-dependency", requiresProject = false)
public class RemoveDependency extends AbstractTask {

/**
* Path to the openmrs-distro.properties file to modify
*/
@Parameter(property = "distro")
private String distro;

/**
* Name of the property you want to remove
*/
@Parameter(property = "property")
private String property;

@Override
public void executeTask() throws MojoExecutionException, MojoFailureException {

if (distro == null) {
File userDir = new File(System.getProperty("user.dir"));
File distroFile = new File(userDir, DistroProperties.DISTRO_FILE_NAME);
if (distroFile.exists()) {
distro = distroFile.getAbsolutePath();
}
}

Properties properties = new Properties();

if(StringUtils.isNotBlank(distro)) {
properties = distroHelper.resolveDistroPropertiesForStringSpecifier(distro, versionsHelper).getProperties();

}

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()));
}

if (StringUtils.isNotBlank(property)) {
if(!properties.containsKey(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());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,10 @@ public List<String> getExclusions() {
return Arrays.asList(exclusions.split(","));
}

public Properties getProperties() {
return properties;
}

private String getPlaceholderKey(String string){
int startIndex = string.indexOf("${")+2;
int endIndex = string.indexOf("}", startIndex);
Expand Down

0 comments on commit 5237645

Please sign in to comment.