diff --git a/community/community-it/it-test-support/src/main/java/org/neo4j/test/AdversarialPageCacheGraphDatabaseFactory.java b/community/community-it/it-test-support/src/main/java/org/neo4j/test/AdversarialPageCacheGraphDatabaseFactory.java
index bd6c11745b40..91e56b1fed5b 100644
--- a/community/community-it/it-test-support/src/main/java/org/neo4j/test/AdversarialPageCacheGraphDatabaseFactory.java
+++ b/community/community-it/it-test-support/src/main/java/org/neo4j/test/AdversarialPageCacheGraphDatabaseFactory.java
@@ -59,7 +59,9 @@ protected GraphDatabaseService newEmbeddedDatabase( File dir, Config config, Dep
@Override
protected PlatformModule createPlatform( File storeDir, Config config, Dependencies dependencies )
{
- config.augment( GraphDatabaseSettings.database_path, storeDir.getAbsolutePath() );
+ File databasesRoot = storeDir.getParentFile();
+ config.augment( GraphDatabaseSettings.active_database, storeDir.getName() );
+ config.augment( GraphDatabaseSettings.databases_root_path, databasesRoot.getAbsolutePath() );
return new PlatformModule( storeDir, config, databaseInfo, dependencies )
{
@Override
@@ -72,8 +74,7 @@ protected FileSystemAbstraction createFileSystemAbstraction()
protected PageCache createPageCache( FileSystemAbstraction fileSystem, Config config,
LogService logging, Tracers tracers, VersionContextSupplier versionContextSupplier )
{
- PageCache pageCache = super.createPageCache( fileSystem, config, logging, tracers,
- versionContextSupplier );
+ PageCache pageCache = super.createPageCache( fileSystem, config, logging, tracers, versionContextSupplier );
return new AdversarialPageCache( pageCache, adversary );
}
};
diff --git a/community/community-it/kernel-it/src/test/java/org/neo4j/kernel/RecoveryIT.java b/community/community-it/kernel-it/src/test/java/org/neo4j/kernel/RecoveryIT.java
index 4e24606d2b13..29e047fba7a9 100644
--- a/community/community-it/kernel-it/src/test/java/org/neo4j/kernel/RecoveryIT.java
+++ b/community/community-it/kernel-it/src/test/java/org/neo4j/kernel/RecoveryIT.java
@@ -257,9 +257,9 @@ public void recoveryShouldFixPartiallyAppliedSchemaIndexUpdates()
Command.RelationshipCommand.class );
adversary.disable();
- File storeDir = directory.storeDir();
+ File databaseDir = directory.databaseDir();
GraphDatabaseService db = AdversarialPageCacheGraphDatabaseFactory.create( fileSystemRule.get(), adversary )
- .newEmbeddedDatabaseBuilder( storeDir )
+ .newEmbeddedDatabaseBuilder( databaseDir )
.newGraphDatabase();
try
{
diff --git a/community/io/src/main/java/org/neo4j/io/layout/DatabaseLayout.java b/community/io/src/main/java/org/neo4j/io/layout/DatabaseLayout.java
index 1dc91f3cf4ca..68aafed64711 100644
--- a/community/io/src/main/java/org/neo4j/io/layout/DatabaseLayout.java
+++ b/community/io/src/main/java/org/neo4j/io/layout/DatabaseLayout.java
@@ -37,7 +37,7 @@ public static DatabaseLayout of( StoreLayout storeLayout, String databaseName )
public static DatabaseLayout of( File databaseDirectory )
{
- return new DatabaseLayout( StoreLayout.of( databaseDirectory.getParentFile() ), databaseDirectory.getName() );
+ return of( databaseDirectory.getParentFile(), databaseDirectory.getName() );
}
public static DatabaseLayout of( File rootDirectory, String databaseName )
diff --git a/community/io/src/main/java/org/neo4j/io/layout/StoreLayout.java b/community/io/src/main/java/org/neo4j/io/layout/StoreLayout.java
index 4283d543b5ff..338da9338383 100644
--- a/community/io/src/main/java/org/neo4j/io/layout/StoreLayout.java
+++ b/community/io/src/main/java/org/neo4j/io/layout/StoreLayout.java
@@ -20,6 +20,7 @@
package org.neo4j.io.layout;
import java.io.File;
+import java.util.Objects;
public class StoreLayout
{
@@ -56,6 +57,27 @@ public File storeLockFile()
return new File( storeDirectory, STORE_LOCK_FILENAME );
}
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+ StoreLayout that = (StoreLayout) o;
+ return Objects.equals( storeDirectory, that.storeDirectory );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash( storeDirectory );
+ }
+
@Override
public String toString()
{
diff --git a/community/io/src/test/java/org/neo4j/test/rule/TestDirectory.java b/community/io/src/test/java/org/neo4j/test/rule/TestDirectory.java
index 0ae5ae53e170..ebfeac79a174 100644
--- a/community/io/src/test/java/org/neo4j/test/rule/TestDirectory.java
+++ b/community/io/src/test/java/org/neo4j/test/rule/TestDirectory.java
@@ -179,7 +179,7 @@ public DatabaseLayout databaseLayout()
public DatabaseLayout databaseLayout( File storeDir )
{
DatabaseLayout databaseLayout = StoreLayout.of( storeDir ).databaseLayout( DEFAULT_DATABASE_DIRECTORY );
- createDirectory( defaultDatabaseLayout.databaseDirectory() );
+ createDirectory( databaseLayout.databaseDirectory() );
return databaseLayout;
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/files/LogFilesBuilder.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/files/LogFilesBuilder.java
index 90cad94201be..7d2528d1547b 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/files/LogFilesBuilder.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/files/LogFilesBuilder.java
@@ -192,7 +192,7 @@ private File getLogsDirectory()
File neo4jHome = config.get( GraphDatabaseSettings.neo4j_home );
File databasePath = config.get( database_path );
File logicalLogsLocation = config.get( GraphDatabaseSettings.logical_logs_location );
- if ( databaseLayout.getStoreLayout().equals( neo4jHome ) && databasePath.equals( logicalLogsLocation ) )
+ if ( databaseLayout.getStoreLayout().storeDirectory().equals( neo4jHome ) && databasePath.equals( logicalLogsLocation ) )
{
return databaseLayout.databaseDirectory();
}
diff --git a/enterprise/backup/src/test/java/org/neo4j/backup/BackupIT.java b/enterprise/backup/src/test/java/org/neo4j/backup/BackupIT.java
index 9ace831140a4..642f6859f0a3 100644
--- a/enterprise/backup/src/test/java/org/neo4j/backup/BackupIT.java
+++ b/enterprise/backup/src/test/java/org/neo4j/backup/BackupIT.java
@@ -294,7 +294,7 @@ public void makeSureStoreIdIsEnforced()
// Data should be OK, but store id check should prevent that.
try
{
- backup.incremental( serverStorePath.getPath() );
+ backup.incremental( backupDatabasePath.getPath() );
fail( "Shouldn't work" );
}
catch ( RuntimeException e )
@@ -306,7 +306,7 @@ public void makeSureStoreIdIsEnforced()
// server A, even after a failed attempt from server B
DbRepresentation furtherRepresentation = addMoreData( serverStorePath );
server = startServer( serverStorePath, backupPort );
- backup.incremental( serverStorePath.getPath() );
+ backup.incremental( backupDatabasePath.getPath() );
assertTrue( "Should be consistent", backup.isConsistent() );
assertEquals( furtherRepresentation, getDbRepresentation() );
shutdownServer( server );
diff --git a/enterprise/backup/src/test/java/org/neo4j/backup/IncrementalBackupIT.java b/enterprise/backup/src/test/java/org/neo4j/backup/IncrementalBackupIT.java
index 7f2361a7d421..88bfa011bf6a 100644
--- a/enterprise/backup/src/test/java/org/neo4j/backup/IncrementalBackupIT.java
+++ b/enterprise/backup/src/test/java/org/neo4j/backup/IncrementalBackupIT.java
@@ -243,6 +243,6 @@ private static void shutdownServer( ServerInterface server ) throws Exception
private DbRepresentation getBackupDbRepresentation()
{
- return DbRepresentation.of( backupStore, Config.defaults( OnlineBackupSettings.online_backup_enabled, Settings.FALSE ) );
+ return DbRepresentation.of( backupDatabase, Config.defaults( OnlineBackupSettings.online_backup_enabled, Settings.FALSE ) );
}
}
diff --git a/enterprise/backup/src/test/java/org/neo4j/backup/impl/BackupStrategyCoordinatorTest.java b/enterprise/backup/src/test/java/org/neo4j/backup/impl/BackupStrategyCoordinatorTest.java
index db718a8d1a51..0771ddaae577 100644
--- a/enterprise/backup/src/test/java/org/neo4j/backup/impl/BackupStrategyCoordinatorTest.java
+++ b/enterprise/backup/src/test/java/org/neo4j/backup/impl/BackupStrategyCoordinatorTest.java
@@ -27,7 +27,6 @@
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import java.io.File;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
@@ -40,6 +39,7 @@
import org.neo4j.helpers.progress.ProgressMonitorFactory;
import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.logging.LogProvider;
+import org.neo4j.test.rule.TestDirectory;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.Matchers.containsString;
@@ -55,6 +55,8 @@ public class BackupStrategyCoordinatorTest
{
@Rule
public final ExpectedException expectedException = ExpectedException.none();
+ @Rule
+ public final TestDirectory testDirectory = TestDirectory.testDirectory();
// dependencies
private final ConsistencyCheckService consistencyCheckService = mock( ConsistencyCheckService.class );
@@ -78,7 +80,7 @@ public class BackupStrategyCoordinatorTest
@Before
public void setup()
{
- when( reportDir.toFile() ).thenReturn( mock( File.class ) );
+ when( reportDir.toFile() ).thenReturn( testDirectory.databaseLayout().databaseDirectory() );
when( outsideWorld.fileSystem() ).thenReturn( fileSystem );
when( onlineBackupContext.getRequiredArguments() ).thenReturn( requiredArguments );
when( onlineBackupContext.getResolvedLocationFromName() ).thenReturn( reportDir );
diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/commandline/dbms/UnbindFromClusterCommandTest.java b/enterprise/causal-clustering/src/test/java/org/neo4j/commandline/dbms/UnbindFromClusterCommandTest.java
index dd4dcf50df09..6d519d495b1e 100644
--- a/enterprise/causal-clustering/src/test/java/org/neo4j/commandline/dbms/UnbindFromClusterCommandTest.java
+++ b/enterprise/causal-clustering/src/test/java/org/neo4j/commandline/dbms/UnbindFromClusterCommandTest.java
@@ -48,7 +48,6 @@
import org.neo4j.io.fs.DefaultFileSystemAbstraction;
import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.io.layout.DatabaseLayout;
-import org.neo4j.io.layout.StoreLayout;
import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule;
@@ -187,11 +186,10 @@ public void shouldPrintUsage() throws Throwable
}
}
- private Path createUnlockedFakeDbDir( Path homeDir ) throws IOException
+ private void createUnlockedFakeDbDir( Path homeDir ) throws IOException
{
Path fakeDbDir = createFakeDbDir( homeDir );
Files.createFile( DatabaseLayout.of( fakeDbDir.toFile() ).getStoreLayout().storeLockFile().toPath() );
- return fakeDbDir;
}
private FileLock createLockedFakeDbDir( Path homeDir ) throws IOException
@@ -207,14 +205,14 @@ private Path createFakeDbDir( Path homeDir ) throws IOException
return graphDb;
}
- private FileLock createLockedStoreLockFileIn( Path storeDir ) throws IOException
+ private FileLock createLockedStoreLockFileIn( Path databaseDir ) throws IOException
{
- Path storeLockFile = StoreLayout.of( storeDir.toFile() ).storeLockFile().toPath();
+ Path storeLockFile = Files.createFile( DatabaseLayout.of( databaseDir.toFile() ).getStoreLayout().storeLockFile().toPath() );
channel = FileChannel.open( storeLockFile, READ, WRITE );
return channel.lock( 0, Long.MAX_VALUE, true );
}
- private String[] databaseNameParameter( String databaseName )
+ private static String[] databaseNameParameter( String databaseName )
{
return new String[]{"--database=" + databaseName};
}
diff --git a/enterprise/cypher/acceptance-spec-suite/pom.xml b/enterprise/cypher/acceptance-spec-suite/pom.xml
index 8d98f0506707..e4e0659bfcf0 100644
--- a/enterprise/cypher/acceptance-spec-suite/pom.xml
+++ b/enterprise/cypher/acceptance-spec-suite/pom.xml
@@ -232,6 +232,10 @@
test
+
+ commons-codec
+ commons-codec
+
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/IndexPersistenceAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/IndexPersistenceAcceptanceTest.scala
index f0edac7f2f4d..5dd3de5daeed 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/IndexPersistenceAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/IndexPersistenceAcceptanceTest.scala
@@ -28,15 +28,15 @@ import java.time.ZoneOffset
import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.config.Setting
import org.neo4j.io.fs.FileUtils
-import org.neo4j.kernel.configuration.Settings
import org.neo4j.kernel.impl.index.schema.config.SpatialIndexSettings
+import org.neo4j.test.rule.TestDirectory
import org.neo4j.values.storable._
-import scala.collection.{Map, immutable}
+import scala.collection.Map
class IndexPersistenceAcceptanceTest extends IndexingTestSupport {
- private var dbDir = new File("test")
+ private var dbDir = TestDirectory.testDirectory(getClass).prepareDirectoryForTest("test")
override val cypherComparisonSupport = false
diff --git a/enterprise/ha/src/test/java/org/neo4j/kernel/impl/ha/ClusterManager.java b/enterprise/ha/src/test/java/org/neo4j/kernel/impl/ha/ClusterManager.java
index 000b1270eff3..d09e10c13779 100644
--- a/enterprise/ha/src/test/java/org/neo4j/kernel/impl/ha/ClusterManager.java
+++ b/enterprise/ha/src/test/java/org/neo4j/kernel/impl/ha/ClusterManager.java
@@ -55,6 +55,7 @@
import org.neo4j.cluster.member.ClusterMemberListener;
import org.neo4j.cluster.protocol.election.NotElectableElectionCredentialsProvider;
import org.neo4j.consistency.store.StoreAssertions;
+import org.neo4j.dbms.database.DatabaseManager;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.TransactionFailureException;
import org.neo4j.graphdb.config.Setting;
@@ -66,6 +67,7 @@
import org.neo4j.helpers.collection.Iterables;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.io.layout.DatabaseLayout;
+import org.neo4j.io.layout.StoreLayout;
import org.neo4j.io.pagecache.IOLimiter;
import org.neo4j.kernel.configuration.BoltConnector;
import org.neo4j.kernel.configuration.Config;
@@ -1157,14 +1159,15 @@ private HighlyAvailableGraphDatabase startMemberNow( InstanceId serverId )
URI clusterUri = clusterUri( member );
int clusterPort = clusterUri.getPort();
int haPort = PortAuthority.allocatePort();
- File storeDir = new File( parent, "server" + serverId );
+ StoreLayout storeLayout = StoreLayout.of( new File( parent, "server" + serverId ) );
+ DatabaseLayout databaseLayout = storeLayout.databaseLayout( DatabaseManager.DEFAULT_DATABASE_NAME );
if ( storeDirInitializer != null )
{
- storeDirInitializer.initializeStoreDir( serverId.toIntegerIndex(), storeDir );
+ storeDirInitializer.initializeStoreDir( serverId.toIntegerIndex(), databaseLayout.databaseDirectory() );
}
Monitors monitors = getDatabaseMonitors();
- GraphDatabaseBuilder builder = dbFactory.setMonitors( monitors ).newEmbeddedDatabaseBuilder( storeDir.getAbsoluteFile() );
+ GraphDatabaseBuilder builder = dbFactory.setMonitors( monitors ).newEmbeddedDatabaseBuilder( databaseLayout.databaseDirectory() );
builder.setConfig( ClusterSettings.cluster_name, name );
builder.setConfig( ClusterSettings.initial_hosts, initialHosts );
builder.setConfig( ClusterSettings.server_id, serverId + "" );
diff --git a/enterprise/kernel/src/test/java/org/neo4j/test/TestEnterpriseGraphDatabaseFactory.java b/enterprise/kernel/src/test/java/org/neo4j/test/TestEnterpriseGraphDatabaseFactory.java
index 405249a31f34..95fbb3d3b9d4 100644
--- a/enterprise/kernel/src/test/java/org/neo4j/test/TestEnterpriseGraphDatabaseFactory.java
+++ b/enterprise/kernel/src/test/java/org/neo4j/test/TestEnterpriseGraphDatabaseFactory.java
@@ -38,7 +38,6 @@
import org.neo4j.kernel.impl.factory.Edition;
import org.neo4j.kernel.impl.logging.LogService;
import org.neo4j.kernel.impl.logging.SimpleLogService;
-import org.neo4j.logging.AssertableLogProvider;
import org.neo4j.logging.LogProvider;
/**
@@ -65,7 +64,10 @@ protected GraphDatabaseBuilder.DatabaseCreator createDatabaseCreator( File store
@Override
public GraphDatabaseService newDatabase( Config config )
{
+ File databasesRoot = storeDir.getParentFile();
config.augment( GraphDatabaseSettings.ephemeral, Settings.FALSE );
+ config.augment( GraphDatabaseSettings.active_database, storeDir.getName() );
+ config.augment( GraphDatabaseSettings.databases_root_path, databasesRoot.getAbsolutePath() );
return new GraphDatabaseFacadeFactory( DatabaseInfo.ENTERPRISE, EnterpriseEditionModule::new )
{
@Override
@@ -88,7 +90,7 @@ protected LogService createLogService( LogProvider userLogProvider )
}
};
}
- }.newFacade( storeDir, config, GraphDatabaseDependencies.newDependencies( state.databaseDependencies() ) );
+ }.newFacade( databasesRoot, config, GraphDatabaseDependencies.newDependencies( state.databaseDependencies() ) );
}
};
}
diff --git a/enterprise/neo4j-enterprise/src/test/java/org/neo4j/CompositeConstraintIT.java b/enterprise/neo4j-enterprise/src/test/java/org/neo4j/CompositeConstraintIT.java
index 52edeb2e1131..ad5796b5146b 100644
--- a/enterprise/neo4j-enterprise/src/test/java/org/neo4j/CompositeConstraintIT.java
+++ b/enterprise/neo4j-enterprise/src/test/java/org/neo4j/CompositeConstraintIT.java
@@ -86,7 +86,7 @@ public void compositeNodeKeyConstraintUpdate() throws Exception
}
database.shutdown();
- ConsistencyCheckService.Result consistencyCheckResult = checkDbConsistency( testDirectory.databaseDir() );
+ ConsistencyCheckService.Result consistencyCheckResult = checkDbConsistency( testDirectory.storeDir() );
assertTrue( "Database is consistent", consistencyCheckResult.isSuccessful() );
}
diff --git a/integrationtests/src/test/java/org/neo4j/consistency/HalfCreatedConstraintIT.java b/integrationtests/src/test/java/org/neo4j/consistency/HalfCreatedConstraintIT.java
index 19a4f4e59377..381337ecd934 100644
--- a/integrationtests/src/test/java/org/neo4j/consistency/HalfCreatedConstraintIT.java
+++ b/integrationtests/src/test/java/org/neo4j/consistency/HalfCreatedConstraintIT.java
@@ -56,11 +56,11 @@ public class HalfCreatedConstraintIT
@Test
public void uniqueIndexWithoutOwningConstraintIsIgnoredDuringCheck() throws ConsistencyCheckTool.ToolFailureException, IOException
{
- File storeDir = testDirectory.storeDir();
+ File databaseDir = testDirectory.databaseDir();
Label marker = Label.label( "MARKER" );
String property = "property";
- GraphDatabaseService database = new EnterpriseGraphDatabaseFactory().newEmbeddedDatabase( storeDir );
+ GraphDatabaseService database = new EnterpriseGraphDatabaseFactory().newEmbeddedDatabase( databaseDir );
try
{
createNodes( marker, property, database );
@@ -72,7 +72,7 @@ public void uniqueIndexWithoutOwningConstraintIsIgnoredDuringCheck() throws Cons
database.shutdown();
}
- ConsistencyCheckService.Result checkResult = ConsistencyCheckTool.runConsistencyCheckTool( new String[]{testDirectory.databaseDir().getAbsolutePath()},
+ ConsistencyCheckService.Result checkResult = ConsistencyCheckTool.runConsistencyCheckTool( new String[]{databaseDir.getAbsolutePath()},
emptyPrintStream(), emptyPrintStream() );
assertTrue( String.join( System.lineSeparator(), Files.readAllLines( checkResult.reportFile().toPath() ) ), checkResult.isSuccessful() );
}