private void parseBackupFor(XMLExtendedStreamReader reader, ConfigurationBuilder ccb) throws XMLStreamException { ccb.sites().backupFor().reset(); BackupForBuilder backupForBuilder = ccb.sites().backupFor(); for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case REMOTE_SITE: backupForBuilder.remoteSite(value); break; case REMOTE_CACHE: backupForBuilder.remoteCache(value); break; default: throw ParseUtils.unexpectedElement(reader); } } ParseUtils.requireNoContent(reader); }
private void parseLocalSites(final XMLExtendedStreamReader reader, final ConfigurationBuilderHolder holder) throws XMLStreamException { ConfigurationBuilder ccb = holder.getCurrentConfigurationBuilder(); ParseUtils.requireNoAttributes(reader); boolean isEmptyTag = false; while (reader.hasNext() && (reader.nextTag() != XMLStreamConstants.END_ELEMENT)) { isEmptyTag = true; Element element = Element.forName(reader.getLocalName()); switch (element) { case BACKUPS: //if backups is present then remove any existing backups as they were added // by the default config. ccb.sites().backups().clear(); parseBackups(reader, ccb); break; case BACKUP_FOR: parseBackupFor(reader, ccb); break; default: throw ParseUtils.unexpectedElement(reader); } } if (!isEmptyTag) { ccb.sites().backups().clear(); ccb.sites().backupFor().reset(); } }
@Override protected EmbeddedCacheManager createCacheManager() throws Exception { GlobalConfigurationBuilder lonGc = GlobalConfigurationBuilder.defaultClusteredBuilder(); lonGc.site().localSite("LON"); ConfigurationBuilder lon = getDefaultClusteredCacheConfig(CacheMode.LOCAL, false); lon.sites().addBackup() .site("NYC") .strategy(BackupConfiguration.BackupStrategy.SYNC); nycBackup = getDefaultClusteredCacheConfig(CacheMode.LOCAL, false); nycBackup.sites().backupFor().remoteSite("NYC").defaultRemoteCache(); // Remember to not do nothing else other than // creating the cache manager in order to avoid leaks return TestCacheManagerFactory.createClusteredCacheManager(lonGc, lon); }
@Override protected void createSites() { ConfigurationBuilder lon = lonConfigurationBuilder(); ConfigurationBuilder nyc = getNycActiveConfig(); nyc.sites().addBackup() .site(LON) .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addInUseBackupSite(LON); createSite(LON, initialClusterSize, globalConfigurationBuilderForSite(LON), lon); createSite(NYC, initialClusterSize, globalConfigurationBuilderForSite(NYC), nyc); if (!implicitBackupCache) { ConfigurationBuilder nycBackup = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, false); nycBackup.sites().backupFor().remoteSite(NYC).defaultRemoteCache(); startCache(LON, "nycBackup", nycBackup); ConfigurationBuilder lonBackup = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, isLonBackupTransactional); lonBackup.sites().backupFor().remoteSite(LON).defaultRemoteCache(); startCache(NYC, "lonBackup", lonBackup); Configuration lonBackupConfig = cache(NYC, "lonBackup", 0).getCacheConfiguration(); assertTrue(lonBackupConfig.sites().backupFor().isBackupFor(LON, CacheContainer.DEFAULT_CACHE_NAME)); } waitForSites(LON, NYC); }
@Override protected void createSites() { GlobalConfigurationBuilder lonGc = GlobalConfigurationBuilder.defaultClusteredBuilder(); lonGc.site().localSite("LON"); ConfigurationBuilder lonDefault = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true); lonDefault.sites().addBackup() .site("NYC") .backupFailurePolicy(BackupFailurePolicy.FAIL) .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addInUseBackupSite("NYC"); ConfigurationBuilder someCache = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true); GlobalConfigurationBuilder nycGc = GlobalConfigurationBuilder.defaultClusteredBuilder(); nycGc.site().localSite("NYC"); ConfigurationBuilder nycDefault = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true); nycDefault.sites().addBackup() .site("LON") .strategy(BackupConfiguration.BackupStrategy.SYNC) .sites().addInUseBackupSite("LON"); ConfigurationBuilder someCacheBackup = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true); someCacheBackup.sites().backupFor().remoteCache("someCache").remoteSite("LON"); someCacheBackup.sites().disableBackups(true); createSite("LON", 2, lonGc, lonDefault); createSite("NYC", 2, nycGc, nycDefault); startCache("LON", "backup", getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true)); startCache("NYC", "backup", getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true)); startCache("LON", "someCache", someCache); startCache("NYC", "someCacheBackup", someCacheBackup); }