From dc1c9dd75c5569cac32b475677c49aefba4395d9 Mon Sep 17 00:00:00 2001 From: MishaDemianenko Date: Tue, 1 Nov 2016 16:13:33 +0100 Subject: [PATCH] Update default file system usage in lucene index, tools, server and ent.server. --- .../builder/LuceneIndexStorageBuilder.java | 3 +- .../lucene/ConstraintIndexFailureIT.java | 4 ++ .../index/LuceneSchemaIndexPopulationIT.java | 5 ++ ...neSchemaIndexUniquenessVerificationIT.java | 4 ++ .../LuceneLabelScanIndexBuilderTest.java | 5 ++ .../labelscan/LuceneLabelScanIndexIT.java | 5 ++ .../schema/LuceneSchemaIndexBuilderTest.java | 5 ++ .../api/impl/schema/LuceneSchemaIndexIT.java | 8 +++ .../org/neo4j/server/AbstractNeoServer.java | 8 +-- .../server/web/logging/HTTPLoggingIT.java | 66 ++++++++---------- .../enterprise/ArbiterBootstrapper.java | 10 +-- .../org/neo4j/tools/dump/DumpCountsStore.java | 5 +- .../org/neo4j/tools/dump/DumpLogicalLog.java | 5 +- .../neo4j/tools/migration/StoreMigration.java | 5 +- .../neo4j/tools/rawstorereader/RsdrMain.java | 69 ++++++++++--------- .../neo4j/tools/rebuild/RebuildFromLogs.java | 5 +- 16 files changed, 128 insertions(+), 84 deletions(-) diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder.java index c64a77932f0a5..22ee138ff7cdd 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder.java @@ -22,7 +22,6 @@ import java.io.File; import java.util.Objects; -import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.api.impl.index.storage.DirectoryFactory; import org.neo4j.kernel.api.impl.index.storage.PartitionedIndexStorage; @@ -35,7 +34,7 @@ public class LuceneIndexStorageBuilder { private DirectoryFactory directoryFactory = DirectoryFactory.PERSISTENT; - private FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction(); + private FileSystemAbstraction fileSystem; private File indexRootFolder; private String indexIdentifier; private PartitionedIndexStorage indexStorage; diff --git a/community/lucene-index/src/test/java/org/neo4j/index/lucene/ConstraintIndexFailureIT.java b/community/lucene-index/src/test/java/org/neo4j/index/lucene/ConstraintIndexFailureIT.java index 5c7ee0d9535ed..d46ee36ee1467 100644 --- a/community/lucene-index/src/test/java/org/neo4j/index/lucene/ConstraintIndexFailureIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/index/lucene/ConstraintIndexFailureIT.java @@ -33,6 +33,7 @@ import org.neo4j.kernel.api.impl.index.storage.PartitionedIndexStorage; import org.neo4j.test.TestGraphDatabaseFactory; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.core.IsEqual.equalTo; @@ -44,6 +45,8 @@ public class ConstraintIndexFailureIT { @Rule public final TestDirectory storeDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); @Test public void shouldFailToValidateConstraintsIfUnderlyingIndexIsFailed() throws Exception @@ -102,6 +105,7 @@ private void storeIndexFailure( String failure ) throws IOException { File luceneRootDirectory = new File( storeDir.directory(), "schema/index/lucene" ); PartitionedIndexStorage indexStorage = LuceneIndexStorageBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( luceneRootDirectory ) .withIndexIdentifier( "1" ).build(); indexStorage.storeIndexFailure( failure ); diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java index ed49dc3834c50..625d4a1ff7511 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java @@ -42,6 +42,7 @@ import org.neo4j.storageengine.api.schema.IndexSample; import org.neo4j.storageengine.api.schema.IndexSampler; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -53,6 +54,9 @@ public class LuceneSchemaIndexPopulationIT @Rule public TestDirectory testDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); + private int affectedNodes; @Before @@ -82,6 +86,7 @@ public LuceneSchemaIndexPopulationIT( int affectedNodes ) public void partitionedIndexPopulation() throws Exception { try ( SchemaIndex uniqueIndex = LuceneSchemaIndexBuilder.create().uniqueIndex() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory( "partitionIndex" + affectedNodes ) ) .withIndexIdentifier( "uniqueIndex" + affectedNodes ) .build() ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexUniquenessVerificationIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexUniquenessVerificationIT.java index 7b40e74cd231d..36914c0768c46 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexUniquenessVerificationIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexUniquenessVerificationIT.java @@ -53,6 +53,7 @@ import org.neo4j.kernel.api.properties.Property; import org.neo4j.test.Randoms; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static java.util.stream.Collectors.toSet; import static org.hamcrest.Matchers.instanceOf; @@ -67,6 +68,8 @@ public class LuceneSchemaIndexUniquenessVerificationIT @Rule public TestDirectory testDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); @Parameter public int nodesToCreate; @@ -95,6 +98,7 @@ public void setPartitionSize() throws Exception index = LuceneSchemaIndexBuilder.create() .uniqueIndex() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory( "uniquenessVerification" ) ) .withIndexIdentifier( "index" ) .build(); diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexBuilderTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexBuilderTest.java index 90bccd73e1104..c433c8ad0c89c 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexBuilderTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexBuilderTest.java @@ -28,6 +28,7 @@ import org.neo4j.kernel.configuration.Settings; import org.neo4j.kernel.impl.factory.OperationalMode; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -37,11 +38,14 @@ public class LuceneLabelScanIndexBuilderTest @Rule public final TestDirectory testDir = TestDirectory.testDirectory( getClass() ); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); @Test public void readOnlyIndexCreation() throws Exception { try ( LabelScanIndex index = LuceneLabelScanIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.graphDbDir() ) .withConfig( getReadOnlyConfig() ) .withOperationalMode( OperationalMode.single ) @@ -55,6 +59,7 @@ public void readOnlyIndexCreation() throws Exception public void writableIndexCreation() throws Exception { try ( LabelScanIndex index = LuceneLabelScanIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.graphDbDir() ) .withConfig( getDefaultConfig() ) .withOperationalMode( OperationalMode.single ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexIT.java index ccd798f11a9dd..4b2f0779b8346 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/labelscan/LuceneLabelScanIndexIT.java @@ -35,6 +35,7 @@ import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; import org.neo4j.storageengine.api.schema.LabelScanReader; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.junit.Assert.assertEquals; @@ -44,6 +45,9 @@ public class LuceneLabelScanIndexIT @Rule public TestDirectory testDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); + private int affectedNodes; @Before @@ -73,6 +77,7 @@ public LuceneLabelScanIndexIT( int affectedNodes ) public void readFromPartitionedIndex() throws IOException { try ( LabelScanIndex labelScanIndex = LuceneLabelScanIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexIdentifier( "partitionedIndex" + affectedNodes ) .withIndexRootFolder( testDir.directory( "partitionedIndexFolder" + affectedNodes ) ) .build() ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexBuilderTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexBuilderTest.java index 7c8993f1c152e..6b5a4dbf2a9a2 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexBuilderTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexBuilderTest.java @@ -28,6 +28,7 @@ import org.neo4j.kernel.configuration.Settings; import org.neo4j.kernel.impl.factory.OperationalMode; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -36,11 +37,14 @@ public class LuceneSchemaIndexBuilderTest { @Rule public final TestDirectory testDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); @Test public void readOnlyIndexCreation() throws Exception { try ( SchemaIndex schemaIndex = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withConfig( getReadOnlyConfig() ) .withOperationalMode( OperationalMode.single ) .withIndexRootFolder( testDir.graphDbDir() ) @@ -56,6 +60,7 @@ public void writableIndexCreation() throws Exception { try ( SchemaIndex schemaIndex = LuceneSchemaIndexBuilder.create() .withConfig( getDefaultConfig() ) + .withFileSystem( fileSystemRule.get() ) .withOperationalMode( OperationalMode.single ) .withIndexRootFolder( testDir.graphDbDir() ) .withIndexIdentifier( "b" ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java index 12d2212abae2a..f44e6e5bfb30c 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java @@ -43,6 +43,7 @@ import org.neo4j.kernel.api.index.NodePropertyUpdate; import org.neo4j.kernel.impl.api.index.IndexUpdateMode; import org.neo4j.test.rule.TestDirectory; +import org.neo4j.test.rule.fs.DefaultFileSystemRule; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertEquals; @@ -57,6 +58,8 @@ public class LuceneSchemaIndexIT @Rule public TestDirectory testDir = TestDirectory.testDirectory(); + @Rule + public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); @Before public void before() throws Exception @@ -118,6 +121,7 @@ public void snapshotForIndexWithNoCommits() throws Exception public void updateMultiplePartitionedIndex() throws IOException, IndexEntryConflictException { try ( SchemaIndex index = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory() ) .withIndexIdentifier( "partitionedIndexForUpdates" ) .build() ) @@ -140,6 +144,7 @@ public void createPopulateDropIndex() throws Exception { File crudOperation = testDir.directory( "indexCRUDOperation" ); try ( SchemaIndex crudIndex = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( crudOperation ) .withIndexIdentifier( "crudIndex" ) .build() ) @@ -163,6 +168,7 @@ public void createPopulateDropIndex() throws Exception public void createFailPartitionedIndex() throws Exception { try ( SchemaIndex failedIndex = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory( "failedIndexFolder" ) ) .withIndexIdentifier( "failedIndex" ) .build() ) @@ -187,6 +193,7 @@ public void openClosePartitionedIndex() throws IOException try { reopenIndex = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory( "reopenIndexFolder" ) ) .withIndexIdentifier( "reopenIndex" ) .build(); @@ -239,6 +246,7 @@ private void addDocumentToIndex( SchemaIndex index, int documents ) throws IOExc private LuceneIndexAccessor createDefaultIndexAccessor() throws IOException { SchemaIndex index = LuceneSchemaIndexBuilder.create() + .withFileSystem( fileSystemRule.get() ) .withIndexRootFolder( testDir.directory() ) .withIndexIdentifier( "testIndex" ) .build(); diff --git a/community/server/src/main/java/org/neo4j/server/AbstractNeoServer.java b/community/server/src/main/java/org/neo4j/server/AbstractNeoServer.java index a1287eb4d7998..24ecb35c27aab 100644 --- a/community/server/src/main/java/org/neo4j/server/AbstractNeoServer.java +++ b/community/server/src/main/java/org/neo4j/server/AbstractNeoServer.java @@ -19,7 +19,6 @@ */ package org.neo4j.server; -import com.sun.jersey.api.core.HttpContext; import org.apache.commons.configuration.Configuration; import org.bouncycastle.operator.OperatorCreationException; @@ -43,7 +42,7 @@ import org.neo4j.helpers.AdvertisedSocketAddress; import org.neo4j.helpers.ListenSocketAddress; import org.neo4j.helpers.RunCarefully; -import org.neo4j.io.fs.DefaultFileSystemAbstraction; +import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.GraphDatabaseQueryService; import org.neo4j.kernel.api.security.AuthManager; import org.neo4j.kernel.configuration.Config; @@ -56,8 +55,8 @@ import org.neo4j.logging.Log; import org.neo4j.logging.LogProvider; import org.neo4j.server.configuration.ClientConnectorSettings; -import org.neo4j.server.configuration.ServerSettings; import org.neo4j.server.configuration.ClientConnectorSettings.HttpConnector; +import org.neo4j.server.configuration.ServerSettings; import org.neo4j.server.database.CypherExecutor; import org.neo4j.server.database.CypherExecutorProvider; import org.neo4j.server.database.Database; @@ -91,7 +90,6 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.neo4j.helpers.collection.Iterables.map; import static org.neo4j.kernel.impl.util.JobScheduler.Groups.serverTransactionTimeout; -import static org.neo4j.server.configuration.ClientConnectorSettings.httpConnector; import static org.neo4j.server.configuration.ServerSettings.http_logging_enabled; import static org.neo4j.server.configuration.ServerSettings.http_logging_rotation_keep_number; import static org.neo4j.server.configuration.ServerSettings.http_logging_rotation_size; @@ -340,7 +338,7 @@ private void setUpHttpLogging() throws IOException { } AsyncRequestLog requestLog = new AsyncRequestLog( - new DefaultFileSystemAbstraction(), + dependencyResolver.resolveDependency( FileSystemAbstraction.class ), new File( config.get( GraphDatabaseSettings.logs_directory ), "http.log" ).toString(), config.get( http_logging_rotation_size ), config.get( http_logging_rotation_keep_number ) ); diff --git a/community/server/src/test/java/org/neo4j/server/web/logging/HTTPLoggingIT.java b/community/server/src/test/java/org/neo4j/server/web/logging/HTTPLoggingIT.java index 243058dfd9d3f..168fbf3c76b9b 100644 --- a/community/server/src/test/java/org/neo4j/server/web/logging/HTTPLoggingIT.java +++ b/community/server/src/test/java/org/neo4j/server/web/logging/HTTPLoggingIT.java @@ -19,19 +19,22 @@ */ package org.neo4j.server.web.logging; +import org.apache.http.HttpStatus; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.rules.RuleChain; +import org.junit.rules.TestName; + import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.UUID; import java.util.concurrent.TimeUnit; -import org.apache.commons.io.FileUtils; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - import org.neo4j.function.ThrowingSupplier; import org.neo4j.graphdb.factory.GraphDatabaseSettings; +import org.neo4j.kernel.configuration.Settings; import org.neo4j.server.NeoServer; import org.neo4j.server.configuration.ServerSettings; import org.neo4j.server.helpers.CommunityServerBuilder; @@ -44,32 +47,31 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertThat; - import static org.neo4j.io.fs.FileUtils.readTextFile; import static org.neo4j.test.assertion.Assert.assertEventually; public class HTTPLoggingIT extends ExclusiveServerTestBase { + + private final ExpectedException exception = ExpectedException.none(); + private final TestDirectory testDirectory = TestDirectory.testDirectory(); + private final TestName testName = new TestName(); + @Rule - public ExpectedException exception = ExpectedException.none(); + public RuleChain ruleChain = RuleChain.outerRule( exception ) + .around( testName ).around( testDirectory ); @Test public void givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesses() throws Exception { // given - File logDirectory = testDirectory.directory( - "givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesses-logdir" ); - FileUtils.forceMkdir( logDirectory ); - final File confDir = testDirectory.directory( - "givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesses-confdir" ); - FileUtils.forceMkdir( confDir ); - - NeoServer server = CommunityServerBuilder.server().withDefaultDatabaseTuning() - .withProperty( ServerSettings.http_logging_enabled.name(), "false" ) + String directoryPrefix = testName.getMethodName(); + File logDirectory = testDirectory.directory( directoryPrefix + "-logdir" ); + + NeoServer server = CommunityServerBuilder.server().withDefaultDatabaseTuning().persistent() + .withProperty( ServerSettings.http_logging_enabled.name(), Settings.FALSE ) .withProperty( GraphDatabaseSettings.logs_directory.name(), logDirectory.toString() ) - .usingDataDir( testDirectory.directory( - "givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesses-dbdir" - ).getAbsolutePath() ) + .usingDataDir( testDirectory.directory( directoryPrefix + "-dbdir" ).getAbsolutePath() ) .build(); try { @@ -79,7 +81,8 @@ public void givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesse // when String query = "?implicitlyDisabled" + randomString(); JaxRsResponse response = new RestRequest().get( functionalTestHelper.managementUri() + query ); - assertThat( response.getStatus(), is( 200 ) ); + + assertThat( response.getStatus(), is( HttpStatus.SC_OK ) ); response.close(); // then @@ -96,22 +99,14 @@ public void givenExplicitlyDisabledServerLoggingConfigurationShouldNotLogAccesse public void givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess() throws Exception { // given - final File logDirectory = - testDirectory.directory( "givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess-logdir" ); - FileUtils.forceMkdir( logDirectory ); - System.out.println(logDirectory); - final File confDir = - testDirectory.directory( "givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess-confdir" ); - FileUtils.forceMkdir( confDir ); - + String directoryPrefix = testName.getMethodName(); + File logDirectory = testDirectory.directory( directoryPrefix + "-logdir" ); final String query = "?explicitlyEnabled=" + randomString(); - NeoServer server = CommunityServerBuilder.server().withDefaultDatabaseTuning() - .withProperty( ServerSettings.http_logging_enabled.name(), "true" ) + NeoServer server = CommunityServerBuilder.server().withDefaultDatabaseTuning().persistent() + .withProperty( ServerSettings.http_logging_enabled.name(), Settings.TRUE ) .withProperty( GraphDatabaseSettings.logs_directory.name(), logDirectory.getAbsolutePath() ) - .usingDataDir( testDirectory.directory( - "givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess-dbdir" - ).getAbsolutePath() ) + .usingDataDir( testDirectory.directory( directoryPrefix + "-dbdir" ).getAbsolutePath() ) .build(); try { @@ -121,7 +116,7 @@ public void givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess() th // when JaxRsResponse response = new RestRequest().get( functionalTestHelper.managementUri() + query ); - assertThat( response.getStatus(), is( 200 ) ); + assertThat( response.getStatus(), is( HttpStatus.SC_OK ) ); response.close(); // then @@ -134,9 +129,6 @@ public void givenExplicitlyEnabledServerLoggingConfigurationShouldLogAccess() th } } - @Rule - public final TestDirectory testDirectory = TestDirectory.testDirectory(); - private ThrowingSupplier fileContentSupplier( final File file ) { return () -> readTextFile( file, StandardCharsets.UTF_8 ); diff --git a/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/ArbiterBootstrapper.java b/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/ArbiterBootstrapper.java index 13972c01ad8ac..800dfb10102c3 100644 --- a/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/ArbiterBootstrapper.java +++ b/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/ArbiterBootstrapper.java @@ -19,6 +19,8 @@ */ package org.neo4j.server.enterprise; +import org.jboss.netty.channel.ChannelException; + import java.io.File; import java.io.IOException; import java.util.HashMap; @@ -27,8 +29,6 @@ import java.util.Timer; import java.util.TimerTask; -import org.jboss.netty.channel.ChannelException; - import org.neo4j.cluster.ClusterSettings; import org.neo4j.cluster.client.ClusterClientModule; import org.neo4j.cluster.protocol.election.NotElectableElectionCredentialsProvider; @@ -38,6 +38,7 @@ import org.neo4j.helpers.collection.Pair; import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction; +import org.neo4j.io.fs.FileSystemLifecycleAdapter; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.logging.StoreLogService; @@ -63,14 +64,15 @@ public final int start( File homeDir, Optional configFile, Pair filter = parseFilter( arguments, timeZone ); Function serializer = parseSerializer( filter, timeZone ); - try ( Printer printer = getPrinter( arguments ) ) + try ( FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction(); + Printer printer = getPrinter( arguments ) ) { for ( String fileAsString : arguments.orphans() ) { - new DumpLogicalLog( new DefaultFileSystemAbstraction() ) + new DumpLogicalLog( fileSystem ) .dump( fileAsString, printer.getFor( fileAsString ), filter, serializer ); } } diff --git a/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java b/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java index e8254ba9092d5..415cfd1b06c34 100644 --- a/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java +++ b/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java @@ -78,7 +78,10 @@ public static void main( String[] args ) throws IOException File storeDir = parseDir( arguments ); FormattedLogProvider userLogProvider = FormattedLogProvider.toOutputStream( System.out ); - new StoreMigration().run( new DefaultFileSystemAbstraction(), storeDir, getMigrationConfig(), userLogProvider ); + try ( FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction() ) + { + new StoreMigration().run( fileSystem, storeDir, getMigrationConfig(), userLogProvider ); + } } private static Config getMigrationConfig() diff --git a/tools/src/main/java/org/neo4j/tools/rawstorereader/RsdrMain.java b/tools/src/main/java/org/neo4j/tools/rawstorereader/RsdrMain.java index faadc9834797c..6f94d70740dc8 100644 --- a/tools/src/main/java/org/neo4j/tools/rawstorereader/RsdrMain.java +++ b/tools/src/main/java/org/neo4j/tools/rawstorereader/RsdrMain.java @@ -66,7 +66,7 @@ */ public class RsdrMain { - private static final FileSystemAbstraction files = new DefaultFileSystemAbstraction(); + private static final Console console = System.console(); private static final Pattern readCommandPattern = Pattern.compile( "r" + // 'r' means read command "((?\\d+)?,(?\\d+)?)?\\s+" + // optional record id range bounds, followed by whitespace @@ -76,22 +76,26 @@ public class RsdrMain public static void main( String[] args ) throws IOException { - console.printf("Neo4j Raw Store Diagnostics Reader%n"); - - if ( args.length != 1 || !files.isDirectory( new File( args[0] ) ) ) + try ( FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction() ) { - console.printf("Usage: rsdr %n"); - return; - } + console.printf( "Neo4j Raw Store Diagnostics Reader%n" ); + + if ( args.length != 1 || !fileSystem.isDirectory( new File( args[0] ) ) ) + { + console.printf( "Usage: rsdr %n" ); + return; + } - File storedir = new File( args[0] ); + File storedir = new File( args[0] ); - Config config = buildConfig(); - try ( PageCache pageCache = createPageCache( files, config ) ) - { - StoreFactory factory = openStore( new File( storedir, MetaDataStore.DEFAULT_NAME ), config, pageCache ); - NeoStores neoStores = factory.openAllNeoStores(); - interact( neoStores ); + Config config = buildConfig(); + try ( PageCache pageCache = createPageCache( fileSystem, config ) ) + { + File neoStore = new File( storedir, MetaDataStore.DEFAULT_NAME ); + StoreFactory factory = openStore( fileSystem, neoStore, config, pageCache ); + NeoStores neoStores = factory.openAllNeoStores(); + interact( fileSystem, neoStores ); + } } } @@ -103,14 +107,15 @@ private static Config buildConfig() ) ); } - private static StoreFactory openStore( File storeDir, Config config, PageCache pageCache ) + private static StoreFactory openStore( FileSystemAbstraction fileSystem, File storeDir, Config config, + PageCache pageCache ) { - IdGeneratorFactory idGeneratorFactory = new DefaultIdGeneratorFactory( files ); + IdGeneratorFactory idGeneratorFactory = new DefaultIdGeneratorFactory( fileSystem ); NullLogProvider logProvider = NullLogProvider.getInstance(); - return new StoreFactory( storeDir, config, idGeneratorFactory, pageCache, files, logProvider ); + return new StoreFactory( storeDir, config, idGeneratorFactory, pageCache, fileSystem, logProvider ); } - private static void interact( NeoStores neoStores ) throws IOException + private static void interact( FileSystemAbstraction fileSystem, NeoStores neoStores ) throws IOException { printHelp(); @@ -118,7 +123,7 @@ private static void interact( NeoStores neoStores ) throws IOException do { cmd = console.readLine( "neo? " ); - } while ( execute( cmd, neoStores ) ); + } while ( execute( fileSystem, cmd, neoStores ) ); System.exit( 0 ); } @@ -133,7 +138,8 @@ private static void printHelp() " q quit%n" ); } - private static boolean execute( String cmd, NeoStores neoStores ) throws IOException + private static boolean execute( FileSystemAbstraction fileSystem, String cmd, NeoStores neoStores ) + throws IOException { if ( cmd == null || cmd.equals( "q" ) ) { @@ -145,11 +151,11 @@ else if ( cmd.equals( "h" ) ) } else if ( cmd.equals( "l" ) ) { - listFiles( neoStores ); + listFiles( fileSystem, neoStores ); } else if ( cmd.startsWith( "r" ) ) { - read( cmd, neoStores ); + read( fileSystem, cmd, neoStores ); } else if ( !cmd.trim().isEmpty() ) { @@ -158,17 +164,17 @@ else if ( !cmd.trim().isEmpty() ) return true; } - private static void listFiles( NeoStores neoStores ) + private static void listFiles( FileSystemAbstraction fileSystem, NeoStores neoStores ) { File storedir = neoStores.getStoreDir(); - File[] listing = files.listFiles( storedir ); + File[] listing = fileSystem.listFiles( storedir ); for ( File file : listing ) { console.printf( "%s%n", file.getName() ); } } - private static void read( String cmd, NeoStores neoStores ) throws IOException + private static void read( FileSystemAbstraction fileSystem, String cmd, NeoStores neoStores ) throws IOException { Matcher matcher = readCommandPattern.matcher( cmd ); if ( matcher.find() ) @@ -184,11 +190,11 @@ private static void read( String cmd, NeoStores neoStores ) throws IOException RecordStore store = getStore( fname, neoStores ); if ( store != null ) { - readStore( store, fromId, toId, pattern ); + readStore( fileSystem, store, fromId, toId, pattern ); return; } - IOCursor cursor = getLogCursor( fname, neoStores ); + IOCursor cursor = getLogCursor( fileSystem, fname, neoStores ); if ( cursor != null ) { readLog( cursor, fromId, toId, pattern ); @@ -204,11 +210,11 @@ private static void read( String cmd, NeoStores neoStores ) throws IOException } } - private static void readStore( + private static void readStore( FileSystemAbstraction fileSystem, RecordStore store, long fromId, long toId, Pattern pattern ) throws IOException { toId = Math.min( toId, store.getHighId() ); - try ( StoreChannel channel = files.open( store.getStorageFileName(), "r" ) ) + try ( StoreChannel channel = fileSystem.open( store.getStorageFileName(), "r" ) ) { int recordSize = store.getRecordSize(); ByteBuffer buf = ByteBuffer.allocate( recordSize ); @@ -275,10 +281,11 @@ private static RecordStore getStore( String fname, NeoStores neoStores ) } } - private static IOCursor getLogCursor( String fname, NeoStores neoStores ) throws IOException + private static IOCursor getLogCursor( FileSystemAbstraction fileSystem, String fname, + NeoStores neoStores ) throws IOException { File file = new File( neoStores.getStoreDir(), fname ); - StoreChannel fileChannel = files.open( file, "r" ); + StoreChannel fileChannel = fileSystem.open( file, "r" ); LogHeader logHeader = readLogHeader( ByteBuffer.allocateDirect( LOG_HEADER_SIZE ), fileChannel, false, file ); console.printf( "Logical log version: %s with prev committed tx[%s]%n", logHeader.logVersion, logHeader.lastCommittedTxId ); diff --git a/tools/src/main/java/org/neo4j/tools/rebuild/RebuildFromLogs.java b/tools/src/main/java/org/neo4j/tools/rebuild/RebuildFromLogs.java index 8f61dbc09a251..0ed274c6db547 100644 --- a/tools/src/main/java/org/neo4j/tools/rebuild/RebuildFromLogs.java +++ b/tools/src/main/java/org/neo4j/tools/rebuild/RebuildFromLogs.java @@ -135,7 +135,10 @@ public static void main( String[] args ) throws Exception } } - new RebuildFromLogs( new DefaultFileSystemAbstraction() ).rebuild( source, target, txId ); + try (FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction()) + { + new RebuildFromLogs( fileSystem ).rebuild( source, target, txId ); + } } private static boolean directoryContainsDb( Path path )