mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-07 18:58:51 +00:00
089164a2e9
I'm not sure why, but "ant test" under lib/java doesn't pass the global classpath to the test programs. (This is weird because compile-test does.) This change manually extracts the CLASSPATH environment variable and adds it to the test classpath. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@777677 13f79535-47bb-0310-9956-ffa450edef68
196 lines
7.1 KiB
XML
196 lines
7.1 KiB
XML
<?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">
|
|
|
|
<description>Thrift Build File</description>
|
|
|
|
<property environment="env" />
|
|
|
|
<property name="gen" location="gen-java" />
|
|
<property name="genbean" location="gen-javabean" />
|
|
|
|
<property name="src" location="src" />
|
|
<property name="build" location="build" />
|
|
<property name="javadoc" location="${build}/javadoc" />
|
|
<property name="install.path" value="/usr/local/lib" />
|
|
<property name="src.test" location="test" />
|
|
<property name="build.test" location="${build}/test" />
|
|
<property name="test.thrift.home" location="../../test"/>
|
|
|
|
<property file="${user.home}/.thrift-build.properties" />
|
|
|
|
<!-- ivy properties -->
|
|
<property name="ivy.version" value="2.0.0-rc2" />
|
|
<property name="ivy.dir" location="${build}/ivy" />
|
|
<property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
|
|
<property name="ivy.lib.dir" location="${ivy.dir}/lib" />
|
|
<property name="ivy_repo_url" value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
|
|
<property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" />
|
|
|
|
<path id="compile.classpath">
|
|
<fileset dir="${ivy.lib.dir}">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<path id="test.classpath">
|
|
<path refid="compile.classpath" />
|
|
<pathelement path="${env.CLASSPATH}" />
|
|
<pathelement location="build/test" />
|
|
<pathelement location="libthrift.jar" />
|
|
</path>
|
|
|
|
<target name="init">
|
|
<tstamp />
|
|
<mkdir dir="${build}"/>
|
|
<mkdir dir="${build.test}" />
|
|
<!--
|
|
Allow Ivy to be disabled with "-Dnoivy=".
|
|
It is kind of a hack to pretend that we already found it,
|
|
but Ant doesn't provide an easy way of blocking dependencies
|
|
from executing or checking multiple conditions.
|
|
-->
|
|
<condition property="ivy.found"><isset property="noivy" /></condition>
|
|
<condition property="offline"><isset property="noivy" /></condition>
|
|
</target>
|
|
|
|
<target name="ivy-init-dirs">
|
|
<mkdir dir="${ivy.dir}" />
|
|
<mkdir dir="${ivy.lib.dir}" />
|
|
</target>
|
|
|
|
<target name="ivy-download" depends="ivy-init-dirs" description="To download ivy" unless="offline">
|
|
<get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
|
|
</target>
|
|
|
|
<target name="ivy-probe-antlib">
|
|
<condition property="ivy.found">
|
|
<typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="ivy-init-antlib" depends="ivy-download,ivy-probe-antlib" 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 http://ant.apache.org/
|
|
It could not be loaded from ${ivy_repo_url}
|
|
</fail>
|
|
</target>
|
|
|
|
<target name="resolve" depends="ivy-init-antlib" description="retrieve dependencies with ivy" unless="noivy">
|
|
<ivy:retrieve />
|
|
</target>
|
|
|
|
<target name="compile" depends="init,resolve">
|
|
<javac srcdir="${src}" destdir="${build}" source="1.5" target="1.5" debug="true" classpathref="compile.classpath" />
|
|
</target>
|
|
|
|
<target name="javadoc" depends="init">
|
|
<javadoc sourcepath="${src}"
|
|
destdir="${javadoc}"
|
|
version="true"
|
|
windowtitle="Thrift Java API"
|
|
doctitle="Thrift Java API">
|
|
</javadoc>
|
|
</target>
|
|
|
|
<target name="dist" depends="compile">
|
|
<jar jarfile="libthrift.jar">
|
|
<fileset dir="${build}">
|
|
<include name="**/*.class" />
|
|
</fileset>
|
|
<fileset dir="src">
|
|
<include name="**/*.java" />
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
<target name="install" depends="dist,javadoc">
|
|
<exec executable="install">
|
|
<arg line="libthrift.jar ${install.path}" />
|
|
</exec>
|
|
<copy todir="${install.javadoc.path}">
|
|
<fileset dir="${javadoc}">
|
|
<include name="**/*" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="clean">
|
|
<delete dir="${build}" />
|
|
<delete dir="${gen}"/>
|
|
<delete dir="${genbean}"/>
|
|
<delete dir="${javadoc}"/>
|
|
<delete file="libthrift.jar" />
|
|
</target>
|
|
|
|
<target name="compile-test" description="Build the test suite classes" depends="generate,dist">
|
|
<javac debug="true" srcdir="${gen}" destdir="${build.test}" classpathref="test.classpath" />
|
|
<javac debug="true" srcdir="${genbean}" destdir="${build.test}" classpathref="test.classpath" />
|
|
<javac debug="true" srcdir="${src.test}" destdir="${build.test}" classpathref="test.classpath" />
|
|
</target>
|
|
|
|
<target name="test" description="Run the full test suite" depends="compile-test">
|
|
<java classname="org.apache.thrift.test.JSONProtoTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.TCompactProtocolTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.IdentityTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.EqualityTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.ToStringTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.DeepCopyTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.MetaDataTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
<java classname="org.apache.thrift.test.JavaBeansTest"
|
|
classpathref="test.classpath" failonerror="true" />
|
|
</target>
|
|
|
|
<target name="generate">
|
|
<exec executable="../../compiler/cpp/thrift">
|
|
<arg line="--gen java:hashcode ${test.thrift.home}/ThriftTest.thrift" />
|
|
</exec>
|
|
<exec executable="../../compiler/cpp/thrift">
|
|
<arg line="--gen java:hashcode ${test.thrift.home}/DebugProtoTest.thrift" />
|
|
</exec>
|
|
<exec executable="../../compiler/cpp/thrift">
|
|
<arg line="--gen java:hashcode ${test.thrift.home}/OptionalRequiredTest.thrift" />
|
|
</exec>
|
|
<exec executable="../../compiler/cpp/thrift">
|
|
<arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift" />
|
|
</exec>
|
|
</target>
|
|
|
|
</project>
|