azkaban-developers

Changes

.gitignore 4(+4 -0)

build.xml 119(+64 -55)

ivy.xml 100(+50 -50)

unit/build.xml 174(+91 -83)

Details

.gitignore 4(+4 -0)

diff --git a/.gitignore b/.gitignore
index c0f64a8..4b92661 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
 dist/
 build/
+*.log
+TestProcess_*
+_AzkabanTestDir_*
+reports/

build.xml 119(+64 -55)

diff --git a/build.xml b/build.xml
index 06de047..5bf562d 100644
--- a/build.xml
+++ b/build.xml
@@ -13,31 +13,31 @@
   <property name="dist.web.package.dir" value="${dist.packages.dir}/azkaban-web-server" />
   <property name="dist.exec.package.dir" value="${dist.packages.dir}/azkaban-exec-server" />
   <property name="dist.solo.package.dir" value="${dist.packages.dir}/azkaban-solo-server" />
-  <property name="dist.sql.package.dir" value="${dist.packages.dir}/sql" />  
+  <property name="dist.sql.package.dir" value="${dist.packages.dir}/sql" />
 
   <property name="conf.dir" value="${basedir}/conf" />
   <property name="web.package.dir" value="${basedir}/src/package/webserver" />
   <property name="exec.package.dir" value="${basedir}/src/package/execserver" />
   <property name="solo.package.dir" value="${basedir}/src/package/soloserver" />
-  
+
   <property name="bin.dir" value="${basedir}/bin" />
   <property name="java.src.dir" value="${basedir}/src/java" />
   <property name="dust.src.dir" value="${basedir}/src/tl" />
   <property name="less.src.dir" value="${basedir}/src/less" />
   <property name="web.src.dir" value="${basedir}/src/web" />
   <property name="sql.src.dir" value="${basedir}/src/sql" />
-  
+
   <property name="version.file" value="${dist.packages.dir}/azkaban.version" />
-  
+
   <!-- Ivy properties -->
   <property name="mvnrepo" value="http://repo2.maven.org/maven2" />
   <property name="build.dir" value="${base.dir}/build" />
   <property name="ivy.dir" location="ivy" />
   <loadproperties srcfile="${ivy.dir}/libraries.properties" />
-  
+
   <property name="loglevel" value="default" />
   <property name="ivy.jar" value="${ivy.dir}/ivy-${ivy.version}.jar" />
-  <property name="ivy.repo.url" 
+  <property name="ivy.repo.url"
       value="${mvnrepo}/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" />
   <property name="ivysettings.xml" value="${ivy.dir}/ivysettings.xml" />
   <property name="build.ivy.dir" location="${build.dir}/ivy" />
@@ -56,9 +56,9 @@
 
   <!-- set the build number based on environment variable, otherwise blank -->
   <property environment="env" description="System environment variables (including those set by Hudson)" />
-  
+
   <target name="all" depends="clean, package" description="Builds jars and packages." />
-  
+
   <target name="ivy-probe-antlib">
     <condition property="ivy.found">
       <typefound uri="antlib:org.apache.ivy.ant" name="cleancache" />
@@ -99,24 +99,33 @@
     <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" log="${loglevel}" />
   </target>
 
+  <target name="ivy-resolve-test" depends="ivy-init" description="Resolve dependencies with Ivy">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="test" log="${loglevel}" />
+  </target>
+
   <target name="ivy-retrieve" depends="ivy-resolve" description="Retrieve Ivy-managed artifacts.">
     <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
         pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" log="${loglevel}" />
   </target>
-  
+
+  <target name="ivy-retrieve-test" depends="ivy-resolve-test" description="Retrieve Ivy-managed artifacts for test conf.">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+        pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" conf="test" log="${loglevel}" />
+  </target>
+
   <available file=".git" type="dir" property="git.present"/>
   <target name="git.info" description="Store git info" if="git.present">
     <exec executable="git" outputproperty="git.commithash" failifexecutionfails="false" errorproperty="">
       <arg value="rev-parse"/>
       <arg value="HEAD"/>
     </exec>
