azkaban-developers

Changes

build.xml 133(+102 -31)

ivy.xml 29(+29 -0)

ivy/.gitignore 1(+1 -0)

ivy/ivysettings.xml 27(+27 -0)

Details

build.xml 133(+102 -31)

diff --git a/build.xml b/build.xml
index 65fa4ba..090f5be 100644
--- a/build.xml
+++ b/build.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0"?>
 
-<project name="azkaban" basedir="." default="all">
+<project name="azkaban" basedir="." default="all"
+    xmlns:ivy="antlib:org.apache.ivy.ant">
 	<property file="build.properties" />
 	<property name="base.dir" value="${basedir}" />
 	<property name="dist.jar.dir" value="${basedir}/dist/jars" />
@@ -26,15 +27,33 @@
 	<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" 
+			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" />
+	<property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
+	<property name="ivy.artifact.retrieve.pattern" value="[artifact]-[revision].[ext]" />
+
 	<property environment="env" />
 
 	<path id="main.classpath">
 		<fileset dir="${lib.dir}">
 			<include name="*.jar" />
 		</fileset>
+		<fileset dir="${build.ivy.lib.dir}">
+			<include name="*.jar" />
+		</fileset>
 
 		<pathelement path="${dist.classes.dir}" />
 	</path>
@@ -44,30 +63,75 @@
 	
 	<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" />
+		</condition>
+	</target>
+
+	<target name="ivy-download" description="Downloads Ivy." unless="offline">
+		<get src="${ivy.repo.url}" dest="${ivy.jar}" usetimestamp="true" />
+	</target>
+
+	<target name="ivy-init-dirs">
+		<mkdir dir="${build.ivy.dir}" />
+		<mkdir dir="${build.ivy.lib.dir}" />
+	</target>
+
+	<target name="ivy-init-antlib" depends="ivy-download, ivy-init-dirs, ivy-probe-antlib" unless="ivy.found">
+		<typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader">
+			<classpath>
+				<pathelement location="${ivy.jar}" />
+			</classpath>
+		</typedef>
+		<fail>
+			<condition>
+				<not>
+					<typefound uri="antlib:org.apache.ivy.ant" name="cleancache" />
+				</not>
+			</condition>
+			You need Apache Ivy 2.0 or later from http://ant.apache.org/
+			It sould not be loaded from ${ivy.repo.url}
+		</fail>
+	</target>
+
+	<target name="ivy-init" depends="ivy-init-antlib">
+		<ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override="false" />
+	</target>
+
+	<target name="ivy-resolve" depends="ivy-init" description="Resolve dependencies with Ivy">
+		<ivy:resolve settingsRef="${ant.project.name}.ivy.settings" 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>
+	
 	<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"/>
-	    	<arg value="--tags"/>
-	    </exec>
-	    <condition property="git.tag" value="${git.tag}" else="${version}">
-	        <and>
-	            <isset property="git.tag"/>
-	            <length string="${git.tag}" trim="yes" length="0" when="greater"/>
-	        </and>
-	    </condition>
+		<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"/>
+			<arg value="--tags"/>
+		</exec>
+		<condition property="git.tag" value="${git.tag}" else="${version}">
+			<and>
+				<isset property="git.tag"/>
+				<length string="${git.tag}" trim="yes" length="0" when="greater"/>
+			</and>
+		</condition>
 		<echo>Git tag found to be ${git.commithash} with tag ${git.tag} from repo ${git.repo}</echo>
 	</target>
 	
@@ -77,13 +141,20 @@
 		<delete dir="${dist.classes.dir}" />
 		<delete dir="${dist.dust.dir}" />
 		<delete dir="${dist.less.dir}" />
-    <exec dir="${dust.src.dir}" executable="make" failonerror="true">
-      <arg value="clean" />
-    </exec>
-    <exec dir="${less.src.dir}" executable="make" failonerror="true">
-      <arg value="clean" />
-    </exec>
+		<delete dir="${build.dir}" />
+		<exec dir="${dust.src.dir}" executable="make" failonerror="true">
+			<arg value="clean" />
+		</exec>
+		<exec dir="${less.src.dir}" executable="make" failonerror="true">
+			<arg value="clean" />
+		</exec>
 	</target>
