Title: [684] trunk: Added goal run-story to maven plugin.
Revision
684
Author
mauro
Date
2007-02-04 12:23:52 -0600 (Sun, 04 Feb 2007)

Log Message

Added goal run-story to maven plugin.
Renamed goal run to run-behaviours.

Modified Paths

Added Paths

Diff

Modified: trunk/.classpath (683 => 684)

--- trunk/.classpath	2007-02-04 16:23:53 UTC (rev 683)
+++ trunk/.classpath	2007-02-04 18:23:52 UTC (rev 684)
@@ -1,39 +1,43 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="core/src/java"/>
-	<classpathentry kind="src" path="core/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/ant/src/java"/>
-	<classpathentry kind="src" path="extensions/ant/src/behaviour"/>
-    <classpathentry kind="src" path="extensions/classmocks/src/behaviour"/>
-    <classpathentry kind="src" path="extensions/classmocks/src/java"/>
-	<classpathentry kind="src" path="extensions/jmock/src/java"/>
-	<classpathentry kind="src" path="extensions/jmock/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/junit/src/java"/>
-	<classpathentry kind="src" path="extensions/junit/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/swing/src/java"/>
-	<classpathentry kind="src" path="extensions/swing/src/behaviour"/>
-	<classpathentry kind="src" path="everything/src/behaviour"/>
-	<classpathentry kind="src" path="examples/atm/src/java"/>
-	<classpathentry kind="src" path="examples/atm/src/stories"/>
-	<classpathentry kind="src" path="examples/currency/src/java"/>
-	<classpathentry kind="src" path="examples/currency/src/behaviour"/>
-	<classpathentry kind="src" path="examples/hellbound/src/java"/>
-	<classpathentry kind="src" path="examples/hellbound/src/behaviour"/>
-	<classpathentry kind="src" path="examples/hellbound/src/stories"/>
-	<classpathentry kind="src" path="sandbox/antlr/src/java"/>
-    <classpathentry kind="src" path="sandbox/fit/src/java"/>
-    <classpathentry kind="src" path="sandbox/fit/src/test"/>
-	<classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/>
-	<classpathentry kind="lib" path="lib/cotta/cotta-1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="core/src/java"/>
+	<classpathentry kind="src" path="core/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/ant/src/java"/>
+	<classpathentry kind="src" path="extensions/ant/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/classmocks/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/classmocks/src/java"/>
+	<classpathentry kind="src" path="extensions/jmock/src/java"/>
+	<classpathentry kind="src" path="extensions/jmock/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/junit/src/java"/>
+	<classpathentry kind="src" path="extensions/junit/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/swing/src/java"/>
+	<classpathentry kind="src" path="extensions/swing/src/behaviour"/>
+	<classpathentry kind="src" path="everything/src/behaviour"/>
+	<classpathentry kind="src" path="examples/atm/src/java"/>
+	<classpathentry kind="src" path="examples/atm/src/stories"/>
+	<classpathentry kind="src" path="examples/currency/src/java"/>
+	<classpathentry kind="src" path="examples/currency/src/behaviour"/>
+	<classpathentry kind="src" path="examples/hellbound/src/java"/>
+	<classpathentry kind="src" path="examples/hellbound/src/behaviour"/>
+	<classpathentry kind="src" path="examples/hellbound/src/stories"/>
+	<classpathentry kind="src" path="sandbox/antlr/src/java"/>
+	<classpathentry kind="src" path="sandbox/fit/src/java"/>
+	<classpathentry kind="src" path="sandbox/fit/src/test"/>
+	<classpathentry kind="src" path="plugins/maven/src/main/java"/>
+	<classpathentry kind="src" path="plugins/maven/src/it/src/main/java"/>
+	<classpathentry kind="lib" path="lib/cotta/cotta-1.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/>
+	<classpathentry kind="lib" path="lib/plugins/maven-plugin-api-2.0.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Modified: trunk/.project (683 => 684)

--- trunk/.project	2007-02-04 16:23:53 UTC (rev 683)
+++ trunk/.project	2007-02-04 18:23:52 UTC (rev 684)
@@ -1,17 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>jbehave</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jbehave</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Added: trunk/lib/plugins/maven-plugin-api-2.0.jar

(Binary files differ)
Property changes on: trunk/lib/plugins/maven-plugin-api-2.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream

