## Example Modules

Examples are split into several modules, of which a few are standalone, while others (the trader examples) have minimal interdependency to avoid duplication and repetitions, which would increase maintainance overhead. The JBehave Core currently has the following examples (see running examples for instructions on how to run them and the the link to the source code):

- gameoflife: verifies multi-line scenarios behaviours
- gherkin: verifies parsing Gherkin-based features or stories
- groovy: verifies Groovy-based behaviour for writing steps
- jruby: verifies JRuby-based behaviour for writing steps
- scala: verifies Scala-based behaviour for writing steps
- google: verifies how stories can be retrived from Google Docs
- rest: verifies how stories can be retrived from REST APIs, e.g. wikis
- noughtsandcrosses: verifies GUI behaviours
- spring-security: verifies Spring-based security behaviours
- performance: verifies performance behaviour
- threads: verifies multi-threading behaviour
- trader: contains stories verifying the behaviour of multiple functionalities of JBehave
- trader-ant: runs trader example stories using Ant
- trader-annotations: extends trader example verifying configuration via annotations
- trader-urls: extends trader example verifying running stories accessible via URLs, including remote resources
- trader-maps: extends trader example verifying generation of story maps
- trader-stepdocs: extends trader example verifying generation of stepdocs
- trader-i18n: extends trader example verifying the writing of stories in different locales
- trader-testng: extends trader example verifying the running of stories using TestNG
- trader-guice: extends trader example verifying configuration using Guice for dependency injection
- trader-needle: extends trader example verifying configuration using Needle for dependency injection
- trader-pico: extends trader example verifying configuration using PicoContainer for dependency injection
- trader-spring: extends trader example verifying configuration using Spring for dependency injection
- trader-weld: extends trader example verifying configuration using Weld for dependency injection

All the trader example modules re-use the same stories and steps classes of the trader example, but focus on different complementary aspects, e.g. annotation-based configuration, localisation, scripting steps, or dependency injection. The trader-example module is declared as a normal Maven dependency for all extension trader modules and must be installed in your local repository before these can be run.