THRIFT-2804: java - TAsyncProcessor interface extracted from TBaseAsyncProcessor
Client: Java
Patch: Michael Donaghy
This closes #253
diff --git a/lib/java/src/org/apache/thrift/TAsyncProcessor.java b/lib/java/src/org/apache/thrift/TAsyncProcessor.java
new file mode 100644
index 0000000..0a069ea
--- /dev/null
+++ b/lib/java/src/org/apache/thrift/TAsyncProcessor.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.thrift;
+
+import org.apache.thrift.protocol.*;
+
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collections;
+import java.util.Map;
+
+public interface TAsyncProcessor {
+ /**
+ * Implementations must call fb.responseReady() once processing is complete
+ */
+ public boolean process(final AsyncFrameBuffer fb) throws TException;
+}
diff --git a/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java b/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
index da41620..ed6c323 100644
--- a/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
+++ b/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
@@ -27,7 +27,7 @@
import java.util.Collections;
import java.util.Map;
-public class TBaseAsyncProcessor<I> implements TProcessor {
+public class TBaseAsyncProcessor<I> implements TAsyncProcessor, TProcessor {
protected final Logger LOGGER = LoggerFactory.getLogger(getClass().getName());
final I iface;
diff --git a/lib/java/src/org/apache/thrift/TProcessorFactory.java b/lib/java/src/org/apache/thrift/TProcessorFactory.java
index f6dfb14..81933a2 100644
--- a/lib/java/src/org/apache/thrift/TProcessorFactory.java
+++ b/lib/java/src/org/apache/thrift/TProcessorFactory.java
@@ -38,6 +38,6 @@
}
public boolean isAsyncProcessor() {
- return processor_ instanceof TBaseAsyncProcessor;
+ return processor_ instanceof TAsyncProcessor;
}
}
diff --git a/lib/java/src/org/apache/thrift/server/AbstractNonblockingServer.java b/lib/java/src/org/apache/thrift/server/AbstractNonblockingServer.java
index fd49d48..0c492cc 100644
--- a/lib/java/src/org/apache/thrift/server/AbstractNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/AbstractNonblockingServer.java
@@ -28,7 +28,7 @@
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
-import org.apache.thrift.TBaseAsyncProcessor;
+import org.apache.thrift.TAsyncProcessor;
import org.apache.thrift.TByteArrayOutputStream;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TProtocol;
@@ -597,7 +597,7 @@
if (eventHandler_ != null) {
eventHandler_.processContext(context_, inTrans_, outTrans_);
}
- ((TBaseAsyncProcessor)processorFactory_.getProcessor(inTrans_)).process(this);
+ ((TAsyncProcessor)processorFactory_.getProcessor(inTrans_)).process(this);
return;
} catch (TException te) {
LOGGER.warn("Exception while invoking!", te);