- Revision
- 759
- Author
- mauro
- Date
- 2007-07-12 08:25:36 -0500 (Thu, 12 Jul 2007)
Log Message
JBEHAVE-95: Added StoryCodeGeneratorMojo to run generate-story-code goal.
Modified Paths
- trunk/core/src/java/org/jbehave/core/story/StoryLoader.java
- trunk/plugins/maven/pom.xml
- trunk/plugins/maven/src/it/pom.xml
- trunk/plugins/maven/src/main/java/org/jbehave/mojo/AbstractStoryMojo.java
Added Paths
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserExecutesCommand.java
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/generated.story
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/SomethingToBeDone.java
- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/CommandIsExecutedSuccessfully.java
- trunk/plugins/maven/src/it/test7/
- trunk/plugins/maven/src/it/test7/pom.xml
- trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryCodeGeneratorMojo.java
Removed Paths
Diff
Modified: trunk/core/src/java/org/jbehave/core/story/StoryLoader.java (758 => 759)
--- trunk/core/src/java/org/jbehave/core/story/StoryLoader.java 2007-07-12 09:55:04 UTC (rev 758) +++ trunk/core/src/java/org/jbehave/core/story/StoryLoader.java 2007-07-12 13:25:36 UTC (rev 759) @@ -26,8 +26,12 @@ this.storyParser = storyParser; } + public StoryDetails loadStoryDetails(String storyPath, String storyPackage) throws MalformedURLException { + return storyParser.parseStory(getReader(storyPath, classLoader)); + } + public Story loadStory(String storyPath, String storyPackage) throws MalformedURLException { - StoryDetails storyDetails = storyParser.parseStory(getReader(storyPath, classLoader)); + StoryDetails storyDetails = loadStoryDetails(storyPath, storyPackage); return new StoryBuilder(storyDetails, storyPackage, classLoader).story(); }
Modified: trunk/plugins/maven/pom.xml (758 => 759)
--- trunk/plugins/maven/pom.xml 2007-07-12 09:55:04 UTC (rev 758) +++ trunk/plugins/maven/pom.xml 2007-07-12 13:25:36 UTC (rev 759) @@ -21,11 +21,16 @@ <artifactId>maven-plugin-api</artifactId> <version>2.0</version> </dependency> - <dependency><!-- Only used for DirectoryScanner --> + <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.6.5</version> </dependency> + <dependency> + <groupId>velocity</groupId> + <artifactId>velocity-dep</artifactId> + <version>1.4</version> + </dependency> </dependencies> </project>
Modified: trunk/plugins/maven/src/it/pom.xml (758 => 759)
--- trunk/plugins/maven/src/it/pom.xml 2007-07-12 09:55:04 UTC (rev 758) +++ trunk/plugins/maven/src/it/pom.xml 2007-07-12 13:25:36 UTC (rev 759) @@ -16,6 +16,7 @@ <module>test4</module> <module>test5</module> <module>test6</module> + <module>test7</module> </modules> </project>
Deleted: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/another.story (758 => 759)
--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/another.story 2007-07-12 09:55:04 UTC (rev 758) +++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/another.story 2007-07-12 13:25:36 UTC (rev 759) @@ -1,5 +0,0 @@ -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/events/UserExecutesCommand.java (0 => 759)
--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserExecutesCommand.java (rev 0) +++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/events/UserExecutesCommand.java 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,12 @@ +package org.jbehave.it.stories.events; + +import org.jbehave.core.minimock.story.domain.EventUsingMiniMock; +import org.jbehave.core.story.domain.World; + +public class UserExecutesCommand extends EventUsingMiniMock { + + public void occurIn(World world) { + // TODO + } + +}
Copied: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/generated.story (from rev 752, trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/another.story) (0 => 759)
--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/generated.story (rev 0) +++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/generated.story 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,5 @@ +Title: User wants to do something +Scenario: User is able to do it +Given something to be done +When user executes command +Then command is executed successfully
Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/SomethingToBeDone.java (0 => 759)
--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/SomethingToBeDone.java (rev 0) +++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/givens/SomethingToBeDone.java 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,12 @@ +package org.jbehave.it.stories.givens; + +import org.jbehave.core.minimock.story.domain.GivenUsingMiniMock; +import org.jbehave.core.story.domain.World; + +public class SomethingToBeDone extends GivenUsingMiniMock { + + public void setUp(World world) { + // TODO + } + +}
Added: trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/CommandIsExecutedSuccessfully.java (0 => 759)
--- trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/CommandIsExecutedSuccessfully.java (rev 0) +++ trunk/plugins/maven/src/it/src/main/java/org/jbehave/it/stories/outcomes/CommandIsExecutedSuccessfully.java 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,12 @@ +package org.jbehave.it.stories.outcomes; + +import org.jbehave.core.minimock.story.domain.OutcomeUsingMiniMock; +import org.jbehave.core.story.domain.World; + +public class CommandIsExecutedSuccessfully extends OutcomeUsingMiniMock { + + public void verify(World world) { + // TODO + } + +}
Property changes: trunk/plugins/maven/src/it/test7
Name: svn:ignore
+ target
Added: trunk/plugins/maven/src/it/test7/pom.xml (0 => 759)
--- trunk/plugins/maven/src/it/test7/pom.xml (rev 0) +++ trunk/plugins/maven/src/it/test7/pom.xml 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,54 @@ +<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-test7</artifactId> + <version>1.1-SNAPSHOT</version> + <packaging>jar</packaging> + <name>jBehave Maven Plugin Integration Test 7</name> + + <dependencies> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>jbehave</artifactId> + <version>${pom.version}</version> + </dependency> + </dependencies> + + <build> + <sourceDirectory>${basedir}/../src/main/java</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>generate-code</id> + <phase>integration-test</phase> + <configuration> + <storyDirectory>org/jbehave/it/stories</storyDirectory> + <storyIncludes> + <storyInclude>generated.story</storyInclude> + </storyIncludes> + <storyPackage>org.jbehave.it.stories</storyPackage> + </configuration> + <goals> + <goal>generate-story-code</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project>
Modified: trunk/plugins/maven/src/main/java/org/jbehave/mojo/AbstractStoryMojo.java (758 => 759)
--- trunk/plugins/maven/src/main/java/org/jbehave/mojo/AbstractStoryMojo.java 2007-07-12 09:55:04 UTC (rev 758) +++ trunk/plugins/maven/src/main/java/org/jbehave/mojo/AbstractStoryMojo.java 2007-07-12 13:25:36 UTC (rev 759) @@ -118,7 +118,7 @@ } private List listStoryPaths() { - scanner.setBasedir( new File( getStorySourceDirectory(), storyDirectory ) ); + scanner.setBasedir( getStorySourceDirectory() ); getLog().debug( "Listing story paths from directory " + storyDirectory ); if ( storyIncludes != null ) { @@ -142,12 +142,16 @@ return storyPaths; } - private String getStorySourceDirectory() { + private String getRootSourceDirectory() { if ( isTestScope() ){ return testSourceDirectory; } return sourceDirectory; } + + protected File getStorySourceDirectory() { + return new File( getRootSourceDirectory(), storyDirectory ); + } public static class InvalidClassNameException extends RuntimeException { public InvalidClassNameException(String message, Throwable cause) {
Added: trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryCodeGeneratorMojo.java (0 => 759)
--- trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryCodeGeneratorMojo.java (rev 0) +++ trunk/plugins/maven/src/main/java/org/jbehave/mojo/StoryCodeGeneratorMojo.java 2007-07-12 13:25:36 UTC (rev 759) @@ -0,0 +1,52 @@ +package org.jbehave.mojo; + +import java.net.MalformedURLException; +import java.util.Iterator; +import java.util.List; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.jbehave.core.story.StoryLoader; +import org.jbehave.core.story.codegen.CodeGenerator; +import org.jbehave.core.story.codegen.domain.StoryDetails; +import org.jbehave.core.story.codegen.velocity.VelocityCodeGenerator; + +/** + * Mojo to generatore code for stories + * + * @author Mauro Talevi + * @goal generate-story-code + */ +public class StoryCodeGeneratorMojo extends AbstractStoryMojo { + + /** The code generator */ + private CodeGenerator generator; + + public void execute() throws MojoExecutionException, MojoFailureException { + generator = createCodeGenerator(); + String storyPackage = getStoryPackage(); + List storyPaths = getStoryPaths(); + try { + for ( Iterator i = storyPaths.iterator(); i.hasNext(); ){ + String storyPath = (String)i.next(); + generateStoryCode(storyPackage, storyPath); + } + } catch (Exception e) { + throw new MojoExecutionException("Failed to generate code for stories "+storyPaths+" with package "+storyPackage, e); + } + } + + //TODO To make code generator configurable the story source directory and package need to + // added to the StoryDetails parsed from the story representation + private CodeGenerator createCodeGenerator() { + return new VelocityCodeGenerator(getStorySourceDirectory().getPath(), getStoryPackage()); + } + + private void generateStoryCode(String storyPackage, String storyPath) throws MalformedURLException { + getLog().info("Generate code for story "+ storyPath+" using package "+storyPackage); + StoryLoader loader = getStoryLoader(); + StoryDetails storyDetails = loader.loadStoryDetails(storyPath, storyPackage); + generator.generateStory(storyDetails); + } + +}
To unsubscribe from this list please visit:
