summaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-06-14 12:15:06 +0200
committerjonmv <venstad@gmail.com>2022-06-14 12:15:06 +0200
commit0d961d34aa221d43473155148ca5976740549df6 (patch)
treee6c5c1f5aaccf9d733b10ac44b135020c90feed8 /bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java
parente0e3ff465fcec5bb6a7253da2cd6df82f9701066 (diff)
Handle multiple artifacts with different classifiers
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java')
-rw-r--r--bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java19
1 files changed, 9 insertions, 10 deletions
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java
index bd6151aea9f..65606633dee 100644
--- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java
+++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/util/TestBundleDependencyScopeTranslator.java
@@ -4,13 +4,17 @@ package com.yahoo.container.plugin.util;
import org.apache.maven.artifact.Artifact;
import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.function.Function;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toMap;
/**
* Translates the scope of dependencies when constructing a test bundle.
@@ -40,11 +44,12 @@ public class TestBundleDependencyScopeTranslator implements Artifacts.ScopeTrans
return Objects.requireNonNull(dependencyScopes.get(artifact), () -> "Could not lookup scope for " + artifact);
}
- public static TestBundleDependencyScopeTranslator from(Map<String, Artifact> dependencies, String rawConfig) {
+ public static TestBundleDependencyScopeTranslator from(Collection<Artifact> dependencies, String rawConfig) {
List<DependencyOverride> dependencyOverrides = toDependencyOverrides(rawConfig);
Map<Artifact, String> dependencyScopes = new HashMap<>();
- for (Artifact dependency : dependencies.values()) {
- dependencyScopes.put(dependency, getScopeForDependency(dependency, dependencyOverrides, dependencies));
+ Map<String, Artifact> dependenciesById = dependencies.stream().collect(toMap(Artifact::getId, Function.identity()));
+ for (Artifact dependency : dependencies) {
+ dependencyScopes.put(dependency, getScopeForDependency(dependency, dependencyOverrides, dependenciesById));
}
return new TestBundleDependencyScopeTranslator(dependencyScopes);
}
@@ -66,12 +71,6 @@ public class TestBundleDependencyScopeTranslator implements Artifacts.ScopeTrans
return new DependencyOverride(elements[0], elements[1], elements[2]);
}
- private static String stripVersionAndScope(String idInDependencyTrail) {
- int firstDelimiter = idInDependencyTrail.indexOf(':');
- int secondDelimiter = idInDependencyTrail.indexOf(':', firstDelimiter + 1);
- return idInDependencyTrail.substring(0, secondDelimiter);
- }
-
private static String getScopeForDependency(
Artifact dependency, List<DependencyOverride> overrides, Map<String, Artifact> otherArtifacts) {
String oldScope = dependency.getScope();
@@ -95,7 +94,7 @@ public class TestBundleDependencyScopeTranslator implements Artifacts.ScopeTrans
private static List<Artifact> dependencyTrailOf(Artifact artifact, Map<String, Artifact> otherArtifacts) {
return artifact.getDependencyTrail().stream()
.skip(1) // Maven project itself is the first entry
- .map(parentId -> otherArtifacts.get(stripVersionAndScope(parentId)))
+ .map(otherArtifacts::get)
.filter(Objects::nonNull)
.collect(toList());
}