/build.xml
http://diffkit.googlecode.com/ · XML · 620 lines · 518 code · 85 blank · 17 comment · 0 complexity · dcf73bfb1c98cdd8ab1278196523da24 MD5 · raw file
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- author: jpanico -->
- <project name="diffkit">
- <property name="root.dir" location="." />
- <property name="src.dir" location="${root.dir}/src" />
- <property name="tst.dir" location="${root.dir}/tst" />
- <property name="contrib.dir" location="${root.dir}/contrib" />
- <property name="lib.dir" location="${root.dir}/lib" />
- <property name="conf.dir" location="${root.dir}/conf" />
- <property name="doc.dir" location="${root.dir}/doc" />
- <property name="web.dir" location="${root.dir}/web" />
- <property name="build.dir" location="${root.dir}/build" />
- <property name="unit.build.dir" location="${root.dir}/unit.build" />
- <property name="contrib.build.dir" location="${root.dir}/contrib.build" />
- <property name="run.dir" location="${root.dir}/run" />
- <property name="tstscratch.dir" location="${root.dir}/tstscratch" />
- <property name="dist.dir" location="${root.dir}/dist" />
- <property name="web-dist.dir" location="${root.dir}/web_dist" />
- <property name="dist.properties.file" location="${conf.dir}/dist.properties" />
- <patternset id="build.resources">
- <include name="**/*.xml" />
- <include name="**/*.txt" />
- <include name="**/*.csv" />
- <include name="**/*.xls" />
- <include name="**/*.xlsx" />
- <include name="**/*.diff" />
- <include name="**/*.exception" />
- </patternset>
- <patternset id="executables">
- <include name="**/*.class" />
- </patternset>
- <fileset id="libs" dir="${lib.dir}">
- <include name="*.jar" />
- <include name="*.zip" />
- </fileset>
- <path id="lib.classpath">
- <fileset refid="libs" />
- </path>
- <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="lib.classpath" />
- <!-- why doesn't this work ?? -->
- <defaultexcludes echo="false" add="**/*.__hold__" />
- <target name="find-revision" description="Sets property 'svn.info.lastRev' to head svn revision">
- <taskdef resource="org/tigris/subversion/svnant/svnantlib.xml">
- <!-- these came from svn?ant-1.3.0.zip, the only version that will work-->
- <classpath>
- <pathelement location="${lib.dir}/svnant.jar" />
- <pathelement location="${lib.dir}/svnClientAdapter.jar" />
- <pathelement location="${lib.dir}/svnjavahl.jar" />
- <pathelement location="${lib.dir}/svnkit.jar" />
- </classpath>
- </taskdef>
- <property name="svn.revision" value="HEAD" />
- <svn>
- <info target="${basedir}" />
- </svn>
- <echo>svn.revision-->${svn.info.lastRev}</echo>
- </target>
- <target name="dist-properties">
- <propertyfile file="${dist.properties.file}">
- <entry key="version.date" type="date" value="now" pattern="MM/dd/yyyy" />
- </propertyfile>
- <property file="${dist.properties.file}" />
- <property name="version" value="${version.major}.${version.minor}.${version.micro}" />
- <property name="bin-distzip" value="${ant.project.name}-${version}.zip" />
- <property name="src-distzip" value="${ant.project.name}-src-${version}.zip" />
- </target>
- <target name="ssh-init">
- <fail unless="server">Set the "server" property!</fail>
- <property name="ssh.propfile" location="${root.dir}/../${server}.ssh.properties" />
- <loadproperties srcfile="${ssh.propfile}" />
- </target>
- <target name="info">
- <echo>basedir--> ${basedir}</echo>
- <echo>ant.file--> ${ant.file}</echo>
- <echo>ant.version--> ${ant.version}</echo>
- <echo>ant.project.name--> ${ant.project.name}</echo>
- <echo>ant.java.version--> ${ant.java.version}</echo>
- </target>
- <target name="build" depends="dist-properties">
- <mkdir dir="${build.dir}" />
- <mkdir dir="${unit.build.dir}" />
- <javac destdir="${build.dir}" classpathref="lib.classpath" verbose="off" target="1.5" source="1.5" debug="on" deprecation="off">
- <compilerarg value="-Xlint" />
- <src path="${src.dir}" />
- </javac>
- <!-- build the TestCases -->
- <groovyc destdir="${build.dir}" classpathref="lib.classpath" verbose="on">
- <src path="${tst.dir}" />
- <include name="**/testcase/**" />
- <include name="**/DBTestSetup*" />
- <javac target="1.5" source="1.5" debug="on" deprecation="off" />
- </groovyc>
- <copy todir="${build.dir}">
- <fileset dir="${src.dir}">
- <patternset refid="build.resources" />
- </fileset>
- <fileset dir="${tst.dir}">
- <include name="**/testcase/**" />
- <exclude name="**/*.groovy" />
- </fileset>
- </copy>
- <!-- build the JUnit test -->
- <groovyc destdir="${unit.build.dir}" verbose="on">
- <classpath>
- <path refid="lib.classpath" />
- <pathelement location="${build.dir}" />
- </classpath>
- <src path="${tst.dir}" />
- <include name="**/tst/*" />
- <javac target="1.5" source="1.5" debug="on" deprecation="off" />
- </groovyc>
- <copy todir="${unit.build.dir}">
- <fileset dir="${tst.dir}">
- <include name="**/*.jar" />
- <include name="**/*.csv" />
- <include name="**/*.diff" />
- <include name="**/*.xml" />
- <include name="**/*.txt" />
- <include name="**/*.xls" />
- <include name="**/*.xlsx" />
- </fileset>
- </copy>
- </target>
- <!-- run JUnit tests -->
- <target name="unit" depends="build">
- <junit printsummary="yes" haltonfailure="yes" showoutput="no">
- <classpath>
- <path refid="lib.classpath" />
- <pathelement location="${build.dir}" />
- <pathelement location="${unit.build.dir}" />
- </classpath>
- <batchtest fork="yes">
- <fileset dir="${unit.build.dir}">
- <include name="**/Test*" />
- <!-- a '$' in the filename means it's an inner class -->
- <exclude name="**/*$*" />
- <exclude name="**/TestDBConnection*" />
- </fileset>
- </batchtest>
- </junit>
- </target>
- <!-- run functional TestCase suite -->
- <target name="testcases" depends="build">
- <java classname="org.diffkit.diff.testcase.TestCaseRunner" failonerror="yes">
- <classpath>
- <pathelement location="${conf.dir}" />
- <path refid="lib.classpath" />
- <pathelement location="${build.dir}" />
- </classpath>
- <sysproperty key="isTest" value="true" />
- </java>
- </target>
- <target name="bin-dist" depends="clean,build">
- <property name="testcasedatajar" value="testcasedata.jar" />
- <property name="libjar" value="${ant.project.name}-${version}.jar" />
- <property name="appjar" value="${ant.project.name}-app.jar" />
- <mkdir dir="${dist.dir}" />
- <copy todir="${dist.dir}">
- <fileset dir="${build.dir}">
- <include name="org/diffkit/**/*.class" />
- <exclude name="**/DKLauncher**" />
- </fileset>
- </copy>
- <mkdir dir="${dist.dir}/testcasedata" />
- <copy todir="${dist.dir}/testcasedata" flatten="true">
- <fileset dir="${build.dir}/org/diffkit/diff/testcase/">
- <patternset refid="build.resources" />
- </fileset>
- </copy>
- <!-- jar up TestCase resources -->
- <jar destfile="${dist.dir}/org/diffkit/diff/testcase/${testcasedatajar}">
- <fileset dir="${dist.dir}/testcasedata/" />
- </jar>
- <!-- create the diffkit library as jar -->
- <jar destfile="${dist.dir}/${libjar}" basedir="${dist.dir}" excludes="testcasedata/" />
- <!-- cleanup -->
- <delete includeemptydirs="true">
- <fileset dir="${dist.dir}" excludes="${libjar}" />
- </delete>
- <copy todir="${dist.dir}">
- <fileset dir="${build.dir}">
- <include name="com/jdotsoft/**/**" />
- <include name="org/diffkit/**/DKLauncher*" />
- </fileset>
- </copy>
- <copy todir="${dist.dir}/lib">
- <fileset dir="${lib.dir}">
- <exclude name="svnant.jar" />
- <exclude name="svnClientAdapter.jar" />
- <exclude name="svnjavahl.jar" />
- <exclude name="svnkit.jar" />
- </fileset>
- </copy>
- <copy file="${conf.dir}/logback.prod.xml" tofile="${dist.dir}/conf/logback.xml" />
- <copy file="${conf.dir}/dist.properties" todir="${dist.dir}/conf/" />
-
- <!-- create the diffkit standalone application that includes diffkit library
- and all its dependencies -->
- <jar destfile="${dist.dir}/${appjar}" basedir="${dist.dir}">
- <manifest>
- <attribute name="Main-Class" value="org.diffkit.diff.conf.DKLauncher" />
- </manifest>
- </jar>
- <!-- cleanup -->
- <delete includeemptydirs="true">
- <fileset dir="${dist.dir}" excludes="${appjar},${testcasedatajar}" />
- </delete>
- <copy file="${conf.dir}/logback.prod.xml" tofile="${dist.dir}/conf/logback.xml" />
- <copy todir="${dist.dir}/conf">
- <fileset dir="${conf.dir}">
- <include name="*dbConnectionInfo*" />
- </fileset>
- </copy>
- <mkdir dir="${dist.dir}/dropin/" />
- <antcall target="doc-dist" />
- <antcall target="eg-dist" />
- <touch file="${dist.dir}/VERSION-${version}" />
- <zip destfile="${dist.dir}/${bin-distzip}" basedir="${dist.dir}" />
- <!-- cleanup -->
- <delete includeemptydirs="true">
- <fileset dir="${dist.dir}" excludes="${bin-distzip}" />
- </delete>
- </target>
- <target name="src-dist" depends="clean,dist-properties">
- <mkdir dir="${dist.dir}" />
- <copy todir="${dist.dir}">
- <fileset dir="${root.dir}">
- <include name=".classpath" />
- <include name=".project" />
- <include name=".settings" />
- <include name="build.xml" />
- <include name="conf/**" />
- <include name="doc/**" />
- <include name="lib/**" />
- <include name="src/**" />
- <include name="tst/**" />
- </fileset>
- </copy>
- <zip destfile="${dist.dir}/${src-distzip}" basedir="${dist.dir}" />
- <!-- cleanup -->
- <delete includeemptydirs="true">
- <fileset dir="${dist.dir}" excludes="*.zip" />
- </delete>
- </target>
- <target name="dist" depends="dist-properties,unit,testcases">
- <antcall target="bin-dist" />
- <move file="${dist.dir}/${bin-distzip}" tofile="${dist.dir}/${bin-distzip}.__hold__" />
- <antcall target="src-dist" />
- <move file="${dist.dir}/${bin-distzip}.__hold__" tofile="${dist.dir}/${bin-distzip}" />
- </target>
- <target name="doc-dist" depends="find-revision,dist-properties">
- <copy todir="${dist.dir}/doc" overwrite="true">
- <fileset dir="${doc.dir}">
- <patternset>
- <include name="**/*.txt" />
- <include name="**/*.css" />
- <include name="**/*.js" />
- </patternset>
- </fileset>
- <filterset>
- <filter token="AUTHOR" value="${author}" />
- <filter token="VERSION" value="${version}" />
- <filter token="BUILDDATE" value="${version.date}" />
- <filter token="REVISION" value="${svn.info.lastRev}" />
- </filterset>
- </copy>
- <copy todir="${dist.dir}/doc" overwrite="true">
- <fileset dir="${doc.dir}">
- <patternset>
- <include name="**/*.png" />
- </patternset>
- </fileset>
- </copy>
- <copy file="${tst.dir}/org/diffkit/diff/testcase/TestCases.txt" todir="${dist.dir}/doc" overwrite="true"/>
- <antcall target="html-doc-dist" />
- </target>
- <target name="html-doc-dist" depends="dist-properties,probe_for_asciidoc" if="asciidoc.found">
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="README.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="quickstart.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="faq.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="userguide.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="compatibility.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="changelog.txt" />
- </exec>
- <exec dir="${dist.dir}/doc" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="TestCases.txt" />
- </exec>
- </target>
- <target name="web-publish" depends="web-dist,ssh-init">
- <echo>SCP target is ${ssh.server}</echo>
- <property name="ssh.path" value="${ssh.user}@${ssh.server}:${ssh.dir}" />
- <scp remoteToDir="${ssh.path}" password="${ssh.password}" verbose="${ssh.verbose}">
- <fileset dir="${web-dist.dir}" />
- </scp>
- </target>
- <target name="web-dist" depends="find-revision,dist-properties">
- <copy todir="${web-dist.dir}" overwrite="true">
- <fileset dir="${web.dir}">
- <patternset>
- <include name="**/*.txt" />
- <include name="**/*.conf" />
- </patternset>
- </fileset>
- <fileset dir="${doc.dir}">
- <patternset>
- <include name="**/*.txt" />
- <include name="**/*.css" />
- <include name="**/*.js" />
- </patternset>
- </fileset>
- <filterset>
- <filter token="AUTHOR" value="${author}" />
- <filter token="VERSION" value="${version}" />
- <filter token="BUILDDATE" value="${version.date}" />
- <filter token="REVISION" value="${svn.info.lastRev}" />
- </filterset>
- </copy>
- <copy todir="${web-dist.dir}" overwrite="true">
- <fileset dir="${doc.dir}">
- <patternset>
- <include name="**/*.png" />
- </patternset>
- </fileset>
- </copy>
- <antcall target="html-web-dist" />
- <delete>
- <fileset dir="${web-dist.dir}">
- <include name="*.txt" />
- <include name="*.conf" />
- </fileset>
- </delete>
- </target>
- <target name="html-web-dist" depends="dist-properties,probe_for_asciidoc" if="asciidoc.found">
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a index-only" />
- <arg line="index.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="README.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="quickstart.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="userguide.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="faq.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="compatibility.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="support.txt" />
- </exec>
- <exec dir="${web-dist.dir}" executable="asciidoc" failifexecutionfails="true" searchpath="true">
- <arg line="--conf-file=web_template.conf" />
- <arg line="-a linkcss" />
- <arg line="-a theme=diffkit" />
- <arg line="-a imagesdir=img" />
- <arg line="-a scriptsdir=resources" />
- <arg line="-a stylesdir=resources" />
- <arg line="-a toc" />
- <arg line="changelog.txt" />
- </exec>
- </target>
- <target name="eg-dist" depends="dist-properties">
- <copy todir="${dist.dir}/eg" overwrite="true">
- <fileset dir="${tst.dir}">
- <include name="**/testcase/*.h2.db" />
- </fileset>
- <flattenmapper />
- </copy>
- <copy todir="${dist.dir}/eg" overwrite="true">
- <fileset dir="${tst.dir}/org/diffkit/diff/testcase">
- <patternset refid="build.resources" />
- </fileset>
- <flattenmapper />
- </copy>
- <copy todir="${dist.dir}/eg" overwrite="true">
- <fileset dir="${tst.dir}/org/diffkit/diff/testcase">
- <patternset>
- <include name="**/*.xml" />
- </patternset>
- </fileset>
- <filterset>
- <filter token="TargetDatabase" value="${demodb.name}" />
- <filter token="Test18LHSTargetDatabase" value="file:./test18_lhs_demo" />
- <filter token="Test18RHSTargetDatabase" value="file:./test18_rhs_demo" />
- </filterset>
- <flattenmapper />
- </copy>
- </target>
- <target name="build-contrib-jar" depends="build">
- <mkdir dir="${contrib.build.dir}" />
- <mkdir dir="${dist.dir}" />
- <javac destdir="${contrib.build.dir}" verbose="off" target="1.5" source="1.5" debug="on" deprecation="off">
- <compilerarg value="-Xlint" />
- <classpath>
- <path refid="lib.classpath" />
- <pathelement location="${build.dir}" />
- </classpath>
- <src path="${contrib.dir}" />
- </javac>
- <jar destfile="${dist.dir}/diffkit-contrib.jar" basedir="${contrib.build.dir}" />
- </target>
- <target name="probe_for_asciidoc">
- <property environment="env" />
- <echo>env.PATH--> ${env.PATH}</echo>
- <condition property="asciidoc.found">
- <or>
- <available file="asciidoc" filepath="${env.PATH}" />
- <available file="asciidoc.exe" filepath="${env.Path}" />
- </or>
- </condition>
- <echo>asciidoc.found = ${asciidoc.found}</echo>
- </target>
- <target name="clean">
- <delete dir="${build.dir}" includeEmptyDirs="true" failonerror="false" />
- <delete dir="${unit.build.dir}" includeEmptyDirs="true" failonerror="false" />
- <delete dir="${contrib.build.dir}" includeEmptyDirs="true" failonerror="false" />
- <delete dir="${run.dir}" includeEmptyDirs="true" failonerror="false" />
- <delete dir="${dist.dir}" includeEmptyDirs="true" failonerror="false">
- <exclude name="*.__hold__" />
- </delete>
- <delete dir="${web-dist.dir}" includeEmptyDirs="true" failonerror="false" />
- <!-- clean up scratch files created by Unit tests and TCR -->
- <delete>
- <fileset dir="${root.dir}">
- <include name="*.diff" />
- <include name="*.txt" />
- <include name="*.tst" />
- <include name="*.class" />
- </fileset>
- </delete>
- <delete includeemptydirs="true">
- <fileset dir="${root.dir}" includes="tcr*/**" />
- </delete>
- <delete includeemptydirs="true" failonerror="false">
- <fileset dir="${tstscratch.dir}" />
- </delete>
- </target>
- </project>