Bryan Duxbury [Fri, 17 Sep 2010 19:27:36 +0000 (19:27 +0000)]
THRIFT-882. java: deep copy of binary fields does not copy ByteBuffer characteristics (arrayOffset, position)
This patch ensures that binary fields are copied correctly.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998275
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 13 Sep 2010 17:32:14 +0000 (17:32 +0000)]
Fix enum value lookups in C++
The recent enum change was causing enums to break if used as constant
values by the C++ generator. The problem was that we were searching for
the fully-qualified constant name (enum_name.VALUE_NAME) in the enum
values. This didn't affect Java because it just uses symbolic names in
the generated code. Fix it by grabbing the base name before doing the
search.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996610
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 13 Sep 2010 17:32:13 +0000 (17:32 +0000)]
Don't segfault if t_enum::get_constant_by_name fails
The recent enum change was causing t_enum::get_constant_by_name to fail
in t_const_value::get_integer. This was causing a difficult-to-debug
segfault. Check for failure and throw an exeception.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996609
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Mon, 13 Sep 2010 16:28:53 +0000 (16:28 +0000)]
THRIFT-870. java: Java constants don't get Javadoc comments
Fix a trivial oversight.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996592
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Mon, 13 Sep 2010 15:42:36 +0000 (15:42 +0000)]
THRIFT-894. java: Make default accessors for binary fields return byte[]; provide new accessors to get ByteBuffer version
This patch causes the underlying ByteBuffer that backs a binary field to be hidden behind a default accessor that provides a byte[] interface. This should allow users who skipped 0.4 to update their generated code without breaking any of their other code. A new accessor has been added that allows a way down to the underlying ByteBuffer for those experts who want to take advantage.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996579
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 15:31:50 +0000 (15:31 +0000)]
java: tiny improvement to async client manager test, for real this time
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996329
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 15:30:06 +0000 (15:30 +0000)]
java: tiny improvement to async client manager test
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996328
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 15:29:38 +0000 (15:29 +0000)]
THRIFT-897. compiler: Don't allow unqualified enum constant access
Fix some confusion in the java generator about adding the class name.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996327
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 15:22:49 +0000 (15:22 +0000)]
THRIFT-897. compiler: Don't allow unqualified enum constant references
Missed a spot.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996326
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 15:22:21 +0000 (15:22 +0000)]
THRIFT-897. compiler: Don't allow unqualified enum constant references
Missed a spot.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996325
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Sun, 12 Sep 2010 14:38:36 +0000 (14:38 +0000)]
THRIFT-897. compiler: Don't allow unqualified constant access to enum values
This patch makes it illegal to refer to enum values by just their names in the IDL. Now, you must also provide the enum type's name as well.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996320
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Fri, 10 Sep 2010 23:00:40 +0000 (23:00 +0000)]
THRIFT-895. cpp: By default, generate enums as class-scoped enums
Most of the other Thrift languages either have enum values that are
scoped to the type or emulate enums in that way. Now C++ does the same
by default. "enum Foo" in a .thrift file will be generated as Foo::type
so the values can be called Foo::value1, etc. The "pure_enums" compiler
option restores the old behavior.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996015
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Fri, 10 Sep 2010 19:08:00 +0000 (19:08 +0000)]
THRIFT-896. java: TNonblockingSocket.isOpen() returns true even after close()
This patch makes TNonblockingSocket.isOpen() have more expected behavior.
Patch: Eric Jensen
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995939
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Fri, 10 Sep 2010 18:49:53 +0000 (18:49 +0000)]
THRIFT-544. erl: multiple enums with the same key generate invalid code
This adds the enum name to the generated constants to avoid collisions.
Patch: Ben Taitelbaum
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995924
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Fri, 10 Sep 2010 16:16:01 +0000 (16:16 +0000)]
THRIFT-250. java: ExecutorService as a constructor parameter for TServer
This patch adds a new constructor that accepts an ExecutorService.
Patch: Ed Ceaser
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995847
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Wed, 8 Sep 2010 21:47:45 +0000 (21:47 +0000)]
THRIFT-888. java: async client should also have nonblocking connect
This patch adds optional nonblocking connect behavior.
Patch: Eric Jensen
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995262
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Wed, 8 Sep 2010 00:06:35 +0000 (00:06 +0000)]
THRIFT-876. java: Add SASL support
This patch adds support for a SASL-secured transport to the Java library. In its current form, it only works for the blocking-IO servers.
Patch: Aaron T Meyers
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993563
13f79535-47bb-0310-9956-
ffa450edef68
Anthony F. Molinaro [Tue, 7 Sep 2010 03:35:30 +0000 (03:35 +0000)]
THRIFT-698 - fix .app file, remove unused parts of build system, updated LICENSE to reflect changes
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993207
13f79535-47bb-0310-9956-
ffa450edef68
Anthony F. Molinaro [Tue, 7 Sep 2010 03:25:02 +0000 (03:25 +0000)]
svn ignore and remove php artifacts left by phpize in bootstrap.sh
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993205
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Fri, 3 Sep 2010 20:36:02 +0000 (20:36 +0000)]
Fix to the catch-all namespace commit
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992458
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 16:42:18 +0000 (16:42 +0000)]
THRIFT-856. cpp: Building cpp library fails on OS X with malloc and free not being declared in scope
This patch adds include which seems to fix the problem for some people.
Patch: James Clarke
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992013
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Thu, 2 Sep 2010 16:41:45 +0000 (16:41 +0000)]
Allow "*" as a catch-all namespace.
In an IDL file, you can can now declare "namespace * foo",
which will apply to any language not explicitly specified.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992012
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 16:33:42 +0000 (16:33 +0000)]
add some generatd artifacts from lib/cpp/test and lib/php/src/ext/thrift_protocol to svn:ignore
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992008
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 15:37:19 +0000 (15:37 +0000)]
THRIFT-257. py: Support validation of required fields
Patch: Esteve Fernandez
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991987
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Thu, 2 Sep 2010 15:36:03 +0000 (15:36 +0000)]
THRIFT-666. python: Allow THttpServer's responses to be overridden
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991986
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Thu, 2 Sep 2010 15:36:00 +0000 (15:36 +0000)]
THRIFT-596. python: Make the TBufferedTransport read buffer size configurable
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991985
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Thu, 2 Sep 2010 15:26:28 +0000 (15:26 +0000)]
THRIFT-798. cpp: Reduce resource leakage by TNonblockingServer destructor
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991980
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 15:16:56 +0000 (15:16 +0000)]
THRIFT-567. cpp: Can't immediately stop a TSimpleServer thread that is idle
This interrupts the server in addition to setting the stop flag.
Patch: Rush Manbert
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991974
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 15:14:27 +0000 (15:14 +0000)]
THRIFT-597. py: Python THttpServer performance improvements
This enables buffered I/O and ThreadingMixin.
Patch: David Reiss
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991971
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 15:12:06 +0000 (15:12 +0000)]
THRIFT-598. py: Allow Python's threading servers to use daemon threads
Patch: David Reiss
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991969
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 15:02:06 +0000 (15:02 +0000)]
THRIFT-629. cocoa: Unused Field In TSocketServer Appears To Break iPhone Build
Remove the unused field.
Patch: Jon S Akhtar
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991962
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 14:58:51 +0000 (14:58 +0000)]
THRIFT-634. csharp: C# Compiler Generates Incorrect Code For Fields which begin with an uppercase letter
Added a '_' to the backing field, and changed all the field references to refer to the property instead.
Patch: Jon S Akhtar
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991960
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 14:20:01 +0000 (14:20 +0000)]
THRIFT-673. py: Generated Python code has whitespace issues
This patch trims several forms of trailing whitespace.
Patch: Ian Eure
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991945
13f79535-47bb-0310-9956-
ffa450edef68
Anthony F. Molinaro [Thu, 2 Sep 2010 05:09:05 +0000 (05:09 +0000)]
THRIFT-875 : missing dist file
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991813
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 01:00:19 +0000 (01:00 +0000)]
THRIFT-721. py: THttpClient ignores url parameters
Respect query string in THttpClient and generated remotes. Also, add an error message on unknown methods.
Patch: Thomas Kho
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991786
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:56:53 +0000 (00:56 +0000)]
THRIFT-756. cpp: Exposing TSocket(int) constructor to public
This patch changes the raw socket handle constructor from protected to public.
Patch: Rajat Goel
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991785
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:52:46 +0000 (00:52 +0000)]
THRIFT-758. perl: incorrect deference in exception handling
Patch: Yann Kerherve
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991784
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:43:16 +0000 (00:43 +0000)]
THRIFT-805. cocoa: Don't generate process_XXXX methods for oneway methods
Patch: Brad Taylor
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991783
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:36:18 +0000 (00:36 +0000)]
THRIFT-824. py: TApplicationException.__str__() refers to class constants as globals
Refer to constants via 'self'.
Patch: Peter Schuller
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991781
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:29:08 +0000 (00:29 +0000)]
THRIFT-838. cocoa: Generated Cocoa classes have useless @dynamic declarations
This patch removes the @dynamic properties.
Patch: Kevin Ballard
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991779
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:24:50 +0000 (00:24 +0000)]
THRIFT-840. perl: Perl protocol handler could be more robust against unrecognised types
This patch causes the protocol to throw an exception when it sees an unrecognized type instead of silently doing nothing.
Patch: Conrad Hughes
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991778
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:12:22 +0000 (00:12 +0000)]
THRIFT-884. html: HTML Generator: add Key attribute to the Data Types Tables
This patch adds the Key attribute to the Data Types Tables.
Patch: Roger Meier
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991775
13f79535-47bb-0310-9956-
ffa450edef68
Bryan Duxbury [Thu, 2 Sep 2010 00:07:20 +0000 (00:07 +0000)]
THRIFT-860. ocaml: copy method and reset method
The attached patch provides the class copying and reset-to-default values methods.
Patch: Lev Walkin
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991774
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Wed, 1 Sep 2010 16:54:05 +0000 (16:54 +0000)]
THRIFT-886. erlang: Fix dialyzer warning in thrift_http_transport
This spec should have been updated in r990996
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991603
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:58:41 +0000 (16:58 +0000)]
THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991260
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:32 +0000 (16:51 +0000)]
THRIFT-874. Add script to cross-compile the Thrift compiler for Windows
This script cross compiles the Thrift compiler from Ubuntu 10.04 to
Windows using the gcc-mingw32 package. Run it from a fresh release
tarball.
All of the runtime libraries are disabled. This is just for building
the compiler.
I set --build and --host to ensure that autoconf knows we are
cross-compiling.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991257
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:31 +0000 (16:51 +0000)]
THRIFT-874. Disable AX_SIGNED_RIGHT_SHIFT for cross-compiles
When cross-compiling, we cannot run test programs, so
AX_SIGNED_RIGHT_SHIFT won't work. That macro is only needed for the
runtime library, not the compiler, so we can just skip it if we are
cross-compiling the compiler.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991256
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:30 +0000 (16:51 +0000)]
THRIFT-874. Include missing time.h in two compiler files
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991255
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:29 +0000 (16:51 +0000)]
THRIFT-865. Make Thrift buildable without libfl
yywrap is only needed if we need one lexer context to traverse multiple
input files. This feature isn't used by Thrift, so we disable it with
"option noyywrap". With yywrap disabled, there is no need to link to
libfl if flex is the lex implementation used.
With this patch, release tarballs can be built without lex.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991254
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:28 +0000 (16:51 +0000)]
THRIFT-507. Only use Boost for building the C++ library
- Make AX_BOOST_BASE warn instead of fataling if Boost is not found.
- If Boost is not found, disable compilation of the C++ library.
- Do not use CPPFLAGS or LDFLAGS from Boost when building the compiler.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991253
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:26 +0000 (16:51 +0000)]
THRIFT-507. Stop using boost::lexical_cast in the compiler
We were using boost::lexical_cast to convert an integer to a string,
but using a stringstream is only slightly more complicated.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991252
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:25 +0000 (16:51 +0000)]
THRIFT-507. ruby: Stop using boost::tokenizer
Previously, the Ruby generated used boost::tokenizer to produce a
vector of namespace components from a dot-delimited namespace string.
We can do this manually with only a slight increase in complexity.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991251
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:24 +0000 (16:51 +0000)]
THRIFT-507. smalltalk: Remove an unnecessary include (boost/tokenizer)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991250
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:22 +0000 (16:51 +0000)]
THRIFT-850. Use AX_PROG_PERL_MODULES to test for Bit::Vector
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991249
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:21 +0000 (16:51 +0000)]
THRIFT-506. Allow Thrift to be built without the C++ library
Currently, this is only possible by explicitly passing --without-cpp.
It might be better to name it --without-cxx, but it is probably more
important to keep consistency with the "cpp" generator and "lib/cpp".
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991248
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:20 +0000 (16:51 +0000)]
THRIFT-505. Make configure give a summary of the enabled components
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991247
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:19 +0000 (16:51 +0000)]
THRIFT-503. cpp: Move the tests built by "make check" under lib/cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991246
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:14 +0000 (16:51 +0000)]
THRIFT-503. Use our standard include style in a few tests
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991245
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:13 +0000 (16:51 +0000)]
THRIFT-500. Remove nonexistent files from .gitignore (/test/java/)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991244
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:12 +0000 (16:51 +0000)]
THRIFT-500. Ignore and clean some new generated files
r772440 caused libtoolize to dump some extra files into aclocal.
This change adds them to gitignore and removes them in cleanup.sh.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991243
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:11 +0000 (16:51 +0000)]
THRIFT-500. Remove unnecessary "ACLOCAL_AMFLAGS" line from lib/cpp/Makefile.am
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991242
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Tue, 31 Aug 2010 16:51:10 +0000 (16:51 +0000)]
THRIFT-500. A bunch of small changes to bootstrap.sh
- Use "set -e" instead of exit 1
- Separate libtoolize detection and execution
- Reorder some programs to prevent spurious warnings
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991241
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:11:58 +0000 (22:11 +0000)]
THRIFT-785. erlang: Eliminate log spew with framed transport
If we get an error when reading from the underlying transport, propagate
it out instead of dying and generating error logs.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991005
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:06:03 +0000 (22:06 +0000)]
erlang: Un-revert r988722
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991003
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:06:01 +0000 (22:06 +0000)]
erlang: Eliminate "behaviour undefined" warnings
Build behaviour modules first and include the ebin directory in
the Erlang code path during the rest of the build.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991002
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:06:00 +0000 (22:06 +0000)]
erlang: Parse multiple options properly in disk_log_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991001
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:58 +0000 (22:05 +0000)]
erlang: Verify elt/key/val when reading list/set/map
For now, exit on a badmatch if one is wrong.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991000
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:57 +0000 (22:05 +0000)]
erlang: Fix several compilation warnings
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990999
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:55 +0000 (22:05 +0000)]
erlang: Rename _impl headers to _behaviour
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990998
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:53 +0000 (22:05 +0000)]
erlang: Fix a few spelling errors
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990997
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:51 +0000 (22:05 +0000)]
erlang: Don't use a separate process for http_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990996
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:50 +0000 (22:05 +0000)]
erlang: Don't use a separate process memory_buffer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990995
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:49 +0000 (22:05 +0000)]
erlang: Update test_disklog to use the new API
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990994
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:48 +0000 (22:05 +0000)]
erlang: Update test_membuffer to use the new API
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990993
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:47 +0000 (22:05 +0000)]
erlang: Don't use a separate process for framed_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990992
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:46 +0000 (22:05 +0000)]
erlang: Don't use a separate process for buffered_transport
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990991
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:44 +0000 (22:05 +0000)]
erlang: Add a state-propagation-testing transport
Add a transport implementation that forwards all read and write (and
flush and close) requests directly to a wrapped transport. In addition,
it keeps a small amount of state: a version number that is incremented
on each operation and the PID of a process that stores another copy of
the version number. Every operation compares the version numbers and
increments both. If some part of the Thrift stack doesn't propagate
state updates properly, the two versions will not match.
Also add some (compiled-off by default) code to thrift_transport to
auto-wrap every transport in a state checker.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990990
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:43 +0000 (22:05 +0000)]
erlang: Refactor thrift_transport and all transport implementations
Note that the buffering transports still use a separate process to
maintain their state. This change just changes them to use a
"return-the-new-version"-style API.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990989
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:41 +0000 (22:05 +0000)]
erlang: test_{client,server}: Allow framed_transport to be used
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990988
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:39 +0000 (22:05 +0000)]
erlang: Create a test client
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990987
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:38 +0000 (22:05 +0000)]
erlang: Refactor the processor
Now the server works.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990986
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:37 +0000 (22:05 +0000)]
erlang: Get rid of after_reply from thrift_processor
We are always flushing the response after we write it.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990985
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:36 +0000 (22:05 +0000)]
erlang: Don't catch exits in thrift_processor
They are not handled properly, so the exit backtrace gets lost.
Just ignore them and let them kill the process naturally.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990984
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:34 +0000 (22:05 +0000)]
erlang: Refactor the binary protocol
At this point, everything passes dialyzer except for the processor,
and the client works.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990983
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:33 +0000 (22:05 +0000)]
erlang: Refactor the read path of the protocol
TODO: squash this
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990982
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:32 +0000 (22:05 +0000)]
erlang: Refactor the read path of the client
TODO: squash this
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990981
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:31 +0000 (22:05 +0000)]
erlang: Refactor the write paths of the client and protocol
TODO: squash this
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990980
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:29 +0000 (22:05 +0000)]
erlang: Client refactor, part 1
- Client is no longer a separate process.
- Simplified constructors moved into another module.
- All functions and exceptions return the new client,
to allow for future statefulness in the client.
NOTE: With the new library and old gen-code, attempting to call a
nonexistent function will result in an exit.
TODO: fix docs and tests (tether test is not meaningful)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990979
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:27 +0000 (22:05 +0000)]
erlang: Make the gen-code return a special value for bogus functions
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990978
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:26 +0000 (22:05 +0000)]
erlang: Separate out thrift_protocol:read_specific
By giving a different name to the function that reads from the
protocol implementation, we can get a slightly more enforcible spec.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990977
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:25 +0000 (22:05 +0000)]
erlang: Add a more detailed spec for thrift_protocol:read
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990976
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:23 +0000 (22:05 +0000)]
erlang: Separate out thrift_binary_protocol:read_data
By giving a different name to the function that reads bytes from the
transport, we can get a slightly more detailed spec.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990975
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:22 +0000 (22:05 +0000)]
erlang: Add some more detailed specs for protocol implementations
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990974
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:20 +0000 (22:05 +0000)]
erlang: Add some initial specs for thrift_transport and its implementations
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990973
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:18 +0000 (22:05 +0000)]
erlang: Add some initial specs to thrift_client and thrift_protocol
Also add a special header for use in thrift_protocol implementations
that gives specs for the callbacks.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990972
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:17 +0000 (22:05 +0000)]
erlang: Make the test_server use thrift_socket_server
thrift_server is deprecated, it seems.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990971
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:16 +0000 (22:05 +0000)]
erlang: Make the test server compatible with the Python test client
The Python test client expects a specific value in some responses.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990970
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:15 +0000 (22:05 +0000)]
erlang: Make framed_transport not write out its buffer when closed
This complicates the code, and users can be expected to call flush
when they want to write data to the underlying transport.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990969
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:13 +0000 (22:05 +0000)]
erlang: Make buffered_transport not write out its buffer when closed
This complicates the code, and users can be expected to call flush
when they want to write data to the underlying transport.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990968
13f79535-47bb-0310-9956-
ffa450edef68
David Reiss [Mon, 30 Aug 2010 22:05:12 +0000 (22:05 +0000)]
erlang: Don't print a warning for application-defined exceptions
Application-defined exceptions are a normal occurrence as far as the
Thrift infrastructure is concerned, so we should not print a warning.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990967
13f79535-47bb-0310-9956-
ffa450edef68