@Override public SizeOfEngineProvider create(ServiceCreationConfiguration<SizeOfEngineProvider> configuration) { long maxTraversals = DefaultSizeOfEngineConfiguration.DEFAULT_OBJECT_GRAPH_SIZE; long maxSize = DefaultSizeOfEngineConfiguration.DEFAULT_MAX_OBJECT_SIZE; if(configuration != null) { DefaultSizeOfEngineProviderConfiguration sizeOfEngineConfiguration = (DefaultSizeOfEngineProviderConfiguration)configuration; maxTraversals = sizeOfEngineConfiguration.getMaxObjectGraphSize(); maxSize = sizeOfEngineConfiguration.getUnit().toBytes(sizeOfEngineConfiguration.getMaxObjectSize()); } return new DefaultSizeOfEngineProvider(maxTraversals, maxSize); }
@Test public void testValidArguments() { DefaultSizeOfEngineProviderConfiguration configuration = new DefaultSizeOfEngineProviderConfiguration(10l, MemoryUnit.B, 10l); assertThat(configuration.getMaxObjectGraphSize(), equalTo(10l)); assertThat(configuration.getMaxObjectSize(), equalTo(10l)); assertThat(configuration.getUnit(), equalTo(MemoryUnit.B)); } }
public DefaultSizeOfEngineProviderConfigurationParser() { super(DefaultSizeOfEngineProviderConfiguration.class, ConfigType::getHeapStore, ConfigType::setHeapStore, config -> { SizeOfEngineLimits sizeOfEngineLimits = new SizeOfEngineLimits(config); return new DefaultSizeOfEngineProviderConfiguration(sizeOfEngineLimits.getMaxObjectSize(), sizeOfEngineLimits.getUnit(), sizeOfEngineLimits.getMaxObjectGraphSize()); }, config -> new SizeofType() .withMaxObjectGraphSize(new SizeofType.MaxObjectGraphSize().withValue(BigInteger.valueOf(config.getMaxObjectGraphSize()))) .withMaxObjectSize(new MemoryType() .withValue(BigInteger.valueOf(config.getMaxObjectSize())) .withUnit(MemoryUnit.fromValue(config.getUnit().toString())) ) ); } }
/** * Adds a default {@link SizeOfEngine} configuration, that limits the max object graph to * size, to the returned builder. * * @param size the max object graph size * @return a new builder with the added configuration */ public CacheManagerBuilder<T> withDefaultSizeOfMaxObjectGraph(long size) { DefaultSizeOfEngineProviderConfiguration configuration = configBuilder.findServiceByClass(DefaultSizeOfEngineProviderConfiguration.class); if (configuration == null) { return new CacheManagerBuilder<>(this, configBuilder.addService(new DefaultSizeOfEngineProviderConfiguration(DEFAULT_MAX_OBJECT_SIZE, DEFAULT_UNIT, size))); } else { ConfigurationBuilder builder = configBuilder.removeService(configuration); return new CacheManagerBuilder<>(this, builder.addService(new DefaultSizeOfEngineProviderConfiguration(configuration .getMaxObjectSize(), configuration.getUnit(), size))); } }
@Override public SizeOfEngineProvider create(ServiceCreationConfiguration<SizeOfEngineProvider> configuration) { long maxTraversals = DefaultSizeOfEngineConfiguration.DEFAULT_OBJECT_GRAPH_SIZE; long maxSize = DefaultSizeOfEngineConfiguration.DEFAULT_MAX_OBJECT_SIZE; if(configuration != null) { DefaultSizeOfEngineProviderConfiguration sizeOfEngineConfiguration = (DefaultSizeOfEngineProviderConfiguration)configuration; maxTraversals = sizeOfEngineConfiguration.getMaxObjectGraphSize(); maxSize = sizeOfEngineConfiguration.getUnit().toBytes(sizeOfEngineConfiguration.getMaxObjectSize()); } return new DefaultSizeOfEngineProvider(maxTraversals, maxSize); }
public DefaultSizeOfEngineProviderConfigurationParser() { super(DefaultSizeOfEngineProviderConfiguration.class, ConfigType::getHeapStore, ConfigType::setHeapStore, config -> { SizeOfEngineLimits sizeOfEngineLimits = new SizeOfEngineLimits(config); return new DefaultSizeOfEngineProviderConfiguration(sizeOfEngineLimits.getMaxObjectSize(), sizeOfEngineLimits.getUnit(), sizeOfEngineLimits.getMaxObjectGraphSize()); }, config -> new SizeofType() .withMaxObjectGraphSize(new SizeofType.MaxObjectGraphSize().withValue(BigInteger.valueOf(config.getMaxObjectGraphSize()))) .withMaxObjectSize(new MemoryType() .withValue(BigInteger.valueOf(config.getMaxObjectSize())) .withUnit(MemoryUnit.fromValue(config.getUnit().toString())) ) ); } }
/** * Adds a default {@link SizeOfEngine} configuration, that limits the max object graph to * size, to the returned builder. * * @param size the max object graph size * @return a new builder with the added configuration */ public CacheManagerBuilder<T> withDefaultSizeOfMaxObjectGraph(long size) { DefaultSizeOfEngineProviderConfiguration configuration = configBuilder.findServiceByClass(DefaultSizeOfEngineProviderConfiguration.class); if (configuration == null) { return new CacheManagerBuilder<>(this, configBuilder.addService(new DefaultSizeOfEngineProviderConfiguration(DEFAULT_MAX_OBJECT_SIZE, DEFAULT_UNIT, size))); } else { ConfigurationBuilder builder = configBuilder.removeService(configuration); return new CacheManagerBuilder<>(this, builder.addService(new DefaultSizeOfEngineProviderConfiguration(configuration .getMaxObjectSize(), configuration.getUnit(), size))); } }