Title: [1597] trunk/core/jbehave-maven-plugin/src/main/java/org/jbehave/mojo/AbstractScenarioMojo.java: no need to process scenarios that are abstract
Revision
1597
Author
paul
Date
2010-03-13 09:58:41 -0600 (Sat, 13 Mar 2010)

Log Message

no need to process scenarios that are abstract

Modified Paths


Diff

Modified: trunk/core/jbehave-maven-plugin/src/main/java/org/jbehave/mojo/AbstractScenarioMojo.java (1596 => 1597)

--- trunk/core/jbehave-maven-plugin/src/main/java/org/jbehave/mojo/AbstractScenarioMojo.java	2010-03-09 07:47:27 UTC (rev 1596)
+++ trunk/core/jbehave-maven-plugin/src/main/java/org/jbehave/mojo/AbstractScenarioMojo.java	2010-03-13 15:58:41 UTC (rev 1597)
@@ -1,15 +1,16 @@
 package org.jbehave.mojo;
 
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.jbehave.scenario.RunnableScenario;
 import org.jbehave.scenario.ScenarioClassLoader;
 import org.jbehave.scenario.parser.ScenarioClassNameFinder;
 
+import java.lang.reflect.Modifier;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Abstract mojo that holds all the configuration parameters to specify and load
  * scenarios.
@@ -195,7 +196,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 MojoExecutionException("Failed to instantiate scenario '" + name + "'", e);
             }
@@ -203,6 +206,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