[jboss-cvs] jboss-seam/examples/wiki ...

Christian Bauer christian at hibernate.org
Wed Mar 7 13:37:36 EST 2007


  User: cbauer  
  Date: 07/03/07 13:37:36

  Modified:    examples/wiki      build.xml build.properties
  Removed:     examples/wiki      .classpath .project .exploded.launch
  Log:
  Moved to hot-redeploy WAR build structure
  
  Revision  Changes    Path
  1.5       +278 -238  jboss-seam/examples/wiki/build.xml
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: build.xml
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/build.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- build.xml	28 Feb 2007 04:01:49 -0000	1.4
  +++ build.xml	7 Mar 2007 18:37:36 -0000	1.5
  @@ -1,32 +1,41 @@
   <?xml version="1.0"?>
   
  -<project name="wiki" default="deploy" basedir=".">
  +<project name="wiki" default="explodewar" basedir=".">
  +
  +    <!-- ################## CONFIG ####################### -->
   
   	<!-- Give user a chance to override without editing this file or typing -D -->
   	<property file="${basedir}/build.properties" />
   
  +    <property name="profile" value="dev"/>
  +
   	<!-- set global properties for this build -->
   	<property name="project.name" value="wiki"/>
  +
  +    <property name="src.java.dir" value="src/main"/>
  +    <property name="src.test.dir" value="src/test"/>
  +    <property name="src.etc.dir"  value="src/etc"/>
  +    <property name="view.dir"     value="view"/>
  +
  +    <property name="build.dir"          value="build"/>
  +    <property name="classes.dir"        value="${build.dir}/classes"/>
  +    <property name="testclasses.dir"    value="${build.dir}/testclasses"/>
  +    <property name="exploded.dir"       value="${build.dir}/exploded"/>
  +    <property name="exploded.war.dir"   value="${exploded.dir}/${project.name}.war"/>
  +
  +    <property name="deploy.dir"         value="${jboss.home}/server/default/deploy"/>
  +    <property name="deploy.war.dir"     value="${deploy.dir}/${project.name}.war"/>
  +
   	<property name="dist.dir" value="dist" />
  -	<property name="src.java.dir" value="src" />
  -	<property name="src.test.dir" value="test" />
  +
       <property name="seam.home" value="../../"/>
       <property name="lib.dir"        value="${seam.home}/lib" />
       <property name="seamlibs.dir"   value="${seam.home}"/>
       <property name="drools.lib.dir" value="${seam.home}/drools/lib"/>
  -    <property name="ear.dir" value="exploded-archives/${project.name}.ear" />
  -	<property name="jar.dir" value="exploded-archives/${project.name}.jar" />
  -	<property name="war.dir" value="exploded-archives/${project.name}.war" />
  -	<property name="test.dir" value="test-build" />
  +
   	<property name="embedded-ejb3.dir" value="${basedir}/embedded-ejb/conf" />
  -	<property name="deploy.dir" value="${jboss.home}/server/default/deploy" />
  -	<property name="ear.deploy.dir" value="${deploy.dir}/${project.name}.ear" />
  -	<property name="jar.deploy.dir" value="${ear.deploy.dir}/${project.name}.jar" />
  -	<property name="war.deploy.dir" value="${ear.deploy.dir}/${project.name}.war" />
  -	<property name="testng.jar" value="${lib.dir}/testng-4.5.1-jdk15.jar" />
  -	<property name="javac.debug" value="true" />
  -	<property name="javac.deprecation" value="false" />
  -	<property name="profile" value="dev" />
  +
  +    <!-- ################## ALIASES ####################### -->
   
   	<fileset id="lib" dir="${lib.dir}">
   		<include name="*.jar" />
  @@ -34,11 +43,14 @@
   
       <fileset id="seamlibs" dir="${seamlibs.dir}">
           <include name="jboss-seam*.jar"/>
  +        <exclude name="jboss-seam-gen.jar"/>
       </fileset>
   
       <zipfileset id="droolslibs"
                  dir="${drools.lib.dir}">
           <include name="*.jar"/>
  +        <exclude name="commons-lang*.jar"/>
  +        <exclude name="commons-logging*.jar"/>
       </zipfileset>
   
       <zipfileset id="jcaptchalibs" dir="${lib.dir}">
  @@ -50,227 +62,208 @@
           <fileset refid="seamlibs"/>
   	</path>
   
  -	<target name="init" description="Initialize the build">
  -        <mkdir dir="${jar.dir}" />
  -		<mkdir dir="${ear.dir}" />
  -		<mkdir dir="${war.dir}" />
  -		<mkdir dir="${dist.dir}" />
  +    <patternset id="meta.files">
  +        <include name="**/*.xml"/>
  +        <include name="**/*.properties"/>
  +        <include name="**/*.sql"/>
  +        <include name="**/*.MF"/>
  +    </patternset>
  +
  +    <!-- ################## SETUP ####################### -->
  +
  +    <target name="init" description="Initialize the project build">
  +        <mkdir dir="${classes.dir}"/>
  +        <mkdir dir="${testclasses.dir}"/>
  +        <mkdir dir="${exploded.war.dir}"/>
   	</target>
   
  -	<target name="compile" depends="init" 
  -			description="Compile the Java source code" 
  -			unless="eclipse.running">
  +    <target name="clean" description="Cleans up all build artifacts">
  +        <delete dir="${build.dir}"/>
  +    </target>
  +
  +    <!-- ################## COMPILE ####################### -->
  +
  +    <target name="compileclasses" depends="init"
  +            description="Compile the main Java source code">
  +
   		<javac classpathref="build.classpath" 
  -			        destdir="${jar.dir}" 
  +                    destdir="${classes.dir}"
   			          debug="${javac.debug}" 
   			    deprecation="${javac.deprecation}" 
  -			        nowarn="on">
  +                     nowarn="${javac.nowarn}">
   			<src path="${src.java.dir}" />
   		</javac>
  -	</target>
   
  -	<target name="jar" depends="compile" 
  -			description="Build the distribution .jar file">
  -		<copy todir="${jar.dir}">
  -			<fileset dir="${basedir}/resources">
  -				<include name="seam.properties" />
  +        <!-- Copy resources (mapping files, properties, etc.) to classes -->
  +        <copy todir="${classes.dir}">
  +            <fileset dir="${src.java.dir}">
  +                <patternset refid="meta.files"/>
   			</fileset>
   		</copy>
  -		<copy todir="${jar.dir}/META-INF">
  -			<fileset dir="${basedir}/resources/META-INF">
  -				<include name="ejb-jar.xml" />
  -                <include name="wiki.taglib.xml" />
  -                <include name="MANIFEST.MF" />
  -			</fileset>
  -		</copy>
  -		<copy tofile="${jar.dir}/META-INF/persistence.xml" 
  -			    file="${basedir}/resources/META-INF/persistence-${profile}.xml"
  -		   overwrite="true"/>
  -		<copy tofile="${jar.dir}/import.sql" 
  -			    file="${basedir}/resources/import-${profile}.sql"
  -		   overwrite="true"/>
  -        <!-- Replace @@LF@@ in import.sql with real SQL char(10) linefeed (concat)-->
  -        <replace file="${jar.dir}/import.sql" token="@@LF@@" value="'+char(10)+'"/>
  +
       </target>
   
  -	<target name="war" depends="compile" 
  -			description="Build the distribution .war file">
  -		<copy todir="${war.dir}">
  -			<fileset dir="${basedir}/view" />
  +    <!-- ################## EXPLODE ####################### -->
  +
  +    <target name="explodewar" depends="explodehotdeployclasses, exploderesources"
  +            description="Creates a hot-redeployable exploded WAR directory">
  +    </target>
  +
  +    <target name="explodehotdeployclasses" depends="compileclasses">
  +        <copy todir="${exploded.war.dir}/WEB-INF/classes">
  +            <fileset dir="${classes.dir}" excludes="${hotdeploy.classes}"/>
   		</copy>
  -        <copy todir="${war.dir}/META-INF">
  -            <fileset dir="${basedir}/resources/META-INF">
  -                <include name="MANIFEST.MF" />
  -            </fileset>
  +        <copy todir="${exploded.war.dir}/WEB-INF/dev">
  +            <fileset dir="${classes.dir}" includes="${hotdeploy.classes}"/>
           </copy>
  -		<copy todir="${war.dir}/WEB-INF">
  -			<fileset dir="${basedir}/resources/WEB-INF">
  -				<include name="*.*"/>
  -				<include name="classes/**/*.*"/>
  -				<exclude name="classes/**/*.class"/>
  -			</fileset>
  -			<filterset>
  -				<filter token="jndiPattern" value="${project.name}/#{ejbName}/local" />
  -				<filter token="embeddedEjb" value="false" />
  -			</filterset>
  +    </target>
  +
  +    <target name="explodeallclasses" depends="compileclasses">
  +        <copy todir="${exploded.war.dir}/WEB-INF/classes">
  +            <fileset dir="${classes.dir}"/>
   		</copy>		
  -		<copy todir="${war.dir}/WEB-INF">
  -			<fileset dir="${basedir}/resources/WEB-INF">
  -				<include name="lib/*.*"/>
  -				<include name="classes/**/*.class"/>
  -			</fileset>
  +    </target>
  +
  +    <target name="exploderesources" depends="compileclasses">
  +
  +        <!-- ########## XHTML ########### -->
  +        <copy todir="${exploded.war.dir}">
  +            <fileset dir="${view.dir}"/>
   		</copy>		
  -		<copy todir="${war.dir}/WEB-INF/lib">
  +
  +        <!-- ########## Libs ########### -->
  +        <copy todir="${exploded.war.dir}/WEB-INF/lib">
  +            <fileset refid="droolslibs"/>
  +            <fileset refid="jcaptchalibs"/>
  +            <fileset refid="seamlibs"/>
   			<fileset dir="${lib.dir}">
  +                <include name="ajax4jsf.jar" />
  +                <include name="oscache*.jar" />
   				<include name="jsf-facelets.jar" />
  +                <include name="jboss-seam.jar" />
  +                <include name="jboss-seam-*.jar" />
  +                <exclude name="jboss-seam-gen.jar" />
  +                <include name="commons-jci-*.jar"/>
  +                <include name="jbpm*.jar" />
  +                <include name="el-*.jar" />
   			</fileset>
  -            <fileset dir="${seamlibs.dir}">
  -                <include name="jboss-seam-debug.jar" />
  -                <include name="jboss-seam-ui.jar" />
  -                <include name="jboss-seam-mail.jar" />
  +        </copy>
  +        <!-- TODO: Do we need this in etc? -->
  +        <copy todir="${exploded.war.dir}/WEB-INF">
  +            <fileset dir="${src.etc.dir}/WEB-INF">
  +                <include name="lib/*.*"/>
               </fileset>
           </copy>
  -		<copy todir="${war.dir}/WEB-INF/classes">
  -			<fileset dir="${basedir}/resources"> 
  -				<include name="messages*.properties"/>
  +
  +        <!-- ########## Configuration files (WEB-INF) ########### -->
  +        <copy todir="${exploded.war.dir}/WEB-INF">
  +            <fileset dir="${src.etc.dir}/WEB-INF">
  +                <patternset refid="meta.files"/>
   			</fileset>
  +            <!-- Set JBoss JNDI lookup pattern and disable embeddable EJB 3.0 container in Seam config files-->
  +            <filterset>
  +                <filter token="jndiPattern" value="${project.name}/#{ejbName}/local"/>
  +                <filter token="embeddedEjb" value="false"/>
  +            </filterset>
   		</copy>
  -	</target>
   
  -	<target name="ear" description="Build the EAR">
  -		<copy todir="${ear.dir}">
  -			<fileset dir="${basedir}/resources">
  +        <!-- ########## Configuration files (WEB-INF/classes) ########### -->
  +        <copy todir="${exploded.war.dir}/WEB-INF/classes">
  +            <fileset dir="${src.etc.dir}">
  +                <include name="seam.properties" />
  +                <include name="security.drl" />
  +                <include name="messages*.properties"/>
   				<include name="*jpdl.xml" />
   				<include name="hibernate.cfg.xml" />
   				<include name="jbpm.cfg.xml" />
   			</fileset>
  -			<fileset dir="${lib.dir}">
  -				<include name="jbpm*.jar" />
  -				<include name="el-*.jar" />
  -			</fileset>
  -            <fileset dir="${seamlibs.dir}">
  -                <include name="jboss-seam.jar" />
  -            </fileset>
  -            <fileset refid="droolslibs"/>
  -            <fileset refid="jcaptchalibs"/>
           </copy>
  -		<copy todir="${ear.dir}/META-INF">
  -			<fileset dir="${basedir}/resources/META-INF">
  -				<include name="application.xml" />
  -				<include name="jboss-app.xml" />
  -                <include name="security-rules.drl" />
  +        <copy tofile="${exploded.war.dir}/WEB-INF/classes/import.sql"
  +                file="${src.etc.dir}/import-${profile}.sql"
  +           overwrite="true"/>
  +        <!-- Replace @@LF@@ in import.sql with real SQL char(10) linefeed (concat)-->
  +        <replace file="${exploded.war.dir}/WEB-INF/classes/import.sql" token="@@LF@@" value="'+char(10)+'"/>
  +
  +        <!-- ########## Configuration files (WEB-INF/classes/META-INF) ########### -->
  +        <copy todir="${exploded.war.dir}/WEB-INF/classes/META-INF">
  +            <fileset dir="${src.etc.dir}/META-INF">
  +                <include name="wiki.taglib.xml"/>
   			</fileset>
   		</copy>
  +        <copy tofile="${exploded.war.dir}/WEB-INF/classes/META-INF/persistence.xml"
  +                file="${src.etc.dir}/META-INF/persistence-${profile}-war.xml"
  +                overwrite="true"/>
  +
   	</target>
   	
  -	<target name="archive" depends="jar,war,ear" 
  -			description="Package the archives">
  -		<jar jarfile="${dist.dir}/${project.name}.jar" basedir="${jar.dir}"/>
  -		<jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}"/>
  -		<jar jarfile="${dist.dir}/${project.name}.ear">
  -			<fileset dir="${ear.dir}"/>
  -			<fileset dir="${dist.dir}">
  -				<include name="${project.name}.jar"/>
  -				<include name="${project.name}.war"/>
  -			</fileset>
  -		</jar>
  +    <!-- ################## DEPLOYMENT ####################### -->
  +
  +    <target name="hotdeploy" depends="compileclasses"
  +            description="Deploys only hotdeployable classes/resources to JBoss AS">
  +        <fail unless="jboss.home">jboss.home not set</fail>
  +
  +        <!-- ######## Classes ######## -->
  +        <copy todir="${deploy.war.dir}/WEB-INF/dev">
  +            <fileset dir="${classes.dir}" includes="${hotdeploy.classes}"/>
  +        </copy>
  +
  +        <!-- ######## XHTML ######## -->
  +        <copy todir="${deploy.war.dir}">
  +            <fileset dir="${view.dir}"/>
  +        </copy>
  +
   	</target>
   	
  -	<target name="datasource">
  +    <target name="deploy" depends="explodewar"
  +            description="Deploy datasource and exploded archive to JBoss AS">
   		<fail unless="jboss.home">jboss.home not set</fail>
  +
  +        <!-- ######## Datasoure ######## -->
   		<copy todir="${deploy.dir}">
  -			<fileset dir="${basedir}/resources">
  +            <fileset dir="${src.etc.dir}">
   				<include name="${project.name}-${profile}-ds.xml" />
   			</fileset>
   		</copy>
  +
  +        <!-- ######## Exploded WAR ######## -->
  +        <copy todir="${deploy.war.dir}">
  +            <fileset dir="${exploded.war.dir}"/>
  +        </copy>
  +
   	</target>
   	
  -	<target name="explode" depends="jar,war,ear,datasource" 
  -			description="Deploy the exploded archive">
  +    <target name="undeploy"
  +            description="Undeploy datasource and exploded archive">
   		<fail unless="jboss.home">jboss.home not set</fail>
   		
  -		<mkdir dir="${jar.deploy.dir}"/>
  -		<mkdir dir="${war.deploy.dir}"/>		
  +        <delete dir="${deploy.war.dir}" failonerror="no"/>
  +        <delete file="${deploy.dir}/${project.name}-${profile}-ds.xml" failonerror="no"/>
   		
  -		<copy todir="${jar.deploy.dir}">
  -			<fileset dir="${jar.dir}"/>
  -		</copy>
  -		<copy todir="${war.deploy.dir}">
  -			<fileset dir="${war.dir}"/>
  -		</copy>
  -		<copy todir="${ear.deploy.dir}">
  -			<fileset dir="${ear.dir}"/>
  -		</copy>
   	</target>
   
  -	<target name="unexplode" description="Undeploy the exploded archive">
  -		<delete failonerror="no">
  -			<fileset dir="${ear.deploy.dir}">
  -				<exclude name="**/*.jar"/>
  -			</fileset>
  -		</delete>
  -		<delete file="${deploy.dir}/${project.name}-ds.xml" failonerror="no"/>
  -		<delete dir="${ear.deploy.dir}" failonerror="no"/>
  +    <target name="redeploy" depends="deploy" description="Deploy and restart the WAR">
  +        <touch file="${deploy.war.dir}/WEB-INF/web.xml"/>
   	</target>
   	
  -	<target name="restart" depends="explode" description="Restart the exploded archive">
  -		<touch file="${ear.deploy.dir}/META-INF/application.xml"/>
  -	</target>
  +    <!-- ######################## DISTRIBUTION ################## -->
   
  -	<target name="deploy" depends="archive,datasource" description="Deploy to JBoss AS">
  -		<fail unless="jboss.home">jboss.home not set</fail>
  -		<copy todir="${deploy.dir}" file="${dist.dir}/${project.name}.ear" />
  -	</target>
  +    <target name="dist" depends="clean, explodeallclasses, exploderesources"
  +            description="Package a WAR archive">
   
  -	<target name="undeploy" description="Undeploy the example from JBoss">
  -		<delete file="${deploy.dir}/${project.name}.ear" />
  -		<delete file="${deploy.dir}/${project.name}-dev-ds.xml" />
  -		<delete file="${deploy.dir}/${project.name}-prod-ds.xml" />
  -	</target>
  +        <delete dir="${dist.dir}"/>
  +        <mkdir dir="${dist.dir}"/>
   
  -	<target name="clean" description="Cleans up the build directory">
  -		<delete dir="${dist.dir}" />
  -		<delete dir="${test.dir}" />
  -		<delete dir="${ear.dir}" />
  -		<delete dir="${war.dir}" />
  -		<delete>
  -			<fileset dir="${jar.dir}">
  -				<exclude name="**/*.class" if="eclipse.running"/>
  -			</fileset>
  -		</delete>
  -	</target>
  +        <jar jarfile="${dist.dir}/${project.name}.war" basedir="${exploded.war.dir}"/>
   
  -	<target name="test" depends="jar,war,ear" description="Run the tests">
  +        <copy tofile="${dist.dir}/${project.name}-ds.xml"
  +                file="${src.etc.dir}/${project.name}-${profile}-ds.xml"/>
   
  -        <mkdir dir="${test.dir}"/>
  -        <javac classpathref="build.classpath"
  -                        destdir="${test.dir}"
  -                          debug="${javac.debug}"
  -                    deprecation="${javac.deprecation}"
  -                        nowarn="on">
  -                <src path="${src.java.dir}" />
  -                <src path="${src.test.dir}" />
  -        </javac>
  -		<copy todir="${test.dir}">
  -			<fileset dir="${basedir}/resources" />
  -		</copy>
  -		<copy todir="${test.dir}" flatten="true">
  -			<fileset dir="${src.test.dir}">
  -				<include name="**/*Test.xml" />
  -			</fileset>
  -		</copy>
  -		
  -		<taskdef resource="testngtasks" classpath="${testng.jar}" />
  -		<testng outputdir="${basedir}/testng-report">
  -			<classpath path="${test.dir}" />
  -			<classpath path="${embedded-ejb3.dir}" />
  -			<classpath refid="build.classpath" />
  -			<xmlfileset dir="${test.dir}" includes="*Test.xml" />
  -		</testng>
  +        <antcall target="clean"/>
   		
   	</target>
   
  -    <!-- Database schema export -->
  +    <!-- ######################## TOOLS ################## -->
  +
       <path id="tools.classpath">
           <fileset dir="../../seam-gen/lib">
               <include name="*.jar"/>
  @@ -287,21 +280,68 @@
                classname="org.hibernate.tool.ant.HibernateToolTask"
                classpathref="tools.classpath"/>
   
  -    <target name="schemaexport" depends="jar"
  +    <target name="schemaexport" depends="explodewar"
           description="Exports a generated schema to a file">
   
  +        <mkdir dir="${dist.dir}"/>
  +
           <hibernatetool destdir="${basedir}">
  -            <classpath path="${jar.dir}"/>
  +            <classpath path="${exploded.war.dir}/WEB-INF/classes"/>
               <jpaconfiguration/> <!-- Use META-INF/persistence.xml -->
               <hbm2ddl
                   drop="false"
                   create="true"
                   export="false"
  -                outputfilename="${dist.dir}/wiki-ddl.sql"
  +                outputfilename="${dist.dir}/${project.name}-ddl.sql"
                   delimiter=";"
                   format="true"/>
           </hibernatetool>
           <echo message="Exported DDL to file: ${dist.dir}/wiki-ddl.sql"/>
       </target>
  +    <!--
  +    <target name="compiletest" unless="eclipse.running" description="Compile the Java source code for the tests">
  +        <mkdir dir="${test.dir}"/>
  +        <javac classpathref="build.classpath"
  +                        destdir="${test.dir}"
  +                          debug="${javac.debug}"
  +                    deprecation="${javac.deprecation}"
  +                        nowarn="on">
  +                <src path="${src.components.dir}" />
  +                <src path="${src.other.dir}" />
  +                <src path="${src.test.dir}" />
  +        </javac>
  +    </target>
  +
  +    <target name="buildtest" depends="compiletest" description="Build the tests">
  +        <copy todir="${test.dir}">
  +            <fileset dir="${basedir}/resources">
  +                <exclude name="META-INF/persistence*.xml"/>
  +                <exclude name="import*.sql"/>
  +                <exclude name="${project.name}-*-ds.xml"/>
  +            </fileset>
  +        </copy>
  +        <copy tofile="${test.dir}/META-INF/persistence.xml"
  +                file="${basedir}/resources/META-INF/persistence-test-war.xml"
  +           overwrite="true"/>
  +        <copy tofile="${test.dir}/import.sql"
  +                file="${basedir}/resources/import-test.sql"
  +           overwrite="true"/>
  +        <copy todir="${test.dir}" flatten="true">
  +            <fileset dir="${src.test.dir}">
  +                <include name="**/*Test.xml" />
  +            </fileset>
  +        </copy>
  +    </target>
  +
  +    <target name="test" depends="buildtest" description="Run the tests">
  +        <taskdef resource="testngtasks" classpath="${testng.jar}" />
  +        <testng outputdir="${basedir}/test-report">
  +            <classpath path="${test.dir}" />
  +            <classpath path="${embedded-ejb3.dir}" />
  +            <classpath refid="build.classpath" />
  +            <xmlfileset dir="${test.dir}" includes="*Test.xml" />
  +        </testng>
  +    </target>
  +    -->
   
   </project>
  
  
  
  1.3       +5 -3      jboss-seam/examples/wiki/build.properties
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: build.properties
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/build.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- build.properties	21 Feb 2007 16:24:10 -0000	1.2
  +++ build.properties	7 Mar 2007 18:37:36 -0000	1.3
  @@ -1,4 +1,6 @@
  -#Set this if you move the 'wiki' example out of the Seam example directory
  -#seam.home = /Users/turin/work/remote/jboss/public/jboss-seam
  -
   jboss.home = /Users/turin/work/local/jboss/jboss-4.0.5.GA
  \ No newline at end of file
  +hotdeploy.classes = **/wiki/core/action/* **/wiki/core/dao/* **/wiki/core/links/*
  +javac.debug = true
  +javac.deprecation = false
  +javac.nowarn = on
  +
  
  
  



More information about the jboss-cvs-commits mailing list