<?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="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.8.6.jar"/>
        <include name="jackson-mapper-asl-1.8.6.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.2.jar"/>
        <include name="jython-2.5.2.jar"/>
        <include name="libthrift-0.7.0.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"/>
        </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="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="${lib}">
                <patternset refid="lib"/>
            </zipgroupfileset>
            <zipgroupfileset dir="${titanlib}">
                <patternset refid="titanlib"/>
            </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>
