<?xml version="1.0" encoding="UTF-8" standalone="no"?>

 <!--
   Copyright 2011, Big Switch Networks, Inc.
   
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!--
    The build uses pregenerated Thrift code by default to reduce build
    dependencies. To generate it locally run the gen-thrift target.
    If you change the Thrift files be sure to also commit the updated
    generated code.
-->

<project default="dist" name="Floodlight">
    <property name="target" location="target"/>
    <property name="build" location="${target}/bin"/>
    <property name="build-test" location="${target}/bin-test"/>
    <property name="build-coverage" location="${target}/bin-coverage"/>
    <property name="test-output" location="${target}/test"/>
    <property name="coverage-output" location="${target}/coverage"/>
    <property name="source" location="src/main/java"/>
    <property name="resources" location="src/main/resources/"/>
    <property name="source-test" location="src/test/java"/>
    <property name="python-src" location="src/main/python"/>
    <property name="docs" location="${target}/docs"/>
    <property name="main-class" value="net.floodlightcontroller.core.Main"/>
    <property name="floodlight-jar" location="${target}/floodlight.jar"/>
    <property name="floodlight-test-jar" location="${target}/floodlight-test.jar"/>
    <property name="floodlight-only-jar" location="${target}/floodlight-only.jar"/>
    <property name="thrift.dir" value="${basedir}/src/main/thrift"/>
    <property name="thrift.out.dir" value="lib/gen-java"/>
    <property name="thrift.package" value="net/floodlightcontroller/packetstreamer/thrift"/>
    <property name="ant.build.javac.source" value="1.6"/>
    <property name="ant.build.javac.target" value="1.6"/>
    <property name="lib" location="lib"/>
    <property name="titanlib" location="lib/titan/"/>

    <patternset id="lib">
        <include name="logback-classic-1.0.0.jar"/>
        <include name="logback-core-1.0.0.jar"/>
        <include name="jackson-core-asl-1.9.11.jar"/>
        <include name="jackson-mapper-asl-1.9.11.jar"/>
        <include name="slf4j-api-1.6.4.jar"/>
        <include name="org.restlet-2.1-RC1.jar"/>
        <include name="org.restlet.ext.jackson-2.1-RC1.jar"/>
        <include name="org.restlet.ext.simple-2.1-RC1.jar"/>
        <include name="org.restlet.ext.slf4j-2.1-RC1.jar"/>
        <include name="simple-4.1.21.jar"/>
        <include name="netty-3.2.6.Final.jar"/>
        <include name="args4j-2.0.16.jar"/>
        <include name="concurrentlinkedhashmap-lru-1.3.jar"/>
        <include name="jython-2.5.2.jar"/>
        <include name="libthrift-0.7.0.jar"/>
	<include name="curator-client-1.3.3.jar"/>
	<include name="curator-framework-1.3.3.jar"/>
	<include name="curator-recipes-1.3.3.jar"/>
	<include name="zookeeper-3.4.5.jar"/>
    </patternset>

    <patternset id="titanlib">
	<include name="**/*.jar"/>
    </patternset>

    <path id="classpath">
        <fileset dir="${lib}">
            <patternset refid="lib"/>
        </fileset>
        <fileset dir="${titanlib}">
            <patternset refid="titanlib"/>
        </fileset>
    </path>

    <patternset id="lib-cobertura">
        <include name="cobertura-1.9.4.1.jar"/>
        <include name="asm-3.0.jar"/>
        <include name="asm-tree-3.0.jar"/>
        <include name="oro/jakarta-oro-2.0.8.jar"/>
        <include name="log4j-1.2.9.jar"/>
    </patternset>
    <path id="classpath-cobertura">
        <fileset dir="${lib}">
            <patternset refid="lib-cobertura"/>
    </fileset>
    </path>

    <patternset id="lib-test">
        <include name="junit-4.8.2.jar"/>
        <include name="org.easymock-3.1.jar"/>
        <include name="objenesis-1.2.jar"/>  <!-- required by easymock to mock classes -->
        <include name="cglib-nodep-2.2.2.jar"/>    <!-- required by easymock to mock classes -->
    </patternset>
    <path id="classpath-test">
        <fileset dir="${lib}">
            <patternset refid="lib-test"/>
            <patternset refid="lib-cobertura"/>
            <patternset refid="lib"/>
            <patternset refid="titanlib"/>
        </fileset>
    </path>

    <target name="init">
        <mkdir dir="${build}"/>
        <mkdir dir="${build-test}"/>
        <mkdir dir="${target}/lib"/>
        <mkdir dir="${thrift.out.dir}"/>
        <mkdir dir="${test-output}"/>
    </target>

    <target name="compile" depends="init">
        <javac includeAntRuntime="false" 
           classpathref="classpath" 
           debug="true" 
           srcdir="${source}:${thrift.out.dir}"
           destdir="${build}">
        </javac>
    </target>

    <target name="compile-tests" depends="compile-test"/>
    <target name="compile-test" depends="compile">
        <fileset dir="${resources}"/>
        <javac includeAntRuntime="false" debug="true" 
           srcdir="${source-test}"
           classpath="${build}"
           classpathref="classpath-test"
           destdir="${build-test}"/>
    </target>

    <!-- Thrift build based on http://www.flester.com/blog/2009/04/26/using-thrift-from-ant -->
    <fileset id="thrift.files" dir="${thrift.dir}">
        <include name="**/*.thrift"/>
    </fileset>

    <target name="gen-thrift" depends="init">
        <pathconvert property="thrift.file.list" refid="thrift.files"
            pathsep=" " dirsep="/">
        </pathconvert>
        <echo message="Running thrift generator on ${thrift.file.list}"/>
        <exec executable="thrift" dir="${basedir}" failonerror="true">
            <arg line="--strict -v --gen java -o ${thrift.out.dir}/.. ${thrift.file.list}"/>
        </exec>
        <!-- Get rid of annoying warnings in thrift java: at annotations -->
        <echo message="Adding @SuppressWarning annotations"/>
        <replaceregexp byline="true">
            <regexp pattern="^public "/>
            <substitution expression='@SuppressWarnings("all") public '/>
            <fileset id="thrift.output.files" dir="${thrift.out.dir}/..">
                <include name="**/*.java"/>
            </fileset>
        </replaceregexp>
    </target>

    <target name="clean">
        <delete dir="${target}"/>
    </target>

    <target name="run" depends="dist">
        <java fork="true" jar="${floodlight-jar}" classpathref="classpath">
            <jvmarg value="-server"/>
            <jvmarg value="-Xms1024M"/>
            <jvmarg value="-Xmx1024M"/>
        </java>
    </target>

    <target name="tests" depends="test"/>
    <target name="test" depends="compile-test">
        <junit fork="true" forkmode="once"
           failureproperty="junit.failure"
           printsummary="on">
        <sysproperty key="net.sourceforge.cobertura.datafile"
             file="${target}/cobertura.ser" />
            <classpath>
                <pathelement location="${build-coverage}"/>
                <pathelement location="${build}"/>
                <pathelement location="${build-test}"/>
                <pathelement location="${floodlight-jar}"/>
                <path refid="classpath-test"/>
            </classpath>
            <formatter type="brief" usefile="true" />
            <batchtest todir="${test-output}">
                <fileset dir="${source-test}">
                    <exclude name="**/storage/tests/StorageTest.java"/>
				    <include name="**/*Test*.java"/>
                    <exclude name="**/core/test/**"/>
                    <exclude name="**/core/module/**"/>
                </fileset>
            </batchtest>
        </junit>
        <fail if="junit.failure" message="Unit test(s) failed.  See reports!"/>
    </target>

    <taskdef classpathref="classpath-cobertura" resource="tasks.properties"/>
    <target name="clean-instrument">
        <delete file="${target}/cobertura.ser"/>
        <delete dir="${build-coverage}"/>
    </target>
    <target name="instrument" depends="compile,compile-test,clean-instrument">
      <cobertura-instrument datafile="${target}/cobertura.ser"
                todir="${build-coverage}"
                classpathref="classpath-cobertura">
    <fileset dir="${build}">
      <include name="**/*.class"/>
    </fileset>
      </cobertura-instrument>
    </target>
    <target name="coverage-report">
        <cobertura-report format="html"
              datafile="${target}/cobertura.ser"
              destdir="${coverage-output}"
              srcdir="${source}"/>
        <cobertura-report format="xml"
              datafile="${target}/cobertura.ser"
              destdir="${coverage-output}"
              srcdir="${source}"/>
    </target>
    <target name="coverage" depends="instrument,test,coverage-report"/>

    <target name="jar" depends="compile">
        <jar destfile="${floodlight-only-jar}">
	    <fileset dir="${build}"/>
	    <fileset dir="${resources}"/>
	    <fileset dir="${python-src}">
	        <include name="**/*.py"/>
	    </fileset>
        </jar>
    </target>

    <target name="dist" depends="compile,compile-test">
        <jar destfile="${floodlight-jar}" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="${build}"/>
            <fileset dir="${resources}"/>
            <fileset dir="${python-src}">
                <include name="**/*.py"/>
            </fileset>
            <zipgroupfileset dir="${titanlib}">
                <patternset refid="titanlib"/>
            </zipgroupfileset>
            <zipgroupfileset dir="${lib}">
                <patternset refid="lib"/>
            </zipgroupfileset>
        </jar>
        <jar destfile="${floodlight-test-jar}" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="${build-test}"/>
            <fileset dir="${resources}"/>
            <zipgroupfileset dir="${lib}">
                <patternset refid="lib-test"/>
                <patternset refid="lib-cobertura"/>
            </zipgroupfileset>
            <zipgroupfileset dir="${titanlib}">
                <patternset refid="titanlib"/>
            </zipgroupfileset>
        </jar>
    </target>

    <target name="javadoc">
        <javadoc access="protected"
            author="true"
            classpathref="classpath"
            destdir="${docs}"
            doctitle="Floodlight"
            nodeprecated="false"
            nodeprecatedlist="false"
            noindex="false"
            nonavbar="false"
            notree="false"
            source="1.6"
            sourcepath="${source}"
            splitindex="true"
            use="true"
            version="true"/>
    </target>

    <target name="eclipse" depends="init">
        <pathconvert property="eclipse-lib">
            <map from="${basedir}/" to=""/>
            <fileset dir="${lib}">
                <patternset refid="lib"/>
                <patternset refid="lib-test"/>
            </fileset>
            <fileset dir="${titanlib}">
                <patternset refid="titanlib"/>
            </fileset>
        </pathconvert>
        <exec executable="${basedir}/setup-eclipse.sh">
            <arg value="${main-class}"/>
            <arg value="${eclipse-lib}"/>
        </exec>
    </target>

</project>
