<project name="QuickServer.Project" default="jar" basedir=".">
    <property name="app.name"   value="QuickServer" />
    <property name="main.build.dir"  value="build/mainclasses" />
    <property name="client.build.dir"  value="build/clientclasses" />
    <property name="qsadmingui.build.dir"  value="build/qsadminguiclasses" />
    <property name="test.build.dir"  value="build/testcases" />
    <property name="dist.dir"  value="dist" />
    <property name="src.dir" value="src" />
    <property name="app.version"  value="2.0.0" />

    <property name="app.version.sub"  value="" />
    <property name="javac.deprecation" value="off" />

    <path id="project.classpath">
        <fileset dir="./dist/">
            <include name="*.jar"/>
            <exclude name="QuickServer.jar"/>
            <exclude name="QuickServerClient.jar"/>
            <exclude name="QSAdminGUI.jar"/>
        </fileset>
    </path>

    <target name="help">
        <echo>
            Build for ${app.name} ${app.version} ${app.version.sub}

            Available targets:
            clean			Cleans all dist and build dir.
		
            compile_main		Compiles the main source
            compile_qsadmingui	Compiles the QsAdminGUI source
            compile		Combines both compile_main and compile_qsadmingui

            main_jar		Creates main jar file.
            qsadmingui_jar		Creates main jar file.
            jar			Combines both main_jar and qsadmingui_jar

            compileTests		Compiles the test cases.
            runTests		Runs all the test cases.

            docs			Creates Java API docs
            run_about		Runs with -about flag
            run_qsadmin		Runs QSAdminGUI
        </echo>
    </target>

    <target name="clean">
        <delete dir="${main.build.dir}" />
        <delete dir="${qsadmingui.build.dir}" />
        <delete dir="${test.build.dir}" />
        <delete file="${dist.dir}/${app.name}.jar" />
        <delete file="${dist.dir}/QSAdminGUI.jar" />
        <delete dir="docs" />
    </target>

    <target name="compile" depends="compile_main, compile_qsadmingui">
        <echo>Done</echo>
    </target>

    <target name="compile_main">
        <mkdir dir="${main.build.dir}"/>
        <javac srcdir="${src.dir}" destdir="${main.build.dir}" 
               debug="on" optimize="on" listfiles="off"
               deprecation="${javac.deprecation}" includeantruntime="false" target="1.5">
            <include name="main/**"/>
            <exclude name="main/org/quickserver/net/client/**"/>
            <exclude name="main/org/quickserver/net/qsadmin/gui/**"/>
            <exclude name="main/org/quickserver/util/xmlreader/QSAdminPluginConfig.java"/>
            <exclude name="main/org/quickserver/util/xmlreader/PluginConfigReader.java"/>
            <classpath refid="project.classpath"/>
        </javac>		
    </target>
	
    <target name="compile_client">
        <mkdir dir="${client.build.dir}"/>
        <javac srcdir="${src.dir}" destdir="${client.build.dir}" 
               debug="on" optimize="on" listfiles="off"
               deprecation="${javac.deprecation}" includeantruntime="false"  target="1.5">
            <include name="main/org/quickserver/net/client/**"/>
            <classpath refid="project.classpath"/>
        </javac>		
    </target>

    <target name="compile_qsadmingui">
        <mkdir dir="${qsadmingui.build.dir}"/>

        <javac destdir="${qsadmingui.build.dir}" debug="on" optimize="on"
               listfiles="off" srcdir="${src.dir}"
               deprecation="${javac.deprecation}" includeantruntime="false"  target="1.5">
            <include name="main/org/quickserver/net/qsadmin/gui/**"/>
            <include name="main/org/quickserver/swing/*"/>
            <include name="main/org/quickserver/util/*"/>
            <include name="main/org/quickserver/util/xmlreader/QSAdminPluginConfig.java"/>
            <include name="main/org/quickserver/util/xmlreader/PluginConfigReader.java"/>
            <include name="main/org/quickserver/util/io/*FileList.java"/>
            <include name="main/org/quickserver/util/io/PasswordField.java"/>
            <include name="main/org/quickserver/util/io/MaskingThread.java"/>
            <classpath refid="project.classpath"/>
        </javac>
    </target>   

    <target name="jar" depends="compile, compile_client, main_jar, client_jar, qsadmingui_jar">
        <echo>Done</echo>
    </target>

    <target name="main_jar" depends="compile_main">
        <mkdir dir="${main.build.dir}/icons"/>
        <copy todir="${main.build.dir}/icons" overwrite="yes">
            <fileset dir="${src.dir}/main/icons/">
                <include name="*.gif"/>
                <include name="*.png"/>
            </fileset>
        </copy>
        <mkdir dir="${dist.dir}"/>

        <copy file="README.md" todir="${main.build.dir}" overwrite="yes" />
        <copy file="etc/quickserver_config.xsd"
              todir="${dist.dir}" overwrite="yes" />
        <copy file="etc/quickserver_config.dtd"
              todir="${dist.dir}" overwrite="yes" />

        <jar jarfile="${dist.dir}/${app.name}.jar"
             basedir="${main.build.dir}" includes="**" manifest="${src.dir}/QuickServer.MF"/>
    </target>
	
    <target name="client_jar" depends="compile_client">
        <copy file="README.md" todir="${client.build.dir}" overwrite="yes" />
        <jar jarfile="${dist.dir}/${app.name}Client.jar"
             basedir="${client.build.dir}" includes="**" />
    </target>

    <target name="qsadmingui_jar" depends="compile_qsadmingui">
        <copy todir="${qsadmingui.build.dir}/icons" overwrite="yes">
            <fileset dir="${src.dir}/main/icons/">
                <include name="*.gif"/>
                <include name="*.png"/>
            </fileset>
        </copy>
        <mkdir dir="${dist.dir}"/>
		
        <copy file="${src.dir}/main/org/quickserver/net/qsadmin/gui/conf/MainCommandPanel.xml"
              todir="${qsadmingui.build.dir}/org/quickserver/net/qsadmin/gui/conf" overwrite="yes" />
        <copy file="${src.dir}/main/org/quickserver/net/qsadmin/gui/conf/PropertieSet.xml"
              todir="${qsadmingui.build.dir}/org/quickserver/net/qsadmin/gui/conf" overwrite="yes" />

        <jar jarfile="${dist.dir}/QSAdminGUI.jar"
             basedir="${qsadmingui.build.dir}" includes="**" manifest="${src.dir}/QSAdminGUI.MF"/>	  
    </target>

    <target name="done">
        <tstamp>
            <format property="TODAY_UK" pattern="d-MMMM-yyyy hh:mm:ss" locale="en"/>
        </tstamp>
        <echo>Time ${TODAY_UK}</echo>		
    </target>


    <target name="docs" depends="compile">
        <!--
        <exec dir="." executable="javadoc">
            <arg line="@options @packages -source 1.6 -classpath "/>
        </exec>
        -->
        <delete dir = "docs" failonerror = "false"/>  
        <mkdir dir="docs"/>
        <javadoc
            use="true" 
            splitindex="true" 
            windowtitle="QuickServer v${app.version} API Specification" 
            overview="src/main/overview.html" 
            destdir="docs" 
            author="true" 
            version="true"           
        >
            <packageset dir="src/main" defaultexcludes="yes">
				<include name="org/quickserver/net/**" />
                <include name="org/quickserver/net/server/*" />
				<exclude name="org/quickserver/net/server/gui/**" />
                <include name="org/quickserver/net/server/impl/**" />
                <include name="org/quickserver/net/client/**" />                
				<include name="org/quickserver/net/qsadmin/gui/**" />
                
                <include name="org/quickserver/sql/**" />
                <include name="org/quickserver/util/**" />
                <include name="org/quickserver/security/**" />
                <include name="org/quickserver/swing/**" />
            </packageset>            
            
            <doctitle><![CDATA[<b>QuickServer</b><br><font size="-1">v${app.version}</font>]]></doctitle>  
            <bottom><![CDATA[<i>Copyright &#169; 2003-2014 QuickServer.org</i>]]></bottom>
                 
            <group title="Core Packages" packages="org.quickserver.net:org.quickserver.net.server"/>
            <group title="Client Packages" packages="org.quickserver.net.client:org.quickserver.net.client.loaddistribution:org.quickserver.net.client.loaddistribution.impl:org.quickserver.net.client.monitoring:org.quickserver.net.client.monitoring.impl:org.quickserver.net.client.pool*"/>
            
            <group title="Util Packages" packages="org.quickserver.util:org.quickserver.util.logging:org.quickserver.swing"/>
            <group title="Thread Pool for App" packages="org.quickserver.util.pool.thread.app"/>
            <group title="Support Packages" packages="org.quickserver.net.server.impl:org.quickserver.security:org.quickserver.net.qsadmin:org.quickserver.util.pool:org.quickserver.util.pool.thread:org.quickserver.sql:org.quickserver.util.io:org.quickserver.net.qsadmin.gui:org.quickserver.util.xmlreader"/>
            
            <classpath>
				<fileset dir="./dist/">
					<include name="*.jar"/>
				</fileset>
            </classpath>
        </javadoc>
        
        <copy file="src/main/XMLConfiguration.xml"
              todir="docs" overwrite="yes" />
        <copy file="src/main/quickserver_logo.gif"
              todir="docs" overwrite="yes" />
    </target>

    <target name="run_about" depends="main_jar">
        <java fork="yes" classname="org.quickserver.net.server.QuickServer"
              taskname="QuickServer" failonerror="true">
            <arg value="-about"/>
            <classpath>
                <pathelement location="${dist.dir}/${app.name}.jar" />
                <pathelement path="${java.class.path}" />
            </classpath>
        </java>
    </target>

    <target name="run_qsadmin" depends="qsadmingui_jar">
        <java fork="yes" classname="org.quickserver.net.qsadmin.gui.QSAdmin"
              taskname="QuickServer" failonerror="true">
            <arg value="./plugin"/>
            <classpath>
                <pathelement location="${dist.dir}/QSAdminGUI.jar" />
                <pathelement path="${java.class.path}" />
            </classpath>
        </java>
    </target>

    <!-- junit task -->
    <target name="junit">
        <available property="junit.present" classname="junit.framework.TestCase" />
    </target>
    <target name="compileTests" depends="jar, junit">
        <mkdir dir="${test.build.dir}"/>
        <javac srcdir="${src.dir}/test" destdir="${test.build.dir}">
            <classpath>
                <pathelement location="${dist.dir}/${app.name}.jar" />
                <pathelement path="${dist.dir}/commons-logging.jar" />
            </classpath>
            <include name="**/*.java"/>
        </javac>
    </target>

    <target name="runTests" depends="compileTests" if="junit.present">
        <java fork="yes" classname="junit.textui.TestRunner"
              taskname="junit" failonerror="true">
            <arg value="test.org.quickserver.AllJUnitTests"/>
            <classpath>
                <pathelement location="${dist.dir}/${app.name}.jar" />
                <pathelement location="${test.build.dir}" />
                <pathelement path="" />
                <pathelement path="${java.class.path}" />
            </classpath>
        </java>
    </target>
    <!-- junit task -->
</project> 
