Title: [801] trunk: Refactored TrimFilesetParser to avoid duplication.
Revision
801
Author
mauro
Date
2007-10-14 10:02:00 -0500 (Sun, 14 Oct 2007)

Log Message

Refactored TrimFilesetParser to avoid duplication. 
Added target in top-level build.xml to generate code for example stories.

Modified Paths

Diff

Modified: trunk/build.xml (800 => 801)

--- trunk/build.xml	2007-10-14 13:47:53 UTC (rev 800)
+++ trunk/build.xml	2007-10-14 15:02:00 UTC (rev 801)
@@ -1,266 +1,289 @@
 <project name="jbehave" default="build">
-	<property name="version" value="1.1-SNAPSHOT" />
-	<echo message="Building version ${version}..." />
+  <property name="version" value="1.1-SNAPSHOT" />
+  <echo message="Building version ${version}..." />
 
-	<!-- modules -->
-	<property name="core_dir" location="core" />
-	<property name="everything_dir" location="everything" />
-	<property name="examples_dir" location="examples" />
-	<property name="extensions_dir" location="extensions" />
-	<property name="website_dir" location="website" />
-	<property name="lib_dir" location="lib" />
-	<path id="libs">
-		<fileset dir="${lib_dir}" includes="extensions/ant-1.7.0.jar"/>
-		<fileset dir="${lib_dir}" includes="extensions/antlr-2.7.6.jar"/>
-		<fileset dir="${lib_dir}" includes="extensions/cglib-full-2.0.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/jmock-1.1.0.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/jmock-cglib-1.1.0.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/junit-3.8.2.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/fit-1.1.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/velocity-dep-1.4.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/proxytoys-0.2.1.jar" />
-	</path>
+  <!-- modules -->
+  <property name="core_dir" location="core" />
+  <property name="everything_dir" location="everything" />
+  <property name="examples_dir" location="examples" />
+  <property name="extensions_dir" location="extensions" />
+  <property name="website_dir" location="website" />
+  <property name="lib_dir" location="lib" />
+  <path id="libs">
+    <fileset dir="${lib_dir}" includes="extensions/ant-1.7.0.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/antlr-2.7.6.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/cglib-full-2.0.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/jmock-1.1.0.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/jmock-cglib-1.1.0.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/junit-3.8.2.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/fit-1.1.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/velocity-dep-1.4.jar" />
+    <fileset dir="${lib_dir}" includes="extensions/proxytoys-0.2.1.jar" />
+  </path>
 
-	<!-- build output structure -->
-	<property name="jdk.version" value="1.4" />
-	<property name="working_dir" location="delete_me" />
-	<property name="classes_dir" location="${working_dir}/classes" />
-	<property name="behaviour_classes_dir" location="${working_dir}/behaviour-classes" />
-	<property name="example_classes_dir" location="${working_dir}/example-classes" />
-	<property name="example_behaviour_classes_dir" location="${working_dir}/example-behaviours" />
-	<property name="example_story_classes_dir" location="${working_dir}/example-stories" />
-	<property name="jbehave_zip" location="${working_dir}/jbehave-${version}.zip" />
-	<property name="dist_dir" location="${working_dir}/${version}" />
-	<property name="binaries_dir" location="${working_dir}/${version}/dist/${version}" />
-	<property name="jbehave_jar" location="${binaries_dir}/jbehave-${version}.jar" />
-	<property name="jbehave_src_zip" location="${binaries_dir}/jbehave-${version}-src.zip" />
-	<property name="website_dist_dir" location="${dist_dir}/website"/>
-	<property name="javadoc_dist_dir" location="${website_dist_dir}/javadoc/${version}"/>
+  <!-- build output structure -->
+  <property name="jdk.version" value="1.4" />
+  <property name="working_dir" location="delete_me" />
+  <property name="classes_dir" location="${working_dir}/classes" />
+  <property name="behaviour_classes_dir" location="${working_dir}/behaviour-classes" />
+  <property name="example_classes_dir" location="${working_dir}/example-classes" />
+  <property name="example_behaviour_classes_dir" location="${working_dir}/example-behaviours" />
+  <property name="example_story_classes_dir" location="${working_dir}/example-stories" />
+  <property name="jbehave_zip" location="${working_dir}/jbehave-${version}.zip" />
+  <property name="dist_dir" location="${working_dir}/${version}" />
+  <property name="binaries_dir" location="${working_dir}/${version}/dist/${version}" />
+  <property name="jbehave_jar" location="${binaries_dir}/jbehave-${version}.jar" />
+  <property name="jbehave_src_zip" location="${binaries_dir}/jbehave-${version}-src.zip" />
+  <property name="website_dist_dir" location="${dist_dir}/website" />
+  <property name="javadoc_dist_dir" location="${website_dist_dir}/javadoc/${version}" />
 
