Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

404 lines (319 sloc) 15.937 kb
<?xml version='1.0'?>
<!--
Copyright 2011, 10gen
Licensed 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.
-->
<project name="mongo-java-driver" default="compile" basedir=".">
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<property environment="env"/>
<property file="build.properties" prefix="build.conf"/>
<!-- ******************************************************************* -->
<!-- Set the base attributes. -->
<!-- ******************************************************************* -->
<property name="targetdir" location="target"/>
<property name="testdir" location="${targetdir}/test"/>
<dirname property="javabase" file="${java.home}"/>
<property name="clover.jar" location="${env.CLOVER_HOME}/lib/clover.jar"/>
<property name="test.com.mongodb.slaveAcceptableLatencyMS" value="15"/>
<taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
<path id="classpath">
<fileset dir="lib"><include name="**/*.jar"/></fileset>
<pathelement path="conf" />
<pathelement path="build/main" />
<pathelement path="build/test" />
<pathelement path="${javabase}/lib/tools.jar" />
</path>
<path id="classpath.clover">
<fileset dir="lib"><include name="**/*.jar"/></fileset>
<pathelement path="conf" />
<pathelement path="build/main" />
<pathelement path="build/test" />
<pathelement path="${javabase}/lib/tools.jar" />
<pathelement path="${clover.jar}" />
</path>
<!-- ******************************************************************* -->
<!-- The init target. -->
<!-- ******************************************************************* -->
<target name="init">
<mkdir dir="build" />
<mkdir dir="build/main" />
<mkdir dir="build/test" />
<mkdir dir="build/util" />
<mkdir dir="logs" />
<mkdir dir="${testdir}" />
</target>
<!-- ******************************************************************* -->
<!-- The clean target. -->
<!-- ******************************************************************* -->
<target name="clean">
<delete dir="build"/>
<delete dir="target"/>
<delete dir="docs"/>
<delete dir="logs"/>
<delete file="mongo.jar"/>
<delete file="mongo-javadoc.jar"/>
<delete file="mongo-sources.jar"/>
<delete file="bson.jar"/>
<delete file="bson-javadoc.jar"/>
<delete file="bson-sources.jar"/>
</target>
<!-- ******************************************************************* -->
<!-- The compile target. -->
<!-- ******************************************************************* -->
<target name="compile" depends="init">
<propertyregex property="lib.major"
input="${build.conf.lib.version}"
regexp="(\d+)\.(\d+)\.(\d+)"
select="\1" />
<propertyregex property="lib.minor"
input="${build.conf.lib.version}"
regexp="(\d+)\.(\d+)\.(\d+)"
select="\2" />
<replaceregexp file="src/main/com/mongodb/Mongo.java" match="\sMAJOR_VERSION\s=\s\d+;" replace=" MAJOR_VERSION = ${lib.major};" byline="false"/>
<replaceregexp file="src/main/com/mongodb/Mongo.java" match="\sMINOR_VERSION\s=\s\d+;" replace=" MINOR_VERSION = ${lib.minor};" byline="false"/>
<replaceregexp file="src/main/com/mongodb/Mongo.java" match='\sFULL_VERSION\s=\s"\S*";'
replace=' FULL_VERSION = "${build.conf.lib.version}";' byline="false"/>
<javac
srcdir="src/main"
destdir="build/main"
optimize="off"
deprecation="off"
source="${build.conf.javac.source}"
target="${build.conf.javac.source}"
encoding="ISO-8859-1"
memoryMaximumSize="256M"
fork="true"
debug="on"
includeantruntime="false">
<compilerarg value="-Xlint:all,-rawtypes"/>
<classpath refid="classpath"/>
</javac>
<javac
srcdir="src/test"
destdir="build/test"
optimize="off"
deprecation="off"
source="${build.conf.javac.source}"
encoding="ISO-8859-1"
fork="true"
debug="on"
includeantruntime="false">
<classpath refid="classpath"/>
<compilerarg value="-Xlint:all,-rawtypes"/>
</javac>
</target>
<!-- ******************************************************************* -->
<!-- The util compile target. -->
<!-- ******************************************************************* -->
<target name="utilcompile" depends="compile">
<javac
srcdir="src/util"
destdir="build/util"
optimize="off"
deprecation="off"
source="${build.conf.javac.source}"
target="${build.conf.javac.source}"
encoding="ISO-8859-1"
memoryMaximumSize="256M"
fork="true"
debug="on"
includeantruntime="false">
<classpath refid="classpath"/>
<compilerarg value="-Xlint:all,-fallthrough"/>
</javac>
</target>
<!-- ******************************************************************* -->
<!-- The jar target. -->
<!-- ******************************************************************* -->
<target name="jar" depends="compile" description="Create driver jar">
<copy file="src/main/META-INF/MANIFEST.MF" tofile="build/MANIFEST.MF" filtering="true">
<filterset><filter token="VERSION" value="${build.conf.lib.version.osgi.compat}"/></filterset>
</copy>
<copy file="src/main/META-INF/MANIFEST_BSON.MF" tofile="build/MANIFEST_BSON.MF" filtering="true">
<filterset><filter token="VERSION" value="${build.conf.lib.version.osgi.compat}"/></filterset>
</copy>
<exec executable="git" output="build/main/git-hash">
<arg value="log" />
<arg value="--pretty=format:%H" />
<arg value="-1" />
</exec>
<jar jarfile="mongo.jar" manifest="build/MANIFEST.MF"><fileset dir="build/main" /></jar>
<jar jarfile="bson.jar" manifest="build/MANIFEST_BSON.MF">
<fileset dir="build/main"><not><filename name="com/"/></not></fileset>
</jar>
</target>
<!-- ******************************************************************* -->
<!-- The javadocs target. -->
<!-- ******************************************************************* -->
<target name="javadocs" depends="compile,utilcompile" description="Generate API docs">
<delete dir="docs/"/>
<javadoc
packagenames="com.mongodb,com.mongodb.gridfs,com.mongodb.util,com.mongodb.tools,org.bson,org.bson.types,org.bson.io,org.bson.util"
sourcepath="src/main/"
defaultexcludes="yes"
destdir="docs/mongo-java-driver"
author="true"
version="true"
source="${build.conf.javac.source}"
use="true"
access="protected">
<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
<classpath refid="classpath"/>
<taglet name="DochubTaglet" path="build/util"/>
<taglet name="ManualTaglet" path="build/util"/>
</javadoc>
<javadoc
packagenames="org.bson,org.bson.types,org.bson.io,org.bson.util"
sourcepath="src/main/"
defaultexcludes="yes"
destdir="docs/bson"
author="true"
version="true"
source="${build.conf.javac.source}"
use="true"
access="protected">
<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
<classpath refid="classpath"/>
<taglet name="DochubTaglet" path="build/util"/>
<taglet name="ManualTaglet" path="build/util"/>
</javadoc>
</target>
<!-- ******************************************************************* -->
<!-- Jar the rest of the files. -->
<!-- ******************************************************************* -->
<target name="alljars" depends="jar, javadocs" description="build jar, source jar, javadoc jar">
<jar jarfile="mongo-sources.jar"><fileset dir="src/main"><not><filename name="META-INF/"/></not></fileset></jar>
<jar jarfile="mongo-javadoc.jar"><fileset dir="docs/mongo-java-driver"/></jar>
<jar jarfile="bson-sources.jar">
<fileset dir="src/main">
<not><filename name="com/"/></not>
<not><filename name="META-INF/"/></not>
</fileset>
</jar>
<jar jarfile="bson-javadoc.jar"><fileset dir="docs/bson"/></jar>
</target>
<!-- ******************************************************************* -->
<!-- The clean compile target -->
<!-- ******************************************************************* -->
<target name="rebuild" depends="clean, compile"/>
<!-- ******************************************************************* -->
<!-- The test targets -->
<!-- ******************************************************************* -->
<taskdef name="testng" classpathref="classpath" classname="org.testng.TestNGAntTask"/>
<target name="test" depends="compile">
<testng classpathref="classpath" outputdir="${testdir}" listeners="com.mongodb.util.TestNGListener" haltonfailure="true" >
<jvmarg value="-Xmx512M" />
<jvmarg value="-ea" />
<jvmarg value="-Dcom.mongodb.slaveAcceptableLatencyMS=${test.com.mongodb.slaveAcceptableLatencyMS}"/>
<xmlfileset dir="." includes="testng.xml"/>
</testng>
</target>
<target name="test-single" depends="compile">
<condition property="propsSpecified">
<and>
<isset property="class.name" />
</and>
</condition>
<fail unless="propsSpecified" message="class.name property not specified."/>
<copy todir="build/test" file="testng-single.xml" overwrite="true">
<filterset><filter token="CLASS" value="${class.name}"/></filterset>
</copy>
<testng classpathref="classpath" outputdir="${testdir}" haltonfailure="true" verbose="1" listeners="com.mongodb.util.TestNGListener" >
<jvmarg value="-Xmx512M" />
<jvmarg value="-ea" />
<jvmarg value="-Dcom.mongodb.slaveAcceptableLatencyMS=${test.com.mongodb.slaveAcceptableLatencyMS}"/>
<xmlfileset dir="build/test" includes="testng-single.xml"/>
</testng>
</target>
<!-- ******************************************************************* -->
<!-- Misc targets -->
<!-- ******************************************************************* -->
<target name="examples" depends="compile">
<javac
srcdir="examples"
destdir="build/test"
optimize="off"
deprecation="off"
source="${build.conf.javac.source}"
encoding="ISO-8859-1"
debug="on"
includeantruntime="false">
<classpath refid="classpath"/>
</javac>
<java classname="QuickTour"><classpath refid="classpath"/></java>
<java classname="QuickTourAdmin"><classpath refid="classpath"/></java>
</target>
<target name="readoplog" depends="compile">
<javac
srcdir="examples"
destdir="build/test"
optimize="off"
deprecation="off"
source="${build.conf.javac.source}"
encoding="ISO-8859-1"
debug="on"
includeantruntime="false">
<classpath refid="classpath"/>
</javac>
<java classname="examples.ReadOplog" fork="true"><classpath refid="classpath"/></java>
</target>
<!-- ******************************************************************* -->
<!-- The reporting targets -->
<!-- ******************************************************************* -->
<target name="junit-reports" depends="compile">
<testng classpathref="classpath" outputdir="${testdir}" listeners="com.mongodb.util.TestNGListener" haltonfailure="false" >
<jvmarg value="-Xmx512M" />
<xmlfileset dir="." includes="testng.xml"/>
</testng>
<junitreport todir="${testdir}">
<fileset dir="${testdir}"><include name="*/*.xml"/></fileset>
<report format="noframes" todir="${testdir}"/>
</junitreport>
</target>
<target name="-check.clover">
<available property="clover.installed" classname="com.cenqua.clover.CloverInstr" />
</target>
<target name="with.clover" depends="guard.noclover">
<clover-setup/>
</target>
<target name="guard.noclover" depends="-check.clover" unless="clover.installed">
<fail message="The target you are attempting to run requires Clover, which doesn't appear to be installed"/>
</target>
<target name="jenkins-test" depends="compile">
<testng classpathref="classpath.clover" outputdir="${testdir}" listeners="com.mongodb.util.TestNGListener" haltonfailure="false" verbose="1">
<jvmarg value="-Xmx512M" />
<jvmarg value="-ea" />
<jvmarg value="-Dcom.mongodb.slaveAcceptableLatencyMS=${test.com.mongodb.slaveAcceptableLatencyMS}"/>
<xmlfileset dir="." includes="testng.xml"/>
</testng>
<!--<clover-report>-->
<!--<current outfile="coverage.xml">-->
<!--<format type="xml"/>-->
<!--</current>-->
<!--</clover-report>-->
</target>
<target name="check-binary-compatibility" depends="jar">
<taskdef classpathref="classpath" resource="clirrtask.properties"/>
<property name="jar.baseline" value="mongo-${build.conf.compatibility.baseline.version}.jar"/>
<get src="${build.conf.url.libbase}/${ant.project.name}/${jar.baseline}" dest="${jar.baseline}"
verbose="true" usetimestamp="true"/>
<clirr failOnBinError="no" failOnSrcError="no">
<origfiles dir="." includes="${jar.baseline}"/>
<newfiles dir="." includes="mongo.jar"/>
<formatter type="plain" outfile="build/clirr.txt"/>
</clirr>
</target>
<!-- NOTE: publish-local is now located in maven/ -->
</project>
Jump to Line
Something went wrong with that request. Please try again.