1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.coprocessor;
20
21 import com.google.protobuf.RpcCallback;
22 import com.google.protobuf.RpcController;
23 import com.google.protobuf.Service;
24 import org.apache.hadoop.hbase.Coprocessor;
25 import org.apache.hadoop.hbase.CoprocessorEnvironment;
26 import org.apache.hadoop.hbase.ipc.RpcServer;
27 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos;
28 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.AddrResponseProto;
29 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EmptyRequestProto;
30 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EmptyResponseProto;
31 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.PauseRequestProto;
32 import org.apache.hadoop.hbase.ipc.protobuf.generated.TestRpcServiceProtos;
33 import org.apache.hadoop.hbase.protobuf.ResponseConverter;
34 import org.apache.hadoop.hbase.util.Threads;
35
36 import java.io.IOException;
37
38
39
40
41
42
43 public class ProtobufCoprocessorService extends TestRpcServiceProtos.TestProtobufRpcProto
44 implements CoprocessorService, Coprocessor {
45 public ProtobufCoprocessorService() {
46 }
47
48 @Override
49 public Service getService() {
50 return this;
51 }
52
53 @Override
54 public void ping(RpcController controller, TestProtos.EmptyRequestProto request,
55 RpcCallback<TestProtos.EmptyResponseProto> done) {
56 done.run(TestProtos.EmptyResponseProto.getDefaultInstance());
57 }
58
59 @Override
60 public void echo(RpcController controller, TestProtos.EchoRequestProto request,
61 RpcCallback<TestProtos.EchoResponseProto> done) {
62 String message = request.getMessage();
63 done.run(TestProtos.EchoResponseProto.newBuilder().setMessage(message).build());
64 }
65
66 @Override
67 public void error(RpcController controller, TestProtos.EmptyRequestProto request,
68 RpcCallback<TestProtos.EmptyResponseProto> done) {
69 ResponseConverter.setControllerException(controller, new IOException("Test exception"));
70 done.run(null);
71 }
72
73 @Override
74 public void pause(RpcController controller, PauseRequestProto request,
75 RpcCallback<EmptyResponseProto> done) {
76 Threads.sleep(request.getMs());
77 done.run(EmptyResponseProto.getDefaultInstance());
78 }
79
80 @Override
81 public void addr(RpcController controller, EmptyRequestProto request,
82 RpcCallback<AddrResponseProto> done) {
83 done.run(AddrResponseProto.newBuilder().setAddr(RpcServer.getRemoteAddress().getHostAddress())
84 .build());
85 }
86
87 @Override
88 public void start(CoprocessorEnvironment env) throws IOException {
89
90 }
91
92 @Override
93 public void stop(CoprocessorEnvironment env) throws IOException {
94
95 }
96
97 }