diff --git a/joylive-plugin/joylive-registry/joylive-registry-dubbo2.7/src/main/java/com/jd/live/agent/plugin/registry/dubbo/v2_7/interceptor/InitServiceMetadataInterceptor.java b/joylive-plugin/joylive-registry/joylive-registry-dubbo2.7/src/main/java/com/jd/live/agent/plugin/registry/dubbo/v2_7/interceptor/InitServiceMetadataInterceptor.java index 2137438e1..b9e3604b3 100644 --- a/joylive-plugin/joylive-registry/joylive-registry-dubbo2.7/src/main/java/com/jd/live/agent/plugin/registry/dubbo/v2_7/interceptor/InitServiceMetadataInterceptor.java +++ b/joylive-plugin/joylive-registry/joylive-registry-dubbo2.7/src/main/java/com/jd/live/agent/plugin/registry/dubbo/v2_7/interceptor/InitServiceMetadataInterceptor.java @@ -19,11 +19,9 @@ import com.jd.live.agent.core.plugin.definition.InterceptorAdaptor; import com.jd.live.agent.governance.policy.PolicySupplier; import com.jd.live.agent.governance.policy.PolicyType; -import org.apache.dubbo.config.AbstractInterfaceConfig; -import org.apache.dubbo.config.AbstractReferenceConfig; -import org.apache.dubbo.config.AbstractServiceConfig; -import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.*; +import java.util.HashMap; import java.util.Map; import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY; @@ -60,6 +58,16 @@ public void onEnter(ExecutableContext ctx) { type = getRegistryType((AbstractReferenceConfig) config); } if ((type & REGISTRY_TYPE_SERVICE) > 0) { + if ((type & REGISTRY_TYPE_INTERFACE) == 0) { + // Only register with service mode + ApplicationConfig applicationConfig = config.getApplication(); + Map map = applicationConfig.getParameters(); + if (map == null) { + map = new HashMap<>(); + applicationConfig.setParameters(map); + } + map.put(REGISTRY_TYPE_KEY, SERVICE_REGISTRY_TYPE); + } policySupplier.subscribe(config.getApplication().getName(), PolicyType.SERVICE_POLICY); } if ((type & REGISTRY_TYPE_INTERFACE) > 0) {