Skip to content

Commit

Permalink
Implement loading effective dependency classifier and packaging
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-wyluda committed Sep 18, 2013
1 parent 1fa67e4 commit 017b3a1
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class GradleModelLoadUtil
private GradleModelLoadUtil()
{
}

/**
* Loads only direct model from given script.
*/
Expand Down Expand Up @@ -257,11 +257,41 @@ private static GradleDependency depFromNode(Node depNode)
String version = depNode.getSingle("version").getText().trim();
String config = depNode.getSingle("configuration").getText().trim();

return GradleDependencyBuilder.create()
GradleDependencyBuilder depBuilder = GradleDependencyBuilder.create()
.setGroup(group)
.setName(name)
.setVersion(version)
.setConfigurationName(config);

depBuilder = loadClassifierAndPackagingFromNode(depBuilder, depNode);

return depBuilder;
}

private static GradleDependencyBuilder loadClassifierAndPackagingFromNode(
GradleDependencyBuilder depBuilder,
Node depNode)
{
Node artifactsNode = depNode.getSingle("artifacts");
Node artifactNode = artifactsNode != null ? artifactsNode.getSingle("artifact") : null;

if (artifactNode != null)
{
String classifier = artifactNode.getSingle("classifier").getText().trim();
String type = artifactNode.getSingle("type").getText().trim();

if (!Strings.isNullOrEmpty(classifier))
{
depBuilder = depBuilder.setClassifier(classifier);
}

if (!Strings.isNullOrEmpty(type))
{
depBuilder = depBuilder.setPackaging(type);
}
}

return depBuilder;
}

private static List<GradlePlugin> pluginsFromNode(Node projectNode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,26 @@ else if (dependsOn.getName().equals("test"))
public void testEffectiveDependencies()
{
assertTrue(model.hasEffectiveDependency(GradleDependencyBuilder.create()
.setGroup("org.gradle").setName("gradle-tooling-api").setVersion("1.6")
.setConfiguration(GradleDependencyConfiguration.COMPILE)));
.setGroup("org.gradle")
.setName("gradle-tooling-api")
.setVersion("1.6")
.setConfiguration(GradleDependencyConfiguration.COMPILE)
.setClassifier("cl")
.setPackaging("ear")));

assertTrue(model.hasEffectiveDependency(GradleDependencyBuilder.create()
.setGroup("junit").setName("junit").setVersion("4.11")
.setConfiguration(GradleDependencyConfiguration.TEST_COMPILE)));
.setGroup("junit")
.setName("junit")
.setVersion("4.11")
.setConfiguration(GradleDependencyConfiguration.TEST_COMPILE)
.setPackaging("pom")));

assertTrue(model.hasEffectiveDependency(GradleDependencyBuilder.create()
.setGroup("x").setName("y").setVersion("z")
.setConfiguration(GradleDependencyConfiguration.TEST_RUNTIME)));
.setGroup("x")
.setName("y")
.setVersion("z")
.setConfiguration(GradleDependencyConfiguration.TEST_RUNTIME)
.setClassifier("clas")));

boolean gradleToolingSet = false, junitSet = false, xSet = false;
for (GradleDependency dep : model.getEffectiveDependencies())
Expand Down

0 comments on commit 017b3a1

Please sign in to comment.