use of io.pravega.segmentstore.server.mocks.LocalSegmentContainerManager in project pravega by pravega.
the class ServiceBuilder method newInMemoryBuilder.
/**
* Creates a new instance of the ServiceBuilder class which is contained in memory. Any data added to this service will
* be lost when the object is garbage collected or the process terminates.
*
* @param builderConfig The ServiceBuilderConfig to use.
* @param executorBuilder A Function that, given a thread count and a pool name, creates a ScheduledExecutorService
* with the given number of threads that have the given name as prefix.
*/
@VisibleForTesting
public static ServiceBuilder newInMemoryBuilder(ServiceBuilderConfig builderConfig, ExecutorBuilder executorBuilder) {
ServiceConfig serviceConfig = builderConfig.getConfig(ServiceConfig::builder);
ServiceBuilder builder;
if (serviceConfig.isReadOnlySegmentStore()) {
// Only components required for ReadOnly SegmentStore.
builder = new ReadOnlyServiceBuilder(builderConfig, serviceConfig, executorBuilder);
} else {
// Components that are required for general SegmentStore.
builder = new ServiceBuilder(builderConfig, serviceConfig, executorBuilder).withCacheFactory(setup -> new InMemoryCacheFactory());
}
// Components that are required for all types of SegmentStore.
return builder.withDataLogFactory(setup -> new InMemoryDurableDataLogFactory(setup.getCoreExecutor())).withContainerManager(setup -> new LocalSegmentContainerManager(setup.getContainerRegistry(), setup.getSegmentToContainerMapper())).withStorageFactory(setup -> new InMemoryStorageFactory(setup.getStorageExecutor())).withStreamSegmentStore(setup -> new StreamSegmentService(setup.getContainerRegistry(), setup.getSegmentToContainerMapper()));
}
Aggregations