 <!--
   Copyright 2002-2004 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 xmlns:deploy="deploy" default="jar:jar" xmlns:ant="jelly:ant"> 

  <!-- ================================================================== -->
  <!-- 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                                     -->
  <!-- ================================================================== -->

  <goal name="cut-math-release">
		<attainGoal name="convert-snapshots" />
		<attainGoal name="dist" />
  </goal>

  <preGoal name="dist:build-bin">  
    <attainGoal name="announcement:generate" />
    <copy todir="${maven.dist.bin.assembly.dir}">
      <fileset file='${basedir}/NOTICE.txt'/>
      <fileset file='${basedir}/RELEASE-NOTES.txt'/>
    </copy>
  </preGoal>
  
  <preGoal name="dist:build-src">
    <copy todir="${maven.dist.src.assembly.dir}">
      <fileset file='${basedir}/NOTICE.txt'/>
      <fileset file='${basedir}/RELEASE-NOTES.txt'/>
    </copy>
    <delete dir="${maven.dist.src.assembly.dir}/src/experimental" />
    <move todir="${maven.dist.src.assembly.dir}-src">
      <fileset dir="${maven.dist.src.assembly.dir}"/>
    </move>
  </preGoal>

<!-- Uncomment when ant plugin relative path bug is fixed (still present in 1.8)
  <preGoal name="dist">
  	<attainGoal name="ant" />
  </preGoal>
-->

<!-- Uncomment to include compile time dependent jars (discovery, logging)
  <preGoal name="dist:build-bin">
    <deploy:copy-deps todir="${maven.build.dir}/${maven.final.name}/bin/${maven.final.name}" />
  </preGoal>
 -->
 
 <!-- Limit maven resources included in site generation -->
  <postGoal name="xdoc:copy-resources">  
    <delete includeEmptyDirs="true">
      <fileset dir="${maven.docs.dest}" 
        includes="${maven.xdoc.copy.excludes},${maven.xdoc.copy.excludes.classic}"/>
    </delete>
  </postGoal>

</project>
