docs: @Override
     public BackupReceiver getBackupReceiver(String remoteSite, String remoteCache) {
        SiteCachePair toLookFor = new SiteCachePair(remoteCache, remoteSite);
        BackupReceiver backupManager = backupReceivers.get(toLookFor);
        if (backupManager != null) return backupManager;
  
        //check the default cache first
        Configuration dcc = cacheManager.getDefaultCacheConfiguration();
        if (dcc != null && isBackupForRemoteCache(remoteSite, remoteCache, dcc, EmbeddedCacheManager.DEFAULT_CACHE_NAME)) {
           Cache<Object, Object> cache = cacheManager.getCache();
           backupReceivers.putIfAbsent(toLookFor, createBackupReceiver(cache));
           toLookFor.setLocalCacheName(EmbeddedCacheManager.DEFAULT_CACHE_NAME);
           return backupReceivers.get(toLookFor);
        }
  
        Set<String> cacheNames = cacheManager.getCacheNames();
        for (String name : cacheNames) {
           Configuration cacheConfiguration = cacheManager.getCacheConfiguration(name);
           if (cacheConfiguration != null && isBackupForRemoteCache(remoteSite, remoteCache, cacheConfiguration, name)) {
              Cache<Object, Object> cache = cacheManager.getCache(name);
              toLookFor.setLocalCacheName(name);
              backupReceivers.putIfAbsent(toLookFor, createBackupReceiver(cache));
              return backupReceivers.get(toLookFor);
           }
        }
        log.debugf("Did not find any backup explicitly configured backup cache for remote cache/site: %s/%s. Using %s",
                   remoteSite, remoteCache, remoteCache);
  
        Cache<Object, Object> cache = cacheManager.getCache(remoteCache);
        backupReceivers.putIfAbsent(toLookFor, createBackupReceiver(cache));
        toLookFor.setLocalCacheName(cache.getName());
        return backupReceivers.get(toLookFor);
     }