use of com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.RetryPolicy in project disco-to-proto3-converter by googleapis.
the class ServiceConfigWriter method writeToFile.
@Override
public void writeToFile(PrintWriter writer, ProtoFile protoFile, boolean outputComments) throws IOException {
ServiceConfig serviceConfig = new ServiceConfig();
String protoPkg = protoFile.getMetadata().getProtoPkg();
RetryPolicy idempotentRetryPolicy = new RetryPolicy("0.100s", "60s", 1.3D, Arrays.asList("DEADLINE_EXCEEDED", "UNAVAILABLE"));
MethodConfig idempotentMethodConfig = new MethodConfig("600s", idempotentRetryPolicy);
MethodConfig nonidempotentMethodConfig = new MethodConfig("600s", null);
for (GrpcService service : protoFile.getServices().values()) {
for (GrpcMethod method : service.getMethods()) {
Optional<Option> opt = method.getOptions().stream().filter(o -> o.getName().equals("google.api.http")).findFirst();
Name name = new Name(protoPkg + "." + service.getName(), method.getName());
if (opt.isPresent() && opt.get().getProperties().containsKey("get")) {
idempotentMethodConfig.getName().add(name);
} else {
nonidempotentMethodConfig.getName().add(name);
}
}
}
serviceConfig.getMethodConfig().add(idempotentMethodConfig);
serviceConfig.getMethodConfig().add(nonidempotentMethodConfig);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(serviceConfig);
writer.println(json);
}
Aggregations