From e11c01cde7dcc171c01c0987b85d9b77a065823a Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 30 Jan 2013 15:13:12 -0500 Subject: [PATCH] 362362951c regressed handling of optional dependencies. --- .../java/org/jvnet/hudson/test/HudsonTestCase.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java b/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java index 1acb0b7f60..5bf2722b2e 100644 --- a/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java +++ b/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java @@ -1467,10 +1467,22 @@ public abstract class HudsonTestCase extends TestCase implements RootAction { if(dependencies!=null) { MavenEmbedder embedder = MavenUtil.createEmbedder(new StreamTaskListener(System.out,Charset.defaultCharset()),(File)null,null); for( String dep : dependencies.split(",")) { + String suffix = ";resolution:=optional"; + boolean optional = dep.endsWith(suffix); + if (optional) { + dep = dep.substring(0, dep.length() - suffix.length()); + } String[] tokens = dep.split(":"); String artifactId = tokens[0]; String version = tokens[1]; File dependencyJar=resolveDependencyJar(embedder,artifactId,version); + if (dependencyJar == null) { + if (optional) { + System.err.println("cannot resolve optional dependency " + dep + " of " + shortName + "; skipping"); + continue; + } + throw new IOException("Could not resolve " + dep); + } File dst = new File(home, "plugins/" + artifactId + ".jpi"); if(!dst.exists() || dst.lastModified()!=dependencyJar.lastModified()) { -- GitLab