diff --git a/extensions/grpc/protoc/src/main/java/io/quarkus/grpc/protoc/plugin/MutinyGrpcGenerator.java b/extensions/grpc/protoc/src/main/java/io/quarkus/grpc/protoc/plugin/MutinyGrpcGenerator.java index 65743431321b81..308b8657967fc9 100644 --- a/extensions/grpc/protoc/src/main/java/io/quarkus/grpc/protoc/plugin/MutinyGrpcGenerator.java +++ b/extensions/grpc/protoc/src/main/java/io/quarkus/grpc/protoc/plugin/MutinyGrpcGenerator.java @@ -3,6 +3,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.stream.Collectors; import com.google.common.base.Strings; @@ -19,6 +21,8 @@ */ public class MutinyGrpcGenerator extends Generator { + private static final Logger log = Logger.getLogger(MutinyGrpcGenerator.class.getName()); + private static final int SERVICE_NUMBER_OF_PATHS = 2; private static final int METHOD_NUMBER_OF_PATHS = 4; public static final String CLASS_PREFIX = "Mutiny"; @@ -41,9 +45,25 @@ public List generateFiles(PluginProtos. .collect(Collectors.toList()); List services = findServices(protosToGenerate, typeMap); + validateServices(services); return generateFiles(services); } + private void validateServices(List services) { + boolean failed = false; + for (ServiceContext service : services) { + if (service.packageName == null || service.packageName.isBlank()) { + log.log(Level.SEVERE, "Using the default java package is not supported for " + + "Quarkus RPC code generation. Please specify `option java_package = \"your.package\"` in " + + service.protoName); + failed = true; + } + } + if (failed) { + throw new IllegalArgumentException("Code generation failed. Please check the log above for details."); + } + } + private List findServices(List protos, ProtoTypeMap typeMap) { List contexts = new ArrayList<>();