Skip to content

Commit

Permalink
Merge pull request #295 from dwnusbaum/avoid-duplicate-dependencies
Browse files Browse the repository at this point in the history
Do not duplicate dependencies whose versions are specified using a property
  • Loading branch information
raul-arabaolaza authored Aug 28, 2021
2 parents 3b786ab + e1e0ea0 commit 162dffc
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ public void addDependencies(Map<String, VersionNumber> toAdd, Map<String, Versio
properties.remove(propertyToUpdate);
propertyToUpdate.setText(replacement.toString());
properties.add(propertyToUpdate);
toReplaceUsed.put(trimmedArtifactId, replacement);
continue;
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,23 @@ public void transformPOMwithSpecialCharacters() throws Exception {
assertResourceEqualsXmlFile("demo-plugin-pom-after.xml", pomFile);
}

@Test
public void doNotDuplicateDependenciesWhoseVersionsAreProperties() throws Exception {
File folder = tmp.newFolder();
File pomFile = createPomFileFromResource(folder, "demo-plugin-properties-pom-before.xml");
Map<String, VersionNumber> toAdd = new HashMap<>();
Map<String, VersionNumber> toReplace = new HashMap<>();
toReplace.put("workflow-step-api", new VersionNumber("2.24"));
Map<String, VersionNumber> toAddTest = new HashMap<>();
Map<String, VersionNumber> toReplaceTest = new HashMap<>();
VersionNumber coreDep = new VersionNumber("2.303.1");
Map<String, String> pluginGroupIds = new HashMap<>();
pluginGroupIds.put("workflow-step-api", "org.jenkins-ci.plugins.workflow");
List<String> toConvert = Collections.emptyList();
new MavenPom(folder).addDependencies(toAdd, toReplace, toAddTest, toReplaceTest, coreDep, pluginGroupIds, toConvert);
assertResourceEqualsXmlFile("demo-plugin-properties-pom-after.xml", pomFile);
}

private void assertResourceEqualsXmlFile(String resource, File pom) throws IOException {
Charset charset = Charset.forName("UTF-8");
assertEquals(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.43</version>
<relativePath/>
</parent>
<groupId>io.jenkins.plugins</groupId>
<artifactId>demo-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>TODO Plugin</name>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</pluginRepository>
</pluginRepositories>
<properties>
<jenkins.version>2.289.3</jenkins.version>
<java.level>8</java.level>
<workflow-step-api-plugin.version>2.24</workflow-step-api-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>${workflow-step-api-plugin.version}</version>
<scope>optional</scope>
</dependency>
<!--SYNTHETIC-->
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.43</version>
<relativePath/>
</parent>
<groupId>io.jenkins.plugins</groupId>
<artifactId>demo-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>TODO Plugin</name>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</pluginRepository>
</pluginRepositories>
<properties>
<jenkins.version>2.289.3</jenkins.version>
<java.level>8</java.level>
<workflow-step-api-plugin.version>2.20</workflow-step-api-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>${workflow-step-api-plugin.version}</version>
<scope>optional</scope>
</dependency>
</dependencies>
</project>

0 comments on commit 162dffc

Please sign in to comment.