| <project name="samples-common"> | 
 |   <property name="gwt.root" location="../.." /> | 
 |   <property name="project.tail" value="samples/${sample.root}" /> | 
 |   <import file="${gwt.root}/common.ant.xml" /> | 
 |  | 
 |   <!-- | 
 |     Number of localworkers for sample compilation.  This depends on your | 
 |     hardware, so it's a good candidate to specify in local.ant.properties | 
 |     if this default isn't good for you.  Ideally, it should approximate | 
 |     the number of CPU cores in your machine. | 
 |   --> | 
 |   <property name="gwt.samples.localworkers" value="2" /> | 
 |  | 
 |   <property name="sample.lower" value="${sample.root}" /> | 
 |   <property name="sample.upper" value="${sample.module}" /> | 
 |  | 
 |   <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" /> | 
 |   <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" /> | 
 |   <property.ensure name="gwt.codeserver.jar" location="${gwt.build.lib}/gwt-codeserver.jar" /> | 
 |  | 
 |   <!-- Mirror directory for scripts; makes building distro easier --> | 
 |   <property name="samples.scripts" value="${gwt.build.out}/samples-scripts" /> | 
 |   <!-- Use the uppercase name rather than the lowercase name --> | 
 |   <property name="sample.build" value="${gwt.build.out}/samples/${sample.upper}" /> | 
 |  | 
 |   <path id="gae.extraclasspath"> | 
 |     <pathelement location="${gwt.tools.lib}/appengine/appengine-api-1.0-sdk-1.3.4.jar"/> | 
 |     <pathelement location="${gwt.tools.lib}/appengine/geronimo-jpa_3.0_spec-1.1.1.jar"/> | 
 |     <pathelement location="${gwt.tools.lib}/appengine/datanucleus-appengine-1.0.7.final.jar"/> | 
 |   </path> | 
 |  | 
 |   <!-- The libraries required by the server that will be copied into WEB-INF/lib. --> | 
 |   <fileset id="sample.server.libs" dir="${gwt.tools.lib}"> | 
 |     <include name="" /> | 
 |   </fileset> | 
 |  | 
 |   <target name="source" description="Copy source to the output folder"> | 
 |     <mkdir dir="${sample.build}/src" /> | 
 |     <copy todir="${sample.build}/src"> | 
 |       <fileset dir="src" /> | 
 |     </copy> | 
 |     <if> | 
 |       <available file="war" type="dir" /> | 
 |       <then> | 
 |         <mkdir dir="${sample.build}/war" /> | 
 |         <copy todir="${sample.build}/war"> | 
 |           <fileset dir="war" excludes="WEB-INF/classes/**"/> | 
 |         </copy> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="pom.xml"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/pom.xml" file="pom.xml"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="README-MAVEN.txt"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/README-MAVEN.txt" file="README-MAVEN.txt"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="README.txt"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/README.txt" file="README.txt"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="user-build.xml"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/build.xml" file="user-build.xml"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="user-project"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/.project" file="user-project"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="user-classpath"/> | 
 |       <then> | 
 |         <copy tofile="${sample.build}/.classpath" file="user-classpath"/> | 
 |       </then> | 
 |     </if> | 
 |     <if> | 
 |       <available file="user-settings"/> | 
 |       <then> | 
 |         <copy todir="${sample.build}/.settings"> | 
 |           <fileset dir="user-settings"/> | 
 |         </copy> | 
 |       </then> | 
 |     </if> | 
 |   </target> | 
 |  | 
 |   <target name="serverlibs" description="Copy server libs to the output folder"> | 
 |     <mkdir dir="${sample.build}/war/WEB-INF/lib" /> | 
 |     <copy todir="${sample.build}/war/WEB-INF/lib/" flatten="true"> | 
 |       <fileset refid="sample.server.libs" /> | 
 |     </copy> | 
 |   </target> | 
 |  | 
 |   <target name="compile" description="Compile all java files"> | 
 |     <mkdir dir="${sample.build}/war/WEB-INF/classes" /> | 
 |     <gwt.javac destdir="${sample.build}/war/WEB-INF/classes" | 
 |                excludes="**/super/**"> | 
 |       <classpath> | 
 |         <pathelement location="${gwt.user.jar}" /> | 
 |         <pathelement location="${gwt.dev.jar}" /> | 
 |         <path refid="sample.extraclasspath" /> | 
 |         <path refid="gae.extraclasspath" /> | 
 |       </classpath> | 
 |     </gwt.javac> | 
 |   </target> | 
 |  | 
 |   <target name="gwtc" description="Compile to JavaScript"> | 
 |     <outofdate> | 
 |       <sourcefiles> | 
 |         <fileset dir="${sample.path}" /> | 
 |         <fileset dir="${sample.build}/war/WEB-INF/classes" /> | 
 |         <fileset file="${gwt.user.jar}" /> | 
 |         <fileset file="${gwt.dev.jar}" /> | 
 |         <path refid="sample.extraclasspath" /> | 
 |       </sourcefiles> | 
 |       <targetfiles path="${sample.build}/war/${sample.lower}/${sample.lower}.nocache.js" /> | 
 |       <sequential> | 
 |         <mkdir dir="${sample.build}/war" /> | 
 |         <java dir="${sample.build}" classname="com.google.gwt.dev.Compiler" | 
 |             fork="yes" failonerror="true"> | 
 |           <classpath> | 
 |             <pathelement path="${sample.path}" /> | 
 |             <path refid="sample.extraclasspath" /> | 
 |             <pathelement location="${sample.build}/war/WEB-INF/classes" /> | 
 |             <pathelement location="${gwt.user.jar}" /> | 
 |             <pathelement location="${gwt.dev.jar}" /> | 
 |             <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" /> | 
 |             <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" /> | 
 |           </classpath> | 
 |           <jvmarg value="-Xmx384M" /> | 
 |           <arg value="-localWorkers" /> | 
 |           <arg value="${gwt.samples.localworkers}" /> | 
 |           <arg value="-war" /> | 
 |           <arg file="${sample.build}/war" /> | 
 |           <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> | 
 |         </java> | 
 |         <length property="sample.size"> | 
 |           <fileset dir="${sample.build}/war/${sample.lower}" includes="*.cache.html,*.cache.js"/> | 
 |         </length> | 
 |         <echo message="output size for ${sample.upper} is ${sample.size} bytes"/> | 
 |       </sequential> | 
 |     </outofdate> | 
 |   </target> | 
 |  | 
 |   <macrodef name="webAppCreator"> | 
 |     <attribute name="platform" /> | 
 |     <attribute name="extension" default="" /> | 
 |     <sequential> | 
 |       <outofdate> | 
 |         <sourcefiles /> | 
 |         <targetfiles> | 
 |           <pathelement location="${samples.scripts}/${sample.upper}/build.xml" /> | 
 |         </targetfiles> | 
 |         <sequential> | 
 |           <mkdir dir="${samples.scripts}/${sample.upper}" /> | 
 |           <java classname="com.google.gwt.user.tools.WebAppCreator" classpath="${gwt.user.jar}:${gwt.dev.jar}" failonerror="true"> | 
 |             <!-- Relative path is important! Paths will be relative in final distro --> | 
 |             <sysproperty key="gwt.devjar" value="../../gwt-dev.jar" /> | 
 |             <arg value="-XnoEclipse" /> | 
 |             <arg value="-overwrite" /> | 
 |             <arg value="-out" /> | 
 |             <arg file="${samples.scripts}/${sample.upper}" /> | 
 |             <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> | 
 |           </java> | 
 |         </sequential> | 
 |       </outofdate> | 
 |     </sequential> | 
 |   </macrodef> | 
 |  | 
 |   <target name="scripts" description="Create launch scripts"> | 
 |     <webAppCreator platform="linux" /> | 
 |     <webAppCreator platform="windows" extension=".cmd" /> | 
 |     <webAppCreator platform="mac" /> | 
 |   </target> | 
 |  | 
 |   <target name="build" depends="source, serverlibs, compile, gwtc, scripts" description="Build and package this project" /> | 
 |  | 
 |   <target name="checkstyle" description="Static analysis of source"> | 
 |     <gwt.checkstyle outputdirectory="${sample.build}"> | 
 |       <fileset dir="src" > | 
 |         <!-- ValidationMessages is generated and has funny method names --> | 
 |         <exclude name="main/java/com/google/gwt/sample/validation*/**/ValidationMessages.java" /> | 
 |       </fileset> | 
 |     </gwt.checkstyle> | 
 |   </target> | 
 |  | 
 |   <target name="clean" description="Cleans this project's intermediate and output files"> | 
 |     <delete dir="${sample.build}" /> | 
 |     <delete includeemptydirs="true"> | 
 |       <fileset dir="${samples.scripts}"> | 
 |         <include name="*/${sample.upper}/**" /> | 
 |       </fileset> | 
 |     </delete> | 
 |   </target> | 
 | </project> |