<?xml version="1.0"?>
<!-- ======================================================================
     2006/09/25 09:00:00

     terasoluna-batch-core.jarを生成するビルドファイル。
     ====================================================================== -->
<project name="terasoluna-batch-core" default="jar" basedir="..">
  <property file="./ant/build.properties" />
  <property name="lib.dir" value="${terasoluna.lib.home}/lib"/>
  <property name="terasoluna.lib.dir" value="${terasoluna.lib.home}/dist"/>
  <tstamp/>

  <!-- クラスパスの設定 -->
  <property name="classpath.lib"
    value="${lib.dir}/commons-beanutils-1.7.0.jar;
  		${lib.dir}/commons-collections-3.2.jar;
   		${lib.dir}/commons-dbcp-1.2.2.jar;
      	${lib.dir}/commons-logging-1.1.jar;
        ${lib.dir}/commons-pool-1.3.jar;
	    ${lib.dir}/commons-lang-2.3.jar;
  	    ${lib.dir}/ibatis-2.3.0.677.jar;
  	    ${lib.dir}/log4j-1.2.14.jar;
	    ${lib.dir}/spring.jar;
        ${lib.dir}/commonj-twm.jar;
  		${terasoluna.lib.dir}/terasoluna-filedao.jar;
     	${terasoluna.lib.dir}/terasoluna-commons.jar;
	  	${terasoluna.lib.dir}/terasoluna-dao.jar;"/>

  <!-- =================================
	     ライブラリがあるかチェック
	   ================================= -->
  <target name="checkDependencyProject">
  	<available type="dir" file="${terasoluna.lib.home}/lib"
  			property="terasoluna-lib.exist" />
    <fail unless="terasoluna-lib.exist"
    	message="ビルドを実行するにはterasoluna-libプロジェクトが必要です。"/>
  </target>

  <!-- =================================
	      依存するjarの更新
	   ================================= -->
  <target name="buildDependencyJar"
  	description="依存する他のTERASOLUNAプロジェクトをビルドする" >
  	<available file="${terasoluna.commons.home}/ant/build.xml"
  	  			property="terasoluna-commons.exist"/>
  	<antcall target="buildTerasolunaCommonsJar"/>
  	<available file="${terasoluna.dao.home}/ant/build.xml"
  	  			property="terasoluna-dao.exist"/>
  	<antcall target="buildTerasolunaDaoJar"/>
  	<available file="${terasoluna.filedao.home}/ant/build.xml"
  	  			property="terasoluna-filedao.exist"/>
  	<antcall target="buildTerasolunaFiledaoJar"/>
  	<available file="${terasoluna.commons.spring.home}/ant/build.xml"
  	  			property="terasoluna-commons-spring.exist"/>
  	<antcall target="buildTerasolunaCommonsSpringJar"/>
  </target>

  <!-- =================================
	      ローカルのTERASOLUNA依存プロジェクトをビルドする
	   ================================= -->
  <target name="buildTerasolunaCommonsJar" if="terasoluna-commons.exist">
  	<ant antfile="${terasoluna.commons.home}/ant/build.xml"
  		target="jar" inheritall="false"/>
  </target>
  <target name="buildTerasolunaDaoJar" if="terasoluna-dao.exist">
  	<ant antfile="${terasoluna.dao.home}/ant/build.xml"
  		target="jar" inheritall="false"/>
  </target>
  <target name="buildTerasolunaFiledaoJar" if="terasoluna-filedao.exist">
  	<ant antfile="${terasoluna.filedao.home}/ant/build.xml"
  		target="jar" inheritall="false"/>
  </target>
  <target name="buildTerasolunaCommonsSpringJar" if="terasoluna-common-spring.exist">
  	<ant antfile="${terasoluna.commons.spring.home}/ant/build.xml"
  		target="jar" inheritall="false"/>
  </target>

	<!-- =================================
	       クラスファイルの削除を行う。
	   ================================= -->
  <target name="clean" description="クラスファイルの削除">
    <delete includeEmptyDirs="true" failonerror="false">
	  <fileset dir="${class.dir}" includes="**/*"/>
	</delete>
  </target>

  <!-- =================================
	       コンパイルを行う。
	   ================================= -->
  <target name="compile" depends="checkDependencyProject,clean" description="コンパイル実行">
  	<mkdir dir="${class.dir}"/>
  	<javac srcdir="${source.dir}"
	    destdir="${class.dir}"
	    classpath="${classpath.lib}"
  		nowarn="true"
	    debug="on" />
  </target>

  <!-- =================================
        　　Jarファイルを作成する
            設定ファイル類と作成したJarファイルをterasoluna-libにコピーする
       ================================= -->
  <target name="jar" depends="compile">
  	<delete file="${dist.dir}/${ant.project.name}.jar"/>
  	<mkdir dir="${dist.dir}"/>
  	<jar destfile="${dist.dir}/${ant.project.name}.jar">
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Implementation-Title" value="TERASOLUNA Batch Framework for Java"/>
        <attribute name="Implementation-Version" value="${terasoluna.version} ${TODAY}"/>
        <attribute name="Implementation-Vendor" value="NTT DATA Corporation."/>
      </manifest>
      <fileset dir="${class.dir}"/>
    </jar>
  	<copy todir="${terasoluna.lib.home}/dist"
  	  		file="${dist.dir}/${ant.project.name}.jar"/>
  </target>

  <!-- =================================
	      　ソースコードを圧縮したZipファイルを作成する
       ================================= -->
  <target name="createSourceZip">
  	<delete file="${dist.dir}/${src.zip.batch.core}_${terasoluna.version}.zip"/>
  	<mkdir dir="${dist.dir}"/>
  	<zip destfile="${dist.dir}/${src.zip.batch.core}_${terasoluna.version}.zip"
        basedir="${source.dir}" />
  	<copy todir="${terasoluna.lib.home}/src"
  	  		file="${dist.dir}/${src.zip.batch.core}_${terasoluna.version}.zip"/>
  </target>

  <!-- =================================
	       JavaDocの生成を行う。
       ================================= -->
  <target name="createJavaDoc" description="JavaDoc生成">
    <delete dir="${basedir}/doc/javadoc" />
    <mkdir dir="${basedir}/doc/javadoc" />
    <javadoc classpath="${classpath.lib}" 
    	sourcepath="${source.dir}" destdir="./doc/javadoc"
        doctitle="${ant.project.name}" windowtitle="${ant.project.name}"
        use="true" splitindex="true"
        encoding="Windows-31J"
        private="true"
        packagenames="**/*">
    </javadoc>
  </target>

  <!-- =================================
	      　JavaDoc圧縮したZipファイルを作成する
       ================================= -->
  <target name="createJavaDocZip" depends="createJavaDoc">
  	<delete file="${terasoluna.lib.home}/doc/${javadoc.batch.core.name}_${terasoluna.version}.zip"/>
  	<mkdir dir="${terasoluna.lib.home}/doc/"/>
  	<zip destfile="${terasoluna.lib.home}/doc/${javadoc.batch.core.name}_${terasoluna.version}.zip"
        basedir="${basedir}/doc/javadoc/" />
  	<delete failonerror="false">
  	  <fileset dir="${basedir}/doc/javadoc">
	    <include name="**/*" />
      </fileset>
    </delete>
  	<delete dir="${basedir}/doc/javadoc"/>
  	<delete dir="${basedir}/doc"/>
  </target>
	
  <!-- =================================
        このプロジェクトをZipファイルにしてdistフォルダに格納する。
       ================================= -->
  <target name="zip">
  	<delete file="${dist.dir}/${ant.project.name}_${terasoluna.version}.zip"/>
  	<mkdir dir="${dist.dir}"/>
   	<zip destfile="${dist.dir}/${ant.project.name}.zip">
	  <fileset dir="${basedir}/..">
	    <include name="${ant.project.name}/.classpath"/>
	  	<include name="${ant.project.name}/.project"/>
	  	<include name="${ant.project.name}/LICENSE.txt"/>
	  	<include name="${ant.project.name}/sources/**/*"/>
	  	<include name="${ant.project.name}/ant/**/*"/>
	  </fileset>
    </zip>
  	<rename dest="${dist.dir}/${ant.project.name}_${terasoluna.version}.zip" 
  		src="${dist.dir}/${ant.project.name}.zip"/>
  </target>
</project>