THRIFT-951. java: Add a new isServing() method to TServer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021941 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/src/org/apache/thrift/server/THsHaServer.java b/lib/java/src/org/apache/thrift/server/THsHaServer.java
index 9bf20c2..acc3da1 100644
--- a/lib/java/src/org/apache/thrift/server/THsHaServer.java
+++ b/lib/java/src/org/apache/thrift/server/THsHaServer.java
@@ -237,11 +237,15 @@
return;
}
+ setServing(true);
+
// this will block while we serve
joinSelector();
gracefullyShutdownInvokerPool();
+ setServing(false);
+
// do a little cleanup
stopListening();
diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index 7ee27a8..e880ded 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -178,9 +178,13 @@
return;
}
+ setServing(true);
+
// this will block while we serve
joinSelector();
+ setServing(false);
+
// do a little cleanup
stopListening();
}
diff --git a/lib/java/src/org/apache/thrift/server/TServer.java b/lib/java/src/org/apache/thrift/server/TServer.java
index eafe0c1..34093be 100644
--- a/lib/java/src/org/apache/thrift/server/TServer.java
+++ b/lib/java/src/org/apache/thrift/server/TServer.java
@@ -61,6 +61,8 @@
*/
protected TProtocolFactory outputProtocolFactory_;
+ private boolean isServing;
+
/**
* Default constructors.
*/
@@ -123,4 +125,11 @@
*/
public void stop() {}
+ public boolean isServing() {
+ return isServing;
+ }
+
+ protected void setServing(boolean serving) {
+ isServing = serving;
+ }
}
diff --git a/lib/java/src/org/apache/thrift/server/TSimpleServer.java b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
index 585865c..97ba0ad 100644
--- a/lib/java/src/org/apache/thrift/server/TSimpleServer.java
+++ b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
@@ -26,9 +26,8 @@
import org.apache.thrift.protocol.TProtocolFactory;
import org.apache.thrift.transport.TServerTransport;
import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportFactory;
import org.apache.thrift.transport.TTransportException;
-
+import org.apache.thrift.transport.TTransportFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -98,6 +97,8 @@
return;
}
+ setServing(true);
+
while (!stopped_) {
TTransport client = null;
TProcessor processor = null;
@@ -136,6 +137,7 @@
}
}
+ setServing(false);
}
public void stop() {
diff --git a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
index 5b442a0..6af2208 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
@@ -19,26 +19,25 @@
package org.apache.thrift.server;
-import org.apache.thrift.TException;
-import org.apache.thrift.TProcessor;
-import org.apache.thrift.TProcessorFactory;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.protocol.TProtocolFactory;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.transport.TServerTransport;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-import org.apache.thrift.transport.TTransportFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import org.apache.thrift.TException;
+import org.apache.thrift.TProcessor;
+import org.apache.thrift.TProcessorFactory;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.protocol.TProtocolFactory;
+import org.apache.thrift.transport.TServerTransport;
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+import org.apache.thrift.transport.TTransportFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* Server which uses Java's built in ThreadPool management to spawn off
@@ -178,6 +177,7 @@
}
stopped_ = false;
+ setServing(true);
while (!stopped_) {
int failureCount = 0;
try {
@@ -210,6 +210,7 @@
now = newnow;
}
}
+ setServing(false);
}
public void stop() {