Merge branch '1.0.x'
This commit is contained in:
commit
2fec9c4790
|
@ -49,7 +49,7 @@ import org.springframework.boot.cli.compiler.DependencyResolutionContext;
|
|||
* A {@link GrapeEngine} implementation that uses <a
|
||||
* href="http://eclipse.org/aether">Aether</a>, the dependency resolution system used by
|
||||
* Maven.
|
||||
*
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Phillip Webb
|
||||
*/
|
||||
|
@ -171,13 +171,27 @@ public class AetherGrapeEngine implements GrapeEngine {
|
|||
String group = (String) dependencyMap.get("group");
|
||||
String module = (String) dependencyMap.get("module");
|
||||
String version = (String) dependencyMap.get("version");
|
||||
String classifier = (String) dependencyMap.get("classifier");
|
||||
String type = determineType(dependencyMap);
|
||||
|
||||
return new DefaultArtifact(group, module, classifier, type, version);
|
||||
}
|
||||
|
||||
private String determineType(Map<?, ?> dependencyMap) {
|
||||
String type = (String) dependencyMap.get("type");
|
||||
String ext = (String) dependencyMap.get("ext");
|
||||
|
||||
if (type == null) {
|
||||
type = "jar";
|
||||
type = ext;
|
||||
if (type == null) {
|
||||
type = "jar";
|
||||
}
|
||||
}
|
||||
|
||||
return new DefaultArtifact(group, module, type, version);
|
||||
else if (ext != null && !type.equals(ext)) {
|
||||
throw new IllegalArgumentException(
|
||||
"If both type and ext are specified they must have the same value");
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
private boolean isTransitive(Map<?, ?> dependencyMap) {
|
||||
|
|
|
@ -19,7 +19,9 @@ package org.springframework.boot.cli.compiler.grape;
|
|||
import groovy.lang.GroovyClassLoader;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -34,7 +36,7 @@ import static org.junit.Assert.assertTrue;
|
|||
|
||||
/**
|
||||
* Tests for {@link AetherGrapeEngine}.
|
||||
*
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
public class AetherGrapeEngineTests {
|
||||
|
@ -113,6 +115,53 @@ public class AetherGrapeEngineTests {
|
|||
assertEquals(1, this.groovyClassLoader.getURLs().length);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void differingTypeAndExt() {
|
||||
Map<String, Object> dependency = createDependency("org.grails",
|
||||
"grails-dependencies", "2.4.0");
|
||||
dependency.put("type", "foo");
|
||||
dependency.put("ext", "bar");
|
||||
this.grapeEngine.grab(Collections.emptyMap(), dependency);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pomDependencyResolutionViaType() {
|
||||
Map<String, Object> args = new HashMap<String, Object>();
|
||||
Map<String, Object> dependency = createDependency("org.springframework",
|
||||
"spring-framework-bom", "4.0.5.RELEASE");
|
||||
dependency.put("type", "pom");
|
||||
this.grapeEngine.grab(args, dependency);
|
||||
URL[] urls = this.groovyClassLoader.getURLs();
|
||||
assertEquals(1, urls.length);
|
||||
assertTrue(urls[0].toExternalForm().endsWith(".pom"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pomDependencyResolutionViaExt() {
|
||||
Map<String, Object> args = new HashMap<String, Object>();
|
||||
Map<String, Object> dependency = createDependency("org.springframework",
|
||||
"spring-framework-bom", "4.0.5.RELEASE");
|
||||
dependency.put("ext", "pom");
|
||||
this.grapeEngine.grab(args, dependency);
|
||||
URL[] urls = this.groovyClassLoader.getURLs();
|
||||
assertEquals(1, urls.length);
|
||||
assertTrue(urls[0].toExternalForm().endsWith(".pom"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolutionWithClassifier() {
|
||||
Map<String, Object> args = new HashMap<String, Object>();
|
||||
|
||||
Map<String, Object> dependency = createDependency("org.springframework",
|
||||
"spring-jdbc", "3.2.4.RELEASE", false);
|
||||
dependency.put("classifier", "sources");
|
||||
this.grapeEngine.grab(args, dependency);
|
||||
|
||||
URL[] urls = this.groovyClassLoader.getURLs();
|
||||
assertEquals(1, urls.length);
|
||||
assertTrue(urls[0].toExternalForm().endsWith("-sources.jar"));
|
||||
}
|
||||
|
||||
private Map<String, Object> createDependency(String group, String module,
|
||||
String version) {
|
||||
Map<String, Object> dependency = new HashMap<String, Object>();
|
||||
|
|
Loading…
Reference in New Issue