<?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.
 -->
<project name="libthrift" default="dist" basedir="."
  xmlns:ivy="antlib:org.apache.ivy.ant"
  xmlns:artifact="antlib:org.apache.maven.artifact.ant">
  
  <description>Thrift Build File</description>
  <property name="thrift.root" location="../../"/>
  <property name="thrift.version" value="0.6.0"/>
  <property name="thrift.groupid" value="org.apache.thrift"/>
  <property name="thrift.artifactid" value="libthrift"/>
  
  <property name="mvn.ant.task.version" value="2.1.1"/>
  <property name="ivy.version" value="2.2.0"/>
   
  <!-- Local install locations -->
  <property name="install.path" value="/usr/local/lib"/>
  <property name="install.javadoc.path" value="${install.path}"/>
  
  <!-- Dependency download location -->
  <property name="mvn.repo" value="http://repo1.maven.org/maven2"/>
  <property name="apache.repo" value="https://repository.apache.org/content/repositories/releases"/>  
  
  <!-- Publish information-->
  <property name="license" value="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
  <property name="maven-repository-url" value="https://repository.apache.org/service/local/staging/deploy/maven2"/>
  <property name="maven-repository-id" value="apache.releases.https"/>  
  
  <property environment="env"/>
  
  <condition property="version" value="${thrift.version}">
    <isset property="release"/>
  </condition>
  <property name="version" value="${thrift.version}-snapshot"/>  
  
  <property name="final.name" value="${thrift.artifactid}-${version}"/>
  
  <property name="gen" location="gen-java"/>
  <property name="genbean" location="gen-javabean"/>
   
  <property name="src" location="${basedir}/src"/>
  <property name="build.dir" location="${basedir}/build"/>
  <property name="build.lib.dir" location="${build.dir}/lib"/>
  <property name="build.tools.dir" location="${build.dir}/tools"/>
  <property name="src.test" location="test"/>
  <property name="build.test.dir" location="${build.dir}/test"/>
  <property name="test.thrift.home" location="${thrift.root}/test"/>
  
  <property name="javadoc.dir" location="${build.dir}/javadoc"/>
  
  <property name="jar.file" location="${build.dir}/${final.name}.jar"/>
  <property name="test.jar.file" location="${build.dir}/${final.name}-test.jar"/>
  <property name="javadoc.jar.file" location="${build.dir}/${final.name}-javadoc.jar"/>
  <property name="source.tar.gz" location="${build.dir}/${final.name}-src.tar.gz"/>
  
  <!-- Junit properties -->
  <property name="test.junit.output.format" value="plain"/>
  <property name="test.timeout" value="2000000"/>
  <property name="test.src.dir" location="${basedir}/test"/>
  <property name="test.log.dir" value="${build.test.dir}/log"/>
  <property name="test.port" value="9090"/>  
  
  <!-- iv properties -->  
  <property name="ivy.repo.url" value="${mvn.repo}/org/apache/ivy/ivy/${ivy.version}/"/>
  <property name="ivy.jar" value="${build.tools.dir}/ivy-${ivy.version}.jar"/>  
  
  <!-- maven properties -->
  <property name="mvn.ant.task.url" value="${mvn.repo}/org/apache/maven/maven-ant-tasks/${mvn.ant.task.version}"/>
  <property name="mvn.ant.task.jar" location="${build.tools.dir}/maven-ant-tasks-${mvn.ant.task.version}.jar"/>
  <property name="pom.xml" location="${build.dir}/${final.name}.pom"/>
  
  <!-- custom override anything with a thrift-build.properties file in your home directory -->  
  <property file="${user.home}/.thrift-build.properties"/>
  
  <path id="compile.classpath">
    <fileset dir="${build.lib.dir}"> 
      <include name="**/*.jar"/>
    </fileset>
  </path>
  
  <path id="test.classpath">
    <path refid="compile.classpath"/>
    <pathelement path="${env.CLASSPATH}"/>
    <pathelement location="${build.test.dir}"/>
    <pathelement location="${jar.file}"/>
    <pathelement location="${test.jar.file}"/>
  </path>
  
  <!-- Tasks -->  
  <target name="init" depends="setup.init,ivy.init,mvn.init" unless="init.finished">
    <property name="init.finished" value="true"/>
  </target>
  
  <target name="setup.init">
    <tstamp/>
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.lib.dir}"/>
    <mkdir dir="${build.tools.dir}"/>
    <mkdir dir="${build.test.dir}"/>
  </target>
  
  <target name="ivy.download" depends="setup.init" unless="ivy.found">
    <get src="${ivy.repo.url}/ivy-${ivy.version}.jar" dest="${ivy.jar}" usetimestamp="true"/>
  </target>
  
  <target name="ivy.check" description="check if ivy is in the classpath">
    <condition property="ivy.found">
      <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
    </condition>
  </target>
  
  <target name="ivy.init" depends="setup.init,ivy.check,ivy.download" unless="ivy.found">
    <typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader">
      <classpath>
        <pathelement location="${ivy.jar}"/>
      </classpath>
    </typedef>
    <fail>
      <condition >
        <not>
          <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
        </not>
      </condition>
      You need Apache Ivy 2.0 or later from ${ivy.repo.url}. It could not be loaded from ${ivy.jar}
    </fail>
  </target>
  
  <target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${build.dir}" source="1.5" target="1.5" 
    debug="true" classpathref="compile.classpath" includeantruntime="false"/>
  </target>
  
  <target name="javadoc" depends="init">
    <javadoc sourcepath="${src}" destdir="${javadoc.dir}"
      version="true" windowtitle="Thrift Java API" doctitle="Thrift Java API"
      classpathref="test.classpath">
    </javadoc>
    <jar jarfile="${javadoc.jar.file}" basedir="${javadoc.dir}">
      <manifest>
        <attribute name="Implementation-Version" value="${version}"/>
      </manifest>
    </jar>
  </target>
  
  <target name="dist" depends="compile">
    <mkdir dir="${build.dir}/META-INF"/>
    <copy file="${thrift.root}/LICENSE" tofile="${build.dir}/META-INF/LICENSE.txt"/>
    <copy file="${thrift.root}/NOTICE" tofile="${build.dir}/META-INF/NOTICE.txt"/>
    <jar jarfile="${jar.file}">
      <manifest>
        <attribute name="Implementation-Version" value="${version}"/>
      </manifest>
      <fileset dir="${build.dir}">
        <include name="org/apache/thrift/**/*.class"/>
        <include name="META-INF/*.txt"/>
      </fileset>
      <fileset dir="src">
        <include name="**/*.java"/>
      </fileset>
    </jar>
  </target>
  
  <target name="pack.src">
    <tar destfile="${source.tar.gz}" basedir="${src}" compression="gzip"/>
  </target>
  
  <target name="install" depends="dist,javadoc">
    <copy todir="${install.path}">
      <fileset dir="."><include name="*.jar"/></fileset>
    </copy>
    <copy todir="${install.javadoc.path}">
      <fileset dir="${javadoc.dir}">
        <include name="**/*"/>
      </fileset>
    </copy>
  </target>
  
  <target name="clean">
    <delete dir="${build.dir}"/>
    <delete dir="${gen}"/>
    <delete dir="${genbean}"/>
  </target>
  
  <target name="compile-test" description="Build the test suite classes" depends="generate,dist">
    <javac debug="true" srcdir="${gen}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
    <javac debug="true" srcdir="${genbean}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
    <javac debug="true" srcdir="${src.test}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false"/>
    <copy todir="${build.test.dir}">
      <fileset dir="${src.test}" includes="log4j.properties"/>
    </copy>
    <jar jarfile="${test.jar.file}" basedir="${build.test.dir}"/>
  </target>
  
  <target name="junit-test" description="Run the JUnit test suite" depends="compile-test">
    <mkdir dir="${test.log.dir}"/>
    <junit printsummary="true" showoutput="${test.output}" timeout="${test.timeout}" 
      haltonfailure="no" errorProperty="tests.failed" failureProperty="tests.failed"
      fork="true" forkmode="perTest" maxmemory="512m"
      >
      <sysproperty key="build.test" value="${build.test.dir}"/>
      <sysproperty key="test.port" value="${test.port}"/>
      <sysproperty key="javax.net.ssl.trustStore" value="${src.test}/.truststore"/>
      <sysproperty key="javax.net.ssl.trustStorePassword" value="thrift"/>
      <sysproperty key="javax.net.ssl.keyStore" value="${src.test}/.keystore"/>
      <sysproperty key="javax.net.ssl.keyStorePassword" value="thrift"/>
      <classpath refid="test.classpath"/>
      <formatter type="${test.junit.output.format}"/>
      <batchtest todir="${test.log.dir}" unless="testcase">
        <fileset dir="${test.src.dir}">
          <include name="**/Test*.java"/>
          <exclude name="**/TestClient.java"/>
          <exclude name="**/TestServer.java"/>
          <exclude name="**/TestNonblockingServer.java"/>
        </fileset>
      </batchtest>
      <batchtest todir="${test.log.dir}" if="testcase">
        <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
      </batchtest>
    </junit>
    <fail if="tests.failed">Tests failed!</fail>
  </target>
  
  <target name="deprecated-test" description="Run the non-JUnit test suite" depends="compile-test">
    <java classname="org.apache.thrift.test.EqualityTest" classpathref="test.classpath" failonerror="true"/>
    <java classname="org.apache.thrift.test.JavaBeansTest" classpathref="test.classpath" failonerror="true"/>
  </target>
  
  <target name="test" description="Run the full test suite" depends="junit-test,deprecated-test"/>
  
  <target name="testclient" description="Run a test client" depends="compile-test">
    <java classname="org.apache.thrift.test.TestClient"
      classpathref="test.classpath" failonerror="true">
      <arg line="${testargs}"/>
    </java>
  </target>
  
  <target name="testserver" description="Run a test server" depends="compile-test">
    <java classname="org.apache.thrift.test.TestServer"
      classpathref="test.classpath" failonerror="true">
      <arg line="${testargs}"/>
    </java>
  </target>
  
  <target name="testnonblockingserver" description="Run a test nonblocking server" depends="compile-test">
    <java classname="org.apache.thrift.test.TestNonblockingServer"
      classpathref="test.classpath" failonerror="true">
      <arg line="${testargs}"/>
    </java>
  </target>
  
  <target name="generate">
    <!-- Generate the thrift gen-java source -->
    <exec executable="../../compiler/cpp/thrift" failonerror="true">
      <arg line="--gen java:hashcode ${test.thrift.home}/ThriftTest.thrift"/>
    </exec>
    <exec executable="../../compiler/cpp/thrift" failonerror="true">
      <arg line="--gen java:hashcode ${test.thrift.home}/DebugProtoTest.thrift"/>
    </exec>
    <exec executable="../../compiler/cpp/thrift" failonerror="true">
      <arg line="--gen java:hashcode ${test.thrift.home}/OptionalRequiredTest.thrift"/>
    </exec>
    <exec executable="../../compiler/cpp/thrift" failonerror="true">
      <arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift"/>
    </exec>
  </target>
  
  <target name="mvn.ant.tasks.download" depends="setup.init" unless="mvn.ant.tasks.found">
    <get src="${mvn.ant.task.url}/maven-ant-tasks-${mvn.ant.task.version}.jar" dest="${mvn.ant.task.jar}" usetimestamp="true"/>
  </target>
  
  <target name="mvn.ant.tasks.check">
    <condition property="mvn.ant.tasks.found">
      <typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
    </condition>
  </target>  
  
  <target name="mvn.init" depends="mvn.ant.tasks.download" unless="mvn.finished">
    <!-- Download mvn ant tasks, download dependencies, and setup pom file -->
    <typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${mvn.ant.task.jar}"/>
    
    <!-- remote repositories used to download dependencies from -->
    <artifact:remoteRepository id="central" url="${mvn.repo}"/>
    <artifact:remoteRepository id="apache" url="${apache.repo}"/>
    
    <!-- Pom file information -->
    <artifact:pom id="pom" 
      groupId="${thrift.groupid}" 
      artifactId="${thrift.artifactid}"
      version="${version}" 
      url="http://thrift.apache.org"
      name="Apache Thrift"
      description="Thrift is a software framework for scalable cross-language services development."
      packaging="pom"
      >
      <remoteRepository refid="central"/>
      <remoteRepository refid="apache"/>
      <license name="The Apache Software License, Version 2.0" url="${license}"/>
      <scm connection="scm:svn:http://svn.apache.org/repos/asf/thrift/trunk/" 
      developerConnection="scm:svn:http://svn.apache.org/repos/asf/thrift/trunk/"
      url="http://svn.apache.org/viewcvs.cgi/thrift"
      />
      <!-- Thrift Developers -->
      <developer id="mcslee" name="Mark Slee"/>
      <developer id="dreiss" name="David Reiss"/>
      <developer id="aditya" name="Aditya Agarwal"/>
      <developer id="marck" name="Marc Kwiatkowski"/>
      <developer id="jwang" name="James Wang"/>
      <developer id="cpiro" name="Chris Piro"/>
      <developer id="bmaurer" name="Ben Maurer"/>
      <developer id="kclark" name="Kevin Clark"/>
      <developer id="jake" name="Jake Luciani"/>
      <developer id="bryanduxbury" name="Bryan Duxbury"/>
      <developer id="esteve" name="Esteve Fernandez"/>
      <developer id="todd" name="Todd Lipcon"/>
      <developer id="geechorama" name="Andrew McGeachie"/>
      <developer id="molinaro" name="Anthony Molinaro"/>
      <developer id="roger" name="Roger Meier"/>
      
      <!-- Thrift dependencies list -->
      <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.5.8"/>
      <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.5.8"/>
      <dependency groupId="commons-lang" artifactId="commons-lang" version="2.5"/>
      <dependency groupId="junit" artifactId="junit" version="4.4"/>
      <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.5"/>
      <dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
    </artifact:pom>
    
    <!-- Generate the pom file -->
    <artifact:writepom pomRefId="pom" file="${pom.xml}"/>
    
    <!-- Download the dependencies -->
    <artifact:dependencies filesetId="build-dependency-jars" pomRefId="pom"/>
    
    <!-- Copy the dependencies to the build/lib dir -->
    <copy todir="${build.dir}/lib">
      <fileset refid="build-dependency-jars"/>
      <mapper type="flatten"/>
    </copy>
    
    <property name="mvn.finished" value="true"/>
  </target>
  
  <macrodef name="signAndDeploy">
    <!-- Sign and deploy jars to apache repo -->
    <attribute name="file"/>
    <attribute name="classifier" default=""/>
    <attribute name="packaging" default="jar"/>
    <sequential>
      <artifact:mvn fork="true">
        <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file"/>
        <arg value="-DrepositoryId=${maven-repository-id}"/>
        <arg value="-Durl=${maven-repository-url}"/>
        <arg value="-DpomFile=${pom.xml}"/>
        <arg value="-Dfile=@{file}"/>
        <arg value="-Dclassifier=@{classifier}"/>
        <arg value="-Dpackaging=@{packaging}"/>
        <arg value="-Pgpg"/>
      </artifact:mvn>
    </sequential>
  </macrodef>
  
  <target name="publish" depends="clean,init,test,dist,javadoc,pack.src">
    <!-- Compile, package, test and then send release to apache maven repo -->
    <!-- run with: ant -Drelease=true publish-->
    <signAndDeploy file="${pom.xml}" packaging="pom" classifier=""/>
    <signAndDeploy file="${jar.file}" packaging="jar" classifier=""/>
    <signAndDeploy file="${javadoc.jar.file}" packaging="jar" classifier="javadoc"/>
    <signAndDeploy file="${source.tar.gz}" packaging="src" classifier="tar.gz"/>
  </target>
</project>
