<!--
  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-SNAPSHOT" />
  <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/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>