-	<!-- examples -->
-	<property name="example" value="hellbound" />
-	<property name="example.behaviours" value="com.sirenian.hellbound.AllBehaviours" />	
-	<property name="behaviour.runner.task" value="org.jbehave.ant.BehaviourRunnerTask"/>
-	<property name="story.runner.task" value="org.jbehave.ant.StoryRunnerTask"/>
-	<property name="story.printer.task" value="org.jbehave.ant.StoryPrinterTask"/>
-	
-	<!-- general targets -->
-	<target name="clean" description="Clean out output directory">
-		<delete dir="${working_dir}" />
-	</target>
+  <!-- examples -->
+  <property name="example" value="hellbound" />
+  <property name="example.behaviours" value="com.sirenian.hellbound.AllBehaviours" />
+  <property name="behaviour.runner.task" value="org.jbehave.ant.BehaviourRunnerTask" />
+  <property name="story.runner.task" value="org.jbehave.ant.StoryRunnerTask" />
+  <property name="story.printer.task" value="org.jbehave.ant.StoryPrinterTask" />
+  <property name="story.generator.task" value="org.jbehave.ant.StoryCodeGeneratorTask" />
 
-	<target name="build" depends="clean, verify-behaviour, run-example-behaviours, run-example-stories, print-example-stories, build-source-zip" 
-		description="build the jbehave binary and zip up the project" />
+  <!-- general targets -->
+  <target name="clean" description="Clean out output directory">
+    <delete dir="${working_dir}" />
+  </target>
 
-	<target name="dist" depends="clean, build, javadoc" description="create distribution" />
+  <target name="build"
+    depends="clean, verify-behaviour, run-example-behaviours, run-example-stories, print-example-stories, build-source-zip"
+    description="build the jbehave binary and zip up the project" />
 
-	<!-- build and assemble -->
-	<target name="-init">
-		<mkdir dir="${working_dir}" />
-	</target>
+  <target name="dist" depends="clean, build, javadoc" description="create distribution" />
 
-	<target name="build-jar" depends="-init" description="Compile and assemble the jar">
-		<mkdir dir="${classes_dir}" />
-		<javac taskname="build jbehave" srcdir="${core_dir}/src/java" destdir="${classes_dir}" 
-			source="${jdk.version}" target="${jdk.version}" classpathref="libs" debug="true">
-			<src>
-				<pathelement path="${core_dir}/src/java" />
-				<dirset dir="${extensions_dir}" includes="**/src/java" />
-			</src>
-		</javac>
-		<copy taskname="copying resource" todir="${classes_dir}">
-			<fileset dir="${core_dir}/src/java" excludes="**/*.java"/>
-			<fileset dir="${extensions_dir}/ant/src/java" excludes="**/*.java"/>
-		</copy>
-		<mkdir dir="${binaries_dir}" />
-		<jar taskname="jbehave jar" basedir="${classes_dir}" jarfile="${jbehave_jar}" />
-	</target>
+  <!-- build and assemble -->
+  <target name="-init">
+    <mkdir dir="${working_dir}" />
+  </target>
 
