You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ea...@apache.org on 2023/12/26 07:46:48 UTC
(dubbo) branch 3.2 updated: Fix proto `package` and ` java_package` issue (#13559)
This is an automated email from the ASF dual-hosted git repository.
earthchen pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new 738f3ff69a Fix proto `package` and ` java_package` issue (#13559)
738f3ff69a is described below
commit 738f3ff69a01bcfa9b6b473c8cc51e69a33d54bf
Author: namelessssssssssss <10...@users.noreply.github.com>
AuthorDate: Tue Dec 26 15:46:42 2023 +0800
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
---
.../apache/dubbo/config/AbstractServiceConfig.java | 19 ++++++++++++++++++-
.../java/org/apache/dubbo/config/ServiceConfig.java | 4 ++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
index a88bbd8369..c1bfe1c59b 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
@@ -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;
+ }
}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index f63ddc35ce..2d23af3d85 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -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());