Modified: trunk/plugins/maven/src/it/pom.xml (683 => 684)

--- trunk/plugins/maven/src/it/pom.xml	2007-02-04 16:23:53 UTC (rev 683)
+++ trunk/plugins/maven/src/it/pom.xml	2007-02-04 18:23:52 UTC (rev 684)
@@ -10,7 +10,8 @@
 	<name>jBehave Maven Plugin Integration Test Reactor</name>
 
 	<modules>
-		<module>test1</module>
+        <module>test1</module>
+        <module>test2</module>
 	</modules>
 
 </project>

Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserRunsTest.java (0 => 684)

--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserRunsTest.java	                        (rev 0)
+++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserRunsTest.java	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,13 @@
+package org.jbehave.it.stories.events;
+
+import org.jbehave.core.minimock.story.domain.EventUsingMiniMock;
+import org.jbehave.core.story.domain.World;
+
+public class UserRunsTest extends EventUsingMiniMock {
+
+    public void occurIn(World world) {
+        world.put("TestKey", "AnotherValue");
+        System.out.println("When "+UserRunsTest.class.getName());
+    }
+
+}

Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/ATestToBeRun.java (0 => 684)

--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/ATestToBeRun.java	                        (rev 0)
+++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/ATestToBeRun.java	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,13 @@
+package org.jbehave.it.stories.givens;
+
+import org.jbehave.core.minimock.story.domain.GivenUsingMiniMock;
+import org.jbehave.core.story.domain.World;
+
+public class ATestToBeRun extends GivenUsingMiniMock {
+
+    public void setUp(World world) {
+        world.put("TestKey", "TestValue");
+        System.out.println("Given "+ATestToBeRun.class.getName());        
+    }
+
+}

Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/it.story (0 => 684)

--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/it.story	                        (rev 0)
+++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/it.story	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,5 @@
+Title: User runs integration test
+Scenario: User runs test successfully
+Given a test to be run
+When user runs test
+Then a test is run successfully

Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/ATestIsRunSuccessfully.java (0 => 684)

--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/ATestIsRunSuccessfully.java	                        (rev 0)
+++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/ATestIsRunSuccessfully.java	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,13 @@
+package org.jbehave.it.stories.outcomes;
+
+import org.jbehave.core.minimock.story.domain.OutcomeUsingMiniMock;
+import org.jbehave.core.story.domain.World;
+
+public class ATestIsRunSuccessfully extends OutcomeUsingMiniMock {
+
+    public void verify(World world) {
+        ensureThat(world.get("TestKey"), isNotNull());
+        System.out.println("Then "+ATestIsRunSuccessfully.class.getName());
+    }
+
+}

Modified: trunk/plugins/maven/src/it/test1/pom.xml (683 => 684)

--- trunk/plugins/maven/src/it/test1/pom.xml	2007-02-04 16:23:53 UTC (rev 683)
+++ trunk/plugins/maven/src/it/test1/pom.xml	2007-02-04 18:23:52 UTC (rev 684)
@@ -21,17 +21,17 @@
 		<sourceDirectory>${basedir}/../src/main</sourceDirectory>
 		<plugins>
 			<plugin>
-				<groupId>org.codehaus.jbehave</groupId>
+				<groupId>org.jbehave</groupId>
 				<artifactId>jbehave-maven-plugin</artifactId>
 				<executions>				
 					<execution>
-						<id>run</id>
+						<id>run-behaviours</id>
 						<phase>integration-test</phase>
 						<configuration>
-							<behavioursClassName>jbehave.it.ItBehaviours</behavioursClassName>
+							<behavioursClassName>org.jbehave.it.ItBehaviours</behavioursClassName>
 						</configuration>		
 						<goals>
-							<goal>run</goal>
+							<goal>run-behaviours</goal>
 						</goals>
 					</execution>
 				</executions>

Added: trunk/plugins/maven/src/it/test2/pom.xml (0 => 684)