-	<target name="build-source-zip" depends="-init" description="Assemble the source jar">
-		<mkdir dir="${binaries_dir}" />
-		<zip taskname="jbehave source jar" destfile="${jbehave_src_zip}" update="true" filesonly="true">
-			<zipfileset prefix="jbehave-${version}" dir="${basedir}">
-				<exclude name="delete_me/**" />
-				<exclude name="bin/**" />
-				<exclude name="classes/**" />
-				<exclude name="website/output/**" />
-			</zipfileset>
-		</zip>
-	</target>
+  <target name="build-jar" depends="-init" description="Compile and assemble the jar">
+    <mkdir dir="${classes_dir}" />
+    <javac taskname="build jbehave" srcdir="${core_dir}/src/java" destdir="${classes_dir}" source="${jdk.version}"
+      target="${jdk.version}" classpathref="libs" debug="true">
+      <src>
+        <pathelement path="${core_dir}/src/java" />
+        <dirset dir="${extensions_dir}" includes="**/src/java" />
+      </src>
+    </javac>
+    <copy taskname="copying resource" todir="${classes_dir}">
+      <fileset dir="${core_dir}/src/java" excludes="**/*.java" />
+      <fileset dir="${extensions_dir}/ant/src/java" excludes="**/*.java" />
+    </copy>
+    <mkdir dir="${binaries_dir}" />
+    <jar taskname="jbehave jar" basedir="${classes_dir}" jarfile="${jbehave_jar}" />
+  </target>
 
-	<target name="compile-behaviour" depends="build-jar" description="Compile behaviour">
-		<mkdir dir="${behaviour_classes_dir}" />
-		<javac taskname="compile behaviours" destdir="${behaviour_classes_dir}" source="${jdk.version}" target="${jdk.version}" debug="true">
-			<src>
-				<pathelement path="${core_dir}/src/behaviour" />
-				<pathelement path="${everything_dir}/src/behaviour" />
-				<dirset dir="${extensions_dir}" includes="**/src/behaviour"/>
-			</src>
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<path refid="libs"/>
-			</classpath>
-		</javac>
-	</target>
-	
-	<target name="verify-behaviour" depends="compile-behaviour" description="Verify behaviour">
-		<taskdef name="runbehaviours" classname="${behaviour.runner.task}" classpath="${jbehave_jar}" />
-		<!-- Verify the Ant task behaviour -->
-		<java taskname="run behaviours" classname="org.jbehave.core.Run" fork="true" failonerror="true" clonevm="true">
-			<arg value="org.jbehave.ant.BehaviourRunnerTaskBehaviour" />
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<pathelement path="${behaviour_classes_dir}" />
-				<path refid="libs" />
-			</classpath>
-		</java>
-		<!-- Now we know the Ant task is working, we can use it to verify everything else -->
-		<runbehaviours clonevm="true">
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<pathelement path="${behaviour_classes_dir}" />
-				<path refid="libs" />
-			</classpath>
-			<behaviours dir="${behaviour_classes_dir}" includes="**/*Behaviour.class" />
-		</runbehaviours>
-	</target>
+  <target name="build-source-zip" depends="-init" description="Assemble the source jar">
+    <mkdir dir="${binaries_dir}" />
+    <zip taskname="jbehave source jar" destfile="${jbehave_src_zip}" update="true" filesonly="true">
+      <zipfileset prefix="jbehave-${version}" dir="${basedir}">
+        <exclude name="delete_me/**" />
+        <exclude name="bin/**" />
+        <exclude name="classes/**" />
+        <exclude name="website/output/**" />
+      </zipfileset>
+    </zip>
+  </target>
 
-	<!-- create website -->
-	<target name="javadoc" description="Generate javadocs">
-		<mkdir dir="${javadoc_dist_dir}" />
-		<javadoc
-      destdir="${javadoc_dist_dir}"
-      windowtitle="JBehave API Documentation"
-      verbose="false"
+  <target name="compile-behaviour" depends="build-jar" description="Compile behaviour">
+    <mkdir dir="${behaviour_classes_dir}" />
+    <javac taskname="compile behaviours" destdir="${behaviour_classes_dir}" source="${jdk.version}"
+      target="${jdk.version}" debug="true">
+      <src>
+        <pathelement path="${core_dir}/src/behaviour" />
+        <pathelement path="${everything_dir}/src/behaviour" />
+        <dirset dir="${extensions_dir}" includes="**/src/behaviour" />
+      </src>
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <path refid="libs" />
+      </classpath>
+    </javac>
+  </target>
+
+  <target name="verify-behaviour" depends="compile-behaviour" description="Verify behaviour">
+    <taskdef name="runbehaviours" classname="${behaviour.runner.task}" classpath="${jbehave_jar}" />
+    <!-- Verify the Ant task behaviour -->
+    <java taskname="run behaviours" classname="org.jbehave.core.Run" fork="true" failonerror="true" clonevm="true">
+      <arg value="org.jbehave.ant.BehaviourRunnerTaskBehaviour" />
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <pathelement path="${behaviour_classes_dir}" />
+        <path refid="libs" />
+      </classpath>
+    </java>
+    <!-- Now we know the Ant task is working, we can use it to verify everything else -->
+    <runbehaviours clonevm="true">
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <pathelement path="${behaviour_classes_dir}" />
+        <path refid="libs" />
+      </classpath>
+      <behaviours dir="${behaviour_classes_dir}" includes="**/*Behaviour.class" />
+    </runbehaviours>
+  </target>
+
+  <!-- create website -->
+  <target name="javadoc" description="Generate javadocs">
+    <mkdir dir="${javadoc_dist_dir}" />
+    <javadoc destdir="${javadoc_dist_dir}" windowtitle="JBehave API Documentation" verbose="false"
       useexternalfile="true">
-			<fileset dir="${extensions_dir}">
-				<include name="*/src/java/**/*.java" />
-				<exclude name="**/codegen/**" />
-			</fileset>
-			<fileset dir="${core_dir}">
-				<include name="src/java/**/*.java" />
-			</fileset>
-			<classpath refid="libs" />
-			<group title="Core API" packages="org.jbehave.core*" />
-			<group title="Story Runner" packages="org.jbehave.core.story*" />
-			<group title="Ant Task Extension" packages="org.jbehave.ant*" />
-			<group title="JMock Extension" packages="org.jbehave.jmock*" />
-			<group title="JUnit Extension" packages="org.jbehave.junit*" />
-			<classpath>
-				<fileset dir="${lib_dir}">
-					<include name="**/*.jar" />
-				</fileset>
-			</classpath>
-		</javadoc>
-	</target>
+      <fileset dir="${extensions_dir}">
+        <include name="*/src/java/**/*.java" />
+        <exclude name="**/codegen/**" />
+      </fileset>
+      <fileset dir="${core_dir}">
+        <include name="src/java/**/*.java" />
+      </fileset>
+      <classpath refid="libs" />
+      <group title="Core API" packages="org.jbehave.core*" />
+      <group title="Story Runner" packages="org.jbehave.core.story*" />
+      <group title="Ant Task Extension" packages="org.jbehave.ant*" />
+      <group title="JMock Extension" packages="org.jbehave.jmock*" />
+      <group title="JUnit Extension" packages="org.jbehave.junit*" />
+      <classpath>
+        <fileset dir="${lib_dir}">
+          <include name="**/*.jar" />
+        </fileset>
+      </classpath>
+    </javadoc>
+  </target>
 
-	<target name="website-content" depends="-init" description="Generate website content">
-		<exec executable="ruby" failonerror="true">
-			<arg value="sitespec.rb"/>
-			<arg value="${website_dist_dir}"/>
-		</exec>
-	</target>
+  <target name="website-content" depends="-init" description="Generate website content">
+    <exec executable="ruby" failonerror="true">
+      <arg value="sitespec.rb" />
+      <arg value="${website_dist_dir}" />
+    </exec>
+  </target>
 
-	<target name="website" depends="javadoc, website-content" description="Generate website"/>
+  <target name="website" depends="javadoc, website-content" description="Generate website" />
 
-	<!-- SableCC code generator - Note: must use 3.1 for JDK 1.4 compatibility -->
-	<target name="sablecc" description="Generate sablecc grammar files">
-		<java fork="true" jar="${lib_dir}/extensions/sablecc-3.1.jar">
-			<arg value="-d" />
-			<arg file="${core_dir}/src/java" />
-			<arg file="${core_dir}/src/java/org/jbehave/core/story/codegen/story.scc" />
-		</java>
-	</target>
+  <!-- SableCC code generator - Note: must use 3.1 for JDK 1.4 compatibility -->
+  <target name="sablecc" description="Generate sablecc grammar files">
+    <java fork="true" jar="${lib_dir}/extensions/sablecc-3.1.jar">
+      <arg value="-d" />
+      <arg file="${core_dir}/src/java" />
+      <arg file="${core_dir}/src/java/org/jbehave/core/story/codegen/story.scc" />
+    </java>
+  </target>
 
