- Revision
- 1601
- Author
- mauro
- Date
- 2010-03-13 14:16:02 -0600 (Sat, 13 Mar 2010)
Log Message
JBEHAVE-245: Only include scenarios classes that are not abstract.
Modified Paths
Diff
Modified: trunk/core/jbehave-ant/src/main/java/org/jbehave/ant/AbstractScenarioTask.java (1600 => 1601)
--- trunk/core/jbehave-ant/src/main/java/org/jbehave/ant/AbstractScenarioTask.java 2010-03-13 18:38:14 UTC (rev 1600) +++ trunk/core/jbehave-ant/src/main/java/org/jbehave/ant/AbstractScenarioTask.java 2010-03-13 20:16:02 UTC (rev 1601) @@ -4,6 +4,7 @@ import static org.apache.tools.ant.Project.MSG_DEBUG; import static org.apache.tools.ant.Project.MSG_INFO; +import java.lang.reflect.Modifier; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.List; @@ -155,7 +156,9 @@ List<RunnableScenario> scenarios = new ArrayList<RunnableScenario>(); for (String name : names) { try { - scenarios.add(scenarioFor(classLoader, name)); + if (!isScenarioAbstract(classLoader, name)) { + scenarios.add(scenarioFor(classLoader, name)); + } } catch (Exception e) { throw new BuildException("Failed to instantiate scenario '" + name + "'", e); } @@ -163,6 +166,10 @@ return scenarios; } + private boolean isScenarioAbstract(ScenarioClassLoader classLoader, String name) throws ClassNotFoundException { + return Modifier.isAbstract(classLoader.loadClass(name).getModifiers()); + } + private RunnableScenario scenarioFor(ScenarioClassLoader classLoader, String name) { if ( classLoaderInjected ){ return classLoader.newScenario(name, ClassLoader.class);
To unsubscribe from this list please visit:
