Fix proto `package` and ` java_package` issue (#13559)

* Fix pb package issue

* Codestyle fix

* Fix npe in test

* Fix npe in test

* Fix test

* Codestyle fix

* Simplify config

* Update ServiceConfig.java
This commit is contained in:
namelessssssssssss 2023-12-26 15:46:42 +08:00 committed by GitHub
parent e26a22d163
commit 738f3ff69a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View File

@ -155,6 +155,12 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
*/
private Integer payload;
/**
* Whether to use java_package in IDL as path. Default use package.
* This param only available when service using native stub.
*/
private Boolean useJavaPackageAsPath;
public AbstractServiceConfig() {}
public AbstractServiceConfig(ModuleModel moduleModel) {
@ -170,7 +176,9 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
if (dynamic == null) {
dynamic = true;
}
if (useJavaPackageAsPath == null) {
useJavaPackageAsPath = false;
}
if (StringUtils.isBlank(preferSerialization)) {
preferSerialization = serialization;
}
@ -388,4 +396,13 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
public void setPayload(Integer payload) {
this.payload = payload;
}
public Boolean getUseJavaPackageAsPath() {
return useJavaPackageAsPath;
}
@Parameter(excluded = true)
public void setUseJavaPackageAsPath(Boolean useJavaPackageAsPath) {
this.useJavaPackageAsPath = useJavaPackageAsPath;
}
}

View File

@ -548,6 +548,10 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
final boolean serverService = ref instanceof ServerService;
if (serverService) {
serviceDescriptor = ((ServerService) ref).getServiceDescriptor();
if (!this.provider.getUseJavaPackageAsPath()) {
// for stub service, path always interface name or IDL package name
this.path = serviceDescriptor.getInterfaceName();
}
repository.registerService(serviceDescriptor);
} else {
serviceDescriptor = repository.registerService(getInterfaceClass());