-	<!-- Examples -->	
-	<target name="compile-example-behaviours" depends="build-jar" description="Compile behaviours for examples">
-		<mkdir dir="${example_classes_dir}" />
-		<javac taskname="compile example" destdir="${example_classes_dir}" 
-			source="${jdk.version}" target="${jdk.version}" debug="true">
-			<src>
-				<pathelement path="${examples_dir}/${example}/src/java" />
-			</src>
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<path refid="libs"/>
-			</classpath>
-		</javac>
-		<mkdir dir="${example_behaviour_classes_dir}" />
-		<javac taskname="compile example behaviours" destdir="${example_behaviour_classes_dir}" 
-			source="${jdk.version}" target="${jdk.version}" debug="true">
-			<src>
-				<pathelement path="${examples_dir}/${example}/src/behaviour" />
-			</src>
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<path refid="libs"/>
-				<pathelement path="${example_classes_dir}"/>
-			</classpath>
-		</javac>
-	</target>
+  <!-- Examples -->
+  <target name="compile-example-behaviours" depends="build-jar" description="Compile behaviours for examples">
+    <mkdir dir="${example_classes_dir}" />
+    <javac taskname="compile example" destdir="${example_classes_dir}" source="${jdk.version}" target="${jdk.version}"
+      debug="true">
+      <src>
+        <pathelement path="${examples_dir}/${example}/src/java" />
+      </src>
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <path refid="libs" />
+      </classpath>
+    </javac>
+    <mkdir dir="${example_behaviour_classes_dir}" />
+    <javac taskname="compile example behaviours" destdir="${example_behaviour_classes_dir}" source="${jdk.version}"
+      target="${jdk.version}" debug="true">
+      <src>
+        <pathelement path="${examples_dir}/${example}/src/behaviour" />
+      </src>
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+      </classpath>
+    </javac>
+  </target>
 
-	<target name="run-example-behaviours" depends="compile-example-behaviours" description="Runs behaviours for examples">
-		<taskdef name="runbehaviours" classname="${behaviour.runner.task}" classpath="${jbehave_jar}" />
-		<runbehaviours clonevm="true">
-			<classpath>
-				<path refid="libs" />
-				<pathelement path="${example_classes_dir}" />
-				<pathelement path="${example_behaviour_classes_dir}" />
-			</classpath>
-			<behaviours dir="${examples_dir}/${example}/src/behaviour" includes="**/*Behaviour.java" />
-		</runbehaviours>
-	</target>
-	
-	<target name="compile-example-stories" depends="build-jar" description="Compile behaviours for examples">
-		<mkdir dir="${example_classes_dir}" />
-		<javac taskname="compile example" destdir="${example_classes_dir}" 
-			source="${jdk.version}" target="${jdk.version}" debug="true">
-			<src>
-				<pathelement path="${examples_dir}/${example}/src/java" />
-			</src>
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<path refid="libs"/>
-			</classpath>
-		</javac>
-		<mkdir dir="${example_story_classes_dir}" />
-		<javac taskname="compile example stories" destdir="${example_story_classes_dir}" 
-			source="${jdk.version}" target="${jdk.version}" debug="true">
-			<src>
-				<pathelement path="${examples_dir}/${example}/src/stories" />
-			</src>
-			<classpath>
-				<pathelement path="${jbehave_jar}" />
-				<path refid="libs"/>
-				<pathelement path="${example_classes_dir}"/>
-				<pathelement path="${example_behaviour_classes_dir}" />
-			</classpath>
-		</javac>
-	</target>
-	
-	<target name="run-example-stories" depends="compile-example-behaviours, compile-example-stories" description="Runs stories for examples">
-		<taskdef name="runstories" classname="${story.runner.task}" classpath="${jbehave_jar}" />
-		<runstories clonevm="true">
-			<classpath>
-				<path refid="libs" />
-				<pathelement path="${example_classes_dir}" />
-				<pathelement path="${example_behaviour_classes_dir}" />
-				<pathelement path="${example_story_classes_dir}" />
-			</classpath>
-			<stories dir="${examples_dir}/${example}/src/stories" includes="**/stories/*" />
-		</runstories>
-	</target>
+  <target name="run-example-behaviours" depends="compile-example-behaviours"
+    description="Runs behaviours for examples">
+    <taskdef name="runbehaviours" classname="${behaviour.runner.task}" classpath="${jbehave_jar}" />
+    <runbehaviours clonevm="true">
+      <classpath>
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+        <pathelement path="${example_behaviour_classes_dir}" />
+      </classpath>
+      <behaviours dir="${examples_dir}/${example}/src/behaviour" includes="**/*Behaviour.java" />
+    </runbehaviours>
+  </target>
 
