private List<DiscoveryUpstreamData> convert(final String pluginName, final String handle) {
        LOG.info("saveOrUpdateSelectorData convert handle={}", handle);
        List<DivideUpstream> divideUpstreams = GsonUtils.getInstance().fromList(handle, DivideUpstream.class);
        if (CollectionUtils.isEmpty(divideUpstreams)) {
            return Collections.emptyList();
        }
        return divideUpstreams.stream().map(up -> {
            DiscoveryUpstreamData upstreamData = new DiscoveryUpstreamData();
            upstreamData.setUrl(up.getUpstreamUrl());
            upstreamData.setProtocol(up.getProtocol());
            upstreamData.setWeight(up.getWeight());
            upstreamData.setStatus(up.isStatus() ? 0 : 1);
            Properties properties = new Properties();
            properties.setProperty("warmup", String.valueOf(up.getWarmup()));
            properties.setProperty("upstreamHost", String.valueOf(up.getUpstreamHost()));
            upstreamData.setDateUpdated(Optional.of(up.getTimestamp()).map(Timestamp::new).orElse(new Timestamp(System.currentTimeMillis())));
            upstreamData.setProps(GsonUtils.getInstance().toJson(properties));
            upstreamData.setDateCreated(Optional.of(up.getTimestamp()).map(Timestamp::new).orElse(new Timestamp(System.currentTimeMillis())));
            return upstreamData;
        }).collect(Collectors.toList());
    }
Save or update SelectorData by SelectorData.

@param selectorData SelectorData
shenyu-kubernetes-controller/src/main/java/org/apache/shenyu/k8s/repository/ShenyuCacheRepository.java