+	
+	<target name="distclean" depends="clean" description="Delete all generated files.">
+    <delete dir="${ivy.dir}">
+      <include name="*.jar" />
+    </delete>
+  </target>
 
 	<target name="dust" description="Compile Less css files.">
 		<!-- Compile dustjs templates -->
@@ -121,7 +192,7 @@ ${current.time}
 </echo>
 	</target>
 	
-	<target name="build" depends="git.info, repo.file" description="Compile main source tree java files">
+	<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}" />

ivy.xml 29(+29 -0)

diff --git a/ivy.xml b/ivy.xml
new file mode 100644
index 0000000..9985f85
--- /dev/null
+++ b/ivy.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0" xmlns:m="http://ant.apache.org/ivy/maven">
+  <info 
+      organisation="com.linkedin.azkaban.scrape" 
+      module="azkaban-project-audit"
+      revision="1.0" status="release">
+  </info>
+
+  <dependencies>
+    <dependency name="commons-io" org="commons-io"
+        rev="${commons-io.version}" conf="default->master" />
+    <dependency name="commons-cli" org="commons-cli" 
+        rev="${commons-cli.version}" conf="default->master" />
+    <dependency name="commons-dbcp" org="commons-dbcp" 
+        rev="${commons-dbcp.version}" conf="default->master" />
+    <dependency name="commons-dbutils" org="commons-dbutils" 
+        rev="${commons-dbutils.version}" conf="default->master" />
+    <dependency name="commons-pool" org="commons-pool" 
+        rev="${commons-pool.version}" conf="default->master" />
+    <dependency name="log4j" org="log4j" 
+        rev="${log4j.version}" conf="default->master" />
+    <dependency name="mysql-connector-java" org="mysql" 
+        rev="${mysql-connector.version}" conf="default->master" />
+    <dependency name="jackson-core-asl" org="org.codehaus.jackson" 
+        rev="${jackson-core.version}" conf="default->master" />
+    <dependency name="jackson-mapper-asl" org="org.codehaus.jackson" 
+        rev="${jackson-mapper.version}" conf="default->master" />
+  </dependencies>
+</ivy-module>

ivy/.gitignore 1(+1 -0)

diff --git a/ivy/.gitignore b/ivy/.gitignore
new file mode 100644
index 0000000..d392f0e
--- /dev/null
+++ b/ivy/.gitignore
@@ -0,0 +1 @@
+*.jar

ivy/ivysettings.xml 27(+27 -0)

diff --git a/ivy/ivysettings.xml b/ivy/ivysettings.xml
new file mode 100644
index 0000000..26bb444
--- /dev/null
+++ b/ivy/ivysettings.xml
@@ -0,0 +1,27 @@
+<ivysettings>
+  <property name="repo.maven.org"
+      value="http://repo1.maven.org/maven2/"
+      override="false"/>
+  <property name="oss.sonatype.org"
+      value="https://oss.sonatype.org/content/groups/public/"
+      override="false"/>
+  <property name="maven2.pattern"
+      value="[organisation]/[module]/[revision]/[module]-[revision]"/>
+  <property name="maven2.pattern.ext"
+      value="${maven2.pattern}.[ext]"/>
+  <settings defaultResolver="default" />
+  <resolvers>
+    <ibiblio name="maven2"
+        root="${repo.maven.org}"
+        pattern="${maven2.pattern.ext}"
+        m2compatible="true" />
+    <ibiblio name="oss-sonatype"
+        root="${oss.sonatype.org}"
+        pattern="${maven2.pattern.ext}"
+        m2compatible="true" />
+    <chain name="default" dual="true">
+      <resolver ref="maven2" />
+      <resolver ref="oss-sonatype" />
+    </chain>
+  </resolvers>
+</ivysettings>
diff --git a/ivy/libraries.properties b/ivy/libraries.properties
new file mode 100644
index 0000000..766d155
--- /dev/null
+++ b/ivy/libraries.properties
@@ -0,0 +1,11 @@
+ivy.version=2.1.0
+
+commons-io.version=2.1
+commons-cli.version=1.2
+commons-dbutils.version=1.5
+commons-dbcp.version=1.4
+commons-pool.version=1.6
+mysql-connector.version=5.1.28
+log4j.version=1.2.16
+jackson-core.version=1.9.5
+jackson-mapper.version=1.9.5