diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/KernelContext.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/KernelContext.java
index 0e0305171533..01e1dd69786a 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/KernelContext.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/KernelContext.java
@@ -22,7 +22,6 @@
import java.io.File;
import org.neo4j.io.fs.FileSystemAbstraction;
-import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.factory.DatabaseInfo;
import org.neo4j.kernel.impl.util.DependencySatisfier;
@@ -35,6 +34,4 @@ public interface KernelContext
DatabaseInfo databaseInfo();
DependencySatisfier dependencySatisfier();
-
- boolean customIOConfigurationUsed( Config config );
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java
index 3b1782eb7f49..182b425f59ad 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java
@@ -21,9 +21,7 @@
import java.io.File;
-import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.io.fs.FileSystemAbstraction;
-import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.factory.DatabaseInfo;
import org.neo4j.kernel.impl.util.DependencySatisfier;
@@ -66,10 +64,4 @@ public DependencySatisfier dependencySatisfier()
{
return satisfier;
}
-
- @Override
- public boolean customIOConfigurationUsed( Config config )
- {
- return config.get( GraphDatabaseSettings.pagecache_swapper ) != null;
- }
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java
index a628029c9200..f0842e794ceb 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java
@@ -32,6 +32,7 @@
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.storemigration.monitoring.MigrationProgressMonitor;
import org.neo4j.kernel.impl.storemigration.monitoring.MigrationProgressMonitor.Section;
+import org.neo4j.kernel.impl.util.CustomIOConfigValidator;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
@@ -114,10 +115,7 @@ public void migrateIfNeeded( File storeDirectory)
throw new UpgradeNotAllowedByConfigurationException();
}
- if( customIOConfigurationUsed( config ) )
- {
- throw new IllegalArgumentException( CUSTOM_IO_EXCEPTION_MESSAGE );
- }
+ CustomIOConfigValidator.assertCustomIOConfigNotUsed( config, CUSTOM_IO_EXCEPTION_MESSAGE );
// One or more participants would like to do migration
progressMonitor.started();
@@ -157,11 +155,6 @@ public void migrateIfNeeded( File storeDirectory)
progressMonitor.completed();
}
- private boolean customIOConfigurationUsed( Config config )
- {
- return config.get( GraphDatabaseSettings.pagecache_swapper ) != null;
- }
-
private boolean isUpgradeAllowed()
{
return config.get( GraphDatabaseSettings.allow_store_upgrade );
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/CustomIOConfigValidator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/CustomIOConfigValidator.java
new file mode 100644
index 000000000000..986192ed5919
--- /dev/null
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/CustomIOConfigValidator.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2002-2016 "Neo Technology,"
+ * Network Engine for Objects in Lund AB [http://neotechnology.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.util;
+
+import org.neo4j.graphdb.factory.GraphDatabaseSettings;
+import org.neo4j.kernel.configuration.Config;
+
+public class CustomIOConfigValidator
+{
+ public static void assertCustomIOConfigNotUsed( Config config, String message )
+ {
+ if ( customIOConfigUsed( config ) )
+ {
+ throw new CustomIOConfigNotSupportedException( message );
+ }
+ }
+
+ private static boolean customIOConfigUsed( Config config )
+ {
+ return config.get( GraphDatabaseSettings.pagecache_swapper ) != null;
+ }
+
+ private static class CustomIOConfigNotSupportedException extends RuntimeException
+ {
+ CustomIOConfigNotSupportedException( String message )
+ {
+ super( message );
+ }
+ }
+}
diff --git a/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java b/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java
index 19e0907f0872..dd982f09c3af 100644
--- a/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java
+++ b/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java
@@ -32,6 +32,7 @@
import org.neo4j.kernel.impl.transaction.log.LogicalTransactionStore;
import org.neo4j.kernel.impl.transaction.log.TransactionIdStore;
import org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer;
+import org.neo4j.kernel.impl.util.CustomIOConfigValidator;
import org.neo4j.kernel.internal.GraphDatabaseAPI;
import org.neo4j.kernel.lifecycle.Lifecycle;
import org.neo4j.kernel.monitoring.Monitors;
@@ -79,10 +80,7 @@ public Class getSettingsClass()
@Override
public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable
{
- if ( context.customIOConfigurationUsed( dependencies.getConfig() ) )
- {
- throw new IllegalArgumentException( CUSTOM_IO_EXCEPTION_MESSAGE );
- }
+ CustomIOConfigValidator.assertCustomIOConfigNotUsed( dependencies.getConfig(), CUSTOM_IO_EXCEPTION_MESSAGE );
return new OnlineBackupKernelExtension( dependencies.getConfig(), dependencies.getGraphDatabaseAPI(),
dependencies.logService().getInternalLogProvider(), dependencies.monitors(),
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
index b64028423cd9..e486c3fd7e8b 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
@@ -144,6 +144,7 @@
import org.neo4j.kernel.impl.transaction.log.TransactionIdStore;
import org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer;
import org.neo4j.kernel.impl.transaction.log.entry.LogEntryReader;
+import org.neo4j.kernel.impl.util.CustomIOConfigValidator;
import org.neo4j.kernel.impl.util.Dependencies;
import org.neo4j.kernel.impl.util.JobScheduler;
import org.neo4j.kernel.internal.GraphDatabaseAPI;
@@ -191,10 +192,7 @@ public HighlyAvailableEditionModule( final PlatformModule platformModule )
final Monitors monitors = platformModule.monitors;
//Temporary check for custom IO
- if ( customIOConfigurationUsed( platformModule.config ) )
- {
- throw new IllegalArgumentException( CUSTOM_IO_EXCEPTION_MESSAGE );
- }
+ CustomIOConfigValidator.assertCustomIOConfigNotUsed( config, CUSTOM_IO_EXCEPTION_MESSAGE );
// Set Netty logger
InternalLoggerFactory.setDefaultFactory( new NettyLoggerFactory( logging.getInternalLogProvider() ) );
@@ -520,12 +518,6 @@ public void elected( String role, InstanceId instanceId, URI electedMember )
life.add( paxosLife );
}
- private boolean customIOConfigurationUsed( Config config )
- {
- return config.get( GraphDatabaseSettings.pagecache_swapper ) != null;
- }
-
-
private void publishServerId( Config config, UsageData sysInfo )
{
sysInfo.set( UsageDataKeys.serverId, config.get( ClusterSettings.server_id ).toString() );