<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    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="webhcat">
  <property name="path.to.basedir" location="${basedir}/../.."/>
  <property name="pom.file" location="pom.xml"/>

  <import file="${path.to.basedir}/build-support/ant/build-common.xml"/>

  <path id="compile.class.path">
    <fileset dir="${build.dir}/lib/compile"/>
    <fileset dir="${build.dir}/lib/provided"/>
  </path>

  <path id="test.class.path">
    <fileset dir="${build.dir}/lib/test"/>
    <fileset dir="${build.dir}/lib/provided"/>
    <dirset dir="${path.to.basedir}/core/build/test/classes"/>
    <dirset dir="${basedir}/build/classes"/>
    <dirset dir="${basedir}/build/test/classes"/>
  </path>

  <path id="findbugs.class.path">
    <fileset dir="${build.dir}/lib/compile"/>
  </path>

  <target name="compile-resource">
    <echo message="${ant.project.name}"/>
    <property name="resources.dir"  location="${path.to.basedir}/conf"/>
    <copy todir="${build.classes}/">
      <fileset dir="${basedir}/src/main/config/"/>
    </copy>
    <echo message="Generating wadl xml file"/>
    <javadoc access="public" classpathref="compile.class.path">
      <fileset dir="${basedir}/src/main/java" defaultexcludes="yes"/>
      <doclet name="com.sun.jersey.wadl.resourcedoc.ResourceDoclet"
              pathref="compile.class.path">
        <param name="-output" value="${build.classes}/resourcedoc.xml" />
      </doclet>
    </javadoc>
  </target>

</project>
