<?xml version="1.0"?>

<!--
Copyright 2002-2005 The Apache Software Foundation.
 
Licensed 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 default="jar:jar">

  <!-- ================================================================== -->
  <!-- START : C O M M O N S - B U I L D                                  -->
  <!-- ================================================================== -->
  <!-- Required: Look and Feel for documentation within distributions     -->
  <!-- ================================================================== -->
  <postGoal name="xdoc:copy-resources">  
    <copy todir="${basedir}/target/docs/style/" failonerror="false">
      <fileset dir="${basedir}/../commons-build/xdocs/style">
      	<include name='**/*'/>
      	<exclude name='**/CVS/**'/>
      </fileset>
    </copy>
  </postGoal>
  <!-- ================================================================== -->
  <!-- END: C O M M O N S - B U I L D                                     -->
  <!-- ================================================================== -->
  
  <!-- Ensures that the conf directory and NOTICE.txt are included in the 
       source distro.
   -->
  <postGoal name="dist:prepare-src-filesystem">
    <mkdir dir="${maven.dist.src.assembly.dir}/conf"/>
    <copy todir="${maven.dist.src.assembly.dir}/conf">
      <fileset dir="${basedir}/conf">
      </fileset>
    </copy>
    <copy todir="${maven.dist.src.assembly.dir}">
      <fileset file="${basedir}/NOTICE.txt"/>
    </copy>
  </postGoal>
  
  <!-- Ensures that NOTICE.txt is added to the binary distro -->
  <preGoal name="dist:build-bin">
    <copy todir="${maven.dist.bin.assembly.dir}">
      <fileset file="${basedir}/NOTICE.txt"/>
    </copy>
  </preGoal>
  
</project>


