- 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
- trunk/.classpath
- trunk/.project
- trunk/plugins/maven/src/it/pom.xml
- trunk/plugins/maven/src/it/test1/pom.xml
- trunk/plugins/maven/src/main/java/org/jbehave/mojo/BehaviourRunnerMojo.java
Added Paths
- trunk/lib/plugins/
- trunk/lib/plugins/maven-plugin-api-2.0.jar
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserRunsTest.java
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/ATestToBeRun.java
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/it.story
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/ATestIsRunSuccessfully.java
- trunk/plugins/maven/src/it/test2/
- trunk/plugins/maven/src/it/test2/pom.xml
- trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryRunnerMojo.java
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)
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:
