<?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.
-->

<!-- 
Before you can run these subtargets directly, you need 
to call at top-level: ant deploy-contrib compile-core-test
-->
<project name="capacity-scheduler" default="jar">

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

  <target name="docs.check">
    <condition property="generate-capacity-scheduler-docs">
      <and>
        <isset property="forrest.home"/>
        <available file="${conf.dir}/capacity-scheduler.xml.template" property="capacity-scheduler.xml.template.present"/>
      </and>
    </condition>
  </target>
  <target name="docs" depends="forrest.check,docs.check" if="generate-capacity-scheduler-docs" description="Generate forrest-based documentation. To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line.">
  	<!-- The template file may not exist if building from a tarball -->
  	<copy file="src/java/mapred-queues.xml.template"
  	      tofile="${build.docs}/mapred-queues-capacity-scheduler.xml"
  	      failonerror="false"/>
    <xslt in="${conf.dir}/capacity-scheduler.xml.template"
    	out="${build.docs}/capacity-scheduler-conf.html"
    	style="${conf.dir}/configuration.xsl"/>
  </target>

</project>
