THRIFT-166. java: Java tests should be in lib/java/test/
THRIFT-221. java: Make java build classpath more dynamic and configurable
This issue moves all the tests from test/java to lib/java/test/src and combines the build files. In addition, rather than continue on with the same busted approach to finding dependent jars for the tests, THRIFT-221 has been implemented, allowing the user to specify a .thrift-build.properties file in their home directory that contains additional classpath entries.
As a result of this patch, "make check" does not currently work as it is expected to. This will be resolved in a follow-up commit.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@738695 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/aclocal/ax_java.m4 b/aclocal/ax_java.m4
index 70ec2c3..abff8c6 100644
--- a/aclocal/ax_java.m4
+++ b/aclocal/ax_java.m4
@@ -32,7 +32,7 @@
dnl with some compilers like guavac).
AC_DEFUN([AX_PROG_JAVAC],[
-test -z "$JAVAC" && AC_CHECK_PROGS(JAVAC, "gcj -C" guavac jikes javac)
+test -z "$JAVAC" && AC_CHECK_PROGS(JAVAC, "gcj -C" guavac javac)
test -z "$JAVAC" && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
AX_PROG_JAVAC_WORKS
])
diff --git a/lib/java/build.xml b/lib/java/build.xml
index 6f9d0b0..1215de1 100644
--- a/lib/java/build.xml
+++ b/lib/java/build.xml
@@ -2,13 +2,25 @@
<description>Thrift Build File</description>
+ <property name="gen" location="gen-java" />
+ <property name="genbean" location="gen-javabean" />
+
<property name="src" location="src" />
<property name="build" location="build" />
<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" />
+
+ <property name="cpath" location="libthrift.jar:${thrift.extra.cpath}" />
+
<target name="init">
<tstamp />
<mkdir dir="${build}"/>
+ <mkdir dir="${build.test}" />
</target>
<target name="compile" depends="init">
@@ -27,7 +39,46 @@
<target name="clean">
<delete dir="${build}" />
+ <delete dir="${gen}"/>
+ <delete dir="${genbean}"/>
<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}" classpath="${cpath}" />
+ <javac debug="true" srcdir="${genbean}" destdir="${build.test}" classpath="${cpath}" />
+ <javac debug="true" srcdir="${src.test}" destdir="${build.test}" classpath="${cpath}:${gen}" />
+ </target>
+
+ <target name="test" description="Run the full test suite" depends="compile-test">
+ <java classname="org.apache.thrift.test.JSONProtoTest"
+ classpath="${cpath}:${build.test}" failonerror="true" />
+ <java classname="org.apache.thrift.test.IdentityTest"
+ classpath="${cpath}:${build.test}" failonerror="true" />
+ <java classname="org.apache.thrift.test.EqualityTest"
+ classpath="${cpath}:${build.test}" failonerror="true" />
+ <java classname="org.apache.thrift.test.ToStringTest"
+ classpath="${cpath}:${build.test}" failonerror="true" />
+ <java classname="org.apache.thrift.test.DeepCopyTest"
+ classpath="${cpath}:${build.test}" failonerror="true" />
+ <java classname="org.apache.thrift.test.JavaBeansTest"
+ classpath="${cpath}:${build.test}" 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>
diff --git a/test/java/TestClient b/lib/java/test/TestClient
similarity index 100%
rename from test/java/TestClient
rename to lib/java/test/TestClient
diff --git a/test/java/TestNonblockingServer b/lib/java/test/TestNonblockingServer
similarity index 100%
rename from test/java/TestNonblockingServer
rename to lib/java/test/TestNonblockingServer
diff --git a/test/java/TestServer b/lib/java/test/TestServer
similarity index 100%
rename from test/java/TestServer
rename to lib/java/test/TestServer
diff --git a/test/java/src/DeepCopyTest.java b/lib/java/test/org/apache/thrift/test/DeepCopyTest.java
similarity index 100%
rename from test/java/src/DeepCopyTest.java
rename to lib/java/test/org/apache/thrift/test/DeepCopyTest.java
diff --git a/test/java/src/EqualityTest.java b/lib/java/test/org/apache/thrift/test/EqualityTest.java
similarity index 100%
rename from test/java/src/EqualityTest.java
rename to lib/java/test/org/apache/thrift/test/EqualityTest.java
diff --git a/test/java/src/IdentityTest.java b/lib/java/test/org/apache/thrift/test/IdentityTest.java
similarity index 100%
rename from test/java/src/IdentityTest.java
rename to lib/java/test/org/apache/thrift/test/IdentityTest.java
diff --git a/test/java/src/JSONProtoTest.java b/lib/java/test/org/apache/thrift/test/JSONProtoTest.java
similarity index 100%
rename from test/java/src/JSONProtoTest.java
rename to lib/java/test/org/apache/thrift/test/JSONProtoTest.java
diff --git a/test/java/src/JavaBeansTest.java b/lib/java/test/org/apache/thrift/test/JavaBeansTest.java
similarity index 100%
rename from test/java/src/JavaBeansTest.java
rename to lib/java/test/org/apache/thrift/test/JavaBeansTest.java
diff --git a/test/java/src/OverloadNonblockingServer.java b/lib/java/test/org/apache/thrift/test/OverloadNonblockingServer.java
similarity index 100%
rename from test/java/src/OverloadNonblockingServer.java
rename to lib/java/test/org/apache/thrift/test/OverloadNonblockingServer.java
diff --git a/test/java/src/TestClient.java b/lib/java/test/org/apache/thrift/test/TestClient.java
similarity index 100%
rename from test/java/src/TestClient.java
rename to lib/java/test/org/apache/thrift/test/TestClient.java
diff --git a/test/java/src/TestNonblockingServer.java b/lib/java/test/org/apache/thrift/test/TestNonblockingServer.java
similarity index 100%
rename from test/java/src/TestNonblockingServer.java
rename to lib/java/test/org/apache/thrift/test/TestNonblockingServer.java
diff --git a/test/java/src/TestServer.java b/lib/java/test/org/apache/thrift/test/TestServer.java
similarity index 100%
rename from test/java/src/TestServer.java
rename to lib/java/test/org/apache/thrift/test/TestServer.java
diff --git a/test/java/src/ToStringTest.java b/lib/java/test/org/apache/thrift/test/ToStringTest.java
similarity index 100%
rename from test/java/src/ToStringTest.java
rename to lib/java/test/org/apache/thrift/test/ToStringTest.java
diff --git a/test/java/build.xml b/test/java/build.xml
deleted file mode 100644
index b779663..0000000
--- a/test/java/build.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<project name="thrifttest" default="test" basedir=".">
-
- <description>Thrift Test Build File</description>
-
- <property name="src" location="src" />
- <property name="gen" location="gen-java" />
- <property name="genbean" location="gen-javabean" />
- <property name="build" location="build" />
- <property name="cpath" location="../../lib/java/libthrift.jar:/usr/share/java/commons-lang-2.3.jar" />
- <property name="testjar" location="thrifttest.jar" />
-
- <target name="init">
- <tstamp />
- <mkdir dir="${build}"/>
- </target>
-
- <target name="generate">
- <exec executable="../../compiler/cpp/thrift">
- <arg line="--gen java:hashcode ../ThriftTest.thrift" />
- </exec>
- <exec executable="../../compiler/cpp/thrift">
- <arg line="--gen java:hashcode ../DebugProtoTest.thrift" />
- </exec>
- <exec executable="../../compiler/cpp/thrift">
- <arg line="--gen java:hashcode ../OptionalRequiredTest.thrift" />
- </exec>
- <exec executable="../../compiler/cpp/thrift">
- <arg line="--gen java:beans,nocamel ../JavaBeansTest.thrift" />
- </exec>
- </target>
-
- <target name="compileonly">
- <javac debug="true" srcdir="${gen}" destdir="${build}" classpath="${cpath}" />
- <javac debug="true" srcdir="${genbean}" destdir="${build}" classpath="${cpath}" />
- <javac debug="true" srcdir="${src}" destdir="${build}" classpath="${cpath}:${gen}" />
- </target>
-
- <target name="compile" depends="init,generate,compileonly">
- <jar jarfile="${testjar}" basedir="${build}"/>
- </target>
-
- <target name="test" depends="compile">
- <java classname="org.apache.thrift.test.JSONProtoTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- <java classname="org.apache.thrift.test.IdentityTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- <java classname="org.apache.thrift.test.EqualityTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- <java classname="org.apache.thrift.test.ToStringTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- <java classname="org.apache.thrift.test.DeepCopyTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- <java classname="org.apache.thrift.test.JavaBeansTest"
- classpath="${cpath}:${testjar}:${gen}" failonerror="true" />
- </target>
-
- <target name="clean">
- <delete dir="gen-java" />
- <delete dir="gen-javabean" />
- <delete dir="${build}" />
- <delete file="thrifttest.jar" />
- </target>
-
-</project>