MCPcopy Create free account
hub / github.com/grpc/grpc-java / startServer

Method startServer

xds/src/test/java/io/grpc/xds/DataPlaneRule.java:128–180  ·  view source on GitHub ↗
(Map<String, ?> bootstrapOverride)

Source from the content-addressed store, hash-verified

126 }
127
128 private void startServer(Map<String, ?> bootstrapOverride) throws Exception {
129 final String[] authority = new String[1];
130 ServerInterceptor metadataInterceptor = new ServerInterceptor() {
131 @Override
132 public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call,
133 Metadata requestHeaders, ServerCallHandler<ReqT, RespT> next) {
134 authority[0] = call.getAuthority();
135 logger.fine("Received following metadata: " + requestHeaders);
136
137 // Make a copy of the headers so that it can be read in a thread-safe manner when copying
138 // it to the response headers.
139 Metadata headersToReturn = new Metadata();
140 headersToReturn.merge(requestHeaders);
141
142 return next.startCall(new SimpleForwardingServerCall<ReqT, RespT>(call) {
143 @Override
144 public void sendHeaders(Metadata responseHeaders) {
145 responseHeaders.merge(headersToReturn);
146 super.sendHeaders(responseHeaders);
147 }
148
149 @Override
150 public void close(Status status, Metadata trailers) {
151 super.close(status, trailers);
152 }
153 }, requestHeaders);
154 }
155 };
156
157 SimpleServiceGrpc.SimpleServiceImplBase simpleServiceImpl =
158 new SimpleServiceGrpc.SimpleServiceImplBase() {
159 @Override
160 public void unaryRpc(
161 SimpleRequest request, StreamObserver<SimpleResponse> responseObserver) {
162 String responseMsg = "Hi, xDS!";
163 if (authority[0] != null) {
164 responseMsg += " Authority= " + authority[0];
165 }
166 SimpleResponse response =
167 SimpleResponse.newBuilder().setResponseMessage(responseMsg).build();
168 responseObserver.onNext(response);
169 responseObserver.onCompleted();
170 }
171 };
172
173 XdsServerBuilder serverBuilder = XdsServerBuilder.forPort(
174 0, InsecureServerCredentials.create())
175 .addService(simpleServiceImpl)
176 .intercept(metadataInterceptor)
177 .overrideBootstrapForTest(bootstrapOverride);
178 server = serverBuilder.build().start();
179 logger.log(Level.FINE, "data plane server started");
180 }
181}

Callers 1

startingMethod · 0.95

Calls 8

forPortMethod · 0.95
createMethod · 0.95
buildMethod · 0.95
startMethod · 0.65
interceptMethod · 0.45
addServiceMethod · 0.45
logMethod · 0.45

Tested by

no test coverage detected