public static FusionIndexProvider newInstance( PageCache pageCache, File databaseDirectory, FileSystemAbstraction fs,
IndexProvider.Monitor monitor, Config config, OperationalMode operationalMode,
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
boolean readOnly = IndexProviderFactoryUtil.isReadOnly( config, operationalMode );
boolean archiveFailedIndex = config.get( GraphDatabaseSettings.archive_failed_index );
IndexDirectoryStructure.Factory luceneDirStructure = directoriesByProviderKey( databaseDirectory );
IndexDirectoryStructure.Factory childDirectoryStructure = subProviderDirectoryStructure( databaseDirectory );
LuceneIndexProvider lucene = IndexProviderFactoryUtil.luceneProvider( fs, luceneDirStructure, monitor, config, operationalMode );
TemporalIndexProvider temporal =
IndexProviderFactoryUtil.temporalProvider( pageCache, fs, childDirectoryStructure, monitor, recoveryCleanupWorkCollector, readOnly );
SpatialIndexProvider spatial =
IndexProviderFactoryUtil.spatialProvider( pageCache, fs, childDirectoryStructure, monitor, recoveryCleanupWorkCollector, readOnly, config );
return new FusionIndexProvider( EMPTY, EMPTY, spatial, temporal, lucene, new FusionSlotSelector00(),
PROVIDER_DESCRIPTOR, directoriesByProvider( databaseDirectory ), fs, archiveFailedIndex );
}