[seam-commits] Seam SVN: r9500 - in trunk: examples/wicket and 1 other directory.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue Nov 4 14:07:20 EST 2008


Author: pete.muir at jboss.org
Date: 2008-11-04 14:07:19 -0500 (Tue, 04 Nov 2008)
New Revision: 9500

Added:
   trunk/examples/wicket/readme.txt
Modified:
   trunk/examples/wicket/build.xml
   trunk/release-process.txt
Log:
JBSEAM-3621, thanks to Clint Popetz

Modified: trunk/examples/wicket/build.xml
===================================================================
--- trunk/examples/wicket/build.xml	2008-11-04 15:48:04 UTC (rev 9499)
+++ trunk/examples/wicket/build.xml	2008-11-04 19:07:19 UTC (rev 9500)
@@ -2,41 +2,101 @@
 
 <project name="WicketBooking" default="deploy" basedir="." xmlns:artifact="urn:maven-artifact-ant">
 
-    <!-- Naming -->
-    <property name="Name"                   value="Port of Seam Booking Example to use Wicket"/>
-    <property name="example.name"           value="jboss-seam-wicket-booking"/>
-	
-	<property name="src.java.dir" 		    value="src/action" />
-	<property name="src.web.dir"            value="src/web" />
-	
-    <!-- Libraries to include -->
-    
-    <property name="seam.wicket.lib"        value="yes" />
-	<property name="wicket-extensions.lib"  value="yes" />
-    <property name="wicket-datetime.lib"  value="yes" />
-	
+	<!-- Naming -->
+	<property name="Name" value="Port of Seam Booking Example to use Wicket" />
+	<property name="example.name" value="jboss-seam-wicket-booking" />
+
+	<property name="src.java.dir" value="src/action" />
+	<property name="src.web.dir" value="src/web" />
+
+
+	<!--If this is set to true, wicket classes are instrumented at build time by seam's
+	WicketInstrumentationTask.  The resulting classes will be placed in WEB-INF/dev if debug=true,
+	else they'll go in WEB-INF/classes -->
+	<property name="instrumentAtBuildTime" value="true" />
+	<property name="build.web" value="build-web" />
+	<property name="build.instrumented" value="instrumented-web" />
+
+	<!-- Libraries to include -->
+
+	<property name="seam.wicket.lib" value="yes" />
+	<property name="seam.debug.lib" value="yes" />
+	<property name="wicket-extensions.lib" value="yes" />
+	<property name="wicket-datetime.lib" value="yes" />
+
 	<!-- Datasource -->
-    <property name="example.ds"             value="jboss-seam-wicket-booking-ds.xml"/>
-   
-    <import file="../build.xml"/>
-	
+	<property name="example.ds" value="jboss-seam-wicket-booking-ds.xml" />
+
+	<import file="../build.xml" />
+
 	<target name="compile.web" depends="compile">
-		<mkdir dir="${war.dir}/WEB-INF/wicket" />
-		<javac destdir="${war.dir}/WEB-INF/wicket" debug="${javac.debug}" deprecation="${javac.deprecation}" nowarn="on" >
+		<mkdir dir="${build.web}" />
+		<javac destdir="${build.web}" debug="${javac.debug}" deprecation="${javac.deprecation}" nowarn="on">
 			<src path="${src.web.dir}" />
-			<classpath refid="build.classpath"/>
-			<classpath location="${jar.dir}"/>
+			<classpath refid="build.classpath" />
+			<classpath location="${jar.dir}" />
 		</javac>
+	</target>
+
+	<target name="instrument" depends="compile.web" if="instrumentAtBuildTime">
+		<taskdef name="instrumentWicket" classname="org.jboss.seam.wicket.ioc.WicketInstrumentationTask">
+			<classpath>
+				<pathelement location="${lib.dir}/jboss-seam-wicket-ant.jar" />
+				<pathelement location="${lib.dir}/jboss-seam-wicket.jar" />
+				<pathelement location="${lib.dir}/javassist.jar" />
+				<pathelement location="${lib.dir}/jboss-seam.jar" />
+			</classpath>
+		</taskdef>
+
+		<path id="instrument.path">
+			<path refid="build.classpath" />
+			<pathelement location="${jar.dir}" />
+			<pathelement location="${build.web}" />
+		</path>
+
+		<instrumentWicket outputDirectory="${build.instrumented}">
+			<classpath refid="instrument.path" />
+			<fileset dir="${build.web}">
+				<and>
+					<filename name="**/*.class" />
+					<!-- only instrument things that have changed since last time -->
+					<modified>
+						<param name="cache.cachefile" value="instrumentcache.properties" />
+					</modified>
+				</and>
+			</fileset>
+		</instrumentWicket>
+	</target>
+
+	<target name="copyWicketClasses" depends="compile.web" unless="instrumentAtBuildTime">
+		<mkdir dir="${war.dir}/WEB-INF/wicket" />
 		<copy todir="${war.dir}/WEB-INF/wicket">
 			<fileset dir="${src.web.dir}">
-				<include name="**/*.component.xml" />
 				<include name="**/*.html" />
 				<include name="seam.properties" />
 			</fileset>
+			<fileset dir="${build.web}" includes="**/*.class" />
 		</copy>
 	</target>
-	
+
+	<target name="copyWicketInstrumentedClasses" depends="instrument" if="instrumentAtBuildTime">
+		<condition property="wicketClassDestination" value="${war.dir}/WEB-INF/dev" else="${war.dir}/WEB-INF/classes">
+			<istrue value="${debug}" />
+		</condition>
+
+		<mkdir dir="${wicketClassDestination}" />
+		<copy todir="${wicketClassDestination}">
+			<fileset dir="${src.web.dir}">
+				<include name="**/*.html" />
+				<include name="seam.properties" />
+			</fileset>
+			<fileset dir="${build.instrumented}" includes="**/*.class" />
+		</copy>
+	</target>
+
+
+
 	<!-- Examples build hook point for running targets before creating the war -->
-	<target name="init.war" depends="compile.web" />
-   
+	<target name="init.war" depends="copyWicketClasses,copyWicketInstrumentedClasses" />
+
 </project>

Added: trunk/examples/wicket/readme.txt
===================================================================
--- trunk/examples/wicket/readme.txt	                        (rev 0)
+++ trunk/examples/wicket/readme.txt	2008-11-04 19:07:19 UTC (rev 9500)
@@ -0,0 +1,6 @@
+Seam Wicket Example
+===============
+This is a port of the Booking example to Wicket.
+
+By default it uses build time instrumentation, but you can use runtime 
+instrumentation by specifying -DinstrumentAtBuildTime=false
\ No newline at end of file


Property changes on: trunk/examples/wicket/readme.txt
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/release-process.txt
===================================================================
--- trunk/release-process.txt	2008-11-04 15:48:04 UTC (rev 9499)
+++ trunk/release-process.txt	2008-11-04 19:07:19 UTC (rev 9500)
@@ -231,7 +231,7 @@
   - spring
   - todo (tutorial)
   - ui
-  - wicket
+  - wicket (you should verify both buildtime instrumentation and runtime instrumentation)
 * Tomcat 6 examples 
   - Note: use JBoss embedded unless specified differently
   - blog (tutorial)




More information about the seam-commits mailing list