-  
+
     <exec executable="git" outputproperty="git.repo" failifexecutionfails="false" errorproperty="">
       <arg value="config"/>
       <arg value="--get"/>
       <arg value="remote.origin.url"/>
     </exec>
-  
+
     <exec executable="git" outputproperty="git.tag" failifexecutionfails="false" errorproperty="">
       <arg value="describe"/>
       <arg value="--abbrev=0"/>
@@ -130,7 +139,7 @@
     </condition>
     <echo>Git tag found to be ${git.commithash} with tag ${git.tag} from repo ${git.repo}</echo>
   </target>
-  
+
   <target name="clean" description="Delete generated files.">
     <echo message="Deleting generated files in dist" />
     <delete dir="${dist.jar.dir}" />
@@ -147,7 +156,7 @@
 			<fileset dir="unit" includes="build.xml" />
 		</subant>
   </target>
-  
+
   <target name="distclean" depends="clean" description="Delete all generated files.">
     <delete dir="${build.dir}" />
     <delete>
@@ -166,7 +175,7 @@
       <fileset dir="${dust.src.dir}/obj" includes="*.js" />
     </copy>
   </target>
-  
+
   <target name="less" description="Compile Less css files.">
     <!-- Compile LESS to CSS -->
     <delete dir="${dist.less.dir}" />
@@ -176,14 +185,14 @@
       <fileset dir="${less.src.dir}/obj" includes="*.css" />
     </copy>
   </target>
-  
+
   <target name="repo.file" depends="git.info" description="Create a file to reference the git commit">
     <delete file="azkaban.version" />
-    
+
     <tstamp>
       <format timezone="UTC" property="current.time" pattern="yyyy-MM-dd hh:mm zzz"/>
     </tstamp>
-    
+
     <!-- Need to remove indents of the echo contents, because echo into file includes the tabs -->
 <echo file="${version.file}">
 ${git.tag}
@@ -192,19 +201,19 @@ ${git.repo}
 ${current.time}
 </echo>
   </target>
-  
+
   <target name="build" depends="git.info, repo.file, ivy-retrieve" description="Compile main source tree java files">
     <echo>Building Classes</echo>
     <delete dir="${dist.classes.dir}" />
     <mkdir dir="${dist.classes.dir}" />
-    
+
     <!-- copy non-java files to classes dir to load from classpath -->
     <copy todir="${dist.classes.dir}">
       <fileset dir="${java.src.dir}">
         <exclude name="**/*.java" />
       </fileset>
     </copy>
-    
+
     <javac fork="true" destdir="${dist.classes.dir}"
       target="1.6" debug="true" deprecation="false" failonerror="true">
       <src path="${java.src.dir}" />
@@ -214,20 +223,20 @@ ${current.time}
     <antcall target="dust"></antcall>
     <antcall target="less"></antcall>
   </target>
-  
+
   <target name="webmin" description="Copies only the non compiled web resources to dist dir">
     <copy todir="${dist.web.dir}" overwrite="true">
       <fileset dir="${web.src.dir}" />
     </copy>
   </target>
-  
+
   <target name="web" description="Creates web resourses in a dir. Useful for development">
     <mkdir dir="${dist.web.dir}" />
-    
+
     <antcall target="webmin"></antcall>
     <antcall target="dust"></antcall>
     <antcall target="less"></antcall>
-    
+
     <!-- Copy compiled dust templates -->
     <copy todir="${dist.web.dir}/js">
       <fileset dir="${dist.dust.dir}" />
@@ -238,7 +247,7 @@ ${current.time}
       <fileset dir="${dist.less.dir}" />
     </copy>
   </target>
-  
+
   <target name="jars" depends="build" description="Create azkaban jar">
     <mkdir dir="${dist.jar.dir}" />
     <jar destfile="${dist.jar.dir}/azkaban-${git.tag}.jar">
