blob: 723a727a7defae20f23622940ccb573b61c8cee7 [file] [log] [blame]
package org.apache.dubbo.sample.tri;
import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.rpc.RpcContext;
public class WrapGreeterImpl implements WrapGreeter {
@Override
public String sayHelloLong(int len) {
StringBuilder respBuilder = new StringBuilder();
if (len > 0) {
respBuilder.append("a");
}
for (; respBuilder.length() < len; respBuilder.append(respBuilder)) {
respBuilder.append(respBuilder);
}
return respBuilder.substring(0, len);
}
@Override
public String sayHello(String request) {
return "hello," + request;
}
@Override
public void sayHelloResponseVoid(String request) {
System.out.println("call void response");
}
@Override
public String sayHelloRequestVoid() {
return "hello!void";
}
@Override
public String sayHelloException(String request) {
throw new IllegalStateException("Biz exception");
}
@Override
public String sayHelloWithAttachment(String request) {
System.out.println(RpcContext.getServerAttachment().getObjectAttachments());
RpcContext.getServerContext().setAttachment("str", "str")
.setAttachment("integer", 1)
.setAttachment("raw", new byte[]{1, 2, 3, 4});
return "hello," + request;
}
@Override
public StreamObserver<String> sayHelloStream(StreamObserver<String> response) {
return new EchoStreamObserver<>(str -> "hello," + str, response);
}
@Override
public StreamObserver<String> sayHelloStreamError(StreamObserver<String> response) {
response.onError(new Throwable("ServerStream error"));
return new EchoStreamObserver<>(str -> "hello," + str, response);
}
@Override
public void sayHelloServerStream(String request, StreamObserver<String> response) {
for (int i = 0; i < 10; i++) {
response.onNext("hello," + request);
}
response.onCompleted();
}
}