Title: [1601] trunk/core/jbehave-ant/src/main/java/org/jbehave/ant/AbstractScenarioTask.java: JBEHAVE-245: Only include scenarios classes that are not abstract.
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:

http://xircles.codehaus.org/manage_email

Reply via email to