@@ -247,7 +256,7 @@ ${current.time}
       </fileset>
     </jar>
   </target>
-  
+
   <target name="create-update-script" description="Prepare the creation of the Azkaban Scripts">
     <!-- Generic update table scripts -->
     <concat destfile="${dist.sql.package.dir}/update-all-sql-${updateVersion}.sql" fixlastline="yes">
@@ -256,7 +265,7 @@ ${current.time}
       </fileset>
     </concat>
   </target>
-  
+
   <target name="create-update-script-2.1" description="Prepare the creation of the Azkaban Scripts">
     <!-- 2.1 added the active_sla table -->
     <concat destfile="${dist.sql.package.dir}/update-all-sql-2.1.sql" fixlastline="yes">
@@ -266,7 +275,7 @@ ${current.time}
       </fileset>
     </concat>
   </target>
-  
+
   <target name="create-update-script-2.2" description="Prepare the creation of the Azkaban Scripts">
     <!-- 2.2 added the properties table -->
     <concat destfile="${dist.sql.package.dir}/update-all-sql-2.2.sql" fixlastline="yes">
@@ -276,7 +285,7 @@ ${current.time}
       </fileset>
     </concat>
   </target>
-  
+
   <target name="package-sql-scripts" description="Creates a package of sql">
     <delete dir="${dist.sql.package.dir}" />
     <mkdir dir="${dist.sql.package.dir}" />
@@ -287,13 +296,13 @@ ${current.time}
         <exclude name="database.properties"/>
       </fileset>
     </concat>
-    
+
     <!-- Collect various update scripts. -->
     <!-- Not sure how to do this better yet. -->
     <antcall target="create-update-script-2.1"></antcall>
     <antcall target="create-update-script-2.2"></antcall>
     <!-- End script collection-->
-    
+
     <copy todir="${dist.sql.package.dir}" >
       <fileset dir="${sql.src.dir}" />
     </copy>
@@ -313,7 +322,7 @@ ${current.time}
     <mkdir dir="${dist.web.package.dir}/web" />
     <mkdir dir="${dist.web.package.dir}/plugins" />
     <mkdir dir="${dist.web.package.dir}/extlib" />
-      
+
     <!-- Copy Azkaban jars and libs-->
     <copy file="${dist.jar.dir}/azkaban-${git.tag}.jar" todir="${dist.web.package.dir}/lib" />
     <copy todir="${dist.web.package.dir}/lib" >
@@ -321,12 +330,12 @@ ${current.time}
         <exclude name="hadoop-core*.jar"/>
       </fileset>
     </copy>
-    
+
     <!-- Copy bin files for web server only-->
     <copy todir="${dist.web.package.dir}/bin">
       <fileset dir="${web.package.dir}/bin"/>
     </copy>
-    
+
     <!-- Copy web files -->
     <copy todir="${dist.web.package.dir}/web">
       <fileset dir="${web.src.dir}" />
@@ -341,25 +350,25 @@ ${current.time}
     <copy todir="${dist.web.package.dir}/web/css">
       <fileset dir="${dist.less.dir}" />
     </copy>
-    
+
     <!-- Copy conf create table scripts -->
     <copy todir="${dist.web.package.dir}/conf">
       <fileset dir="${web.package.dir}/conf" />
     </copy>
-    
+
     <!-- Copy version file -->
     <copy file="${version.file}" todir="${dist.web.package.dir}" />
-    
+
     <!-- Tarball it -->
     <tar destfile="${dist.web.package.dir}/${name}-web-server-${git.tag}.tar.gz" compression="gzip" longfile="gnu">
       <tarfileset dir="${dist.web.package.dir}" prefix="azkaban-${git.tag}" filemode="755" includes="bin/*" />
-      
+
       <tarfileset dir="${dist.web.package.dir}" prefix="azkaban-${git.tag}" includes="**">
         <exclude name="bin/*"/>
       </tarfileset>
     </tar>
   </target>
