<?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-html" target="deploy"/>
     <ant dir="index-more" target="deploy"/>
     <ant dir="index-metadata" target="deploy"/>
     <ant dir="indexer-solr" target="deploy"/>
     <!--<ant dir="indexer-elastic" target="deploy"/>-->
     <ant dir="indexer-elastic2" target="deploy"/>
     <ant dir="indexer-hbase" target="deploy"/>
     <ant dir="jsoup-extractor" 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="parse-metatags" 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="parse-js" target="test"/>
     <ant dir="parse-metatags" target="test"/>
     <ant dir="index-anchor" target="test"/>
     <ant dir="index-basic" target="test"/>
     <ant dir="index-more" target="test"/>
     <ant dir="jsoup-extractor" target="test"/>
     <ant dir="language-identifier" target="test"/>
     <ant dir="protocol-httpclient" target="test"/>
     <ant dir="protocol-http" target="test"/>
     <ant dir="urlfilter-automaton" target="test"/>
     <ant dir="urlfilter-domain" target="test"/>
     <ant dir="urlfilter-prefix" target="test"/>
     <ant dir="urlfilter-regex" target="test"/>
     <ant dir="urlfilter-suffix" target="test"/>
     <ant dir="urlfilter-validator" 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="microformats-reltag" target="test"/>
     <ant dir="scoring-opic" target="test"/>
     <ant dir="tld" 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-html" target="clean"/>
    <ant dir="index-more" target="clean"/>
    <ant dir="index-metadata" target="clean"/>
    <ant dir="indexer-solr" target="clean"/>
    <!--<ant dir="indexer-elastic" target="clean"/>-->
    <ant dir="indexer-elastic2" target="clean"/>
    <ant dir="indexer-hbase" target="clean"/>
    <ant dir="jsoup-extractor" 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="parse-metatags" 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>
