<?xml version="1.0"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 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.
-->
<project name="Nutch" default="deploy-core" basedir=".">

  <target name="deploy-core">
    <ant target="compile-core" inheritall="false" dir="../.."/>
    <ant target="deploy"/>
  </target>

  <!-- ====================================================== -->
  <!-- Build & deploy all the plugin jars.                    -->
  <!-- ====================================================== -->
  <target name="deploy">
     <ant dir="creativecommons" target="deploy"/>
     <ant dir="index-anchor" target="deploy"/>
     <ant dir="index-basic" target="deploy"/>
     <ant dir="index-more" target="deploy"/>
     <ant dir="language-identifier" target="deploy"/>
     <ant dir="lib-http" target="deploy"/>
     <ant dir="lib-nekohtml" target="deploy"/>
     <ant dir="lib-regex-filter" target="deploy"/>
     <ant dir="lib-xml" target="deploy"/>
     <ant dir="microformats-reltag" target="deploy"/>
     <ant dir="nutch-extensionpoints" target="deploy"/>
     <ant dir="protocol-ftp" target="deploy"/>
     <ant dir="protocol-file" target="deploy"/>
     <ant dir="protocol-http" target="deploy"/>
     <ant dir="protocol-httpclient" target="deploy"/>
     <ant dir="protocol-sftp" target="deploy"/>
     <ant dir="parse-js" target="deploy"/>
     <ant dir="parse-html" target="deploy"/>
     <ant dir="parse-tika" target="deploy"/>
     <ant dir="scoring-link" target="deploy"/>
     <ant dir="scoring-opic" target="deploy"/>
     <ant dir="subcollection" target="deploy"/>
     <ant dir="tld" target="deploy"/>
     <ant dir="urlfilter-automaton" target="deploy"/>
     <ant dir="urlfilter-domain" target="deploy" />
     <ant dir="urlfilter-prefix" target="deploy"/>
     <ant dir="urlfilter-regex" target="deploy"/>
     <ant dir="urlfilter-suffix" target="deploy"/>
     <ant dir="urlfilter-validator" target="deploy"/>
     <ant dir="urlnormalizer-basic" target="deploy"/>
     <ant dir="urlnormalizer-pass" target="deploy"/>
     <ant dir="urlnormalizer-regex" target="deploy"/>
     <!--
     <ant dir="feed" target="deploy"/>
     <ant dir="parse-ext" target="deploy"/>
     <ant dir="parse-swf" target="deploy"/>
     <ant dir="parse-zip" target="deploy"/>
     -->
  </target>

  <!-- ====================================================== -->
  <!-- Test all of the plugins.                               -->
  <!-- ====================================================== -->
  <target name="test">
     <ant dir="creativecommons" target="test"/>
     <ant dir="parse-tika" target="test"/>
     <ant dir="protocol-file" target="test"/>
     <ant dir="parse-html" target="test"/>
     <ant dir="index-more" target="test"/>
     <ant dir="language-identifier" target="test"/>
     <ant dir="protocol-httpclient" target="test"/>
     <ant dir="urlfilter-automaton" target="test"/>
     <ant dir="urlfilter-domain" target="test" />
     <ant dir="urlfilter-regex" target="test"/>
     <ant dir="urlfilter-suffix" target="test"/>
     <ant dir="urlnormalizer-basic" target="test"/>
     <ant dir="urlnormalizer-pass" target="test"/>
     <ant dir="urlnormalizer-regex" target="test"/>
     <ant dir="lib-http" target="test"/>
     <ant dir="subcollection" target="test"/>
     <!--
     <ant dir="feed" target="test"/>
     <ant dir="parse-ext" target="test"/>
     <ant dir="parse-swf" target="test"/>
     <ant dir="parse-zip" target="test"/>
      -->
  </target>

  <!-- ====================================================== -->
  <!-- Clean all of the plugins.                              -->
  <!-- ====================================================== -->
  <target name="clean">
    <ant dir="creativecommons" target="clean"/>
    <ant dir="feed" target="clean"/>
    <ant dir="index-anchor" target="clean"/>
    <ant dir="index-basic" target="clean"/>
    <ant dir="index-more" target="clean"/>
    <ant dir="language-identifier" target="clean"/>
    <ant dir="lib-http" target="clean"/>
    <ant dir="lib-nekohtml" target="clean"/>
    <ant dir="lib-regex-filter" target="clean"/>
    <ant dir="lib-xml" target="clean"/>
    <ant dir="microformats-reltag" target="clean"/>
    <ant dir="nutch-extensionpoints" target="clean"/>
    <ant dir="parse-ext" target="clean"/>
    <ant dir="parse-js" target="clean"/>
    <ant dir="parse-html" target="clean"/>
    <ant dir="parse-swf" target="clean"/>
    <ant dir="parse-tika" target="clean"/>
    <ant dir="parse-zip" target="clean"/>
    <ant dir="protocol-file" target="clean"/>
    <ant dir="protocol-ftp" target="clean"/>
    <ant dir="protocol-httpclient" target="clean"/>
    <ant dir="protocol-http" target="clean"/>
    <ant dir="protocol-sftp" target="clean"/>
    <ant dir="scoring-link" target="clean"/>
    <ant dir="scoring-opic" target="clean"/>
    <ant dir="subcollection" target="clean"/>
    <ant dir="tld" target="clean"/>
    <ant dir="urlfilter-automaton" target="clean"/>
    <ant dir="urlfilter-domain" target="clean" />
    <ant dir="urlfilter-prefix" target="clean"/>
    <ant dir="urlfilter-regex" target="clean"/>
    <ant dir="urlfilter-suffix" target="clean"/>
    <ant dir="urlfilter-validator" target="clean"/>
    <ant dir="urlnormalizer-basic" target="clean"/>
    <ant dir="urlnormalizer-pass" target="clean"/>
    <ant dir="urlnormalizer-regex" target="clean"/>
  </target>
</project>