-  
+
   <target name="package-exec-server" depends="jars" description="Creates a package for the execserver">
     <delete dir="${dist.exec.package.dir}" />
     <mkdir dir="${dist.exec.package.dir}" />
@@ -368,7 +377,7 @@ ${current.time}
     <mkdir dir="${dist.exec.package.dir}/lib" />
     <mkdir dir="${dist.exec.package.dir}/plugins" />
     <mkdir dir="${dist.exec.package.dir}/extlib" />
-        
+
     <!-- Copy Azkaban jars and libs-->
     <copy file="${dist.jar.dir}/azkaban-${git.tag}.jar" todir="${dist.exec.package.dir}/lib" />
     <copy todir="${dist.exec.package.dir}/lib" >
@@ -376,7 +385,7 @@ ${current.time}
         <exclude name="hadoop-core*.jar"/>
       </fileset>
     </copy>
-    
+
     <!-- Copy bin files for exec server only-->
     <copy todir="${dist.exec.package.dir}/bin" >
       <fileset dir="${exec.package.dir}/bin"/>
@@ -386,20 +395,20 @@ ${current.time}
     <copy todir="${dist.exec.package.dir}/conf" >
       <fileset dir="${exec.package.dir}/conf" />
     </copy>
-    
+
     <!-- Copy version file -->
     <copy file="${version.file}" todir="${dist.exec.package.dir}" />
-    
+
     <!-- Tarball it -->
     <tar destfile="${dist.exec.package.dir}/${name}-executor-server-${git.tag}.tar.gz" compression="gzip" longfile="gnu">
       <tarfileset dir="${dist.exec.package.dir}" prefix="azkaban-${git.tag}" filemode="755" includes="bin/*" />
-      
+
       <tarfileset dir="${dist.exec.package.dir}" prefix="azkaban-${git.tag}" includes="**">
         <exclude name="bin/*"/>
       </tarfileset>
     </tar>
   </target>
-  
+
   <target name="package-solo-server" depends="jars" description="Creates a package for the solo server">
     <delete dir="${dist.solo.package.dir}" />
     <mkdir dir="${dist.solo.package.dir}" />
@@ -409,7 +418,7 @@ ${current.time}
     <mkdir dir="${dist.solo.package.dir}/plugins" />
     <mkdir dir="${dist.solo.package.dir}/extlib" />
     <mkdir dir="${dist.solo.package.dir}/sql" />
-        
+
     <!-- Copy Azkaban jars and libs-->
     <copy file="${dist.jar.dir}/azkaban-${git.tag}.jar" todir="${dist.solo.package.dir}/lib" />
     <copy todir="${dist.solo.package.dir}/lib" >
@@ -417,7 +426,7 @@ ${current.time}
         <exclude name="hadoop-core*.jar"/>
       </fileset>
     </copy>
-    
+
     <!-- Copy bin files for exec server only-->
     <copy todir="${dist.solo.package.dir}/bin" >
       <fileset dir="${solo.package.dir}/bin"/>
@@ -427,48 +436,48 @@ ${current.time}
     <copy todir="${dist.solo.package.dir}/conf" >
       <fileset dir="${solo.package.dir}/conf" />
     </copy>
-    
+
     <!-- Copy web files -->
     <copy todir="${dist.solo.package.dir}/web" >
       <fileset dir="${web.src.dir}" />
     </copy>
-    
+
     <!-- Copy compiled dust templates -->
     <copy todir="${dist.solo.package.dir}/web/js">
       <fileset dir="${dist.dust.dir}" />
     </copy>
-    
+
     <!-- Copy compiled less CSS -->
     <copy todir="${dist.solo.package.dir}/web/css">
       <fileset dir="${dist.less.dir}" />
     </copy>
-    
+
     <!-- Copy sql files -->
     <copy todir="${dist.solo.package.dir}/sql" >
       <fileset dir="${sql.src.dir}" />
     </copy>
     <echo file="${dist.solo.package.dir}/sql/database.properties" append="true">version=${git.tag}</echo>
