Search in sources :

Example 1 with Name

use of com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.Name 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);
}
Also used : MethodConfig(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.MethodConfig) GrpcMethod(com.google.cloud.discotoproto3converter.proto3.GrpcMethod) PrintWriter(java.io.PrintWriter) RetryPolicy(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.RetryPolicy) ConverterWriter(com.google.cloud.discotoproto3converter.proto3.ConverterWriter) Arrays(java.util.Arrays) Name(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.Name) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) GrpcMethod(com.google.cloud.discotoproto3converter.proto3.GrpcMethod) IOException(java.io.IOException) GrpcService(com.google.cloud.discotoproto3converter.proto3.GrpcService) MethodConfig(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.MethodConfig) Optional(java.util.Optional) Option(com.google.cloud.discotoproto3converter.proto3.Option) ProtoFile(com.google.cloud.discotoproto3converter.proto3.ProtoFile) GrpcService(com.google.cloud.discotoproto3converter.proto3.GrpcService) Option(com.google.cloud.discotoproto3converter.proto3.Option) RetryPolicy(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.RetryPolicy) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Name(com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.Name)

Aggregations

ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ConverterWriter (com.google.cloud.discotoproto3converter.proto3.ConverterWriter)1 GrpcMethod (com.google.cloud.discotoproto3converter.proto3.GrpcMethod)1 GrpcService (com.google.cloud.discotoproto3converter.proto3.GrpcService)1 Option (com.google.cloud.discotoproto3converter.proto3.Option)1 ProtoFile (com.google.cloud.discotoproto3converter.proto3.ProtoFile)1 MethodConfig (com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.MethodConfig)1 Name (com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.Name)1 RetryPolicy (com.google.cloud.discotoproto3converter.serviceconfig.ServiceConfig.RetryPolicy)1 IOException (java.io.IOException)1 PrintWriter (java.io.PrintWriter)1 Arrays (java.util.Arrays)1 Optional (java.util.Optional)1