-	<target name="print-example-stories" depends="compile-example-behaviours, compile-example-stories" description="Prints stories for examples">
-		<taskdef name="printstories" classname="${story.printer.task}" classpath="${jbehave_jar}" />
-		<printstories destdir="${examples_dir}/${example}/src/stories">
-			<classpath>
-				<path refid="libs" />
-				<pathelement path="${example_classes_dir}" />
-				<pathelement path="${example_behaviour_classes_dir}" />
-				<pathelement path="${example_story_classes_dir}" />
-			</classpath>
-			<stories dir="${examples_dir}/${example}/src/stories" includes="**/stories/*" />
-		</printstories>
-	</target>
+  <target name="compile-example-stories" depends="build-jar" description="Compile behaviours for examples">
+    <mkdir dir="${example_classes_dir}" />
+    <javac taskname="compile example" destdir="${example_classes_dir}" source="${jdk.version}" target="${jdk.version}"
+      debug="true">
+      <src>
+        <pathelement path="${examples_dir}/${example}/src/java" />
+      </src>
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <path refid="libs" />
+      </classpath>
+    </javac>
+    <mkdir dir="${example_story_classes_dir}" />
+    <javac taskname="compile example stories" destdir="${example_story_classes_dir}" source="${jdk.version}"
+      target="${jdk.version}" debug="true">
+      <src>
+        <pathelement path="${examples_dir}/${example}/src/stories" />
+      </src>
+      <classpath>
+        <pathelement path="${jbehave_jar}" />
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+        <pathelement path="${example_behaviour_classes_dir}" />
+      </classpath>
+    </javac>
+  </target>
+
+  <target name="run-example-stories" depends="compile-example-behaviours, compile-example-stories"
+    description="Runs stories for examples">
+    <taskdef name="runstories" classname="${story.runner.task}" classpath="${jbehave_jar}" />
+    <runstories clonevm="true">
+      <classpath>
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+        <pathelement path="${example_behaviour_classes_dir}" />
+        <pathelement path="${example_story_classes_dir}" />
+      </classpath>
+      <stories dir="${examples_dir}/${example}/src/stories" includes="**/stories/*" />
+    </runstories>
+  </target>
+
+  <target name="print-example-stories" depends="compile-example-behaviours, compile-example-stories"
+    description="Prints stories for examples">
+    <taskdef name="printstories" classname="${story.printer.task}" classpath="${jbehave_jar}" />
+    <printstories destdir="${examples_dir}/${example}/src/stories">
+      <classpath>
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+        <pathelement path="${example_behaviour_classes_dir}" />
+        <pathelement path="${example_story_classes_dir}" />
+      </classpath>
+      <stories dir="${examples_dir}/${example}/src/stories" includes="**/stories/*" />
+    </printstories>
+  </target>
+
+  <target name="generate-example-stories" depends="compile-example-behaviours, compile-example-stories"
+    description="Generates stories for examples">
+    <taskdef name="generatestories" classname="${story.generator.task}">
+      <classpath>
+        <path refid="libs" />
+        <pathelement path="${jbehave_jar}" />
+      </classpath>
+    </taskdef>
+    <generatestories generatedsourcedirectory="${examples_dir}/${example}/src/stories">
+      <classpath>
+        <path refid="libs" />
+        <pathelement path="${example_classes_dir}" />
+        <pathelement path="${example_behaviour_classes_dir}" />
+        <pathelement path="${example_story_classes_dir}" />
+        <pathelement path="${examples_dir}/${example}/src/stories" />
+      </classpath>
+      <stories dir="${examples_dir}/${example}/src/stories" includes="*.story" />
+    </generatestories>
+  </target>
 </project>