-    
+
     <!-- Copy version file -->
     <copy file="${version.file}" todir="${dist.solo.package.dir}" />
 
     <!-- Tarball it -->
     <tar destfile="${dist.solo.package.dir}/${name}-solo-server-${git.tag}.tar.gz" compression="gzip" longfile="gnu">
       <tarfileset dir="${dist.solo.package.dir}" prefix="azkaban-${git.tag}" filemode="755" includes="bin/*" />
-      
+
       <tarfileset dir="${dist.solo.package.dir}" prefix="azkaban-${git.tag}" includes="**">
         <exclude name="bin/*"/>
       </tarfileset>
     </tar>
   </target>
-  
+
   <target name="package-all" depends="package-exec-server, package-web-server, package-solo-server, package-sql-scripts" description="Create all packages">
   </target>
 
   <target name="package" depends="package-all" description="Create all packages">
   </target>
 
-  <target name="test" depends="jars" description="Build and run tests">
+  <target name="test" depends="jars, ivy-retrieve-test" description="Build and run tests">
 		<subant target="all">
 			<fileset dir="unit" includes="build.xml" />
 		</subant>

ivy.xml 100(+50 -50)

diff --git a/ivy.xml b/ivy.xml
index 0739bed..d550471 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ivy-module version="1.0" xmlns:m="http://ant.apache.org/ivy/maven">
-  <info 
+  <info
       organisation="com.linkedin.azkaban"
       module="azkaban"
       revision="2.5" status="release">
@@ -17,64 +17,64 @@
 
   <dependencies>
     <dependency name="commons-collections" org="commons-collections"
-        rev="${commons-collections.version}" conf="compile->default" />
+        rev="${commons-collections.version}" conf="compile->master" />
     <dependency name="commons-configuration" org="commons-configuration"
-        rev="${commons-configuration.version}" conf="compile->default" />
-    <dependency name="commons-dbcp" org="commons-dbcp" 
-        rev="${commons-dbcp.version}" conf="compile->default" />
-    <dependency name="commons-dbutils" org="commons-dbutils" 
-        rev="${commons-dbutils.version}" conf="compile->default" />
+        rev="${commons-configuration.version}" conf="compile->master" />
+    <dependency name="commons-dbcp" org="commons-dbcp"
+        rev="${commons-dbcp.version}" conf="compile->master" />
+    <dependency name="commons-dbutils" org="commons-dbutils"
+        rev="${commons-dbutils.version}" conf="compile->master" />
     <dependency name="commons-email" org="org.apache.commons"
-        rev="${commons-email.version}" conf="compile->default" />
+        rev="${commons-email.version}" conf="compile->master" />
     <dependency name="commons-fileupload" org="commons-fileupload"
-        rev="${commons-fileupload.version}" conf="compile->default" />
+        rev="${commons-fileupload.version}" conf="compile->master" />
     <dependency name="commons-io" org="commons-io"
-        rev="${commons-io.version}" conf="compile->default" />
+        rev="${commons-io.version}" conf="compile->master" />
     <dependency name="commons-jexl" org="org.apache.commons"
-        rev="${commons-jexl.version}" conf="compile->default" />
+        rev="${commons-jexl.version}" conf="compile->master" />
     <dependency name="commons-lang" org="commons-lang"
-        rev="${commons-lang.version}" conf="compile->default" />
+        rev="${commons-lang.version}" conf="compile->master" />
     <dependency name="commons-logging" org="commons-logging"
-        rev="${commons-logging.version}" conf="compile->default" />
-    <dependency name="commons-pool" org="commons-pool" 
-        rev="${commons-pool.version}" conf="compile->default" />
+        rev="${commons-logging.version}" conf="compile->master" />
+    <dependency name="commons-pool" org="commons-pool"
+        rev="${commons-pool.version}" conf="compile->master" />
     <dependency name="guava" org="com.google.guava"
