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
build.xml will now download Apache Ivy into the build tree. Ivy will
then be used to download the other Java dependencies: log4j and Apache
Commons Lang. This achieves the goal of allowing the Java library to be
built from a clean checkout, without requiring users to manually obtain
dependencies or checking external binaries into the source tree.
The Ivy behavior (except for a few mkdir calls) can be inhibited by
passing -Dnoivy= on the ant command line (or in a property file). In
this case, log4j must be available in the user's CLASSPATH.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@769995 13f79535-47bb-0310-9956-ffa450edef68
This patch adds a 'javadoc' Ant target, and installs the documentation to ${docdir}/thrift/java (/usr/local/share/doc/thrift/java with the default invocation of configure). It also fixes a few Javadoc warnings in the source code.
It also modifies the 'dist' target to include the Java sources in the jar file, so that Eclipse may show the javadocs for Thrift classes automatically (this increases the size of libthrift.jar from 90 Kb to 155 Kb).
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@756603 13f79535-47bb-0310-9956-ffa450edef68
This patch includes the Java implementation of the new Compact Protocol outlined in the issue and a matching test. It also creates Fixtures.java, a helper class that contains some useful test structure instances.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@742847 13f79535-47bb-0310-9956-ffa450edef68
The code generator new creates a static map of field id to metadata for each field, including information like the field TType, class of embedded structs, required/optional/default, etc. Additionally, on loading, generated classes statically register their class and metadata map with the global FieldMetaData map, so you can get the metadata for any TBase-implementing class easily.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@738708 13f79535-47bb-0310-9956-ffa450edef68
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
Systems like Debian expect the thrift jar to be in /usr/share/java, not
the default /usr/local/lib This patch allows configure to be passed a
JAVA_PREFIX= flag.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@675821 13f79535-47bb-0310-9956-ffa450edef68
Summary: The basic Thrift stack implemented in Java, still in need of a lot of work but fully functional.
Reviewed By: aditya
Test Plan: Unit tests are the NEXT checkin, I swear
Notes: Perf on the Java stuff actually isn't that bad, and it's far from optimized at the moment. Barely any tweaking has been done. Testing shows that a Java server with the C++ client has RPC performance within 2x of the pure C++ implementations. This is pretty sweet, since this cost will be eclipsed by the cost of whatever processing is being done on an actual server doing real work.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664715 13f79535-47bb-0310-9956-ffa450edef68