Modified: trunk/core/src/java/org/jbehave/core/story/codegen/velocity/VelocityCodeGenerator.java (800 => 801)

--- trunk/core/src/java/org/jbehave/core/story/codegen/velocity/VelocityCodeGenerator.java	2007-10-14 13:47:53 UTC (rev 800)
+++ trunk/core/src/java/org/jbehave/core/story/codegen/velocity/VelocityCodeGenerator.java	2007-10-14 15:02:00 UTC (rev 801)
@@ -6,6 +6,7 @@
 import java.io.Writer;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -25,7 +26,8 @@
 import org.jbehave.core.util.CamelCaseConverter;
 
 /**
- * Velocity-based code generator.  Generates java source for the events, givens and outcomes of a story.
+ * Velocity-based code generator. Generates java source for the events, givens
+ * and outcomes of a story.
  * 
  * @author Mauro Talevi
  */
@@ -40,10 +42,12 @@
 
     /** The velocity engine */
     private VelocityEngine engine;
-       
+
     /**
      * Creates a VelocityCodeGenerator
-     * @param generatedSourceDirectory the root directory of the generated source
+     * 
+     * @param generatedSourceDirectory the root directory of the generated
+     *            source
      */
     public VelocityCodeGenerator(String generatedSourceDirectory) {
         this.engine = new VelocityEngine();
@@ -99,9 +103,9 @@
         return map;
     }
 
