Initial version of OFManager build.xml

Make Floodlight build in new directory tree
diff --git a/src/ofmgr/build.xml b/src/ofmgr/build.xml
new file mode 100644
index 0000000..20dd0ce
--- /dev/null
+++ b/src/ofmgr/build.xml
@@ -0,0 +1,279 @@
+<?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="fl-dir" location="../ext/floodlight"/>
+    <property name="source" location="${fl-dir}/src/main/java"/>
+    <property name="resources" location="${fl-dir}/src/main/resources/"/>
+    <property name="source-test" location="${fl-dir}/src/test/java"/>
+    <property name="python-src" location="${fl-dir}/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="${fl-dir}/src/main/thrift"/>
+    <property name="thrift.out.dir" value="${fl-dir}/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="${fl-dir}/lib"/>
+
+    <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>
+
+    <path id="classpath">
+        <fileset dir="${lib}">
+            <patternset refid="lib"/>
+        </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>
+        </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>
+        </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>
+        </pathconvert>
+        <exec executable="${fl-dir}/setup-eclipse.sh">
+            <arg value="${main-class}"/>
+            <arg value="${eclipse-lib}"/>
+        </exec>
+    </target>
+
+</project>