Skip to content

Commit fee6c4f

Browse files
committed
fix: For idl stub service, use idl service name for discovery (#15365)
1 parent 2af3a91 commit fee6c4f

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,20 +349,21 @@ protected void init(boolean check) {
349349
initServiceMetadata(consumer);
350350

351351
serviceMetadata.setServiceType(getServiceInterfaceClass());
352-
// TODO, uncomment this line once service key is unified
353-
serviceMetadata.generateServiceKey();
354-
355-
Map<String, String> referenceParameters = appendConfig();
356352

357353
ModuleServiceRepository repository = getScopeModel().getServiceRepository();
358354
ServiceDescriptor serviceDescriptor;
359355
if (CommonConstants.NATIVE_STUB.equals(getProxy())) {
360356
serviceDescriptor = StubSuppliers.getServiceDescriptor(interfaceName);
361357
repository.registerService(serviceDescriptor);
362358
setInterface(serviceDescriptor.getInterfaceName());
359+
serviceMetadata.setServiceInterfaceName(serviceDescriptor.getInterfaceName());
363360
} else {
364361
serviceDescriptor = repository.registerService(interfaceClass);
365362
}
363+
serviceMetadata.generateServiceKey();
364+
365+
Map<String, String> referenceParameters = appendConfig();
366+
366367
consumerModel = new ConsumerModel(
367368
serviceMetadata.getServiceKey(),
368369
proxy,

dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,14 @@
4949
import org.apache.dubbo.rpc.RpcInvocation;
5050
import org.apache.dubbo.rpc.ServerService;
5151
import org.apache.dubbo.rpc.cluster.ConfiguratorFactory;
52+
import org.apache.dubbo.rpc.model.DubboStub;
5253
import org.apache.dubbo.rpc.model.ModuleModel;
5354
import org.apache.dubbo.rpc.model.ModuleServiceRepository;
5455
import org.apache.dubbo.rpc.model.ProviderModel;
5556
import org.apache.dubbo.rpc.model.ScopeModel;
5657
import org.apache.dubbo.rpc.model.ServiceDescriptor;
5758
import org.apache.dubbo.rpc.service.GenericService;
59+
import org.apache.dubbo.rpc.stub.StubSuppliers;
5860

5961
import java.beans.Transient;
6062
import java.lang.reflect.Method;
@@ -303,6 +305,11 @@ public void init() {
303305
initServiceMetadata(provider);
304306
serviceMetadata.setServiceType(getInterfaceClass());
305307
serviceMetadata.setTarget(getRef());
308+
if (DubboStub.class.isAssignableFrom(getInterfaceClass())) {
309+
ServiceDescriptor serviceDescriptor = StubSuppliers.getServiceDescriptor(interfaceName);
310+
setInterface(serviceDescriptor.getInterfaceName());
311+
serviceMetadata.setServiceInterfaceName(serviceDescriptor.getInterfaceName());
312+
}
306313
serviceMetadata.generateServiceKey();
307314
}
308315

0 commit comments

Comments
 (0)