<?xml version="1.0"?>

<!-- ======================================================================= -->
<!-- JBoss build file    $Id: build.xml 58 2005-04-19 14:14:25Z elkner $                                                   -->
<!-- ======================================================================= -->

<project name="JBoss" default="jar" basedir=".">
	<property file="${user.home}/config/ant/${ant.project.name}.properties"/>
	<property file="${user.home}/config/ant/global.properties"/>
	<property file="/usr/apps/javax/global.properties"/>
	<property environment="env"/>
	<property name="src.dir" value="${basedir}/src"/>
	<property name="jboss.home" value="${env.JBOSS_HOME}"/>
	<property name="jboss.server" value="default"/>
	<property name="build.dir" value="${basedir}/build"/>
	<property name="build.classes.dir" value="${build.dir}/classes"/>
	<property name="dist.dir" value="${basedir}/dist"/>

	<!-- Build classpath -->
	<path id="classpath">
		<fileset dir="${jboss.home}/lib">
			<include name="**/*.jar"/>
		</fileset>
		<fileset dir="${jboss.home}/server/all/lib">
			<include name="**/*.jar"/>
		</fileset>

		<fileset dir="${jboss.home}/server/all/deploy/ejb3.deployer">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="${jboss.home}/server/all/deploy/jboss-aop-jdk50.deployer">
			<include name="*.jar"/>
		</fileset>
		<pathelement location="${build.classes.dir}"/>
		<!-- So that we can get jndi.properties for InitialContext -->
		<pathelement location="${basedir}/src/properties/client"/>

	</path>

	<property name="build.classpath" refid="classpath"/>

	<!-- =================================================================== -->
	<!-- Prepares the build directory                                        -->
	<!-- =================================================================== -->
	<target name="prepare">
		<tstamp/>
		<mkdir dir="${build.dir}"/>
		<mkdir dir="${build.classes.dir}"/>
	</target>

	<!-- =================================================================== -->
	<!-- Compiles the source code                                            -->
	<!-- =================================================================== -->
	<target name="compile" depends="prepare">
		<javac srcdir="${src.dir}"
         destdir="${build.classes.dir}"
         debug="on"
         deprecation="on"
         optimize="off"
         includes="**">
			<classpath refid="classpath"/>
		</javac>
	</target>

	<target name="jar" depends="compile">
		<jar jarfile="build/tutorial.ejb3">
			<fileset dir="${build.classes.dir}">
				<exclude name="**/composite/**/*.class"/>
				<exclude name="**/clustering/**/*.class"/>
				<include name="**/*.class"/>
			</fileset>
	         <fileset dir="src/properties/server">
	            <include name="**/*.properties"/>
	         </fileset>
		</jar>
	</target>
	<target name="deploy" depends="jar">
		<copy file="src/properties/server/queue-example-service.xml" 
			todir="${jboss.home}/server/${jboss.server}/deploy"/>
		<copy file="build/tutorial.ejb3" 
			todir="${jboss.home}/server/${jboss.server}/deploy"/>
		<echo message="May takes some seconds, until everything is bound ..."/>
	</target>

	<target name="run.stateless" depends="jar">
		<java classname="org.jboss.tutorial.stateless.client.CalculatorClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.stateful" depends="jar">
		<java classname="org.jboss.tutorial.stateful.client.ShoppingCartClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.security" depends="jar">
		<java classname="org.jboss.tutorial.security.client.CalculatorClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.injection" depends="jar">
		<java classname="org.jboss.tutorial.injection.client.ShoppingCartClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.mdb" depends="jar">
		<java classname="org.jboss.tutorial.mdb.client.MDBClient" fork="yes" 
			dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.timer" depends="jar">
		<java classname="org.jboss.tutorial.timer.client.ExampleTimerClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.interceptor" depends="jar">
		<java classname="org.jboss.tutorial.interceptor.client.EmailClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.callback" depends="jar">
		<java classname="org.jboss.tutorial.callback.client.CallbackClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.entity" depends="jar">
		<java classname="org.jboss.tutorial.entity.client.ShoppingCartClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.merge" depends="jar">
		<java classname="org.jboss.tutorial.merge.client.CustomerClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.dependent" depends="jar">
		<java classname="org.jboss.tutorial.dependent.client.CustomerClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.secondary" depends="jar">
		<java classname="org.jboss.tutorial.secondary.client.CustomerClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.relationship" depends="jar">
		<java classname="org.jboss.tutorial.relationship.client.FlightClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.singleinheritance" depends="jar">
		<java classname="org.jboss.tutorial.singleinheritance.client.PetClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.tableperinheritance" depends="jar">
		<java classname="org.jboss.tutorial.tableperinheritance.client.PetClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.joininheritance" depends="jar">
		<java classname="org.jboss.tutorial.joininheritance.client.PetClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.composite" depends="jar">
		<java classname="org.jboss.tutorial.composite.client.FlightClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.cluster.stateless" depends="jar">
		<java classname="org.jboss.tutorial.clustering.client.StatelessRun" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.cluster.stateful" depends="jar">
		<java classname="org.jboss.tutorial.clustering.client.StatefulRun" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.consumer" depends="jar">
		<java classname="org.jboss.tutorial.consumer.client.ConsumerClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.service" depends="jar">
		<java classname="org.jboss.tutorial.service.client.ServiceClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.async" depends="jar">
		<java classname="org.jboss.tutorial.async.client.EchoClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.many2many" depends="jar">
		<java classname="org.jboss.tutorial.many2many.client.UserClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	<target name="run.tree" depends="jar">
		<java classname="org.jboss.misc.tree.client.TreeNodeClient" 
			fork="yes" dir=".">
			<classpath refid="classpath"/>
		</java>
	</target>
	
	<!-- =================================================================== -->
	<!-- Cleans up generated stuff                                           -->
	<!-- =================================================================== -->
	<target name="clean.db">
		<delete dir="${jboss.home}/server/all/data/hypersonic"/>
	</target>

	<target name="clean">
		<delete dir="${build.dir}"/>
		<delete dir="${dist.dir}"/>
	</target>
		
	<target name="undeploy">
		<delete failonerror="false" 
			file="${jboss.home}/server/${jboss.server}/deploy/tutorial.ejb3"/>
		<delete failonerror="false" 
			file="${jboss.home}/server/${jboss.server}/deploy/queue-example-service.xml"/>
	</target>

	<target name="dist">
		<mkdir dir="${dist.dir}"/>
		<copy todir="${dist.dir}/src/" includeemptydirs="false">
			<fileset dir="${src.dir}"/>
		</copy>
		<copy todir="${dist.dir}">
			<fileset dir="${basedir}" includes=".classpath,.project,build.xml"/>
		</copy>
	</target>
</project>
