diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/AbstractIndexProviderFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/AbstractIndexProviderFactory.java
new file mode 100644
index 0000000000000..b811b9fe282ef
--- /dev/null
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/AbstractIndexProviderFactory.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2002-2018 "Neo4j,"
+ * Neo4j Sweden AB [http://neo4j.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.kernel.impl.index.schema;
+
+import java.io.File;
+
+import org.neo4j.graphdb.factory.GraphDatabaseSettings;
+import org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector;
+import org.neo4j.io.fs.FileSystemAbstraction;
+import org.neo4j.io.pagecache.PageCache;
+import org.neo4j.kernel.api.index.IndexProvider;
+import org.neo4j.kernel.api.index.LoggingMonitor;
+import org.neo4j.kernel.configuration.Config;
+import org.neo4j.kernel.extension.ExtensionType;
+import org.neo4j.kernel.extension.KernelExtensionFactory;
+import org.neo4j.kernel.impl.factory.OperationalMode;
+import org.neo4j.kernel.impl.logging.LogService;
+import org.neo4j.kernel.impl.spi.KernelContext;
+import org.neo4j.kernel.lifecycle.Lifecycle;
+import org.neo4j.kernel.monitoring.Monitors;
+import org.neo4j.logging.Log;
+
+public abstract class AbstractIndexProviderFactory extends KernelExtensionFactory
+{
+ protected AbstractIndexProviderFactory( String key )
+ {
+ super( ExtensionType.DATABASE, key );
+ }
+
+ @Override
+ public Lifecycle newInstance( KernelContext context, Dependencies dependencies )
+ {
+ PageCache pageCache = dependencies.pageCache();
+ File databaseDir = context.directory();
+ FileSystemAbstraction fs = dependencies.fileSystem();
+ Log log = dependencies.getLogService().getInternalLogProvider().getLog( loggingClass() );
+ Monitors monitors = dependencies.monitors();
+ monitors.addMonitorListener( new LoggingMonitor( log ), descriptorString() );
+ IndexProvider.Monitor monitor = monitors.newMonitor( IndexProvider.Monitor.class, descriptorString() );
+ Config config = dependencies.getConfig();
+ OperationalMode operationalMode = context.databaseInfo().operationalMode;
+ RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
+ return internalCreate( pageCache, databaseDir, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
+ }
+
+ protected static int adjustPriorityForConfig( int basePriority, GraphDatabaseSettings.SchemaIndex target, Config config )
+ {
+ String defaultSchemaProvider = config.get( GraphDatabaseSettings.default_schema_provider );
+ return target.providerIdentifier().equals( defaultSchemaProvider ) ? 100 : basePriority;
+ }
+
+ protected abstract Class loggingClass();
+
+ protected abstract String descriptorString();
+
+ protected abstract IndexProvider internalCreate( PageCache pageCache, File storeDir, FileSystemAbstraction fs,
+ IndexProvider.Monitor monitor, Config config, OperationalMode operationalMode,
+ RecoveryCleanupWorkCollector recoveryCleanupWorkCollector );
+
+ public interface Dependencies
+ {
+ PageCache pageCache();
+
+ FileSystemAbstraction fileSystem();
+
+ LogService getLogService();
+
+ Monitors monitors();
+
+ Config getConfig();
+
+ RecoveryCleanupWorkCollector recoveryCleanupWorkCollector();
+ }
+}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/GenericNativeIndexProviderFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/GenericNativeIndexProviderFactory.java
index 03115603e24f3..f6db010fe3ca9 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/GenericNativeIndexProviderFactory.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/GenericNativeIndexProviderFactory.java
@@ -28,70 +28,45 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexDirectoryStructure;
import org.neo4j.kernel.api.index.IndexProvider;
-import org.neo4j.kernel.api.index.LoggingMonitor;
import org.neo4j.kernel.configuration.Config;
-import org.neo4j.kernel.extension.ExtensionType;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.factory.OperationalMode;
-import org.neo4j.kernel.impl.index.schema.fusion.FusionIndexProvider;
-import org.neo4j.kernel.impl.logging.LogService;
-import org.neo4j.kernel.impl.spi.KernelContext;
-import org.neo4j.kernel.monitoring.Monitors;
-import org.neo4j.logging.Log;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;
-import static org.neo4j.kernel.impl.index.schema.GenericNativeIndexProvider.DESCRIPTOR;
@Service.Implementation( KernelExtensionFactory.class )
-public class GenericNativeIndexProviderFactory extends KernelExtensionFactory
+public class GenericNativeIndexProviderFactory extends AbstractIndexProviderFactory
{
private static final int PRIORITY = 0; // TODO: Zero because should not be default yet.
public GenericNativeIndexProviderFactory()
{
- super( ExtensionType.DATABASE, GenericNativeIndexProvider.KEY );
+ super( GenericNativeIndexProvider.KEY );
}
- public interface Dependencies
+ @Override
+ protected Class loggingClass()
{
- PageCache pageCache();
-
- FileSystemAbstraction fileSystem();
-
- LogService getLogService();
-
- Monitors monitors();
-
- Config getConfig();
+ return GenericNativeIndexProvider.class;
+ }
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector();
+ @Override
+ protected String descriptorString()
+ {
+ return GenericNativeIndexProvider.DESCRIPTOR.toString();
}
@Override
- public GenericNativeIndexProvider newInstance( KernelContext context, Dependencies dependencies )
+ protected GenericNativeIndexProvider internalCreate( PageCache pageCache, File storeDir, FileSystemAbstraction fs, IndexProvider.Monitor monitor, Config config,
+ OperationalMode operationalMode, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
- PageCache pageCache = dependencies.pageCache();
- File storeDir = context.storeDir();
- FileSystemAbstraction fs = dependencies.fileSystem();
- Log log = dependencies.getLogService().getInternalLogProvider().getLog( FusionIndexProvider.class );
- Monitors monitors = dependencies.monitors();
- monitors.addMonitorListener( new LoggingMonitor( log ), DESCRIPTOR.toString() );
- IndexProvider.Monitor monitor = monitors.newMonitor( IndexProvider.Monitor.class, DESCRIPTOR.toString() );
- Config config = dependencies.getConfig();
- OperationalMode operationalMode = context.databaseInfo().operationalMode;
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
return create( pageCache, storeDir, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
}
public static GenericNativeIndexProvider create( PageCache pageCache, File storeDir, FileSystemAbstraction fs, IndexProvider.Monitor monitor, Config config,
OperationalMode mode, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
- String selectedSchemaProvider = config.get( GraphDatabaseSettings.default_schema_provider );
- int priority = PRIORITY;
- if ( GraphDatabaseSettings.SchemaIndex.NATIVE_GBPTREE10.providerIdentifier().equals( selectedSchemaProvider ) )
- {
- priority = 100;
- }
+ int priority = adjustPriorityForConfig( PRIORITY, GraphDatabaseSettings.SchemaIndex.NATIVE_GBPTREE10, config );
IndexDirectoryStructure.Factory directoryStructure = directoriesByProvider( storeDir );
boolean readOnly = config.get( GraphDatabaseSettings.read_only ) && (OperationalMode.single == mode);
diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/LuceneIndexProviderFactory.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/LuceneIndexProviderFactory.java
index 92bfa7c202cb7..e5ff26ff1da92 100644
--- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/LuceneIndexProviderFactory.java
+++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/LuceneIndexProviderFactory.java
@@ -28,67 +28,48 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexDirectoryStructure;
import org.neo4j.kernel.api.index.IndexProvider;
-import org.neo4j.kernel.api.index.LoggingMonitor;
import org.neo4j.kernel.configuration.Config;
-import org.neo4j.kernel.extension.ExtensionType;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.factory.OperationalMode;
+import org.neo4j.kernel.impl.index.schema.AbstractIndexProviderFactory;
import org.neo4j.kernel.impl.index.schema.SpatialIndexProvider;
import org.neo4j.kernel.impl.index.schema.TemporalIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionSlotSelector00;
-import org.neo4j.kernel.impl.logging.LogService;
-import org.neo4j.kernel.impl.spi.KernelContext;
-import org.neo4j.kernel.monitoring.Monitors;
-import org.neo4j.logging.Log;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProviderKey;
import static org.neo4j.kernel.api.index.IndexProvider.EMPTY;
@Service.Implementation( KernelExtensionFactory.class )
-public class LuceneIndexProviderFactory extends
- KernelExtensionFactory
+public class LuceneIndexProviderFactory extends AbstractIndexProviderFactory
{
- public static final String KEY = "lucene";
+ public static final String KEY = GraphDatabaseSettings.SchemaIndex.LUCENE10.providerName();
+ public static final String VERSION = GraphDatabaseSettings.SchemaIndex.LUCENE10.providerVersion();
+ public static final IndexProvider.Descriptor PROVIDER_DESCRIPTOR = new IndexProvider.Descriptor( KEY, VERSION );
- public static final IndexProvider.Descriptor PROVIDER_DESCRIPTOR =
- new IndexProvider.Descriptor( KEY, "1.0" );
-
- public interface Dependencies
+ public LuceneIndexProviderFactory()
{
- PageCache pageCache();
-
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector();
-
- Config getConfig();
-
- Monitors monitors();
-
- LogService getLogService();
+ super( KEY );
+ }
- FileSystemAbstraction fileSystem();
+ @Override
+ protected Class loggingClass()
+ {
+ return LuceneIndexProvider.class;
}
- public LuceneIndexProviderFactory()
+ @Override
+ protected String descriptorString()
{
- super( ExtensionType.DATABASE, KEY );
+ return PROVIDER_DESCRIPTOR.toString();
}
@Override
- public IndexProvider newInstance( KernelContext context, Dependencies dependencies )
+ protected IndexProvider internalCreate( PageCache pageCache, File storeDir, FileSystemAbstraction fs, IndexProvider.Monitor monitor, Config config,
+ OperationalMode operationalMode, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
- PageCache pageCache = dependencies.pageCache();
- File databaseDirectory = context.directory();
- FileSystemAbstraction fs = dependencies.fileSystem();
- Monitors monitors = dependencies.monitors();
- Log log = dependencies.getLogService().getInternalLogProvider().getLog( LuceneIndexProvider.class );
- monitors.addMonitorListener( new LoggingMonitor( log ), PROVIDER_DESCRIPTOR.toString() );
- IndexProvider.Monitor monitor = monitors.newMonitor( IndexProvider.Monitor.class, KEY );
- Config config = dependencies.getConfig();
- OperationalMode operationalMode = context.databaseInfo().operationalMode;
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
- return newInstance( pageCache, databaseDirectory, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
+ return newInstance( pageCache, storeDir, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
}
public static FusionIndexProvider newInstance( PageCache pageCache, File databaseDirectory, FileSystemAbstraction fs,
@@ -106,12 +87,7 @@ public static FusionIndexProvider newInstance( PageCache pageCache, File databas
SpatialIndexProvider spatial =
IndexProviderFactoryUtil.spatialProvider( pageCache, fs, childDirectoryStructure, monitor, recoveryCleanupWorkCollector, readOnly, config );
- String defaultSchemaProvider = config.get( GraphDatabaseSettings.default_schema_provider );
- int priority = LuceneIndexProvider.PRIORITY;
- if ( GraphDatabaseSettings.SchemaIndex.LUCENE10.providerIdentifier().equals( defaultSchemaProvider ) )
- {
- priority = 100;
- }
+ int priority = adjustPriorityForConfig( LuceneIndexProvider.PRIORITY, GraphDatabaseSettings.SchemaIndex.LUCENE10, config );
return new FusionIndexProvider( EMPTY, EMPTY, spatial, temporal, lucene, new FusionSlotSelector00(),
PROVIDER_DESCRIPTOR, priority, directoriesByProvider( databaseDirectory ), fs, archiveFailedIndex );
}
diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory.java
index 480bc14aeb3f9..7b5a430db4937 100644
--- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory.java
+++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory.java
@@ -23,17 +23,23 @@
import org.neo4j.kernel.api.index.IndexDirectoryStructure;
import org.neo4j.kernel.api.index.IndexProvider;
-import org.neo4j.kernel.extension.ExtensionType;
-import org.neo4j.kernel.extension.KernelExtensionFactory;
+import org.neo4j.kernel.impl.index.schema.AbstractIndexProviderFactory;
+import org.neo4j.kernel.impl.index.schema.fusion.FusionIndexProvider;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesBySubProvider;
-abstract class NativeLuceneFusionIndexProviderFactory extends KernelExtensionFactory
+abstract class NativeLuceneFusionIndexProviderFactory extends AbstractIndexProviderFactory
{
NativeLuceneFusionIndexProviderFactory( String key )
{
- super( ExtensionType.DATABASE, key );
+ super( key );
+ }
+
+ @Override
+ protected Class loggingClass()
+ {
+ return FusionIndexProvider.class;
}
public static IndexDirectoryStructure.Factory subProviderDirectoryStructure( File databaseDirectory, IndexProvider.Descriptor descriptor )
diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory10.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory10.java
index 6c8bd3379648e..402fd65a1451e 100644
--- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory10.java
+++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory10.java
@@ -28,7 +28,6 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexDirectoryStructure;
import org.neo4j.kernel.api.index.IndexProvider;
-import org.neo4j.kernel.api.index.LoggingMonitor;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.factory.OperationalMode;
@@ -37,16 +36,12 @@
import org.neo4j.kernel.impl.index.schema.TemporalIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionSlotSelector10;
-import org.neo4j.kernel.impl.spi.KernelContext;
-import org.neo4j.kernel.monitoring.Monitors;
-import org.neo4j.logging.Log;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;
import static org.neo4j.kernel.api.index.IndexProvider.EMPTY;
@Service.Implementation( KernelExtensionFactory.class )
-public class NativeLuceneFusionIndexProviderFactory10 extends
- NativeLuceneFusionIndexProviderFactory
+public class NativeLuceneFusionIndexProviderFactory10 extends NativeLuceneFusionIndexProviderFactory
{
public static final String KEY = GraphDatabaseSettings.SchemaIndex.NATIVE10.providerName();
public static final String VERSION = GraphDatabaseSettings.SchemaIndex.NATIVE10.providerVersion();
@@ -58,24 +53,17 @@ public NativeLuceneFusionIndexProviderFactory10()
super( KEY );
}
- public interface Dependencies extends LuceneIndexProviderFactory.Dependencies
+ @Override
+ protected String descriptorString()
{
+ return DESCRIPTOR.toString();
}
@Override
- public FusionIndexProvider newInstance( KernelContext context, Dependencies dependencies )
+ protected IndexProvider internalCreate( PageCache pageCache, File storeDir, FileSystemAbstraction fs, IndexProvider.Monitor monitor, Config config,
+ OperationalMode operationalMode, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
- PageCache pageCache = dependencies.pageCache();
- File databaseDirectory = context.directory();
- FileSystemAbstraction fs = dependencies.fileSystem();
- Log log = dependencies.getLogService().getInternalLogProvider().getLog( FusionIndexProvider.class );
- Monitors monitors = dependencies.monitors();
- monitors.addMonitorListener( new LoggingMonitor( log ), DESCRIPTOR.toString() );
- IndexProvider.Monitor monitor = monitors.newMonitor( IndexProvider.Monitor.class, DESCRIPTOR.toString() );
- Config config = dependencies.getConfig();
- OperationalMode operationalMode = context.databaseInfo().operationalMode;
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
- return create( pageCache, databaseDirectory, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
+ return create( pageCache, storeDir, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
}
public static FusionIndexProvider create( PageCache pageCache, File databaseDirectory, FileSystemAbstraction fs,
@@ -94,12 +82,7 @@ public static FusionIndexProvider create( PageCache pageCache, File databaseDire
IndexProviderFactoryUtil.temporalProvider( pageCache, fs, childDirectoryStructure, monitor, recoveryCleanupWorkCollector, readOnly );
LuceneIndexProvider lucene = IndexProviderFactoryUtil.luceneProvider( fs, childDirectoryStructure, monitor, config, operationalMode );
- String defaultSchemaProvider = config.get( GraphDatabaseSettings.default_schema_provider );
- int priority = PRIORITY;
- if ( GraphDatabaseSettings.SchemaIndex.NATIVE10.providerIdentifier().equals( defaultSchemaProvider ) )
- {
- priority = 100;
- }
+ int priority = adjustPriorityForConfig( PRIORITY, GraphDatabaseSettings.SchemaIndex.NATIVE10, config );
return new FusionIndexProvider( EMPTY, number, spatial, temporal, lucene, new FusionSlotSelector10(),
DESCRIPTOR, priority, directoriesByProvider( databaseDirectory ), fs, archiveFailedIndex );
}
diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory20.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory20.java
index dd0bb2c2bf062..85bce8c53305e 100644
--- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory20.java
+++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/NativeLuceneFusionIndexProviderFactory20.java
@@ -28,7 +28,6 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexDirectoryStructure;
import org.neo4j.kernel.api.index.IndexProvider;
-import org.neo4j.kernel.api.index.LoggingMonitor;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.factory.OperationalMode;
@@ -38,15 +37,11 @@
import org.neo4j.kernel.impl.index.schema.TemporalIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionIndexProvider;
import org.neo4j.kernel.impl.index.schema.fusion.FusionSlotSelector20;
-import org.neo4j.kernel.impl.spi.KernelContext;
-import org.neo4j.kernel.monitoring.Monitors;
-import org.neo4j.logging.Log;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;
@Service.Implementation( KernelExtensionFactory.class )
-public class NativeLuceneFusionIndexProviderFactory20 extends
- NativeLuceneFusionIndexProviderFactory
+public class NativeLuceneFusionIndexProviderFactory20 extends NativeLuceneFusionIndexProviderFactory
{
public static final String KEY = GraphDatabaseSettings.SchemaIndex.NATIVE20.providerName();
public static final String VERSION = GraphDatabaseSettings.SchemaIndex.NATIVE20.providerVersion();
@@ -58,24 +53,17 @@ public NativeLuceneFusionIndexProviderFactory20()
super( KEY );
}
- public interface Dependencies extends LuceneIndexProviderFactory.Dependencies
+ @Override
+ protected String descriptorString()
{
+ return DESCRIPTOR.toString();
}
@Override
- public FusionIndexProvider newInstance( KernelContext context, Dependencies dependencies )
+ protected IndexProvider internalCreate( PageCache pageCache, File storeDir, FileSystemAbstraction fs, IndexProvider.Monitor monitor, Config config,
+ OperationalMode operationalMode, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{
- PageCache pageCache = dependencies.pageCache();
- File databaseDirectory = context.directory();
- FileSystemAbstraction fs = dependencies.fileSystem();
- Log log = dependencies.getLogService().getInternalLogProvider().getLog( FusionIndexProvider.class );
- Monitors monitors = dependencies.monitors();
- monitors.addMonitorListener( new LoggingMonitor( log ), DESCRIPTOR.toString() );
- IndexProvider.Monitor monitor = monitors.newMonitor( IndexProvider.Monitor.class, DESCRIPTOR.toString() );
- Config config = dependencies.getConfig();
- OperationalMode operationalMode = context.databaseInfo().operationalMode;
- RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
- return create( pageCache, databaseDirectory, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
+ return create( pageCache, storeDir, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector );
}
public static FusionIndexProvider create( PageCache pageCache, File databaseDirectory, FileSystemAbstraction fs,
@@ -96,12 +84,7 @@ public static FusionIndexProvider create( PageCache pageCache, File databaseDire
IndexProviderFactoryUtil.temporalProvider( pageCache, fs, childDirectoryStructure, monitor, recoveryCleanupWorkCollector, readOnly );
LuceneIndexProvider lucene = IndexProviderFactoryUtil.luceneProvider( fs, childDirectoryStructure, monitor, config, operationalMode );
- String defaultSchemaProvider = config.get( GraphDatabaseSettings.default_schema_provider );
- int priority = PRIORITY;
- if ( GraphDatabaseSettings.SchemaIndex.NATIVE20.providerIdentifier().equals( defaultSchemaProvider ) )
- {
- priority = 100;
- }
+ int priority = adjustPriorityForConfig( PRIORITY, GraphDatabaseSettings.SchemaIndex.NATIVE20, config );
return new FusionIndexProvider( string, number, spatial, temporal, lucene, new FusionSlotSelector20(),
DESCRIPTOR, priority, directoriesByProvider( databaseDirectory ), fs, archiveFailedIndex );
}