public Boolean refreshAddressList()

in appactive-java-client/client-bridge/client-bridge-rpc-base/src/main/java/io/appactive/rpc/base/consumer/RPCAddressFilterByUnitServiceImpl.java [69:90]


    public Boolean refreshAddressList(String providerAppName,String servicePrimaryName, List<T> list, String version, String resourceActive) {
        if (CollectionUtils.isEmpty(list)){
            emptyCache(providerAppName, servicePrimaryName);
        }
        if (version !=null && SERVICE_REMOTE_ADDRESS_MAP.containsKey(servicePrimaryName)){
            AddressActive<T> addressActive = SERVICE_REMOTE_ADDRESS_MAP.get(servicePrimaryName);
            if (list.equals(addressActive.getOriginalList())
                    && version.equalsIgnoreCase(getMetaMapFromServer(addressActive.getOriginalList().get(0),RPCConstant.SPRING_CLOUD_SERVICE_META_VERSION))
            ){
                // both servers and uris equals with current ones, no need to refresh
                return false;
            }
        }
        String resourceType = resourceActive == null ? getResourceType(servicePrimaryName, list, version) : resourceActive;
        Map<String, List<T>> unitServersMap = transToUnitFlagServerListMap(list);

        AddressActive<T> addressActive = new AddressActive<T>(resourceType,unitServersMap,list);

        SERVICE_REMOTE_ADDRESS_MAP.put(servicePrimaryName,addressActive);
        logger.info("caches of providerAppName:{}, servicePrimaryName:{} just got refreshed, new version:{}",providerAppName,servicePrimaryName,version);
        return true;
    }