-    private String className(String type, String name){
+    private String className(String type, String name) {
         String packageName = MessageFormat.format(PACKAGE_NAME, new Object[] { rootPackageName, pluralise(type) });
-        return packageName+"."+camelise(name);
+        return packageName + "." + camelise(name);
     }
 
     private String camelise(String name) {
@@ -109,7 +113,7 @@
     }
 
     private String pluralise(String type) {
-        if ( type.contains("y") ){
+        if (type.contains("y")) {
             return type.replaceFirst("y", "ies");
         }
         return type.concat("s");
@@ -117,20 +121,22 @@
 
     private void generateSource(String name, String type, Map properties) {
         String className = camelise(name);
-        String sourcePath = MessageFormat.format(SOURCE_PATH, new Object[] { generatedSourceDirectory, pluralise(type), className });
+        String sourcePath = MessageFormat.format(SOURCE_PATH, new Object[] { generatedSourceDirectory, pluralise(type),
+                className });
         String packageName = MessageFormat.format(PACKAGE_NAME, new Object[] { rootPackageName, pluralise(type) });
         String templatePath = MessageFormat.format(TEMPLATE_PATH, new Object[] { type });
         generateSource(sourcePath, templatePath, className, packageName, properties);
     }
 
-    private void generateSource(String sourcePath, String templatePath, String className, String packageName, Map properties) {
+    private void generateSource(String sourcePath, String templatePath, String className, String packageName,
+            Map properties) {
         try {
             VelocityContext context = new VelocityContext();
             context.put("className", className);
             context.put("packageName", packageName);
-            if ( properties != null ){
-                for ( Iterator i = properties.keySet().iterator(); i.hasNext(); ){
-                    String key = (String)i.next();
+            if (properties != null) {
+                for (Iterator i = properties.keySet().iterator(); i.hasNext();) {
+                    String key = (String) i.next();
                     context.put(key, properties.get(key));
                 }
             }
@@ -173,24 +179,26 @@
             Template template = engine.getTemplate(templatePath);
             template.merge(context, writer);
         } catch (Exception e) {
-            throw new CodeGenerationFailedException("Failed to process template " + templatePath + " with context " + context, e);
+            throw new CodeGenerationFailedException("Failed to process template " + templatePath + " with context "
+                    + context, e);
         }
     }
 
     public static class CodeGenerationFailedException extends RuntimeException {
         public CodeGenerationFailedException(String message, Throwable cause) {
             super(message, cause);
-        }        
+        }
     }
-    
-    public static void main(String[] args) {        
-        if ( args.length < 2 ) {
-            throw new IllegalArgumentException("VelocityCodeGenerator usage: <generatedSourceDirectory> <storyPaths>");
+
+    public static void main(String[] args) {
+        if (args.length < 2) {
+            throw new IllegalArgumentException("Invalid args for VelocityCodeGenerator: " + Arrays.asList(args)
+                    + ".  Usage: <generated-source-directory> <storyPaths>");
         }
         VelocityCodeGenerator generator = new VelocityCodeGenerator(args[0]);
-        StoryLoader loader = new StoryLoader(new TextStoryParser(), VelocityCodeGenerator.class.getClassLoader());
+        StoryLoader loader = new StoryLoader(new TextStoryParser(), Thread.currentThread().getContextClassLoader());
         for (int i = 1; i < args.length; i++) {
-            generator.generateStory(loader.loadStoryDetails(args[i])); 
-        }           
+            generator.generateStory(loader.loadStoryDetails(args[i]));
+        }
     }
 }

Modified: trunk/extensions/ant/src/java/org/jbehave/ant/TrimFilesetParser.java (800 => 801)

--- trunk/extensions/ant/src/java/org/jbehave/ant/TrimFilesetParser.java	2007-10-14 13:47:53 UTC (rev 800)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/TrimFilesetParser.java	2007-10-14 15:02:00 UTC (rev 801)
@@ -11,51 +11,38 @@
 public class TrimFilesetParser implements FilesetParser {
 
     public String[] getClassNames(FileSet fileset, Project project) {
-        DirectoryScanner ds = fileset.getDirectoryScanner(project);
-        String[] includedFiles = ds.getIncludedFiles();
+        String[] relativePaths = getRelativePaths(fileset, project);
         List classnames = new ArrayList();
-        for (int i = 0; i < includedFiles.length; i++) {
-            String filename = includedFiles[i].replace('\\', '/');
-
-            File base = ds.getBasedir();
-            File found = new File(base, filename);
-
-            String classname = found.getAbsolutePath().substring(
-                    base.getAbsolutePath().length() + 1).replace('\\', '/')
-                    .replace('/', '.');
-
-            classname = stripJavaOrClassFromEndOfFile(classname);
-            classnames.add(classname);
+        for (int i = 0; i < relativePaths.length; i++) {
+            classnames.add(stripFileExtension(relativePaths[i].replace('/', '.')));
         }
         return (String[]) classnames.toArray(new String[classnames.size()]);
     }
 
-	private String stripJavaOrClassFromEndOfFile(String classname) {
-		if (classname.length() > 6 && classname.substring(classname.length() - 6, classname.length()).equals(".class")) {
-		    classname = classname.substring(0, classname.length() - 6);
-		} else if (classname.length() > 5 && classname.substring(classname.length() - 5, classname.length()).equals(".java")) {
-		    classname = classname.substring(0, classname.length() -5);
-		}
-		return classname;
-	}
-	
     public String[] getRelativePaths(FileSet fileset, Project project) {
         DirectoryScanner ds = fileset.getDirectoryScanner(project);
         String[] includedFiles = ds.getIncludedFiles();
+        File base = ds.getBasedir();
         List paths = new ArrayList();
         for (int i = 0; i < includedFiles.length; i++) {
-            String filename = includedFiles[i].replace('\\', '/');
-
-            File base = ds.getBasedir();
-            File found = new File(base, filename);
-
-            String relativePath = found.getAbsolutePath().substring(
-                    base.getAbsolutePath().length() + 1).replace('\\', '/');
-            
-            paths.add(relativePath);
-        }        
+            paths.add(findRelativePath(base, includedFiles[i]));
+        }
         return (String[]) paths.toArray(new String[paths.size()]);
     }
 
+    private String findRelativePath(File base, String filePath) {
+        File found = new File(base, filePath.replace('\\', '/'));
+        return found.getAbsolutePath().substring(base.getAbsolutePath().length() + 1).replace('\\', '/');
+    }
 
+    private String stripFileExtension(String classname) {
+        if (classname.length() > 6 && classname.substring(classname.length() - 6, classname.length()).equals(".class")) {
+            classname = classname.substring(0, classname.length() - 6);
+        } else if (classname.length() > 5
+                && classname.substring(classname.length() - 5, classname.length()).equals(".java")) {
+            classname = classname.substring(0, classname.length() - 5);
+        }
+        return classname;
+    }
+
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to