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; 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() {}
public AbstractServiceConfig(ModuleModel moduleModel) { public AbstractServiceConfig(ModuleModel moduleModel) {
@ -170,7 +176,9 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
if (dynamic == null) { if (dynamic == null) {
dynamic = true; dynamic = true;
} }
if (useJavaPackageAsPath == null) {
useJavaPackageAsPath = false;
}
if (StringUtils.isBlank(preferSerialization)) { if (StringUtils.isBlank(preferSerialization)) {
preferSerialization = serialization; preferSerialization = serialization;
} }
@ -388,4 +396,13 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
public void setPayload(Integer payload) { public void setPayload(Integer payload) {
this.payload = 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; final boolean serverService = ref instanceof ServerService;
if (serverService) { if (serverService) {
serviceDescriptor = ((ServerService) ref).getServiceDescriptor(); 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); repository.registerService(serviceDescriptor);
} else { } else {
serviceDescriptor = repository.registerService(getInterfaceClass()); serviceDescriptor = repository.registerService(getInterfaceClass());