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

338 lines (270 sloc) 13.212 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="MongoDB Java Driver" default="compile" basedir=".">
<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}"/>
<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>
<!-- ******************************************************************* -->
<!-- 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">
<replaceregexp file="src/main/com/mongodb/Mongo.java" match="\sMAJOR_VERSION\s=\s\d+;" replace=" MAJOR_VERSION = ${build.conf.lib.major};" byline="false"/>
<replaceregexp file="src/main/com/mongodb/Mongo.java" match="\sINOR_VERSION\s=\s\d+;" replace=" MINOR_VERSION = ${build.conf.lib.minor};" 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,-fallthrough"/>
<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,-fallthrough"/>
</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}"/></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}"/></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,org.bson,org.bson.types,org.bson.io,org.bson.util"
sourcepath="src/main/"
defaultexcludes="yes"
destdir="docs/mongo-java-driver/${build.conf.lib.version}"
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="ApiToolsTaglet" 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/${build.conf.lib.version}"
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="ApiToolsTaglet" 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/${build.conf.lib.version}"/></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/${build.conf.lib.version}"/></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" />
<xmlfileset dir="." includes="testng.xml"/>
</testng>
</target>
<target name="bamboo-test" depends="compile,guard.noclover">
<testng classpathref="classpath" outputdir="${testdir}" listeners="com.mongodb.util.TestNGListener, com.cenqua.clover.tasks.testng.CloverOptimizedTestSelector" haltonfailure="false" >
<jvmarg value="-Xmx512M" />
<xmlfileset dir="." includes="testng.xml"/>
</testng>
<clover-report>
<current outfile="coverage.xml">
<format type="xml"/>
</current>
</clover-report>
</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" />
<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="bamboo-test">
<junitreport todir="${testdir}">
<fileset dir="${testdir}"><include name="*/*.xml"/></fileset>
<report format="noframes" todir="${testdir}"/>
</junitreport>
</target>
<!-- NOTE: publish-local is now located in maven/ -->
<taskdef resource="cloverlib.xml" classpath="lib/clover-3.1.0.jar"/>
<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>
</project>
Jump to Line
Something went wrong with that request. Please try again.