-        rev="${guava.version}" conf="compile->default" />
-    <dependency name="h2" org="com.h2database" 
-        rev="${h2.version}" conf="compile->default" />
-    <dependency name="httpclient" org="org.apache.httpcomponents" 
-        rev="${httpclient.version}" conf="compile->default" />
-    <dependency name="httpcore" org="org.apache.httpcomponents" 
-        rev="${httpcore.version}" conf="compile->default" />
-    <dependency name="jackson-core-asl" org="org.codehaus.jackson" 
-        rev="${jackson-core.version}" conf="compile->default" />
-    <dependency name="jackson-mapper-asl" org="org.codehaus.jackson" 
-        rev="${jackson-mapper.version}" conf="compile->default" />
-    <dependency name="jetty" org="org.mortbay.jetty" 
-        rev="${jetty.version}" conf="compile->default" />
-    <dependency name="jetty-util" org="org.mortbay.jetty" 
-        rev="${jetty-util.version}" conf="compile->default" />
-    <dependency name="joda-time" org="joda-time" 
-        rev="${joda-time.version}" conf="compile->default" />
-    <dependency name="jopt-simple" org="net.sf.jopt-simple" 
-        rev="${jopt-simple.version}" conf="compile->default" />
+        rev="${guava.version}" conf="compile->master" />
+    <dependency name="h2" org="com.h2database"
+        rev="${h2.version}" conf="compile->master" />
+    <dependency name="httpclient" org="org.apache.httpcomponents"
+        rev="${httpclient.version}" conf="compile->master" />
+    <dependency name="httpcore" org="org.apache.httpcomponents"
+        rev="${httpcore.version}" conf="compile->master" />
+    <dependency name="jackson-core-asl" org="org.codehaus.jackson"
+        rev="${jackson-core.version}" conf="compile->master" />
+    <dependency name="jackson-mapper-asl" org="org.codehaus.jackson"
+        rev="${jackson-mapper.version}" conf="compile->master" />
+    <dependency name="jetty" org="org.mortbay.jetty"
+        rev="${jetty.version}" conf="compile->master" />
+    <dependency name="jetty-util" org="org.mortbay.jetty"
+        rev="${jetty-util.version}" conf="compile->master" />
+    <dependency name="joda-time" org="joda-time"
+        rev="${joda-time.version}" conf="compile->master" />
+    <dependency name="jopt-simple" org="net.sf.jopt-simple"
+        rev="${jopt-simple.version}" conf="compile->master" />
     <dependency name="junit" org="junit"
         rev="${junit.version}" conf="test->default" />
-    <dependency name="log4j" org="log4j" 
-        rev="${log4j.version}" conf="compile->default" />
-    <dependency name="mail" org="javax.mail" 
-        rev="${mail.version}" conf="compile->default" />
-    <dependency name="mysql-connector-java" org="mysql" 
-        rev="${mysql-connector.version}" conf="compile->default" />
-    <dependency name="servlet-api" org="javax.servlet" 
-        rev="${servlet-api.version}" conf="compile->default" />
-    <dependency name="slf4j-api" org="org.slf4j" 
-        rev="${slf4j-api.version}" conf="compile->default" />
-    <dependency name="slf4j-log4j12" org="org.slf4j" 
-        rev="${slf4j-log4j12.version}" conf="compile->default" />
-    <dependency name="velocity" org="org.apache.velocity" 
-        rev="${velocity.version}" conf="compile->default" />
-    <dependency name="velocity-tools" org="org.apache.velocity" 
-        rev="${velocity-tools.version}" conf="compile->default" />
+    <dependency name="log4j" org="log4j"
+        rev="${log4j.version}" conf="compile->master" />
+    <dependency name="mail" org="javax.mail"
+        rev="${mail.version}" conf="compile->master" />
+    <dependency name="mysql-connector-java" org="mysql"
+        rev="${mysql-connector.version}" conf="compile->master" />
+    <dependency name="servlet-api" org="javax.servlet"
+        rev="${servlet-api.version}" conf="compile->master" />
+    <dependency name="slf4j-api" org="org.slf4j"
+        rev="${slf4j-api.version}" conf="compile->master" />
+    <dependency name="slf4j-log4j12" org="org.slf4j"
+        rev="${slf4j-log4j12.version}" conf="compile->master" />
+    <dependency name="velocity" org="org.apache.velocity"
+        rev="${velocity.version}" conf="compile->master" />
+    <dependency name="velocity-tools" org="org.apache.velocity"
+        rev="${velocity-tools.version}" conf="compile->master" />
   </dependencies>
 </ivy-module>

