blob: 3cd8364f081e84bf2ab65c85bacbcf3ed93be3d6 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. The ASF licenses this file to You
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. For additional information regarding
copyright in this work, please see the NOTICE file in the top level
directory of this distribution. -->
<project name="abdera" default="build" basedir="..">
<!--
abdera Build
targets:
* build (compile everything)
* test (compile and run test cases)
* dist (compile, test and create jars)
* clean (rather self explanatory)
* docs (build the javadocs)
Set the ABDERA_XMLSECURITY=yes environment variable to build the security module
Set the ABDERA_SPRING=yes environment variable to build the spring module
-->
<property name="version" value="1.1.1" />
<property name="site" value="../site" />
<property name="work" value="${basedir}/build/work" />
<property name="test" value="${basedir}/build/test" />
<property name="dist" value="${basedir}/dist" />
<property name="dist_lib" value="${dist}/lib" />
<property name="docs" value="${dist}/docs" />
<property name="javadocs" value="${docs}/api" />
<property name="core" value="${basedir}/core" />
<property name="core.src" value="${core}/src/main/java" />
<property name="core.resources" value="${core}/src/main/resources" />
<property name="core.test" value="${core}/src/test/java" />
<property name="core.test.resources" value="${core}/src/test/resources" />
<property name="core.work" value="${work}/core" />
<property name="core.jar" value="${dist}/${ant.project.name}.core.${version}.jar" />
<property name="parser" value="${basedir}/parser" />
<property name="parser.src" value="${parser}/src/main/java" />
<property name="parser.resources" value="${parser}/src/main/resources" />
<property name="parser.test" value="${parser}/src/test" />
<property name="parser.test.java" value="${parser}/src/test/java" />
<property name="parser.test.resources" value="${parser}/src/test/resources" />
<property name="parser.work" value="${work}/parser" />
<property name="parser.jar" value="${dist}/${ant.project.name}.parser.${version}.jar" />
<property name="server" value="${basedir}/server" />
<property name="server.src" value="${server}/src/main/java" />
<property name="server.work" value="${work}/server" />
<property name="server.jar" value="${dist}/${ant.project.name}.server.${version}.jar" />
<property name="server.test.java" value="${server}/src/test/java" />
<property name="server.test.resources" value="${server}/src/test/resources" />
<property name="complete.jar" value="${dist}/${ant.project.name}.complete.${version}.jar" />
<property name="spring" value="${basedir}/spring" />
<property name="spring.src" value="${spring}/src/main/java" />
<property name="spring.resources" value="${spring}/src/main/resources" />
<property name="spring.test.src" value="${spring}/src/test/java" />
<property name="spring.test.resources" value="${spring}/src/test/resources" />
<property name="spring.work" value="${work}/spring" />
<property name="spring.jar" value="${dist}/${ant.project.name}.spring.${version}.jar" />
<property name="security" value="${basedir}/security" />
<property name="security.src" value="${security}/src/main/java" />
<property name="security.work" value="${work}/security" />
<property name="security.test.java" value="${security}/src/test/java" />
<property name="security.test.resources" value="${security}/src/test/resources" />
<property name="security.jar" value="${dist}/${ant.project.name}.security.${version}.jar" />
<property name="client" value="${basedir}/client" />
<property name="client.src" value="${client}/src/main/java" />
<property name="client.work" value="${work}/client" />
<property name="client.test.java" value="${client}/src/test/java" />
<property name="client.jar" value="${dist}/${ant.project.name}.client.${version}.jar" />
<property name="extensions" value="${basedir}/extensions" />
<property name="extensions.work" value="${work}/extensions" />
<property name="extensions.jar.base" value="${dist}/ext/${ant.project.name}.extensions" />
<!--
<property name="extensions.src" value="${extensions}/src/main/java" />
<property name="extensions.resources" value="${extensions}/src/main/resources" />
<property name="extensions.test.java" value="${extensions}/src/test/java" />
<property name="extensions.test.resources" value="${extensions}/src/test/resources" />
<property name="extensions.jar" value="${dist}/${ant.project.name}.extensions.${version}.jar" />
-->
<property name="examples" value="${basedir}/examples" />
<property name="examples.work" value="${work}/examples" />
<property name="examples.src" value="${examples}/src/main/java" />
<property name="debug" value="on" />
<property environment="env" />
<property name="dependencies" value="${basedir}/dependencies" />
<property name="dependencies.work" value="${dependencies}/work" />
<property name="i18n.src" value="${dependencies}/i18n/src" />
<property name="i18n.src.java" value="${i18n.src}/main/java" />
<property name="i18n.src.resources" value="${i18n.src}/main/resources" />
<property name="i18n.version" value="${version}" />
<property name="i18n.jar" value="${dependencies}/abdera-i18n-${i18n.version}.jar" />
<property name="i18n.test.java" value="${i18n.src}/test/java" />
<property file="${dependencies}/deps.properties" />
<path id="jar.dependencies">
<fileset dir="${dependencies}" includes="**/*.jar" />
<fileset file="${i18n.jar}" />
</path>
<target name="compile.dependencies">
<mkdir dir="${dependencies.work}/i18n" />
<javac srcdir="${i18n.src.java}" classpathref="jar.dependencies" destdir="${dependencies.work}/i18n" debug="${debug}" />
<javac srcdir="${i18n.test.java}" classpathref="jar.dependencies" classpath="${dependencies.work}/i18n" destdir="${test}" debug="${debug}" />
<copy todir="${dependencies.work}/i18n">
<fileset dir="${i18n.src.resources}" includes="**/*" />
</copy>
<mkdir dir="${dependencies.work}/i18n/META-INF" />
<copy todir="${dependencies.work}/i18n/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
<jar destfile="${i18n.jar}" basedir="${dependencies.work}/i18n" includes="org/apache/abdera/i18n/**/*" />
</target>
<target name="dependencies">
<path id="">
<fileset dir="dependencies" includes="*.jar" />
</path>
</target>
<target name="init">
<echo>
=====================================================
${ant.project.name}, ${version}
Working directory: ${work}
=====================================================
</echo>
<mkdir dir="${test}" />
<condition property="do.download.feedvalidator.tests">
<not>
<available file="${parser.test.resources}/feedvalidator.org/testcases/atom" />
</not>
</condition>
<condition property="do.download">
<not>
<and>
<available file="${dependencies}/${geronimo.activation.jar}" />
<available file="${dependencies}/${geronimo.servlet.jar}" />
<available file="${dependencies}/${axiom.api.jar}" />
<available file="${dependencies}/${axiom.impl.jar}" />
<available file="${dependencies}/${jaxen.jar}" />
<available file="${dependencies}/${log4j.jar}" />
<available file="${dependencies}/${stax.api.jar}" />
<available file="${dependencies}/${commons.logging.jar}" />
<available file="${dependencies}/${commons.codec.jar}" />
<available file="${dependencies}/${commons.httpclient.jar}" />
<available file="${dependencies}/${junit.jar}" />
<available file="${dependencies}/${wstx.jar}" />
<available file="${dependencies}/${jetty.jar}" />
<available file="${dependencies}/${jetty-util.jar}" />
<available file="${dependencies}/${htmlparser.jar}" />
<available file="${dependencies}/${htmlserializer.jar}" />
<available file="${dependencies}/${easymock.jar}" />
<available file="${dependencies}/${easymockclassextension.jar}" />
<available file="${dependencies}/${javamail.jar}" />
<available file="${dependencies}/${xmlunit.jar}" />
</and>
</not>
</condition>
<condition property="do.security">
<istrue value="${env.ABDERA_XMLSECURITY}" />
</condition>
<condition property="do.download.security">
<and>
<istrue value="${do.security}" />
<not>
<and>
<available file="${dependencies}/${xmlsecurity.jar}" />
<available file="${dependencies}/${bouncycastle.jar}" />
</and>
</not>
</and>
</condition>
<condition property="do.spring">
<istrue value="${env.ABDERA_SPRING}" />
</condition>
<condition property="do.download.spring">
<and>
<istrue value="${do.spring}" />
<not>
<and>
<available file="${basedir}/build/tools/${spring.zip}" />
</and>
</not>
</and>
</condition>
<mkdir dir="${work}" />
<manifest file="${work}/MANIFEST.MF">
<attribute name="Specification-Title" value="Apache Abdera" />
<attribute name="Specification-Version" value="${version}" />
<attribute name="Specification-Vendor" value="The Apache Software Foundation" />
<attribute name="Implementation-Title" value="org.apache.abdera" />
<attribute name="Implementation-Version" value="${version}" />
<attribute name="Implementation-Vendor" value="The Apache Software Foundation" />
</manifest>
<echo>Building Security? ${do.security}</echo>
<echo>Building Spring? ${do.spring}</echo>
<antcall target="download" />
<antcall target="downloadsecurity" />
<antcall target="downloadspring" />
</target>
<target name="compile.core" depends="init,compile.dependencies">
<mkdir dir="${core.work}" />
<javac srcdir="${core.src}" destdir="${core.work}" classpathref="jar.dependencies" debug="${debug}" />
<javac srcdir="${core.test}" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work}" debug="${debug}" />
<mkdir dir="${core.work}/META-INF" />
<copy todir="${core.work}">
<fileset dir="${core.resources}" includes="**/*" />
</copy>
<copy todir="${test}">
<fileset dir="${core.test.resources}">
<include name="**" />
</fileset>
</copy>
<copy todir="${core.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
</target>
<target name="compile.parser" depends="init,compile.core">
<mkdir dir="${parser.work}" />
<javac srcdir="${parser.src}" destdir="${parser.work}" classpathref="jar.dependencies" classpath="${core.work}" debug="${debug}" />
<javac srcdir="${parser.test.java}" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work};${parser.work}" debug="${debug}" />
<mkdir dir="${parser.work}/META-INF" />
<copy todir="${parser.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
<copy todir="${parser.work}">
<fileset dir="${parser.resources}" includes="**/*" />
</copy>
<copy todir="${test}">
<fileset dir="${parser.test.resources}">
<include name="**" />
</fileset>
</copy>
</target>
<target name="compile.server" depends="init, compile.core, compile.client">
<mkdir dir="${server.work}" />
<javac srcdir="${server.src}" destdir="${server.work}" classpathref="jar.dependencies" classpath="${core.work}" debug="${debug}" />
<javac srcdir="${server.test.java}" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work};${server.work};${client.work}" debug="${debug}" />
<mkdir dir="${server.work}/META-INF" />
<copy todir="${server.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
<copy todir="${test}">
<fileset dir="${server.test.resources}">
<include name="**" />
</fileset>
</copy>
</target>
<target name="compile.spring" depends="compile.server" if="do.spring">
<path id="spring.dependencies">
<path refid="jar.dependencies" />
<fileset dir="${basedir}/build/tools/${spring.name}/dist" includes="**/*.jar" />
<fileset dir="${basedir}/build/tools/${spring.name}/dist/modules" includes="**/*.jar" />
</path>
<mkdir dir="${spring.work}" />
<javac srcdir="${spring.src}" destdir="${spring.work}" classpathref="spring.dependencies" classpath="${core.work};${server.work}" debug="${debug}" />
<javac srcdir="${spring.test.src}" destdir="${test}" classpathref="spring.dependencies" classpath="${core.work};${parser.work};${spring.work};${server.work}" debug="${debug}" />
<mkdir dir="${spring.work}/META-INF" />
<copy todir="${spring.work}">
<fileset dir="${spring.resources}" includes="**/*" />
</copy>
<copy todir="${test}">
<fileset dir="${spring.test.resources}" includes="**/*" />
</copy>
<copy todir="${spring.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
</target>
<target name="compile.security" depends="init, compile.core, compile.server" if="do.security">
<mkdir dir="${security.work}" />
<javac srcdir="${security.src}" destdir="${security.work}" classpathref="jar.dependencies" classpath="${core.work};${parser.work};${client.work};${server.work}" debug="${debug}" />
<javac srcdir="${security.test.java}" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work};${parser.work};${security.work};${client.work};${server.work}" debug="${debug}" />
<mkdir dir="${security.work}/META-INF" />
<copy todir="${test}">
<fileset dir="${security.test.resources}" includes="**/*" />
</copy>
<copy todir="${security.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
</target>
<target name="compile.client" depends="init,compile.core">
<mkdir dir="${client.work}" />
<javac srcdir="${client.src}" destdir="${client.work}" classpathref="jar.dependencies" classpath="${core.work};" debug="${debug}" />
<javac srcdir="${client.test.java}" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work};${parser.work};${extensions.work};${client.work}" debug="${debug}" />
<mkdir dir="${client.work}/META-INF" />
<copy todir="${client.work}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
</target>
<target name="compile.examples" depends="init,compile.core,compile.parser,compile.server,compile.extensions,compile.security">
<echo>Make sure the example code compiles...</echo>
<mkdir dir="${examples.work}" />
<javac srcdir="${examples.src}" destdir="${examples.work}" classpathref="jar.dependencies"
classpath="${core.work};${parser.work};${client.work};${server.work};${extensions.work}/gdata;${extensions.work}/main;${security.work};${extensions.work}/sharing;${extensions.work}/geo;${extensions.work}/serializer;${extensions.work}/features" debug="${debug}">
<exclude unless="do.security" name="**/security/*.java" />
</javac>
<delete dir="${examples.work}" />
</target>
<target name="build" depends="init,compile.core,compile.parser,compile.server,compile.extensions,compile.client,compile.security,compile.examples,compile.spring">
</target>
<target name="docs" depends="init">
<javadoc
packagenames="org.apache.abdera.*"
sourcepath="${core.src}:${security.src}:${server.src}:${client.src}:${spring.src}:${i18n.src.java}:${extensions}/gdata/src/main/java:${extensions}/geo/src/main/java:${extensions}/html/src/main/java:${extensions}/json/src/main/java:${extensions}/main/src/main/java:${extensions}/media/src/main/java:${extensions}/oauth/src/main/java:${extensions}/opensearch/src/main/java:${extensions}/serializer/src/main/java:${extensions}/sharing/src/main/java:${extensions}/wsse/src/main/java"
destdir="${javadocs}"
windowtitle="Abdera"
classpathref="jar.dependencies" />
<replaceregexp match="Generated by javadoc (.*) on (.*) --" replace="Generated by javadoc --" flags="g" byline="true">
<fileset dir="${javadocs}" includes="**/*.html" />
</replaceregexp>
<copy todir="${docs}">
<fileset dir="${basedir}/docs/" includes="*.html" />
</copy>
</target>
<target name="test" depends="build, download_feedvalidator_tests">
<echo>Running i18n Tests...</echo>
<java classpathref="jar.dependencies" classpath="${dependencies.work}/i18n:${test}" classname="org.apache.abdera.i18n.test.iri.TestSuite" fork="yes" />
<echo>Running Core Tests...</echo>
<java classpathref="jar.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${test}" classname="org.apache.abdera.test.core.TestSuite" fork="yes" />
<echo>Running Stax Parser Tests...</echo>
<java classpathref="jar.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${test}" classname="org.apache.abdera.test.parser.stax.TestSuite" fork="yes" />
<echo>Running Client Tests...</echo>
<java classpathref="jar.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${client.work}:${test}" classname="org.apache.abdera.test.client.TestSuite" fork="yes" />
<echo>Running Server Tests...</echo>
<java classpathref="jar.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${client.work}:${test}" classname="org.apache.abdera.protocol.server.test.TestSuite" fork="yes" />
<antcall target="test.extensions" />
<antcall target="test.security" />
</target>
<target name="test.security" if="do.security">
<echo>Running Security Tests...</echo>
<java classpathref="jar.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${security.work}:${client.work}:${test}" classname="org.apache.abdera.test.security.TestSuite" fork="yes">
<arg line="${bouncycastle.provider}" />
</java>
</target>
<target name="test.spring" depends="compile.spring" if="do.spring">
<echo>Running Spring Tests...</echo>
<path id="spring.dependencies">
<path refid="jar.dependencies" />
<fileset dir="${basedir}/build/tools/${spring.name}/dist" includes="**/*.jar" />
<fileset dir="${basedir}/build/tools/${spring.name}/dist/modules" includes="**/*.jar" />
</path>
<java classpathref="spring.dependencies" classpath="${core.work}:${parser.work}:${server.work}:${security.work}:${client.work}:${spring.work}:${test}" classname="org.apache.abdera.spring.TestSuite" fork="yes">
</java>
</target>
<target name="clean">
<delete dir="${work}" />
<delete dir="${test}" />
<delete dir="${dist}" />
<delete dir="${dependencies.work}" />
<delete file="${i18n.jar}" />
<delete>
<fileset dir="${basedir}" includes="*.zip" />
<fileset dir="${basedir}" includes="*.md5" />
</delete>
</target>
<target name="dist" depends="clean,build,test,docs">
<mkdir dir="${dist}" />
<mkdir dir="${dist_lib}" />
<jar destfile="${complete.jar}" manifest="${work}/MANIFEST.MF" >
<fileset dir="${core.work}" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${core.work}" includes="META-INF/LICENSE,META-INF/NOTICE"/>
<fileset dir="${parser.work}" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${server.work}" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${client.work}" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${dependencies.work}/i18n" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/main" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/json" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/html" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/html" includes="META-INF/*.htmlparser.txt,META-INF/*.serializer.txt" />
<fileset dir="${extensions.work}/geo" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/gdata" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/media" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/oauth" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/opensearch" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/serializer" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/sharing" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions.work}/wsse" includes="**/*" excludes="META-INF/**/*"/>
<fileset dir="${extensions}/complete/resources" includes="**/*" />
</jar>
<jar destfile="${core.jar}" basedir="${core.work}" manifest="${work}/MANIFEST.MF" />
<jar destfile="${parser.jar}" basedir="${parser.work}" manifest="${work}/MANIFEST.MF" />
<jar destfile="${server.jar}" basedir="${server.work}" manifest="${work}/MANIFEST.MF" />
<jar destfile="${client.jar}" basedir="${client.work}" manifest="${work}/MANIFEST.MF" />
<antcall target="dist.extensions" />
<antcall target="dist.security" />
<antcall target="dist.spring" />
<copy todir="${dist_lib}">
<fileset dir="${dependencies}" />
</copy>
<delete dir="${work}" />
<delete dir="${test}" />
</target>
<target name="dist.security" if="do.security">
<jar destfile="${security.jar}" basedir="${security.work}" manifest="${work}/MANIFEST.MF" />
<jar destfile="${complete.jar}" update="true">
<fileset dir="${security.work}" includes="**/*" excludes="META-INF/**/*" />
</jar>
</target>
<target name="dist.spring" if="do.spring">
<jar destfile="${spring.jar}" basedir="${spring.work}" manifest="${work}/MANIFEST.MF" />
</target>
<target name="zip" depends="retro">
<antcall target="adapters" />
<mkdir dir="${work}/dist/${ant.project.name}.${version}" />
<mkdir dir="${work}/dist/${ant.project.name}.${version}/examples" />
<copy todir="${work}/dist/${ant.project.name}.${version}">
<fileset dir="${dist}">
<include name="**/*.jar" />
<include name="**/legal/*" />
<exclude name="**/legal/retroweaver-LICENSE.txt" />
<exclude name="**/*.retro.jar" />
<exclude name="**/${bouncycastle.jar}" />
<exclude name="**/${geronimo.servlet.jar}" />
<exclude name="**/${jetty-util.jar}" />
<exclude name="**/${jetty.jar}" />
<exclude name="**/${junit.jar}" />
<exclude name="**/retroweaver-rt-${retroweaver.version}.jar" />
<exclude name="**/${xmlsecurity.jar}" unless="do.security" />
<exclude name="**/${spring.mock.dir}" unless="do.spring" />
<exclude name="**/${spring.web.dir}" unless="do.spring" />
<exclude name="**/${bouncycastle.jar}" />
<exclude name="**/${bouncycastle.jar.retro}" />
</fileset>
<fileset dir="${docs}" includes="**/*" />
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README" />
</fileset>
</copy>
<copy todir="${work}/dist/${ant.project.name}.${version}/examples">
<fileset dir="${basedir}/examples" includes="**/*" excludes="**/pom.xml" />
</copy>
<zip destfile="${basedir}/${ant.project.name}.${version}.zip" basedir="${work}/dist/" />
<checksum file="${basedir}/${ant.project.name}.${version}.zip" fileext=".md5" />
<delete dir="${work}/dist/${ant.project.name}.${version}" />
<mkdir dir="${work}/dist/${ant.project.name}.${version}.jdk142" />
<mkdir dir="${work}/dist/${ant.project.name}.${version}.jdk142/examples" />
<copy todir="${work}/dist/${ant.project.name}.${version}.jdk142">
<fileset dir="${dist}">
<include name="**/*.jar" />
<include name="**/legal/*" />
<exclude name="**/*.${version}.jar" />
<exclude name="**/abdera-i18n-${i18n.version}.jar" />
<exclude name="**/${bouncycastle.jar}" />
<exclude name="**/${geronimo.servlet.jar}" />
<exclude name="**/${jetty-util.jar}" />
<exclude name="**/${jetty.jar}}" />
<exclude name="**/${junit.jar}" />
<exclude name="**/${xmlsecurity.jar}" unless="do.security" />
<exclude name="**/${spring.mock.dir}" unless="do.spring" />
<exclude name="**/${spring.web.dir}" unless="do.spring" />
<exclude name="**/${bouncycastle.jar}" />
<exclude name="**/${bouncycastle.jar.retro}" />
</fileset>
<fileset dir="${docs}" includes="**/*" />
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README" />
</fileset>
</copy>
<copy todir="${work}/dist/${ant.project.name}.${version}.jdk142/examples">
<fileset dir="${basedir}/examples" includes="**/*" excludes="**/pom.xml" />
</copy>
<zip destfile="${basedir}/${ant.project.name}.${version}.jdk142.zip" basedir="${work}/dist/" />
<checksum file="${basedir}/${ant.project.name}.${version}.jdk142.zip" fileext=".md5" />
<delete dir="${work}/dist/${ant.project.name}.${version}.jdk142" />
<mkdir dir="${work}/dist/${ant.project.name}.${version}.src" />
<copy todir="${work}/dist/${ant.project.name}.${version}.src">
<fileset dir="${basedir}">
<exclude name="dist/**/*" />
<exclude name="build/tools" />
<exclude name="build/work" />
<exclude name="build/tools/**/*" />
<exclude name="build/work/**/*" />
<exclude name="**/*.jar" />
<exclude name="**/*.zip" />
<exclude name="**/*.md5" />
<exclude name="**/.project" />
<exclude name="**/feedvalidator.org/**/*" />
<exclude name="dependencies/work/**/*" />
</fileset>
</copy>
<zip destfile="${basedir}/${ant.project.name}.${version}.src.zip" basedir="${work}/dist/" />
<checksum file="${basedir}/${ant.project.name}.${version}.src.zip" fileext=".md5" />
<delete dir="${work}" />
</target>
<target name="downloadsecurity" if="do.download.security">
<parallel>
<get src="${xmlsecurity.dir}/${xmlsecurity.jar}" dest="${dependencies}/${xmlsecurity.jar}" usetimestamp="true" />
<get src="${bouncycastle.dir}/${bouncycastle.jar}" dest="${dependencies}/${bouncycastle.jar}" usetimestamp="true" />
</parallel>
</target>
<target name="downloadspring" if="do.download.spring">
<mkdir dir="${basedir}/build/tools"/>
<get src="${spring.dir}/${spring.zip}" dest="${basedir}/build/tools/${spring.zip}" />
<unzip src="${basedir}/build/tools/${spring.zip}" dest="${basedir}/build/tools/" overwrite="true" />
</target>
<target name="download" if="do.download">
<echo>Downloading project dependencies. This may take a moment</echo>
<parallel>
<get src="${geronimo.activation.dir}/${geronimo.activation.jar}" dest="${dependencies}/${geronimo.activation.jar}" usetimestamp="true" />
<get src="${geronimo.servlet.dir}/${geronimo.servlet.jar}" dest="${dependencies}/${geronimo.servlet.jar}" usetimestamp="true" />
<get src="${axiom.dir}/${axiom.api.jar}" dest="${dependencies}/${axiom.api.jar}" usetimestamp="true" />
<get src="${axiom.dir}/${axiom.impl.jar}" dest="${dependencies}/${axiom.impl.jar}" usetimestamp="true" />
<get src="${jaxen.dir}/${jaxen.jar}" dest="${dependencies}/${jaxen.jar}" usetimestamp="true" />
<get src="${log4j.dir}/${log4j.jar}" dest="${dependencies}/${log4j.jar}" usetimestamp="true" />
<get src="${stax.dir}/${stax.api.jar}" dest="${dependencies}/${stax.api.jar}" usetimestamp="true" />
<get src="${commons.logging.dir}/${commons.logging.jar}" dest="${dependencies}/${commons.logging.jar}" usetimestamp="true" />
<get src="${commons.codec.dir}/${commons.codec.jar}" dest="${dependencies}/${commons.codec.jar}" usetimestamp="true" />
<get src="${commons.httpclient.dir}/${commons.httpclient.jar}" dest="${dependencies}/${commons.httpclient.jar}" usetimestamp="true" />
<get src="${junit.dir}/${junit.jar}" dest="${dependencies}/${junit.jar}" usetimestamp="true" />
<get src="${wstx.dir}/${wstx.jar}" dest="${dependencies}/${wstx.jar}" usetimestamp="true" />
<get src="${jetty.dir}/${jetty.jar}" dest="${dependencies}/${jetty.jar}" usetimestamp="true" />
<get src="${jetty-util.dir}/${jetty-util.jar}" dest="${dependencies}/${jetty-util.jar}" usetimestamp="true" />
<get src="${htmlparser.dir}/${htmlparser.jar}" dest="${dependencies}/${htmlparser.jar}" usetimestamp="true" />
<get src="${htmlparser.dir}/${htmlserializer.jar}" dest="${dependencies}/${htmlserializer.jar}" usetimestamp="true" />
<get src="${easymock.dir}/${easymock.jar}" dest="${dependencies}/${easymock.jar}" usetimestamp="true" />
<get src="${easymockclassextension.dir}/${easymockclassextension.jar}" dest="${dependencies}/${easymockclassextension.jar}" usetimestamp="true" />
<get src="${cglib.dir}/${cglib.jar}" dest="${dependencies}/${cglib.jar}" usetimestamp="true" />
<get src="${javamail.dir}/${javamail.jar}" dest="${dependencies}/${javamail.jar}" usetimestamp="true" />
<get src="${xmlunit.dir}/${xmlunit.jar}" dest="${dependencies}/${xmlunit.jar}" usetimestamp="true" />
</parallel>
</target>
<target name="clean-downloads" depends="init">
<delete>
<fileset dir="${dependencies}" includes="**/*.jar" />
</delete>
</target>
<target name="site-docs" depends="docs">
<mkdir dir="${site}/docs/api" />
<copy todir="${site}/docs/api">
<fileset dir="${javadocs}" />
</copy>
</target>
<target name="retro" depends="dist">
<property name="retrozip" value="${basedir}/build/tools/${retroweaver.zip}" />
<property name="retro" value="${basedir}/build/tools/retroweaver-${retroweaver.version}" />
<property name="retro_core.jar" value="${dist}/${ant.project.name}.core.${version}.retro.jar" />
<property name="retro_parser.jar" value="${dist}/${ant.project.name}.parser.${version}.retro.jar" />
<property name="retro_extensions.jar" value="${dist}/${ant.project.name}.extensions.${version}.retro.jar" />
<property name="retro_server.jar" value="${dist}/${ant.project.name}.server.${version}.retro.jar" />
<property name="retro_client.jar" value="${dist}/${ant.project.name}.client.${version}.retro.jar" />
<property name="retro_spring.jar" value="${dist}/${ant.project.name}.spring.${version}.retro.jar" />
<property name="retro_i18n.jar" value="${dist}/lib/${ant.project.name}-i18n-${i18n.version}.retro.jar" />
<property name="retro_complete.jar" value="${dist}/${ant.project.name}-complete-${version}.retro.jar" />
<condition property="do.download.retroweaver">
<not>
<available file="${retrozip}" />
</not>
</condition>
<antcall target="go_retro" />
<path id="jar.retro">
<fileset dir="${retro}/release" includes="**/*.jar" />
</path>
<echo>Retroweaving the Jars...</echo>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${core.jar}&quot; &quot;${retro_core.jar}&quot;" />
</java>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${parser.jar}&quot; &quot;${retro_parser.jar}&quot;" />
</java>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${server.jar}&quot; &quot;${retro_server.jar}&quot;" />
</java>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${client.jar}&quot; &quot;${retro_client.jar}&quot;" />
</java>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${i18n.jar}&quot; &quot;${retro_i18n.jar}&quot;" />
</java>
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${complete.jar}&quot; &quot;${retro_complete.jar}&quot;" />
</java>
<antcall target="retro.extensions" />
<antcall target="retro.security" />
<antcall target="retro.spring" />
<copy todir="${dist_lib}" file="${retro}/release/retroweaver-rt-${retroweaver.version}.jar" />
</target>
<target name="retro.security" if="do.security">
<property name="retro_security.jar" value="${dist}/${ant.project.name}.security.${version}.retro.jar" />
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${security.jar}&quot; &quot;${retro_security.jar}&quot;" />
</java>
<get src="${bouncycastle.dir}/${bouncycastle.jar.retro}" dest="${dependencies}/${bouncycastle.jar.retro}" usetimestamp="true" ignoreerrors="true" />
</target>
<target name="retro.spring" if="do.spring">
<property name="retro_spring.jar" value="${dist}/${ant.project.name}.spring.${version}.retro.jar" />
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${spring.jar}&quot; &quot;${retro_spring.jar}&quot;" />
</java>
</target>
<target name="go_retro" if="do.download.retroweaver">
<echo>Downloading Retroweaver...</echo>
<mkdir dir="${basedir}/build/tools" />
<get src="${retroweaver.dir}/${retroweaver.zip}" dest="${basedir}/build/tools/${retroweaver.zip}" usetimestamp="true" />
<unzip src="${basedir}/build/tools/${retroweaver.zip}" dest="${basedir}/build/tools/" overwrite="true" />
</target>
<target name="download_feedvalidator_tests" depends="init" if="do.download.feedvalidator.tests">
<mkdir dir="${parser.test.resources}/feedvalidator.org" />
<exec failifexecutionfails="false" dir="${parser.test.resources}/feedvalidator.org" executable="svn">
<arg line="co http://feedvalidator.googlecode.com/svn/trunk/feedvalidator/testcases/atom testcases/atom" />
</exec>
</target>
<target name="compile.extensions" depends="init, compile.core, compile.parser, compile.dependencies, compile.client, compile.server">
<mkdir dir="${extensions.work}" />
<antcall target="compile.extension">
<param name="ext" value="main" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="gdata" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="geo" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="html" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="json" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="media" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="opensearch" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="sharing" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="wsse" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="oauth" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="serializer" />
</antcall>
<antcall target="compile.extension">
<param name="ext" value="features" />
</antcall>
</target>
<target name="compile.extension.ask">
<input addproperty="ask.response" message="Extension name to compile:"/>
<antcall target="compile.extension">
<param name="ext" value="${ask.response}"/>
</antcall>
</target>
<target name="compile.extension">
<echo>Compiling extension ${ext}...</echo>
<mkdir dir="${extensions.work}/${ext}" />
<mkdir dir="${extensions.work}/${ext}/META-INF" />
<javac srcdir="${extensions}/${ext}/src/main/java" destdir="${extensions.work}/${ext}" classpathref="jar.dependencies" classpath="${core.work};${parser.work};${client.work};${server.work};${extensions.work}/main;${extensions.work}/html" debug="${debug}" />
<available file="${extensions}/${ext}/src/test/java" property="is.available.${ext}.test" />
<copy todir="${extensions.work}/${ext}/META-INF">
<fileset dir="${basedir}">
<include name="LICENSE" />
<include name="NOTICE" />
</fileset>
</copy>
<copy todir="${extensions.work}/${ext}">
<fileset dir="${extensions}/${ext}/src/main/resources" includes="**/*" />
</copy>
<antcall target="compile.extension.test">
<param name="ext" value="${ext}"/>
</antcall>
</target>
<target name="compile.extension.test" if="is.available.${ext}.test">
<echo>Compiling tests for extension ${ext}...</echo>
<javac srcdir="${extensions}/${ext}/src/test/java" destdir="${test}" classpathref="jar.dependencies" classpath="${core.work};${parser.work};${extensions.work}/${ext};${client.work};${server.work}" debug="${debug}" />
<copy todir="${test}">
<fileset dir="${extensions}/${ext}/src/test/resources" includes="**/*" />
</copy>
</target>
<target name="dist.extensions">
<mkdir dir="${dist}/ext" />
<antcall target="dist.extension">
<param name="ext" value="main" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="gdata" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="geo" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="html" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="json" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="media" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="opensearch" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="sharing" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="wsse" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="oauth" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="serializer" />
</antcall>
<antcall target="dist.extension">
<param name="ext" value="features" />
</antcall>
</target>
<target name="dist.extension">
<echo>Building jar for extension ${ext}...</echo>
<jar destfile="${extensions.jar.base}.${ext}.${version}.jar"
basedir="${extensions.work}/${ext}"
manifest="${work}/MANIFEST.MF" />
</target>
<target name="dist.extension.ask">
<input addproperty="ask.response" message="Extension name to build:"/>
<antcall target="dist.extension">
<param name="ext" value="${ask.response}"/>
</antcall>
</target>
<target name="test.extensions">
<antcall target="test.extension">
<param name="ext" value="main" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="gdata" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="geo" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="html" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="json" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="media" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="opensearch" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="sharing" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="wsse" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="oauth" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="serializer" />
</antcall>
<antcall target="test.extension">
<param name="ext" value="features" />
</antcall>
</target>
<target name="test.extension">
<echo>Running tests for extension ${ext}...</echo>
<java
classpathref="jar.dependencies"
classpath="${core.work}:${parser.work}:${server.work}:${extensions.work}/${ext}:${test}"
classname="org.apache.abdera.test.ext.${ext}.TestSuite" fork="yes" failonerror="false"/>
</target>
<target name="retro.extensions">
<antcall target="retro.extension">
<param name="ext" value="main" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="gdata" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="geo" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="html" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="json" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="media" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="opensearch" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="sharing" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="wsse" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="oauth" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="serializer" />
</antcall>
<antcall target="retro.extension">
<param name="ext" value="features" />
</antcall>
</target>
<target name="retro.extension">
<echo>Retroweaving extension ${ext}...</echo>
<property name="retro_ext.jar" value="${extensions.jar.base}.${ext}.${version}.retro.jar" />
<java classpathref="jar.retro" classname="net.sourceforge.retroweaver.Weaver" fork="yes">
<arg line="-jar &quot;${extensions.jar.base}.${ext}.${version}.jar&quot; &quot;${retro_ext.jar}&quot;" />
</java>
</target>
<target name="adapters">
<ant antfile="${basedir}/adapters/couchdb/build.xml" target="dist" dir="${basedir}/adapters/couchdb" inheritall="false" />
<ant antfile="${basedir}/adapters/jcr/build.xml" target="dist" dir="${basedir}/adapters/jcr" inheritall="false" />
<ant antfile="${basedir}/adapters/jdbc/build.xml" target="dist" dir="${basedir}/adapters/jdbc" inheritall="false" />
<ant antfile="${basedir}/adapters/filesystem/build.xml" target="dist" dir="${basedir}/adapters/filesystem" inheritall="false" />
</target>
</project>