--- trunk/plugins/maven/src/it/test2/pom.xml	                        (rev 0)
+++ trunk/plugins/maven/src/it/test2/pom.xml	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,51 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>org.jbehave</groupId>
+	<artifactId>jbehave-maven-plugin-it-test2</artifactId>
+	<version>1.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<name>jBehave Maven Plugin Integration Test 2</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>${pom.groupId}</groupId>
+			<artifactId>jbehave</artifactId>
+			<version>${pom.version}</version>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<sourceDirectory>${basedir}/../src/main</sourceDirectory>
+        <resources>
+            <resource>
+                <directory>${basedir}/../src/main/java</directory>
+                <includes>
+                    <include>**/*.story</include>
+                </includes>
+            </resource>
+        </resources>        
+		<plugins>
+			<plugin>
+				<groupId>org.jbehave</groupId>
+				<artifactId>jbehave-maven-plugin</artifactId>
+				<executions>				
+					<execution>
+						<id>run-story</id>
+						<phase>integration-test</phase>
+						<configuration>
+							<storyPath>org/jbehave/it/stories/it.story</storyPath>
+                            <storyPackage>org.jbehave.it.stories</storyPackage>
+						</configuration>		
+						<goals>
+							<goal>run-story</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>				
+		</plugins>
+	</build>
+
+</project>

Modified: trunk/plugins/maven/src/main/java/org/jbehave/mojo/BehaviourRunnerMojo.java (683 => 684)

--- trunk/plugins/maven/src/main/java/org/jbehave/mojo/BehaviourRunnerMojo.java	2007-02-04 16:23:53 UTC (rev 683)
+++ trunk/plugins/maven/src/main/java/org/jbehave/mojo/BehaviourRunnerMojo.java	2007-02-04 18:23:52 UTC (rev 684)
@@ -11,10 +11,10 @@
 import org.apache.maven.plugin.MojoFailureException;
 
 /**
- * Mojo to run Behaviours via Main CLI
+ * Mojo to run Behaviours
  * 
  * @author Mauro Talevi
- * @goal run
+ * @goal run-behaviours
  */
 public class BehaviourRunnerMojo  extends AbstractMojo {
     

Added: trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryRunnerMojo.java (0 => 684)

--- trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryRunnerMojo.java	                        (rev 0)
+++ trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryRunnerMojo.java	2007-02-04 18:23:52 UTC (rev 684)
@@ -0,0 +1,82 @@
+package org.jbehave.mojo;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.MalformedURLException;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.jbehave.core.story.StoryBuilder;
+import org.jbehave.core.story.StoryRunner;
+import org.jbehave.core.story.codegen.domain.StoryDetails;
+import org.jbehave.core.story.codegen.parser.StoryParser;
+import org.jbehave.core.story.codegen.parser.TextStoryParser;
+import org.jbehave.core.story.domain.Story;
+
+/**
+ * Mojo to run a story 
+ * 
+ * @author Mauro Talevi
+ * @goal run-story
+ */
+public class StoryRunnerMojo  extends AbstractMojo {
+    
+    /**
+     * Compile classpath.
+     *
+     * @parameter _expression_="${project.compileClasspathElements}"
+     * @required
+     * @readonly
+     */
+    List classpathElements;
+    
+    /**
+     * @parameter
+     * @required true
+     */
+    String storyPath;
+
+    /**
+     * @parameter
+     * @required true
+     */
+    String storyPackage;
+
+    /** The story parser */
+    private StoryParser storyParser = new TextStoryParser();
+
+    /** The story runner */
+    private StoryRunner storyRunner = new StoryRunner();
+    
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        try {
+            getLog().debug("Running story "+ storyPath);
+            Story story = buildStory(storyPath, storyPackage);            
+            storyRunner.run(story);
+        } catch (Exception e) {
+            throw new MojoExecutionException("Failed to run story "+storyPath+" with package "+storyPackage, e);
+        }
+    }
+
+    private Story buildStory(String storyPath, String storyPackage) throws MalformedURLException {
+        StoryDetails storyDetails = storyParser.parseStory(getReader(storyPath));
+        return new StoryBuilder(storyDetails, storyPackage).story();
+    }
+
+    private Reader getReader(String resource) throws MalformedURLException {
+        BehavioursClassLoader cl = new BehavioursClassLoader(classpathElements);
+        return getReader(resource, cl);
+    }
+
+    protected Reader getReader(String resource, ClassLoader classLoader) {
+        InputStream is = classLoader.getResourceAsStream(resource);
+        if ( is == null ){
+            throw new NoSuchElementException("Resource "+resource+" not found in ClassLoader "+classLoader.getClass());
+        }
+        return new InputStreamReader(is);
+    }
+}


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to