@Override
    public void handlerSelector(final SelectorData selectorData) {
        if (!selectorData.getContinued()) {
            RULE_CACHED_HANDLE.get().cachedHandle(CacheKeyUtils.INST.getKey(selectorData.getId(), Constants.DEFAULT_RULE), DubboRuleHandle.newInstance());
        }
        List<DubboUpstream> dubboUpstreams = GsonUtils.getInstance().fromList(selectorData.getHandle(), DubboUpstream.class);
        if (CollectionUtils.isEmpty(dubboUpstreams)) {
            return;
        }
        List<DubboUpstream> graySelectorHandle = new ArrayList<>();
        for (DubboUpstream each : dubboUpstreams) {
            if (StringUtils.isNotBlank(each.getUpstreamUrl()) && Objects.nonNull(each.isGray()) && Boolean.TRUE.equals(each.isGray())) {
                graySelectorHandle.add(each);
            }
        }
        if (CollectionUtils.isNotEmpty(graySelectorHandle)) {
            SELECTOR_CACHED_HANDLE.get().cachedHandle(selectorData.getId(), graySelectorHandle);
            UpstreamCacheManager.getInstance().submit(selectorData.getId(), convertUpstreamList(graySelectorHandle));
        } else {
            // if update gray selector is empty, remove cache
            removeSelector(selectorData);
        }
    }
The common dubbo plugin data handler.
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-dubbo-common/src/main/java/org/apache/shenyu/plugin/dubbo/common/handler/AbstractDubboPluginDataHandler.java