avro-975-00.patch is attached. This patch is independent of the other patches. It is mainly a port of the Java IPC code. My goal is to get C# and NLog talking to a Flume Avro Sink. I have successfully used this code with my existing NLog-Flume Client and it works!
What is in Avro-975-00.patch:
- A SocketTransceiver compatible with Java's NettyTransceiver
- 7 nunit tests similar to the Java tests.
- Code Generation of the IPC Interface
- The additional tests. Porting the remaining Java tests will be much easier with the generated code.
Next, I want to do the code generation updates and SpecificRequestor support. I'd like to get feedback on what I have done before continuing.
One area where I'm not sure about is the SocketTransceiver. Java's SocketTransceiver is deprecated, but the other languages such as Ruby seem to be compatible with SocketTransceiver. To talk to the NettyTransceiver a few extra bytes are needed. My patch supports Netty and not the deprecated SocketTransceiver - I can make it support both. Should it support both?
The patch is tested on Win8/VS 2012 & MacOS 10.83/MonoDevelop.
To apply the patch on the Mac, I had to change the line endings on Avro.sln before applying the patch (tr -d '\r' < Avro.sln > Avro-fixed.sln). Other than that the patch applies cleanly on both platforms and all tests pass.