From 46009f4653f3ee7d9c0c105eecadce91b83221f2 Mon Sep 17 00:00:00 2001 From: "Lincoln Baxter, III" Date: Fri, 2 Aug 2013 18:31:09 -0400 Subject: [PATCH] Improve error message when addon version resolution fails. --- .../ForgeDeploymentScenarioGenerator.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/ForgeDeploymentScenarioGenerator.java b/test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/ForgeDeploymentScenarioGenerator.java index 65f9c166..a0bc6285 100644 --- a/test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/ForgeDeploymentScenarioGenerator.java +++ b/test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/ForgeDeploymentScenarioGenerator.java @@ -65,8 +65,10 @@ private Collection generateDependencyDeployments(Class version = resolveVersionFromPOM(classUnderTest, addon.name()); if (version == null) { - throw new IllegalStateException("Could not resolve the version for " + addon.name() - + ". Either specify the version for this test or add it to pom.xml"); + throw new IllegalStateException("Could not resolve the version for [" + addon.name() + + "]. Either specify the version for this @" + AddonDependency.class.getSimpleName() + + " in [" + classUnderTest.getName() + "] or add it to pom.xml located at [" + + getPomFileFor(classUnderTest) + "]"); } } else @@ -100,13 +102,7 @@ private String resolveVersionFromPOM(Class classUnderTest, String name) if (dependencyMap == null) { dependencyMap = new HashMap(); - URL resource = classUnderTest.getClassLoader().getResource(""); - if (resource == null) - { - throw new IllegalStateException("Could not find the pom.xml for class " + classUnderTest.getName()); - } - String directory = resource.getFile(); - File pomFile = findBuildDescriptor(directory); + File pomFile = getPomFileFor(classUnderTest); try { List dependencies = ProjectHelper.INSTANCE.resolveDependenciesFromPOM(pomFile); @@ -120,12 +116,25 @@ private String resolveVersionFromPOM(Class classUnderTest, String name) } catch (Exception e) { + // TODO log this instead? e.printStackTrace(); } } return dependencyMap.get(name); } + private File getPomFileFor(Class classUnderTest) + { + URL resource = classUnderTest.getClassLoader().getResource(""); + if (resource == null) + { + throw new IllegalStateException("Could not find the pom.xml for class " + classUnderTest.getName()); + } + String directory = resource.getFile(); + File pomFile = findBuildDescriptor(directory); + return pomFile; + } + private File findBuildDescriptor(String classLocation) { File pom = null;