private RecordStorageEngine get( FileSystemAbstraction fs, PageCache pageCache,
IndexProvider indexProvider, DatabaseHealth databaseHealth, DatabaseLayout databaseLayout,
Function<BatchTransactionApplierFacade, BatchTransactionApplierFacade> transactionApplierTransformer,
Monitors monitors, LockService lockService )
{
IdGeneratorFactory idGeneratorFactory = new EphemeralIdGenerator.Factory();
ExplicitIndexProvider explicitIndexProviderLookup = mock( ExplicitIndexProvider.class );
when( explicitIndexProviderLookup.allIndexProviders() ).thenReturn( Iterables.empty() );
IndexConfigStore indexConfigStore = new IndexConfigStore( databaseLayout, fs );
JobScheduler scheduler = life.add( createScheduler() );
Config config = Config.defaults( GraphDatabaseSettings.default_schema_provider, indexProvider.getProviderDescriptor().name() );
Dependencies dependencies = new Dependencies();
dependencies.satisfyDependency( indexProvider );
BufferingIdGeneratorFactory bufferingIdGeneratorFactory =
new BufferingIdGeneratorFactory( idGeneratorFactory, IdReuseEligibility.ALWAYS,
new CommunityIdTypeConfigurationProvider() );
DefaultIndexProviderMap indexProviderMap = new DefaultIndexProviderMap( dependencies, config );
NullLogProvider nullLogProvider = NullLogProvider.getInstance();
life.add( indexProviderMap );
return life.add( new ExtendedRecordStorageEngine( databaseLayout, config, pageCache, fs,
nullLogProvider, nullLogProvider, mockedTokenHolders(),
mock( SchemaState.class ), new StandardConstraintSemantics(),
scheduler, mock( TokenNameLookup.class ), lockService, indexProviderMap,
IndexingService.NO_MONITOR, databaseHealth, explicitIndexProviderLookup, indexConfigStore,
new SynchronizedArrayIdOrderingQueue(), idGeneratorFactory,
new BufferedIdController( bufferingIdGeneratorFactory, scheduler ), transactionApplierTransformer, monitors,
RecoveryCleanupWorkCollector.immediate(), OperationalMode.single ) );
}