Hao Hao has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/14329


Change subject: [java] process communicates via protobuf-based protocol
......................................................................

[java] process communicates via protobuf-based protocol

This commit adds a java tool that can communicate with other process
via protobuf-based protocol over standard input/output. It is useful
in cases a Kudu process (e.g. master) needs to talk to third-party
libraries written in Java.

This tool has: 1) a single reader(producer) thread that continuously
reads protobuf-based messages (with optional JSON encoding) from the
standard input and puts the messages to a FIFO blocking queue;
2) multiple writer(consumer) threads that continuously retrieve the
messages from the queue, process them and write the responses to the
standard output.

To support a new protobuf message type, simply extend the 'ProtocolProcessor'
interface to specify how to handle the message type.

Change-Id: Iaf9ad24dbc9acc681284b6433836271b5b4c7982
---
M CMakeLists.txt
M java/gradle/dependencies.gradle
A java/kudu-subprocess/build.gradle
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/EchoProtocolProcessor.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageConsumer.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageProcessor.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageProducer.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/ProtocolProcessor.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/SubprocessCommandLine.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/SubprocessCommandLineParser.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/SubprocessConfiguration.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/SubprocessMain.java
A 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/SubprocessRuntimeException.java
A java/kudu-subprocess/src/main/resources/log4j.properties
A java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/MessageTest.java
A 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/TestMessageProcessor.java
A 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/TestMessageProducerConsumer.java
M java/settings.gradle
A src/kudu/subprocess/CMakeLists.txt
A src/kudu/subprocess/subprocess.proto
20 files changed, 1,481 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/29/14329/1
--
To view, visit http://gerrit.cloudera.org:8080/14329
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaf9ad24dbc9acc681284b6433836271b5b4c7982
Gerrit-Change-Number: 14329
Gerrit-PatchSet: 1
Gerrit-Owner: Hao Hao <[email protected]>

Reply via email to