private RegionAttributesType getRegionAttribute(RegionConfig config) { if (config.getRegionAttributes() == null) { config.setRegionAttributes(new RegionAttributesType()); } return config.getRegionAttributes(); }
private RegionAttributesType getRegionAttribute(RegionConfig config) { if (config.getRegionAttributes() == null) { config.setRegionAttributes(new RegionAttributesType()); } return config.getRegionAttributes(); }
/** * this is used to create only root regions. * * @param regionConfig the name in the regionConfig can not contain sub-regions. */ @Override public void create(RegionConfig regionConfig, Cache cache) { RegionFactory factory = getRegionFactory(cache, regionConfig.getRegionAttributes()); factory.create(regionConfig.getName()); }
private void checkForCacheLoader(String regionName, RegionConfig regionConfig) throws PreconditionException { RegionAttributesType regionAttributes = regionConfig.getRegionAttributes(); if (regionAttributes != null) { DeclarableType loaderDeclarable = regionAttributes.getCacheLoader(); if (loaderDeclarable != null) { throw new PreconditionException("The existing region " + regionName + " must not already have a cache-loader, but it has " + loaderDeclarable.getClassName()); } } }
private void checkForCacheWriter(String regionName, boolean synchronous, RegionConfig regionConfig) throws PreconditionException { if (synchronous) { RegionAttributesType writerAttributes = regionConfig.getRegionAttributes(); if (writerAttributes != null) { DeclarableType writerDeclarable = writerAttributes.getCacheWriter(); if (writerDeclarable != null) { throw new PreconditionException("The existing region " + regionName + " must not already have a cache-writer, but it has " + writerDeclarable.getClassName()); } } } }
@Test public void generatesWithConstraintAttributes() { keyConstraint = "key-const"; valueConstraint = "value-const"; generate(); assertThat(config.getRegionAttributes().getKeyConstraint()).isEqualTo("key-const"); assertThat(config.getRegionAttributes().getValueConstraint()) .isEqualTo("value-const"); }
@Test public void generatesWithDiskAttributes() { diskStore = "disk-store"; diskSynchronous = false; generate(); assertThat(config.getRegionAttributes().getDiskStoreName()).isEqualTo("disk-store"); assertThat(config.getRegionAttributes().isDiskSynchronous()).isEqualTo(false); }
@Test public void generatesWithAsyncEventQueueIds() { asyncEventQueueIds = Arrays.stream(new String[] {"id-1", "id-2"}).collect(Collectors.toSet()); generate(); assertThat(config.getRegionAttributes().getAsyncEventQueueIds()) .contains("id-1"); assertThat(config.getRegionAttributes().getAsyncEventQueueIds()) .contains("id-2"); }
@Test public void generatesWithOtherMiscSimpleFlags() { compressor = "java.lang.String"; concurrencyLevel = 1; generate(); assertThat( config.getRegionAttributes().getCompressor().getClassName()) .isEqualTo("java.lang.String"); assertThat(config.getRegionAttributes().getConcurrencyLevel()).isEqualTo("1"); }
@Test public void generatesWithGatewayFlags() { gatewaySenderIds = Arrays.stream(new String[] {"some-id", "some-other-id"}).collect(Collectors.toSet()); generate(); assertThat(config.getRegionAttributes().getGatewaySenderIds()) .contains("some-id"); assertThat(config.getRegionAttributes().getGatewaySenderIds()) .contains("some-other-id"); }
@Test public void alterWithNoCacheListener() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-listener=''"); List<DeclarableType> cacheListeners = deltaConfig.getRegionAttributes().getCacheListeners(); assertThat(cacheListeners).hasSize(1); assertThat(cacheListeners.get(0)).isEqualTo(DeclarableType.EMPTY); RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.getCacheListeners().add(new DeclarableType("ghi")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); List<DeclarableType> updatedCacheListeners = existingRegionConfig.getRegionAttributes().getCacheListeners(); assertThat(updatedCacheListeners).hasSize(0); }
@Test public void generatesWithCacheClasses() { cacheListeners = new HashSet<>(); cacheListeners.add(new ClassName<>("java.lang.String")); cacheLoader = new ClassName("java.lang.String"); cacheWriter = new ClassName("java.lang.String"); generate(); List<DeclarableType> cacheListeners = config.getRegionAttributes().getCacheListeners(); assertThat(cacheListeners).isNotNull(); assertThat(cacheListeners.get(0).getClassName()).isEqualTo("java.lang.String"); assertThat( config.getRegionAttributes().getCacheLoader().getClassName()) .isEqualTo("java.lang.String"); assertThat( config.getRegionAttributes().getCacheWriter().getClassName()) .isEqualTo("java.lang.String"); }
@Test public void generatesWithPrAttributes() { partitionArgs = new PartitionArgs("colo-with", 100, 100L, 100, 100L, 100L, 100, "java.lang.String"); generate(); RegionAttributesType.PartitionAttributes partitionAttributes = config.getRegionAttributes().getPartitionAttributes(); assertThat(partitionAttributes).isNotNull(); assertThat(partitionAttributes.getColocatedWith()).isEqualTo("colo-with"); assertThat(partitionAttributes.getLocalMaxMemory()).isEqualTo("100"); assertThat(partitionAttributes.getRecoveryDelay()).isEqualTo("100"); assertThat(partitionAttributes.getRedundantCopies()).isEqualTo("100"); assertThat(partitionAttributes.getStartupRecoveryDelay()).isEqualTo("100"); assertThat(partitionAttributes.getTotalMaxMemory()).isEqualTo("100"); assertThat(partitionAttributes.getTotalNumBuckets()).isEqualTo("100"); DeclarableType partitionResolverType = partitionAttributes.getPartitionResolver(); assertThat(partitionResolverType.getClassName()).isEqualTo("java.lang.String"); }
@Test public void alterWithAsyncEventQueueIds() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --async-event-queue-id=abc,def"); assertThat(deltaConfig.getRegionAttributes().getAsyncEventQueueIds()).isEqualTo("abc,def"); assertThat(deltaConfig.getRegionAttributes().getGatewaySenderIds()).isNull(); RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); existingAttributes.setAsyncEventQueueIds("xyz"); existingAttributes.setGatewaySenderIds("xyz"); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getGatewaySenderIds()).isEqualTo("xyz"); assertThat(existingAttributes.getAsyncEventQueueIds()).isEqualTo("abc,def"); }
@Test public void generatesWithEvictionMaxEntry() { evictionAction = EvictionAction.OVERFLOW_TO_DISK.toString(); evictionEntryCount = 1; generate(); RegionAttributesType.EvictionAttributes evictionAttributes = config.getRegionAttributes().getEvictionAttributes(); assertThat(evictionAttributes).isNotNull(); assertThat(evictionAttributes.getLruEntryCount().getAction()) .isSameAs(EnumActionDestroyOverflow.OVERFLOW_TO_DISK); assertThat(evictionAttributes.getLruEntryCount().getMaximum()).isEqualTo("1"); }
@Test public void generatesWithEvictionMaxMemory() { evictionAction = EvictionAction.LOCAL_DESTROY.toString(); evictionMaxMemory = 100; generate(); RegionAttributesType.EvictionAttributes evictionAttributes = config.getRegionAttributes().getEvictionAttributes(); assertThat(evictionAttributes).isNotNull(); assertThat(evictionAttributes.getLruMemorySize().getAction()) .isSameAs(EnumActionDestroyOverflow.LOCAL_DESTROY); assertThat(evictionAttributes.getLruMemorySize().getMaximum()).isEqualTo("100"); }
@Test public void alterWithNoAsyncEventQueueIds() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --async-event-queue-id=''"); assertThat(deltaConfig.getRegionAttributes().getAsyncEventQueueIds()).isEqualTo(""); assertThat(deltaConfig.getRegionAttributes().getGatewaySenderIds()).isNull(); RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); existingAttributes.setAsyncEventQueueIds("xyz"); existingAttributes.setGatewaySenderIds("xyz"); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getGatewaySenderIds()).isEqualTo("xyz"); assertThat(existingAttributes.getAsyncEventQueueIds()).isEqualTo(""); assertThat(existingAttributes.getAsyncEventQueueIdsAsSet()).isNotNull().isEmpty(); }
@Test public void generatesWithEvictionHeapPercentageFlags() { evictionAction = EvictionAction.LOCAL_DESTROY.toString(); evictionObjectSizer = "java.lang.String"; generate(); RegionAttributesType.EvictionAttributes evictionAttributes = config.getRegionAttributes().getEvictionAttributes(); assertThat(evictionAttributes).isNotNull(); assertThat(evictionAttributes.getLruHeapPercentage().getAction()) .isSameAs(EnumActionDestroyOverflow.LOCAL_DESTROY); assertThat(evictionAttributes.getLruHeapPercentage().getClassName()) .isEqualTo("java.lang.String"); }
@Test public void alterWithNoCacheLoader() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-loader=''"); RegionAttributesType deltaAttributes = deltaConfig.getRegionAttributes(); assertThat(deltaAttributes.getCacheLoader()).isEqualTo(DeclarableType.EMPTY); RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.setCacheLoader(new DeclarableType("def")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); // after the update the cache loader is null assertThat(existingAttributes.getCacheLoader()).isNull(); }
@Test public void alterWithCloningEnabled() { RegionAttributesType regionAttributes = getDeltaRegionConfig("alter region --name=regionA --enable-cloning=false") .getRegionAttributes(); assertThat(regionAttributes.isCloningEnabled()).isFalse(); assertThat(regionAttributes.getAsyncEventQueueIds()).isNull(); assertThat(regionAttributes.getDataPolicy()).isNull(); assertThat(regionAttributes.getGatewaySenderIds()).isNull(); assertThat(regionAttributes.getCacheLoader()).isNull(); assertThat(regionAttributes.getCacheWriter()).isNull(); assertThat(regionAttributes.getCacheListeners()).isNotNull().isEmpty(); assertThat(regionAttributes.getEvictionAttributes()).isNull(); assertThat(regionAttributes.getEntryIdleTime()).isNull(); assertThat(regionAttributes.getEntryTimeToLive()).isNull(); assertThat(regionAttributes.getRegionIdleTime()).isNull(); assertThat(regionAttributes.getRegionTimeToLive()).isNull(); }