diff --git a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
index cde7d41d9c9..d2363425fee 100644
--- a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
+++ b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
@@ -49,7 +49,6 @@ import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.coprocessor.ColumnInterpreter;
import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
-import org.apache.hadoop.hbase.ipc.ServerRpcController;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.generated.AggregateProtos.AggregateRequest;
import org.apache.hadoop.hbase.protobuf.generated.AggregateProtos.AggregateResponse;
@@ -59,6 +58,8 @@ import org.apache.hadoop.hbase.util.Pair;
import com.google.protobuf.ByteString;
import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
/**
* This client class is for invoking the aggregate functions deployed on the
@@ -81,12 +82,59 @@ import com.google.protobuf.Message;
*
*
Call {@link #close()} when done.
*/
-@InterfaceAudience.Private
+@InterfaceAudience.Public
public class AggregationClient implements Closeable {
// TODO: This class is not used. Move to examples?
private static final Log log = LogFactory.getLog(AggregationClient.class);
private final Connection connection;
+ /**
+ * An RpcController implementation for use here in this endpoint.
+ */
+ static class AggregationClientRpcController implements RpcController {
+ private String errorText;
+ private boolean cancelled = false;
+ private boolean failed = false;
+
+ @Override
+ public String errorText() {
+ return this.errorText;
+ }
+
+ @Override
+ public boolean failed() {
+ return this.failed;
+ }
+
+ @Override
+ public boolean isCanceled() {
+ return this.cancelled;
+ }
+
+ @Override
+ public void notifyOnCancel(RpcCallback