<project name="Daemon" default="dist" basedir=".">
<!--
 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.
-->


<!--
        "Daemon" component of the Apache Commons Subproject
        $Id$
-->


<!-- ========== Initialize Properties ===================================== -->


  <property file="build.properties"/>                <!-- Component local   -->
  <property file="../build.properties"/>             <!-- Commons local     -->
  <property file="${user.home}/build.properties"/>   <!-- User local        -->


<!-- ========== External Dependencies ===================================== -->


  <!-- The directory containing your binary distribution of JUnit,
       version 3.7 or later -->
  <property name="junit.home"              value="/usr/local/junit3.7"/>


<!-- ========== Derived Values ============================================ -->


  <!-- The pathname of the "junit.jar" JAR file -->
  <property name="junit.jar"               value="${junit.home}/junit.jar"/>


<!-- ========== Component Declarations ==================================== -->


  <!-- The name of this component -->
  <property name="component.name"          value="daemon"/>

  <!-- The primary package name of this component -->
  <property name="component.package"       value="org.apache.commons.daemon"/>

  <!-- The title of this component -->
  <property name="component.title"         value="Java Daemons"/>

  <!-- The current version number of this component -->
  <property name="component.version"       value="1.0.8"/>

  <!-- The base directory for compilation targets -->
  <property name="build.home"              value="target"/>

  <!-- The base directory for component executable files -->
  <property name="bin.home"                value="src/bin"/>

  <!-- The base directory for distribution targets -->
  <property name="dist.home"               value="dist"/>

  <!-- The base directory for component sources -->
  <property name="source.home"             value="src/main/java"/>

  <!-- The base directory for unit test sources -->
  <property name="test.home"               value="src/test/java"/>

  <!-- The ant dir (usefull for non standard layout)  -->
  <property name="ant.lib"                 value="${ant.home}/lib"/>

  <!-- The pattern to be used to grab ant jars (usefull for non standard layout)  -->
  <property name="ant.jars.pattern"        value="*.jar"/>

  <!-- Name of the native artifacts  -->
  <property name="native.name"             value="commons-${component.name}-${component.version}-native-src"/>

  <!-- Path of the native artifacts  -->
  <property name="native.path"             value="${dist.home}/bin/native/${native.name}"/>


<!-- ========== Compiler Defaults ========================================= -->


  <!-- compiler source JDK version -->
  <property name="compile.source"          value="1.3"/>

  <!-- compiler target JDK version -->
  <property name="compile.target"          value="1.3"/>

  <!-- Should Java compilations set the 'debug' compiler option? -->
  <property name="compile.debug"           value="true"/>

  <!-- Should Java compilations set the 'deprecation' compiler option? -->
  <property name="compile.deprecation"     value="true"/>

  <!-- Should Java compilations set the 'optimize' compiler option? -->
  <property name="compile.optimize"        value="true"/>

  <!-- Construct compile classpath -->
  <path id="compile.classpath">
    <pathelement location="${build.home}/classes"/>
  </path>


<!-- ========== Test Execution Defaults =================================== -->


  <!-- Construct unit test classpath -->
  <path id="test.classpath">
    <pathelement location="${build.home}/classes"/>
    <pathelement location="${build.home}/tests"/>
    <pathelement location="${junit.jar}"/>
  </path>

  <!-- Should all tests fail if one does? -->
  <property name="test.failonerror"        value="true"/>

  <!-- The test runner to execute -->
  <property name="test.runner"             value="junit.textui.TestRunner"/>


<!-- ========== Executable Targets ======================================== -->


  <target name="init"
   description="Initialize and evaluate conditionals">
    <echo message="-------- ${component.name} ${component.version} --------"/>
    <filter  token="name"                  value="${component.name}"/>
    <filter  token="package"               value="${component.package}"/>
    <filter  token="version"               value="${component.version}"/>
  </target>


  <target name="prepare" depends="init"
   description="Prepare build directory">
    <tstamp/>
    <mkdir dir="${build.home}"/>
    <mkdir dir="${build.home}/classes"/>
    <mkdir dir="${build.home}/conf"/>
    <mkdir dir="${build.home}/tests"/>
  </target>

  <target name="compile" depends="prepare"
   description="Compile shareable components">
    <javac  srcdir="${source.home}"
           destdir="${build.home}/classes"
             debug="${compile.debug}"
            source="${compile.source}"
            target="${compile.target}"
       deprecation="${compile.deprecation}"
          optimize="${compile.optimize}">
      <classpath refid="compile.classpath"/>
    </javac>
    <!-- Copy all of the resource files -->
    <copy    todir="${build.home}/classes" filtering="on">
      <fileset dir="${source.home}" excludes="**/*.java"/>
    </copy>
    <!-- Make the English resource files the default resource -->
    <copy    todir="${build.home}/classes" filtering="on">
      <fileset dir="${source.home}" includes="**/*_en.properties"/>
      <mapper type="glob" from="*_en.properties" to="*.properties"/>
    </copy>
  </target>


  <target name="compile.tests" depends="compile"
   description="Compile unit test cases">
    <javac  srcdir="${test.home}"
           destdir="${build.home}/tests"
             debug="${compile.debug}"
            source="${compile.source}"
            target="${compile.target}"
       deprecation="${compile.deprecation}"
          optimize="${compile.optimize}">
      <classpath refid="test.classpath"/>
    </javac>
    <copy    todir="${build.home}/tests" filtering="on">
      <fileset dir="${test.home}" excludes="**/*.java"/>
    </copy>
  </target>


  <target name="clean"
   description="Clean build and distribution directories">
    <delete    dir="${build.home}"/>
    <delete    dir="${dist.home}"/>
  </target>


  <target name="all" depends="clean,compile"
   description="Clean and compile all components"/>


  <target name="javadoc" depends="compile"
   description="Create component Javadoc documentation">
    <mkdir      dir="${dist.home}"/>
    <mkdir      dir="${dist.home}/docs"/>
    <mkdir      dir="${dist.home}/docs/api"/>
    <javadoc sourcepath="${source.home}"
                destdir="${dist.home}/docs/api"
           packagenames="org.apache.commons.*"
                 author="true"
                version="true"
               doctitle="&lt;h1&gt;${component.title}&lt;/h1&gt;"
            windowtitle="${component.title} (Version ${component.version})"
                 bottom="Copyright (c) 2002-2012 - Apache Software Foundation">
      <classpath refid="compile.classpath"/>
      <classpath location="${ant.lib}/ant.jar"/>
    </javadoc>
  </target>


  <target name="dist" depends="compile,javadoc"
   description="Create binary distribution">
    <mkdir      dir="${dist.home}"/>
    <mkdir      dir="${dist.home}/lib"/>
    <mkdir      dir="${dist.home}/logs"/>
    <copy      file="LICENSE.txt"
              todir="${dist.home}"/>
    <copy      file="NOTICE.txt"
              todir="${dist.home}"/>
    <copy      file="RELEASE-NOTES.txt"
              todir="${dist.home}"/>
    <copy todir="${native.path}/unix">
      <!-- Make sure this is clean repository with
           running sh support/buildconf.sh
           This will create configure script
        -->
      <fileset dir="src/native/unix" />
    </copy>
    <copy todir="${native.path}/windows">
      <fileset dir="src/native/windows" />
    </copy>
    <copy file="LICENSE.txt"
          todir="${native.path}"/>
    <copy file="NOTICE.txt"
          todir="${native.path}"/>
    <fixcrlf srcdir="${native.path}/unix" eol="lf" />
    <fixcrlf srcdir="${native.path}/windows" eol="crlf" />
    <tar longfile="gnu" compression="gzip"
         tarfile="${dist.home}/bin/${native.name}.tar.gz">
      <tarfileset dir="${dist.home}/bin/native">
        <include name="${native.name}/**" />
        <exclude name="${native.name}/unix/configure" />
        <exclude name="${native.name}/unix/support/*.sh" />
      </tarfileset>
      <tarfileset dir="${dist.home}/bin/native" mode="755">
        <include name="${native.name}/unix/configure" />
        <include name="${native.name}/unix/support/*.sh" />
      </tarfileset>
    </tar>
    <zip zipfile="${dist.home}/bin/${native.name}.zip">
      <zipfileset dir="${dist.home}/bin/native">
        <include name="${native.name}/**" />
        <exclude name="${native.name}/unix/configure" />
        <exclude name="${native.name}/unix/support/*.sh" />
      </zipfileset>
      <zipfileset dir="${dist.home}/bin/native" filemode="755">
        <include name="${native.name}/unix/configure" />
        <include name="${native.name}/unix/support/*.sh" />
      </zipfileset>
    </zip>

    <delete dir="${dist.home}/bin/native" />
    <antcall target="jar"/>
  </target>


  <target name="jar" depends="compile"
   description="Create jar">
    <mkdir      dir="${dist.home}"/>
    <mkdir      dir="${dist.home}/bin"/>
    <mkdir      dir="${build.home}/classes/META-INF"/>
    <copy      file="LICENSE.txt"
             tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
    <copy      file="NOTICE.txt"
             tofile="${build.home}/classes/META-INF/NOTICE.txt"/>
    <jar    jarfile="${dist.home}/commons-${component.name}-${component.version}.jar">
        <manifest>
            <attribute name="Specification-Title" value="Commons Daemon"/>
            <attribute name="Specification-Version" value="${component.version}"/>
            <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
            <attribute name="Implementation-Title" value="Commons Daemon"/>
            <attribute name="Implementation-Version" value="${component.version}"/>
            <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
            <attribute name="Implementation-Vendor-Id" value="org.apache"/>
            <attribute name="X-Compile-Source-JDK" value="${compile.source}"/>
            <attribute name="X-Compile-Target-JDK" value="${compile.target}"/>
        </manifest>
        <fileset dir="${build.home}/classes">
            <include name="org/apache/commons/daemon/**"/>
            <include name="META-INF/LICENSE.txt"/>
            <include name="META-INF/NOTICE.txt"/>
        </fileset>
    </jar>
  </target>


  <target name="install-jar" depends="jar"
   description="--> Installs jar file in ${lib.repo}">
    <copy todir="${lib.repo}" filtering="off">
      <fileset dir="${dist.home}">
        <include name="commons-${component.name}-${component.version}.jar"/>
      </fileset>
    </copy>
  </target>


<!-- ========== Unit Test Targets ========================================= -->


  <target name="test"  depends="compile.tests"
   description="Run all unit test cases">
  </target>

</project>