unit/build.xml 174(+91 -83)

diff --git a/unit/build.xml b/unit/build.xml
index f23437c..40566ca 100644
--- a/unit/build.xml
+++ b/unit/build.xml
@@ -1,124 +1,132 @@
 <?xml version="1.0"?>
 
 <project name="azkaban-testjob" basedir="." default="all">
-	<property name="base.dir" value="${basedir}/.." />
-	<property name="dist.jar.dir" value="${base.dir}/dist/unit/jars" />
-	<property name="dist.classes.dir" value="${base.dir}/dist/unit/classes" />
-	<property name="dist.packages.dir" value="${base.dir}/dist/unit/packages" />
-
-	<property name="java.src.dir" value="${base.dir}/unit/java" />
-	<property name="job.conf.dir" value="${base.dir}/unit/executions" />
-  <property name="build.ivy.lib.dir" location="../build/ivy/lib" />
-  <property name="build.jar.dir" location="../dist/jars" />
+  <property name="base.dir" value="${basedir}/.." />
+  <property name="dist.jar.dir" value="${base.dir}/dist/unit/jars" />
+  <property name="dist.classes.dir" value="${base.dir}/dist/unit/classes" />
+  <property name="dist.packages.dir" value="${base.dir}/dist/unit/packages" />
+
+  <property name="java.src.dir" value="${base.dir}/unit/java" />
+  <property name="job.conf.dir" value="${base.dir}/unit/executions" />
+  <property name="build.ivy.lib.dir" location="${base.dir}/build/ivy/lib" />
+  <property name="build.jar.dir" location="${base.dir}/dist/jars" />
   <property name="test.output.dir" location="${base.dir}/reports" />
 
-	<property environment="env" />
+  <property environment="env" />
 
-	<path id="main.classpath">
+  <path id="main.classpath">
     <fileset dir="${build.ivy.lib.dir}">
-			<include name="*.jar" />
-		</fileset>
+      <include name="*.jar" />
+    </fileset>
     <fileset dir="${build.jar.dir}">
-			<include name="*.jar" />
-		</fileset>
-	</path>
-
-	<!-- set the build number based on environment variable, otherwise blank -->
-	<property environment="env" description="System environment variables (including those set by Hudson)" />
-
-	<target name="all" depends="clean, test" description="Builds and packages" />
-
-	<target name="clean" description="Delete generated files.">
-		<echo message="Deleting generated files in dist" />
-		<delete dir="${dist.jar.dir}" />
-		<delete dir="${dist.classes.dir}" />
-		<delete dir="${dist.packages.dir}" />
-		<delete dir="${test.output.dir}" />
-	</target>
+      <include name="*.jar" />
+    </fileset>
+  </path>
+
+  <!-- set the build number based on environment variable, otherwise blank -->
+  <property environment="env" description="System environment variables (including those set by Hudson)" />
+
+  <target name="all" depends="clean, test" description="Builds and packages" />
+
+  <target name="clean" description="Delete generated files.">
+    <echo message="Deleting generated files in dist" />
+    <delete dir="${dist.jar.dir}" />
+    <delete dir="${dist.classes.dir}" />
+    <delete dir="${dist.packages.dir}" />
+    <delete dir="${test.output.dir}" />
+    <delete dir="${base.dir}/h2dbtest" />
+    <delete dir="${base.dir}/temp" />
+    <delete>
+      <fileset dir="${base.dir}">
+        <include name="azkaban-*.log" />
+        <include name="TestProcess_*" />
+      </fileset>
+    </delete>
+  </target>
 
