<?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="xml-query-parser" default="default">

  <description>
    XML query parser
  </description>

  <import file="../contrib-build.xml"/>

  <property name="queries.jar" location="${common.dir}/build/contrib/queries/lucene-queries-${version}.jar"/>
  <property name="servlet.jar" location="${common.dir}/lib/servlet-api-2.4.jar"/>
  <available property="queries.jar.present" type="file" file="${queries.jar}"/>
  <available property="servlet.jar.present" type="file" file="${servlet.jar}"/>


  <path id="classpath">
    <pathelement path="${lucene.jar}"/>
    <pathelement path="${queries.jar}"/>
    <pathelement path="${project.classpath}"/>
  </path>

  <path id="web-classpath">
    <pathelement path="${lucene.jar}"/>
    <pathelement path="${queries.jar}"/>
    <pathelement path="${servlet.jar}"/>
    <pathelement path="${build.dir}/${final.name}.jar"/>
  </path>

  <target name="compile-core" depends="build-queries, common.compile-core" />

  <target name="build-queries" unless="queries.jar.present">
    <echo>XML Parser building dependency ${queries.jar}</echo>
    <ant antfile="../queries/build.xml" target="default" inheritall="false" dir="../queries" />
  </target>

  <!-- override contrib-build.xml target to also build web demo -->
  <target name="build-artifacts-and-tests" depends="jar, compile-test,build-web-demo" />

  <target name="default" depends="jar-core,build-web-demo"/>

  <target name="build-web-demo"  description="Compiles demo" if="servlet.jar.present">

    <echo>XML Parser compiling web demo</echo>
    <compile
      srcdir="src/demo/java"
      destdir="${build.dir}/classes/webdemo">
      <classpath refid="web-classpath"/>
    </compile>

    <war destfile="${build.dir}/xml-query-demo.war" webxml="src/demo/WebContent/WEB-INF/web.xml">
      <fileset dir="src/demo/WebContent"/>
      <lib dir="${build.dir}">
        <include name="${final.name}.jar"/>
      </lib>
      <lib file="${queries.jar}"/>
      <lib file="${lucene.jar}"/>
      <classes dir="${build.dir}/classes/webdemo"/>
    </war>

  </target>

</project>
