| <?xml version="1.0" standalone='yes'?> |
| |
| <project name="Jackson JSON parser" basedir="." default="readme"> |
| |
| <!-- Source directories --> |
| <property name="dir.src" location="${basedir}/src" /> |
| <property name="dir.src.java" location="${dir.src}/java" /> |
| <property name="dir.src.test" location="${dir.src}/test" /> |
| <property name="dir.src.sample" location="${dir.src}/sample" /> |
| <property name="dir.releasenotes" location="${basedir}/release-notes" /> |
| |
| <!-- Libs --> |
| <property name="dir.lib" location="${basedir}/lib" /> |
| <!-- Build-related --> |
| <property name="dir.build" location="${basedir}/build" /> |
| <property name="dir.build.classes.core" location="${dir.build}/classes/core" /> |
| <property name="dir.build.classes.mapper" location="${dir.build}/classes/mapper" /> |
| <property name="dir.build.classes.extra" location="${dir.build}/classes/extra" /> |
| <!-- some support for perf testing --> |
| <property name="dir.build.classes.perf" location="${dir.build}/classes/perf" /> |
| |
| <!-- Test suite --> |
| <property name="dir.test" location="${basedir}/test" /> |
| <property name="dir.test.classes" location="${dir.test}/classes" /> |
| <property name="dir.test.results" location="${dir.test}/results" /> |
| <property name="dir.test.xmlresults" location="${dir.test.results}/xml" /> |
| |
| <!-- Documentation --> |
| <property name="dir.doc" location="${basedir}/doc" /> |
| <property name="dir.javadoc" location="${dir.build}/javadoc" /> |
| |
| <!-- Distribution --> |
| <property name="dir.dist" location="${basedir}/dist" /> |
| <property name="dir.dist.maven2" location="${basedir}/dist-maven2" /> |
| |
| <!-- Version information --> |
| |
| <!-- Version --> |
| <property name="JSON_TITLE" value="Json - JavaScript Object Notation" /> |
| <property name="JSON_VERSION" value="1.0" /> |
| <property name="JSON_VENDOR" value="http://www.ietf.org/rfc/rfc4627.txt" /> |
| <property name="IMPL_TITLE_CORE" value="Jackson JSON processor" /> |
| <property name="IMPL_TITLE_MAPPER" value="Data mapper for Jackson JSON processor" /> |
| <property name="IMPL_VERSION" value="0.9.8-SNAPSHOT" /> |
| <property name="IMPL_VENDOR" value="http://fasterxml.com" /> |
| |
| <path id="junit-libs"> |
| <fileset dir="${dir.lib}"> |
| <include name="junit/junit*.jar" /> |
| </fileset> |
| </path> |
| |
| <patternset id="dist-all-source-files"> |
| <include name="README.txt" /> |
| <include name="build.xml" /> |
| <include name="release-notes/*" /> |
| <include name="DEV/contributor*" /> |
| <include name="src/**/*.java" /> |
| <include name="src/java/**/*.html" /> |
| <include name="src/maven/*.pom" /> |
| <include name="release-notes/*" /> |
| <include name="release-notes/asl/*" /> |
| <include name="release-notes/lgpl/*" /> |
| <!-- need jars for auxiliary tasks (tests), although jackson |
| itself does not depend on any other packages, just JDK 1.5 |
| --> |
| <include name="lib/**/*.jar" /> |
| <include name="samples/**/*.jsn" /> |
| </patternset> |
| |
| <!-- some build tasks are refactored out of the main task --> |
| <import file="build-osgi.xml" /> |
| <import file="build-coverage.xml" /> |
| |
| |
| <!--*********************************************************************--> |
| <!-- The readme target shows a brief description of all targets --> |
| <!-- supported by this ant build file --> |
| <!--*********************************************************************--> |
| <target name="readme"> |
| <echo message = "${ant.project.name}'s Available Targets" /> |
| <echo message = "---------------------------------------------------" /> |
| <echo message = "1) readme - Displays this information (default target)." /> |
| <echo message = "2) clean - Remove any generated files/directories." /> |
| <echo message = "3) compile.all - Compile all code for ${ant.project.name}." /> |
| <echo message = "4) jars - Compile and create all jars for non-test ${ant.project.name} code (see below for specific ones)." /> |
| <echo message = "4b) jar.asl - Compile and create jar for non-test ${ant.project.name} cod, under Apache (2.0) license." /> |
| <echo message = "5) javadoc - Generate ${ant.project.name} code documentation." /> |
| <echo message = "6) compile.test - Compile ${ant.project.name} code and test code" /> |
| <echo message = " for JUnit tests." /> |
| <echo message = "7) test - Run JUnit tests." /> |
| <echo message = "8) dist - Create distribution directory and copy necessary files there" /> |
| <echo message = "9) all - Run the clean, compile, javadoc," /> |
| <echo message = " test and dist targets." /> |
| <echo message = "" /> |
| <echo message = "Available command-line arguments:" /> |
| <echo message = "---------------------------------" /> |
| <echo message = "none" /> |
| </target> |
| |
| <target name="prepare"> |
| <!-- make build directories --> |
| <mkdir dir="${dir.build}" /> |
| <mkdir dir="${dir.build.classes.core}" /> |
| <mkdir dir="${dir.build.classes.mapper}" /> |
| <mkdir dir="${dir.build.classes.extra}" /> |
| |
| <!-- make docs directories --> |
| <mkdir dir="${dir.doc}" /> |
| <mkdir dir="${dir.javadoc}" /> |
| |
| <!-- make test output directories --> |
| <mkdir dir="${dir.test}" /> |
| <mkdir dir="${dir.test.classes}" /> |
| <mkdir dir="${dir.test.results}" /> |
| <mkdir dir="${dir.test.xmlresults}" /> |
| |
| <!-- and finally distribution dir --> |
| <mkdir dir="${dir.dist}" /> |
| </target> |
| |
| <!-- *********************************************** |
| - supporting dummy tasks |
| - ***********************************************--> |
| |
| |
| <!-- *********************************************** |
| - clean - Removes all generated files/directories |
| - ***********************************************--> |
| |
| <target name="clean"> |
| <delete dir="${dir.build}"/> |
| <delete dir="${dir.doc}"/> |
| <delete dir="${dir.test}"/> |
| <delete dir="${dir.dist}"/> |
| <delete dir="${dir.dist.maven2}"/> |
| <delete file="cobertura.ser" /> |
| </target> |
| |
| <target name="compile" depends="compile.all" /> |
| <target name="compile.all" depends="compile.main, compile.extra, compile.test" /> <!--, compile.perf" /> --> |
| <target name="compile.main" depends="compile.core, compile.mapper" /> |
| |
| <target name="compile.core" depends="prepare"> |
| <javac srcdir="${dir.src.java}" destdir="${dir.build.classes.core}" |
| source="1.5" target="1.5" |
| debug="true" |
| > |
| <compilerarg value="-Xlint:unchecked" /> |
| <exclude name="org/codehaus/jackson/map/**/*.java" /> |
| <include name="org/codehaus/**/*.java" /> |
| </javac> |
| </target> |
| |
| <target name="compile.mapper" depends="compile.core"> |
| <javac srcdir="${dir.src.java}" destdir="${dir.build.classes.mapper}" |
| source="1.5" target="1.5" |
| debug="true" |
| > |
| <compilerarg value="-Xlint:unchecked" /> |
| <include name="org/codehaus/jackson/map/**/*.java" /> |
| <!-- mapper builds on core classes --> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="compile.extra" depends="compile.main"> |
| <javac destdir="${dir.build.classes.extra}" |
| source="1.5" target="1.5" debug="true" |
| > |
| <compilerarg value="-Xlint:unchecked" /> |
| <src path="${dir.src.sample}" /> |
| <src path="${dir.src.java}/test" /> |
| <include name="**/*.java" /> |
| <!-- need core and mapper classes --> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}"/> |
| <pathelement path="${dir.build.classes.mapper}"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="compile.perf" depends="compile.main"> |
| <mkdir dir="${dir.build.classes.perf}" /> |
| <!-- Let's also compile micro-benchmarks... --> |
| <javac srcdir="${dir.src}/perf" destdir="${dir.build.classes.perf}" debug="false" |
| > |
| <classpath> |
| <fileset dir="${dir.lib}/perf"> |
| <include name="*.jar" /> |
| </fileset> |
| <pathelement path="${dir.build.classes.core}"/> |
| <pathelement path="${dir.build.classes.mapper}"/> |
| </classpath> |
| <include name="**/*.java" /> |
| </javac> |
| </target> |
| |
| <!-- Dummy target that just includes all individual jars... --> |
| <target name="jars" |
| depends="jars.asl, jars.lgpl" |
| /> |
| |
| <target name="javadoc" depends="prepare"> |
| <!-- Build a dirpath that contains just the "source" tree --> |
| <javadoc windowtitle="Jackson JSON Processor" |
| destdir="${dir.javadoc}" |
| author="true" |
| version="true"> |
| <packageset dir="${dir.src.java}" defaultexcludes="yes"> |
| <include name="org/codehaus/**" /> |
| </packageset> |
| </javadoc> |
| </target> |
| |
| <!-- Generic distribution target builds the structure we copy over |
| to the website. |
| --> |
| <target name="dist" depends="compile.all ,jars, javadoc" |
| > |
| <!-- First, let's copy the binary jars to dist --> |
| <copy todir="${dir.dist}"> |
| <fileset dir="${dir.build}" includes="*.jar" /> |
| </copy> |
| |
| <!-- Then let's create the source distribution tar packages |
| --> |
| <!-- Need to first copy to a tmp dir, to get the additional |
| directory (so tar/zip contents won't explode directly |
| in current dir) |
| --> |
| <property name="DIST_FILENAME" value="jackson-src-${IMPL_VERSION}" /> |
| <property name="DIST_DIR" value="${DIST_FILENAME}" /> |
| |
| <!-- better always clean it up, if it exists... --> |
| <delete dir="${dir.build}/${DIST_DIR}" /> |
| <mkdir dir="${dir.build}/${DIST_DIR}" /> |
| |
| <copy todir="${dir.build}/${DIST_DIR}"> |
| <fileset dir="${basedir}"> |
| <patternset refid="dist-all-source-files" /> |
| </fileset> |
| </copy> |
| |
| <!-- then create tarball, zip --> |
| <tar basedir="${dir.build}" |
| includes="${DIST_DIR}/**" |
| destfile="${dir.dist}/${DIST_FILENAME}.tar.gz" |
| compression="gzip" |
| /> |
| <zip basedir="${dir.build}" |
| includes="${DIST_DIR}/**" |
| destfile="${dir.dist}/${DIST_FILENAME}.zip" |
| /> |
| |
| <!-- And create source jars for IDE support; separate for core, mapper |
| and both license types |
| --> |
| <jar destfile="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-sources.jar" |
| filesonly="true" compress="true" basedir="${dir.src.java}" |
| excludes="org/codehaus/jackson/map/**" |
| includes="org/codehaus/jackson/**" |
| /> |
| <jar destfile="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-sources.jar" |
| filesonly="true" compress="true" basedir="${dir.src.java}" |
| includes="org/codehaus/jackson/map/**" |
| /> |
| |
| <jar destfile="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}-sources.jar" |
| filesonly="true" compress="true" basedir="${dir.src.java}" |
| excludes="org/codehaus/jackson/map/**" |
| includes="org/codehaus/jackson/**" |
| /> |
| <jar destfile="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}-sources.jar" |
| filesonly="true" compress="true" basedir="${dir.src.java}" |
| includes="org/codehaus/jackson/map/**" |
| /> |
| |
| <!-- Then copy javadocs --> |
| <copy todir="${dir.dist}"> |
| <fileset dir="${dir.javadoc}/.." includes="javadoc/**/*" /> |
| </copy> |
| <!-- Plus, let's also just copy README and compatibility files, in |
| addition to being included in source package |
| --> |
| <copy todir="${dir.dist}" > |
| <fileset dir="." includes="release-notes/*" /> |
| <fileset dir="." includes="release-notes/asl/*" /> |
| <fileset dir="." includes="release-notes/lgpl/*" /> |
| </copy> |
| <!-- And also additional Maven stuff --> |
| <copy todir="${dir.dist}"> |
| <fileset dir="${dir.src}/maven" includes="*.pom" /> |
| <globmapper from="*.pom" to="*-${IMPL_VERSION}.pom" /> |
| <filterset> |
| <filter token="VERSION" value="${IMPL_VERSION}" /> |
| </filterset> |
| </copy> |
| <!-- 03-Dec-2008, tatu: Let's validate well-formedness of |
| resulting files (to avoid things like [JACKSON-25]) |
| --> |
| <xmlvalidate lenient="true"> |
| <!-- lenient: check only well-formedness, no dtd/schema (yet) --> |
| <fileset dir="${dir.src}/maven" includes="*.pom" /> |
| </xmlvalidate> |
| </target> |
| |
| <!-- And for Maven2 repo, we will construct set of different |
| directories |
| --> |
| |
| <target name="dist.maven" depends="dist"> |
| <mkdir dir="${dir.dist.maven2}"/> |
| |
| <mkdir dir="${dir.dist.maven2}/jackson-core-asl/${IMPL_VERSION}"/> |
| <copy todir="${dir.dist.maven2}/jackson-core-asl/${IMPL_VERSION}"> |
| <fileset dir="${dir.dist}" includes="jackson-core-asl*" /> |
| </copy> |
| |
| <mkdir dir="${dir.dist.maven2}/jackson-mapper-asl/${IMPL_VERSION}"/> |
| <copy todir="${dir.dist.maven2}/jackson-mapper-asl/${IMPL_VERSION}"> |
| <fileset dir="${dir.dist}" includes="jackson-mapper-asl*" /> |
| </copy> |
| |
| <mkdir dir="${dir.dist.maven2}/jackson-core-lgpl/${IMPL_VERSION}"/> |
| <copy todir="${dir.dist.maven2}/jackson-core-lgpl/${IMPL_VERSION}"> |
| <fileset dir="${dir.dist}" includes="jackson-core-lgpl*" /> |
| </copy> |
| |
| <mkdir dir="${dir.dist.maven2}/jackson-mapper-lgpl/${IMPL_VERSION}"/> |
| <copy todir="${dir.dist.maven2}/jackson-mapper-lgpl/${IMPL_VERSION}"> |
| <fileset dir="${dir.dist}" includes="jackson-mapper-lgpl*" /> |
| </copy> |
| |
| </target> |
| |
| <target name="all" depends="clean,javadoc,test,dist"> |
| <!-- This target simply depends on others to do its job --> |
| </target> |
| |
| <!--*********************************************************************--> |
| <!-- Tasks from here down are in support of junit tests. --> |
| <!--*********************************************************************--> |
| <target name="all-tests" depends="test" /> |
| |
| |
| <!-- Compiling and running test cases |
| --> |
| |
| <target name="compile.test" depends="compile.main"> |
| <javac srcdir="${dir.src.test}" destdir="${dir.test.classes}" |
| source="1.5" target="1.5" |
| debug="true" |
| > |
| <include name="**/*.java" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}"/> |
| <pathelement path="${dir.build.classes.mapper}"/> |
| <path refid="junit-libs"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| |
| <target name="test" depends="compile.test"> |
| <!-- showoutput 'yes' to allow outputting debug msgs... --> |
| <junit fork="no" printsummary="yes" haltonfailure="no" |
| showoutput="yes"> |
| <batchtest fork="no" todir="${dir.test.xmlresults}"> |
| <fileset dir="${dir.test.classes}"> |
| <!-- Need to exclude inner classes... --> |
| <exclude name="**/*$*.class"/> |
| <!-- And manual non-junit test classes --> |
| <exclude name="test/*.class"/> |
| <include name="**/Test*.class"/> |
| </fileset> |
| </batchtest> |
| <formatter type="xml" /> |
| <classpath> |
| <pathelement path="${dir.build.classes.core}" /> |
| <pathelement path="${dir.build.classes.mapper}" /> |
| <pathelement location="${dir.test.classes}" /> |
| <path refid="junit-libs"/> |
| </classpath> |
| </junit> |
| |
| <junitreport todir="${dir.test.results}"> |
| <fileset dir="${dir.test.xmlresults}"> |
| <include name="TEST-*.xml" /> |
| </fileset> |
| <report todir="${dir.test.results}" /> |
| </junitreport> |
| </target> |
| |
| </project> |