-	<target name="build" description="Compile main source tree java files">
-		<delete dir="${dist.classes.dir}" />
-		<mkdir dir="${dist.classes.dir}" />
-		<mkdir dir="${dist.packages.dir}" />
+  <target name="build" description="Compile main source tree java files">
+    <delete dir="${dist.classes.dir}" />
+    <mkdir dir="${dist.classes.dir}" />
+    <mkdir dir="${dist.packages.dir}" />
 
     <javac fork="true" destdir="${dist.classes.dir}"
       target="1.6" debug="true" deprecation="false" failonerror="true">
       <src path="${java.src.dir}" />
       <classpath refid="main.classpath" />
     </javac>
-	</target>
-
-	<target name="jars" depends="build" description="Create azkaban jar">
-		<delete dir="${dist.jar.dir}" />
-		<mkdir dir="${dist.jar.dir}" />
-		<jar destfile="${dist.jar.dir}/test.jar">
-			<fileset dir="${dist.classes.dir}">
-				<include name="**/*.*" />
-			</fileset>
-		</jar>
-	</target>
-
-	<target name="package-exectest1" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/exectest1.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+  </target>
+
+  <target name="jars" depends="build" description="Create azkaban jar">
+    <delete dir="${dist.jar.dir}" />
+    <mkdir dir="${dist.jar.dir}" />
+    <jar destfile="${dist.jar.dir}/test.jar">
+      <fileset dir="${dist.classes.dir}">
+        <include name="**/*.*" />
+      </fileset>
+    </jar>
+  </target>
+
+  <target name="package-exectest1" depends="jars" description="Creates a test zip">
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/exectest1.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/exectest1" />
-		</zip>
-	</target>
+    </zip>
+  </target>
 
-	<target name="package-exectest2" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/exectest2.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+  <target name="package-exectest2" depends="jars" description="Creates a test zip">
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/exectest2.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/exectest2" />
-		</zip>
-	</target>
+    </zip>
+  </target>
 
-	<target name="package-animal" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/animal.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+  <target name="package-animal" depends="jars" description="Creates a test zip">
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/animal.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/animal" />
-		</zip>
-	</target>
+    </zip>
+  </target>
 
-	<target name="package-embedded" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/embedded.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+  <target name="package-embedded" depends="jars" description="Creates a test zip">
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/embedded.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/embedded" />
-		</zip>
-	</target>
+    </zip>
+  </target>
 
-	<target name="package-embedded2" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/embedded2.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+  <target name="package-embedded2" depends="jars" description="Creates a test zip">
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/embedded2.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/embedded2" />
-		</zip>
+    </zip>
   </target>
 
   <target name="package-embedded3" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/embedded3.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/embedded3.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/embedded3" />
-		</zip>
+    </zip>
   </target>
 
   <target name="package-embeddedBad" depends="jars" description="Creates a test zip">
-		<!-- Tarball it -->
-		<zip destfile="${dist.packages.dir}/embeddedBad.zip">
-			<zipfileset dir="${dist.jar.dir}" />
+    <!-- Tarball it -->
+    <zip destfile="${dist.packages.dir}/embeddedBad.zip">
+      <zipfileset dir="${dist.jar.dir}" />
       <zipfileset dir="${job.conf.dir}/embeddedBad" />
-		</zip>
+    </zip>
   </target>
 
   <target name="package" depends="package-exectest1, package-exectest2, package-animal, package-embedded, package-embedded2, package-embedded3, package-embeddedBad" description="Creates all packages">
   </target>
 
   <target name="test-junit" depends="package" description="Runs JUnit tests.">
-		<mkdir dir="${test.output.dir}" />
+    <mkdir dir="${test.output.dir}" />
     <junit failureProperty="test.failure" fork="yes" forkmode="once">
       <classpath>
         <fileset dir="${build.ivy.lib.dir}">