- Revision
- 1105
- Author
- mauro
- Date
- 2009-02-22 09:10:29 -0600 (Sun, 22 Feb 2009)
Log Message
Added stepdoc controller.
Modified Paths
- trunk/web/examples/trader-web/pom.xml
- trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java
- trunk/web/pom.xml
- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java
Added Paths
Diff
Modified: trunk/web/examples/trader-web/pom.xml (1104 => 1105)
--- trunk/web/examples/trader-web/pom.xml 2009-02-22 13:54:27 UTC (rev 1104) +++ trunk/web/examples/trader-web/pom.xml 2009-02-22 15:10:29 UTC (rev 1105) @@ -1,8 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> - <!-- - Copyright © 2007-2008 Mauro Talevi - All rights reserved ---> <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> <parent> @@ -20,7 +16,7 @@ <dependency> <groupId>org.jbehave.web</groupId> <artifactId>jbehave-web-waffle</artifactId> - <version>2.0-SNAPSHOT</version> + <version>${pom.version}</version> </dependency> </dependencies> <build>
Modified: trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java (1104 => 1105)
--- trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java 2009-02-22 13:54:27 UTC (rev 1104) +++ trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java 2009-02-22 15:10:29 UTC (rev 1105) @@ -1,7 +1,7 @@ package org.jbehave.web.examples.trader.scenarios; import static org.hamcrest.CoreMatchers.equalTo; -import static org.jbehave.util.JUnit4Ensure.ensureThat; +import static org.jbehave.Ensure.ensureThat; import java.util.List;
Modified: trunk/web/pom.xml (1104 => 1105)
--- trunk/web/pom.xml 2009-02-22 13:54:27 UTC (rev 1104) +++ trunk/web/pom.xml 2009-02-22 15:10:29 UTC (rev 1105) @@ -22,7 +22,7 @@ <dependency> <groupId>org.jbehave</groupId> <artifactId>jbehave-core</artifactId> - <version>2.1.1</version> + <version>2.2-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jmock</groupId>
Modified: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java (1104 => 1105)
--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java 2009-02-22 13:54:27 UTC (rev 1104) +++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java 2009-02-22 15:10:29 UTC (rev 1105) @@ -19,12 +19,14 @@ import org.jbehave.scenario.MostUsefulConfiguration; import org.jbehave.scenario.ScenarioRunner; import org.jbehave.scenario.parser.PatternScenarioParser; +import org.jbehave.scenario.steps.DefaultStepdocGenerator; import org.jbehave.scenario.steps.Steps; import org.jbehave.web.io.ArchivingFileManager; import org.jbehave.web.io.ZipFileArchiver; import org.jbehave.web.waffle.controllers.FileUploadController; import org.jbehave.web.waffle.controllers.FilesController; import org.jbehave.web.waffle.controllers.ScenarioController; +import org.jbehave.web.waffle.controllers.StepdocController; public class JBehaveRegistrar extends AbstractRegistrar { @@ -39,6 +41,7 @@ registerScenarioParser(); registerScenarioRunner(); registerSteps(); + registerStepdocGenerator(); registerFileManager(); register("data/files", FilesController.class); configureViews(); @@ -47,6 +50,7 @@ @Override public void session() { register("scenario/scenario", ScenarioController.class); + register("scenario/stepdoc", StepdocController.class); } @Override @@ -63,7 +67,7 @@ protected Menu createMenu() { Map<String, List<String>> content = new HashMap<String, List<String>>(); - content.put("Menu", asList("Home:home", "Data Files:data/files", "Data Upload:data/upload", "Run Scenario:scenario/scenario")); + content.put("Menu", asList("Home:home", "Data Files:data/files", "Data Upload:data/upload", "Run Scenario:scenario/scenario", "Stepdoc:scenario/stepdoc")); return new Menu(content); } @@ -73,6 +77,7 @@ viewResolver.configureView("data/files", "ftl/data/files"); viewResolver.configureView("data/upload", "ftl/data/upload"); viewResolver.configureView("scenario/scenario", "ftl/scenario/scenario"); + viewResolver.configureView("scenario/stepdoc", "ftl/scenario/stepdoc"); } protected void registerConfiguration() { @@ -91,11 +96,14 @@ register(Steps.class); } + protected void registerStepdocGenerator() { + register(DefaultStepdocGenerator.class); + } + protected void registerFileManager() { register(ZipFileArchiver.class); register(ArchivingFileManager.class); registerInstance("uploadDirectory", new File(getProperty("java.io.tmpdir")+separator+"upload")); } - }
Added: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java (0 => 1105)
--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java (rev 0) +++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java 2009-02-22 15:10:29 UTC (rev 1105) @@ -0,0 +1,43 @@ +package org.jbehave.web.waffle.controllers; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang.builder.ToStringBuilder; +import org.jbehave.scenario.steps.Stepdoc; + +public class StepdocContext { + + private List<Stepdoc> stepdocs = new ArrayList<Stepdoc>(); + private boolean methodsShown = false; + + public StepdocContext() { + } + + public List<Stepdoc> getStepdocs() { + return stepdocs; + } + + public void addStepdocs(List<Stepdoc> stepdocs){ + this.stepdocs.addAll(stepdocs); + } + + public void clearStepdocs(){ + this.stepdocs.clear(); + } + + public boolean isMethodsShown() { + return methodsShown; + } + + public void setMethodsShown(boolean methodsShown) { + this.methodsShown = methodsShown; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + +}
Added: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java (0 => 1105)
--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java (rev 0) +++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java 2009-02-22 15:10:29 UTC (rev 1105) @@ -0,0 +1,38 @@ +package org.jbehave.web.waffle.controllers; + +import org.codehaus.waffle.action.annotation.ActionMethod; +import org.codehaus.waffle.menu.Menu; +import org.codehaus.waffle.menu.MenuAwareController; +import org.jbehave.scenario.steps.StepdocGenerator; +import org.jbehave.scenario.steps.Steps; + +public class StepdocController extends MenuAwareController { + + private final StepdocGenerator stepdocGenerator; + private final Steps steps; + + private StepdocContext stepdocContext; + + public StepdocController(Menu menu, StepdocGenerator stepdocGenerator, + Steps steps) { + super(menu); + this.stepdocGenerator = stepdocGenerator; + this.steps = steps; + this.stepdocContext = new StepdocContext(); + } + + @ActionMethod(asDefault = true) + public void generate() { + stepdocContext.clearStepdocs(); + stepdocContext.addStepdocs(stepdocGenerator.generate(steps.getClass())); + } + + public StepdocContext getStepdocContext() { + return stepdocContext; + } + + public void setStepdocContext(StepdocContext stepdocContext) { + this.stepdocContext = stepdocContext; + } + +}
Added: trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl (0 => 1105)
--- trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl (rev 0) +++ trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl 2009-02-22 15:10:29 UTC (rev 1105) @@ -0,0 +1,41 @@ +<#import "/ftl/waffle/i18n.ftl" as i> +<#import "/ftl/waffle/form.ftl" as w> +<html xmlns="http://www.w3.org/1999/xhtml"> +<body> +<head> + <title><@i.messageFor "scenarioRunner" "Scenario Runner"/></title> +</head> +<#include "/ftl/navigation.ftl" parse="true"> +<div id="content"> + <form action="" + + <#assign stepdocs = stepdocContext.stepdocs /> + <#assign methodsShown = stepdocContext.methodsShown /> + <#if (stepdocs.size() > 0) > + <div id="stepdocs"> + <fieldset> + <legend><@i.messageFor "stepdocs" "Stepdocs"/></legend> + <p> + <pre class="brush: plain"> + <#list stepdocs as stepdoc> + ${stepdoc.annotation.simpleName} ${stepdoc.pattern} + <#assign aliases = stepdoc.aliasPatterns /> + <#if (aliases.size() > 0) > + <#list aliases as alias> + ${alias} + </#list> + </#if> + <#if (methodsShown) > + ${stepdoc.method} + </#if> + </#list> + </pre> + </p> + </fieldset> + </div> + </#if> + + </form> +</div> +</body> +</html> \ No newline at end of file
To unsubscribe from this list please visit:
