From a6132401b382745e8f3273ed4f7a6f17eff40b15 Mon Sep 17 00:00:00 2001 From: Davide Grohmann Date: Wed, 23 Dec 2015 15:40:29 +0100 Subject: [PATCH] Remove deprecated code from KernelExtensionFactory --- .../org/neo4j/bolt/BoltKernelExtension.java | 5 +- .../neo4j/jmx/impl/JmxExtensionFactory.java | 7 +-- .../extension/KernelExtensionFactory.java | 22 +-------- .../kernel/impl/factory/PlatformModule.java | 23 +++------ .../kernel/impl/spi/SimpleKernelContext.java | 48 +++++++++++++++++++ .../unsafe/batchinsert/BatchInserterImpl.java | 29 +++-------- .../batchimport/store/BatchingNeoStores.java | 17 +------ .../neo4j/kernel/DummyExtensionFactory.java | 3 +- .../index/UniqueConstraintCompatibility.java | 5 +- .../impl/api/index/SchemaIndexTestHelper.java | 23 +++++---- .../InMemoryIndexProviderFactory.java | 3 +- .../scan/InMemoryLabelScanStoreExtension.java | 6 ++- .../index/DummyIndexExtensionFactory.java | 6 +-- .../unsafe/batchinsert/BatchInsertTest.java | 6 ++- .../api/impl/index/LuceneIndexRecoveryIT.java | 11 ++++- .../MonitorLoggingExtensionFactory.java | 9 ++-- .../impl/ShellServerExtensionFactory.java | 5 +- .../udc/impl/UdcKernelExtensionFactory.java | 6 ++- .../backup/OnlineBackupExtensionFactory.java | 5 +- .../org/neo4j/backup/BackupServiceIT.java | 23 ++++----- .../BackupServiceStressTestingBuilder.java | 9 ++-- .../org/neo4j/metrics/MetricsExtension.java | 5 +- .../MetricsKernelExtensionFactory.java | 6 +-- .../neo4j/metrics/output/CsvOutputTest.java | 25 +++------- .../neo4j/tools/migration/StoreMigration.java | 28 +---------- 25 files changed, 152 insertions(+), 183 deletions(-) create mode 100644 community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java diff --git a/community/bolt/src/main/java/org/neo4j/bolt/BoltKernelExtension.java b/community/bolt/src/main/java/org/neo4j/bolt/BoltKernelExtension.java index abf14adc23d93..46e4c8c7cc828 100644 --- a/community/bolt/src/main/java/org/neo4j/bolt/BoltKernelExtension.java +++ b/community/bolt/src/main/java/org/neo4j/bolt/BoltKernelExtension.java @@ -55,6 +55,7 @@ import org.neo4j.kernel.configuration.ConfigValues; import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.impl.logging.LogService; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.impl.util.JobScheduler; import org.neo4j.kernel.lifecycle.LifeSupport; import org.neo4j.kernel.lifecycle.Lifecycle; @@ -173,7 +174,7 @@ public BoltKernelExtension() } @Override - public Lifecycle newKernelExtension( final Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { final Config config = dependencies.config(); final GraphDatabaseService gdb = dependencies.db(); @@ -189,8 +190,6 @@ public Lifecycle newKernelExtension( final Dependencies dependencies ) throws Th life.add( new StandardSessions( api, dependencies.usageData(), logging ) ), scheduler, logging ); - - List connectors = new ArrayList<>(); List view = config.view( Settings.connector_group ); diff --git a/community/jmx/src/main/java/org/neo4j/jmx/impl/JmxExtensionFactory.java b/community/jmx/src/main/java/org/neo4j/jmx/impl/JmxExtensionFactory.java index 4cea961f5b671..d694187e022e2 100644 --- a/community/jmx/src/main/java/org/neo4j/jmx/impl/JmxExtensionFactory.java +++ b/community/jmx/src/main/java/org/neo4j/jmx/impl/JmxExtensionFactory.java @@ -23,6 +23,7 @@ import org.neo4j.kernel.KernelData; import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.impl.logging.LogService; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; @Service.Implementation(KernelExtensionFactory.class) @@ -35,7 +36,6 @@ public interface Dependencies LogService getLogService(); } - public static final String KEY = "kernel jmx"; public JmxExtensionFactory() @@ -44,8 +44,9 @@ public JmxExtensionFactory() } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { - return new JmxKernelExtension( dependencies.getKernelData(), dependencies.getLogService().getInternalLogProvider() ); + return new JmxKernelExtension( + dependencies.getKernelData(), dependencies.getLogService().getInternalLogProvider() ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/extension/KernelExtensionFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/extension/KernelExtensionFactory.java index 21e7f85420875..a94de3cca4951 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/extension/KernelExtensionFactory.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/extension/KernelExtensionFactory.java @@ -36,25 +36,10 @@ protected KernelExtensionFactory( String key ) * * @return a class or null if no settings are needed */ - public Class getSettingsClass() + public Class getSettingsClass() { return null; } - - /** - * Create a new instance of this kernel extension. - * - * @param dependencies Dependencies - * @return the lifecycle for the instance - * @deprecated use {@link #newInstance(KernelContext, Object)} instead - * @throws Throwable depends on the implementation - */ - @Deprecated - public Lifecycle newKernelExtension( DEPENDENCIES dependencies ) - throws Throwable - { - throw new UnsupportedOperationException( "deprecated" ); - } /** * Create a new instance of this kernel extension. @@ -64,10 +49,7 @@ public Lifecycle newKernelExtension( DEPENDENCIES dependencies ) * @return the {@link Lifecycle} for the extension * @throws Throwable if there is an error */ - public Lifecycle newInstance( @SuppressWarnings( "unused" ) KernelContext context, DEPENDENCIES dependencies ) throws Throwable - { - return newKernelExtension( dependencies ); - } + public abstract Lifecycle newInstance( KernelContext context, DEPENDENCIES dependencies ) throws Throwable; @Override public String toString() diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/PlatformModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/PlatformModule.java index 93f87631071d1..ecdf60a96ca8c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/PlatformModule.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/PlatformModule.java @@ -30,10 +30,10 @@ import org.neo4j.graphdb.security.URLAccessRule; import org.neo4j.helpers.Clock; import org.neo4j.helpers.collection.Iterables; +import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.pagecache.PageCache; import org.neo4j.kernel.AvailabilityGuard; -import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.kernel.StoreLocker; import org.neo4j.kernel.StoreLockerLifecycleAdapter; import org.neo4j.kernel.Version; @@ -47,6 +47,7 @@ import org.neo4j.kernel.impl.pagecache.PageCacheLifecycle; import org.neo4j.kernel.impl.security.URLAccessRules; import org.neo4j.kernel.impl.spi.KernelContext; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.transaction.TransactionStats; import org.neo4j.kernel.impl.transaction.state.DataSourceManager; import org.neo4j.kernel.impl.util.JobScheduler; @@ -169,20 +170,7 @@ public DependencyResolver get() transactionMonitor = dependencies.satisfyDependency( createTransactionStats() ); - KernelContext kernelContext = dependencies.satisfyDependency( new KernelContext() - { - @Override - public FileSystemAbstraction fileSystem() - { - return PlatformModule.this.fileSystem; - } - - @Override - public File storeDir() - { - return PlatformModule.this.storeDir; - } - } ); + KernelContext kernelContext = dependencies.satisfyDependency( new SimpleKernelContext( fileSystem, storeDir ) ); kernelExtensions = dependencies.satisfyDependency( new KernelExtensions( kernelContext, @@ -291,9 +279,10 @@ private Iterable> getSettingsClasses( Iterable> settingsClasse // Get the list of settings classes for extensions for ( KernelExtensionFactory kernelExtension : kernelExtensions ) { - if ( kernelExtension.getSettingsClass() != null ) + Class settingsClass = kernelExtension.getSettingsClass(); + if ( settingsClass != null ) { - totalSettingsClasses.add( kernelExtension.getSettingsClass() ); + totalSettingsClasses.add( settingsClass ); } } 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 new file mode 100644 index 0000000000000..d8c1c066b7bf0 --- /dev/null +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/spi/SimpleKernelContext.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2002-2015 "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.spi; + +import java.io.File; + +import org.neo4j.io.fs.FileSystemAbstraction; + +public class SimpleKernelContext implements KernelContext +{ + private final FileSystemAbstraction fileSystem; + private final File storeDir; + + public SimpleKernelContext( FileSystemAbstraction fileSystem, File storeDir ) + { + this.fileSystem = fileSystem; + this.storeDir = storeDir; + } + + @Override + public FileSystemAbstraction fileSystem() + { + return fileSystem; + } + + @Override + public File storeDir() + { + return storeDir; + } +} diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/BatchInserterImpl.java b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/BatchInserterImpl.java index 1833414196834..9b4f18fc68bde 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/BatchInserterImpl.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/BatchInserterImpl.java @@ -46,15 +46,12 @@ import org.neo4j.helpers.collection.IteratorUtil; import org.neo4j.helpers.collection.IteratorWrapper; import org.neo4j.helpers.collection.Visitor; +import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileUtils; import org.neo4j.io.pagecache.PageCache; import org.neo4j.io.pagecache.tracing.PageCacheTracer; -import org.neo4j.io.fs.DefaultFileSystemAbstraction; -import org.neo4j.kernel.impl.store.id.DefaultIdGeneratorFactory; import org.neo4j.kernel.EmbeddedGraphDatabase; -import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; -import org.neo4j.kernel.impl.store.id.IdType; import org.neo4j.kernel.StoreLocker; import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint; import org.neo4j.kernel.api.constraints.RelationshipPropertyExistenceConstraint; @@ -100,7 +97,7 @@ import org.neo4j.kernel.impl.logging.StoreLogService; import org.neo4j.kernel.impl.pagecache.ConfiguringPageCacheFactory; import org.neo4j.kernel.impl.pagecache.PageCacheLifecycle; -import org.neo4j.kernel.impl.spi.KernelContext; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.store.CountsComputer; import org.neo4j.kernel.impl.store.LabelTokenStore; import org.neo4j.kernel.impl.store.NeoStores; @@ -115,7 +112,10 @@ import org.neo4j.kernel.impl.store.StoreFactory; import org.neo4j.kernel.impl.store.UnderlyingStorageException; import org.neo4j.kernel.impl.store.counts.CountsTracker; +import org.neo4j.kernel.impl.store.id.DefaultIdGeneratorFactory; +import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; import org.neo4j.kernel.impl.store.id.IdGeneratorImpl; +import org.neo4j.kernel.impl.store.id.IdType; import org.neo4j.kernel.impl.store.record.DynamicRecord; import org.neo4j.kernel.impl.store.record.IndexRule; import org.neo4j.kernel.impl.store.record.LabelTokenRecord; @@ -300,23 +300,8 @@ public Label apply( long from ) Dependencies deps = new Dependencies(); deps.satisfyDependencies( fileSystem, config, logService, (NeoStoresSupplier) () -> neoStores ); - KernelContext kernelContext = new KernelContext() - { - @Override - public FileSystemAbstraction fileSystem() - { - return fileSystem; - } - - @Override - public File storeDir() - { - return storeDir; - } - }; - KernelExtensions extensions = life - .add( new KernelExtensions( kernelContext, kernelExtensions, deps, - UnsatisfiedDependencyStrategies.ignore() ) ); + KernelExtensions extensions = life.add( new KernelExtensions( new SimpleKernelContext( fileSystem, storeDir ), + kernelExtensions, deps, UnsatisfiedDependencyStrategies.ignore() ) ); SchemaIndexProvider provider = extensions.resolveDependency( SchemaIndexProvider.class, HighestSelectionStrategy.getInstance() ); diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingNeoStores.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingNeoStores.java index 2d6516f983a73..4a2216c98228e 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingNeoStores.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingNeoStores.java @@ -38,6 +38,7 @@ import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.pagecache.ConfiguringPageCacheFactory; import org.neo4j.kernel.impl.spi.KernelContext; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.store.NeoStores; import org.neo4j.kernel.impl.store.NodeStore; import org.neo4j.kernel.impl.store.PropertyStore; @@ -60,7 +61,6 @@ import org.neo4j.unsafe.impl.batchimport.store.io.IoTracer; import static java.lang.String.valueOf; - import static org.neo4j.graphdb.factory.GraphDatabaseSettings.dense_node_threshold; import static org.neo4j.graphdb.factory.GraphDatabaseSettings.pagecache_memory; import static org.neo4j.helpers.collection.MapUtil.stringMap; @@ -134,20 +134,7 @@ public long countBytesWritten() dependencies.satisfyDependency( fileSystem ); dependencies.satisfyDependency( this ); dependencies.satisfyDependency( logService ); - KernelContext kernelContext = new KernelContext() - { - @Override - public FileSystemAbstraction fileSystem() - { - return BatchingNeoStores.this.fileSystem; - } - - @Override - public File storeDir() - { - return BatchingNeoStores.this.storeDir; - } - }; + KernelContext kernelContext = new SimpleKernelContext( fileSystem, storeDir ); @SuppressWarnings( { "unchecked", "rawtypes" } ) KernelExtensions extensions = life.add( new KernelExtensions( kernelContext, (Iterable) Service.load( KernelExtensionFactory.class ), diff --git a/community/kernel/src/test/java/org/neo4j/kernel/DummyExtensionFactory.java b/community/kernel/src/test/java/org/neo4j/kernel/DummyExtensionFactory.java index 50a30723d0164..2b3bafacf681d 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/DummyExtensionFactory.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/DummyExtensionFactory.java @@ -23,6 +23,7 @@ import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; public class DummyExtensionFactory extends KernelExtensionFactory @@ -44,7 +45,7 @@ public DummyExtensionFactory() } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { return new DummyExtension( dependencies ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java index 5cc9992e6b103..15fafa6410dd2 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java @@ -49,6 +49,7 @@ import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; import org.neo4j.kernel.impl.locking.Lock; import org.neo4j.kernel.impl.locking.LockService; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; import org.neo4j.test.TargetDirectory; import org.neo4j.test.TestGraphDatabaseFactory; @@ -1017,12 +1018,12 @@ private static class PredefinedSchemaIndexProviderFactory extends KernelExtensio private final SchemaIndexProvider indexProvider; @Override - public Lifecycle newKernelExtension( NoDeps noDeps ) throws Throwable + public Lifecycle newInstance( KernelContext context, NoDeps noDeps ) throws Throwable { return indexProvider; } - public static interface NoDeps { + public interface NoDeps { } public PredefinedSchemaIndexProviderFactory( SchemaIndexProvider indexProvider ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/SchemaIndexTestHelper.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/SchemaIndexTestHelper.java index d204ade032084..2681c57f7c55e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/SchemaIndexTestHelper.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/SchemaIndexTestHelper.java @@ -19,13 +19,14 @@ */ package org.neo4j.kernel.impl.api.index; +import org.junit.Ignore; + import java.io.IOException; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeoutException; -import org.junit.Ignore; import org.neo4j.helpers.FutureAdapter; import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; @@ -34,10 +35,12 @@ import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; import static java.util.concurrent.TimeUnit.SECONDS; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; @Ignore( "This is not a test" ) public class SchemaIndexTestHelper @@ -47,12 +50,12 @@ public static KernelExtensionFactory { @@ -65,13 +68,13 @@ private SingleInstanceSchemaIndexProviderFactory( String key, SchemaIndexProvide } @Override - public Lifecycle newKernelExtension( SingleInstanceSchemaIndexProviderFactoryDependencies dependencies ) - throws Throwable + public Lifecycle newInstance( KernelContext context, + SingleInstanceSchemaIndexProviderFactoryDependencies dependencies ) throws Throwable { return provider; } } - + public static IndexProxy mockIndexProxy() throws IOException { IndexProxy result = mock( IndexProxy.class ); @@ -79,7 +82,7 @@ public static IndexProxy mockIndexProxy() throws IOException when( result.close() ).thenReturn( FutureAdapter.VOID ); return result; } - + public static T awaitFuture( Future future ) { try @@ -96,7 +99,7 @@ public static T awaitFuture( Future future ) throw new RuntimeException( e ); } } - + public static boolean awaitLatch( CountDownLatch latch ) { try @@ -109,7 +112,7 @@ public static boolean awaitLatch( CountDownLatch latch ) throw new RuntimeException( e ); } } - + public static void awaitIndexOnline( ReadOperations readOperations, IndexDescriptor indexRule ) throws IndexNotFoundKernelException { diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndexProviderFactory.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndexProviderFactory.java index fb225234e7011..08ab050194bad 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndexProviderFactory.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndexProviderFactory.java @@ -22,6 +22,7 @@ import org.neo4j.helpers.Service; import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; import static java.util.Objects.requireNonNull; @@ -53,7 +54,7 @@ public InMemoryIndexProviderFactory( InMemoryIndexProvider singleProvider ) } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { return singleProvider != null ? singleProvider : new InMemoryIndexProvider(); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/scan/InMemoryLabelScanStoreExtension.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/scan/InMemoryLabelScanStoreExtension.java index fc483597b4538..0b6d658e30446 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/scan/InMemoryLabelScanStoreExtension.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/scan/InMemoryLabelScanStoreExtension.java @@ -21,9 +21,11 @@ import org.neo4j.helpers.Service; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; @Service.Implementation( KernelExtensionFactory.class ) -public class InMemoryLabelScanStoreExtension extends KernelExtensionFactory +public class InMemoryLabelScanStoreExtension extends + KernelExtensionFactory { public interface NoDependencies { // No dependencies @@ -35,7 +37,7 @@ public InMemoryLabelScanStoreExtension() } @Override - public LabelScanStoreProvider newKernelExtension( NoDependencies dependencies ) throws Throwable + public LabelScanStoreProvider newInstance( KernelContext context, NoDependencies dependencies ) throws Throwable { return new LabelScanStoreProvider( new InMemoryLabelScanStore(), 2 ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/DummyIndexExtensionFactory.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/DummyIndexExtensionFactory.java index 6229ce39e895a..1db52d05c1bd9 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/DummyIndexExtensionFactory.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/DummyIndexExtensionFactory.java @@ -20,12 +20,12 @@ package org.neo4j.kernel.impl.index; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; import org.neo4j.kernel.lifecycle.LifecycleAdapter; import org.neo4j.kernel.spi.legacyindex.IndexProviders; -public class DummyIndexExtensionFactory extends - KernelExtensionFactory +public class DummyIndexExtensionFactory extends KernelExtensionFactory { public static final String IDENTIFIER = "test-dummy-neo-index"; public static final String KEY_FAIL_ON_MUTATE = "fail_on_mutate"; @@ -41,7 +41,7 @@ public interface Dependencies } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { IndexProviders indexProviders = dependencies.getIndexProviders(); return new Extension( indexProviders ); diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/BatchInsertTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/BatchInsertTest.java index 33f142067c2b1..8eef67093a4ad 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/BatchInsertTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/BatchInsertTest.java @@ -71,8 +71,10 @@ import org.neo4j.kernel.impl.api.index.inmemory.InMemoryIndexProviderFactory; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.kernel.impl.api.scan.InMemoryLabelScanStoreExtension; +import org.neo4j.kernel.impl.api.scan.InMemoryLabelScanStoreExtension.NoDependencies; import org.neo4j.kernel.impl.api.scan.LabelScanStoreProvider; import org.neo4j.kernel.impl.logging.StoreLogService; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.impl.store.NeoStores; import org.neo4j.kernel.impl.store.NodeLabels; import org.neo4j.kernel.impl.store.NodeLabelsField; @@ -1670,7 +1672,7 @@ public void close() throws IOException } } - private static class ControlledLabelScanStore extends KernelExtensionFactory + private static class ControlledLabelScanStore extends KernelExtensionFactory { private final LabelScanStore labelScanStore; @@ -1681,7 +1683,7 @@ public ControlledLabelScanStore( LabelScanStore labelScanStore ) } @Override - public Lifecycle newKernelExtension( InMemoryLabelScanStoreExtension.NoDependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, NoDependencies dependencies ) throws Throwable { return new LabelScanStoreProvider( labelScanStore, 100 ); } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneIndexRecoveryIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneIndexRecoveryIT.java index 5a7c5dc694374..8dd2c47eebabe 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneIndexRecoveryIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneIndexRecoveryIT.java @@ -331,11 +331,17 @@ private void deleteNode( long node ) } // Creates a lucene index factory with the shared in-memory directory - private KernelExtensionFactory createAlwaysInitiallyPopulatingLuceneIndexFactory() + private KernelExtensionFactory createAlwaysInitiallyPopulatingLuceneIndexFactory() { return new KernelExtensionFactory( LuceneSchemaIndexProviderFactory.PROVIDER_DESCRIPTOR.getKey() ) { + @Override + public Class getSettingsClass() + { + return LuceneSchemaIndexProviderFactory.Dependencies.class; + } + @Override public Lifecycle newInstance( KernelContext context, LuceneSchemaIndexProviderFactory.Dependencies dependencies ) throws Throwable @@ -353,11 +359,12 @@ public InternalIndexState getInitialState( long indexId ) } // Creates a lucene index factory with the shared in-memory directory - private KernelExtensionFactory createLuceneIndexFactory() + private KernelExtensionFactory createLuceneIndexFactory() { return new KernelExtensionFactory( LuceneSchemaIndexProviderFactory.PROVIDER_DESCRIPTOR.getKey() ) { + @Override public Lifecycle newInstance( KernelContext context, LuceneSchemaIndexProviderFactory.Dependencies dependencies ) throws Throwable diff --git a/community/monitor-logging/src/main/java/org/neo4j/ext/monitorlogging/MonitorLoggingExtensionFactory.java b/community/monitor-logging/src/main/java/org/neo4j/ext/monitorlogging/MonitorLoggingExtensionFactory.java index fe74de6dc7ffc..68c106da690d0 100644 --- a/community/monitor-logging/src/main/java/org/neo4j/ext/monitorlogging/MonitorLoggingExtensionFactory.java +++ b/community/monitor-logging/src/main/java/org/neo4j/ext/monitorlogging/MonitorLoggingExtensionFactory.java @@ -19,15 +19,16 @@ */ package org.neo4j.ext.monitorlogging; +import java.io.InputStream; +import java.util.Properties; + import org.neo4j.helpers.Service; import org.neo4j.kernel.extension.KernelExtensionFactory; 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 java.io.InputStream; -import java.util.Properties; - @Service.Implementation(KernelExtensionFactory.class) public class MonitorLoggingExtensionFactory extends KernelExtensionFactory { @@ -47,7 +48,7 @@ public interface Dependencies } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { LogService logService = dependencies.getLogService(); Properties props = loadProperties( logService ); diff --git a/community/shell/src/main/java/org/neo4j/shell/impl/ShellServerExtensionFactory.java b/community/shell/src/main/java/org/neo4j/shell/impl/ShellServerExtensionFactory.java index a727c68f55641..710bf317b1709 100644 --- a/community/shell/src/main/java/org/neo4j/shell/impl/ShellServerExtensionFactory.java +++ b/community/shell/src/main/java/org/neo4j/shell/impl/ShellServerExtensionFactory.java @@ -23,6 +23,7 @@ import org.neo4j.kernel.GraphDatabaseAPI; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.extension.KernelExtensionFactory; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.lifecycle.Lifecycle; import org.neo4j.shell.ShellSettings; @@ -44,13 +45,13 @@ public ShellServerExtensionFactory() } @Override - public Class getSettingsClass() + public Class getSettingsClass() { return ShellSettings.class; } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { return new ShellServerKernelExtension( dependencies.getConfig(), dependencies.getGraphDatabaseAPI() ); } diff --git a/community/udc/src/main/java/org/neo4j/ext/udc/impl/UdcKernelExtensionFactory.java b/community/udc/src/main/java/org/neo4j/ext/udc/impl/UdcKernelExtensionFactory.java index 04dc1033abf9c..7ca9285f15448 100644 --- a/community/udc/src/main/java/org/neo4j/ext/udc/impl/UdcKernelExtensionFactory.java +++ b/community/udc/src/main/java/org/neo4j/ext/udc/impl/UdcKernelExtensionFactory.java @@ -27,6 +27,7 @@ import org.neo4j.ext.udc.UdcSettings; import org.neo4j.helpers.Service; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.extension.KernelExtensionFactory; @@ -67,13 +68,14 @@ public UdcKernelExtensionFactory() } @Override - public Class getSettingsClass() + public Class getSettingsClass() { return UdcSettings.class; } @Override - public Lifecycle newKernelExtension( UdcKernelExtensionFactory.Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext kernelContext, UdcKernelExtensionFactory.Dependencies dependencies ) + throws Throwable { return new UdcKernelExtension( loadConfig( dependencies.config() ), 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 832e772cacc3f..53663a5c26531 100644 --- a/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java +++ b/enterprise/backup/src/main/java/org/neo4j/backup/OnlineBackupExtensionFactory.java @@ -28,6 +28,7 @@ import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.impl.logging.LogService; +import org.neo4j.kernel.impl.spi.KernelContext; import org.neo4j.kernel.impl.transaction.log.LogFileInformation; import org.neo4j.kernel.impl.transaction.log.LogicalTransactionStore; import org.neo4j.kernel.impl.transaction.log.TransactionIdStore; @@ -69,13 +70,13 @@ public OnlineBackupExtensionFactory() } @Override - public Class getSettingsClass() + public Class getSettingsClass() { return OnlineBackupSettings.class; } @Override - public Lifecycle newKernelExtension( Dependencies dependencies ) throws Throwable + public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { return new OnlineBackupKernelExtension( dependencies.getConfig(), dependencies.getGraphDatabaseAPI(), dependencies.logService().getInternalLogProvider(), dependencies.monitors(), diff --git a/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceIT.java b/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceIT.java index b4e7680fcfc70..fe8448c28de90 100644 --- a/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceIT.java +++ b/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceIT.java @@ -52,6 +52,7 @@ import org.neo4j.kernel.GraphDatabaseAPI; import org.neo4j.kernel.NeoStoreDataSource; import org.neo4j.kernel.configuration.Config; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.store.MetaDataStore; import org.neo4j.kernel.impl.store.MetaDataStore.Position; import org.neo4j.kernel.impl.store.MismatchingStoreIdException; @@ -85,6 +86,7 @@ import org.neo4j.test.SuppressOutput; import org.neo4j.test.TargetDirectory; +import static java.util.concurrent.TimeUnit.SECONDS; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; @@ -94,9 +96,6 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; - -import static java.util.concurrent.TimeUnit.SECONDS; - import static org.neo4j.backup.BackupServiceStressTestingBuilder.untilTimeExpired; public class BackupServiceIT @@ -605,25 +604,21 @@ public void shouldContainTransactionsThatHappenDuringBackupProcess() throws Thro Dependencies dependencies = new Dependencies( resolver ); dependencies.satisfyDependencies( defaultConfig, monitors, NullLogProvider.getInstance() ); - OnlineBackupKernelExtension backup = (OnlineBackupKernelExtension) new OnlineBackupExtensionFactory().newKernelExtension( + OnlineBackupKernelExtension backup = (OnlineBackupKernelExtension) + new OnlineBackupExtensionFactory().newInstance( new SimpleKernelContext( fileSystem, storeDir ), DependenciesProxy.dependencies(dependencies, OnlineBackupExtensionFactory.Dependencies.class)); backup.start(); // when BackupService backupService = backupService(); ExecutorService executor = Executors.newSingleThreadExecutor(); - executor.execute( new Runnable() - { - @Override - public void run() - { - barrier.awaitUninterruptibly(); + executor.execute( () -> { + barrier.awaitUninterruptibly(); - createAndIndexNode( db, 1 ); - resolver.resolveDependency( NeoStoresSupplier.class ).get().flush(); + createAndIndexNode( db, 1 ); + resolver.resolveDependency( NeoStoresSupplier.class ).get().flush(); - barrier.release(); - } + barrier.release(); } ); BackupService.BackupOutcome backupOutcome = backupService.doFullBackup( BACKUP_HOST, backupPort, diff --git a/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceStressTestingBuilder.java b/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceStressTestingBuilder.java index 96ddf59772a7f..511c27839a659 100644 --- a/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceStressTestingBuilder.java +++ b/enterprise/backup/src/test/java/org/neo4j/backup/BackupServiceStressTestingBuilder.java @@ -45,6 +45,7 @@ import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.GraphDatabaseAPI; import org.neo4j.kernel.configuration.Config; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer; import org.neo4j.kernel.impl.transaction.log.checkpoint.SimpleTriggerInfo; import org.neo4j.kernel.impl.transaction.log.rotation.LogRotation; @@ -181,10 +182,10 @@ public Integer call() throws Exception LifeSupport life = new LifeSupport(); try { - life.add( (OnlineBackupKernelExtension) - new OnlineBackupExtensionFactory().newKernelExtension( - DependenciesProxy.dependencies( dependencies, - OnlineBackupExtensionFactory.Dependencies.class ) ) ); + SimpleKernelContext context = new SimpleKernelContext( fileSystem, storeDir ); + OnlineBackupExtensionFactory.Dependencies extensionDeps = DependenciesProxy.dependencies( + dependencies, OnlineBackupExtensionFactory.Dependencies.class ); + life.add( new OnlineBackupExtensionFactory().newInstance( context, extensionDeps ) ); } catch ( Throwable e ) { diff --git a/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsExtension.java b/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsExtension.java index 508276a61c933..9b92aff17995f 100644 --- a/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsExtension.java +++ b/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsExtension.java @@ -39,13 +39,12 @@ public class MetricsExtension implements Lifecycle private final Config configuration; private final KernelContext kernelContext; - - public MetricsExtension( MetricsKernelExtensionFactory.Dependencies dependencies ) + public MetricsExtension( KernelContext kernelContext, MetricsKernelExtensionFactory.Dependencies dependencies ) { + this.kernelContext = kernelContext; this.dependencies = dependencies; this.logService = dependencies.logService(); this.configuration = dependencies.configuration(); - this.kernelContext = dependencies.kernelContext(); } @Override diff --git a/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsKernelExtensionFactory.java b/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsKernelExtensionFactory.java index ae333a164ab9c..11da3ceb1a939 100644 --- a/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsKernelExtensionFactory.java +++ b/enterprise/metrics/src/main/java/org/neo4j/metrics/MetricsKernelExtensionFactory.java @@ -33,8 +33,6 @@ public interface Dependencies extends Neo4jMetricsBuilder.Dependencies Config configuration(); LogService logService(); - - KernelContext kernelContext(); } public MetricsKernelExtensionFactory() @@ -45,11 +43,11 @@ public MetricsKernelExtensionFactory() @Override public Lifecycle newInstance( KernelContext context, Dependencies dependencies ) throws Throwable { - return new MetricsExtension( dependencies ); + return new MetricsExtension( context, dependencies ); } @Override - public Class getSettingsClass() + public Class getSettingsClass() { return MetricsSettings.class; } diff --git a/enterprise/metrics/src/test/java/org/neo4j/metrics/output/CsvOutputTest.java b/enterprise/metrics/src/test/java/org/neo4j/metrics/output/CsvOutputTest.java index 843265a32c93e..e12d46a5a50d3 100644 --- a/enterprise/metrics/src/test/java/org/neo4j/metrics/output/CsvOutputTest.java +++ b/enterprise/metrics/src/test/java/org/neo4j/metrics/output/CsvOutputTest.java @@ -27,9 +27,9 @@ import java.nio.file.Files; import org.neo4j.io.fs.DefaultFileSystemAbstraction; -import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.spi.KernelContext; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.lifecycle.LifeRule; import org.neo4j.logging.NullLog; import org.neo4j.metrics.MetricsSettings; @@ -57,7 +57,7 @@ public void shouldHaveMetricsCsvPathEndUpRelativeToGraphDbDirectoryIfRelativePat MetricsSettings.csvEnabled.name(), "true", MetricsSettings.csvInterval.name(), "10ms", MetricsSettings.csvPath.name(), name ), - new MetricRegistry(), NullLog.getInstance(), kerneContext( storeDir ) ) ); + new MetricRegistry(), NullLog.getInstance(), kernelContext( storeDir ) ) ); // WHEN life.start(); @@ -75,7 +75,7 @@ public void shouldHaveRelativeMetricsCsvPathBeRelativeToGraphDbDirectory() throw MetricsSettings.csvEnabled.name(), "true", MetricsSettings.csvInterval.name(), "10ms", MetricsSettings.csvPath.name(), "test.csv" ), - new MetricRegistry(), NullLog.getInstance(), kerneContext( storeDir ) ) ); + new MetricRegistry(), NullLog.getInstance(), kernelContext( storeDir ) ) ); // WHEN life.start(); @@ -94,7 +94,7 @@ public void shouldHaveAbsoluteMetricsCsvPathBeAbsolute() throws Exception MetricsSettings.csvEnabled.name(), "true", MetricsSettings.csvInterval.name(), "10ms", MetricsSettings.csvPath.name(), outputFPath.getAbsolutePath() ), - new MetricRegistry(), NullLog.getInstance(), kerneContext( storeDir ) ) ); + new MetricRegistry(), NullLog.getInstance(), kernelContext( storeDir ) ) ); // WHEN life.start(); @@ -103,22 +103,9 @@ public void shouldHaveAbsoluteMetricsCsvPathBeAbsolute() throws Exception waitForFileToAppear( outputFPath ); } - private KernelContext kerneContext( final File storeDir ) + private KernelContext kernelContext( final File storeDir ) { - return new KernelContext() - { - @Override - public File storeDir() - { - return storeDir; - } - - @Override - public FileSystemAbstraction fileSystem() - { - return new DefaultFileSystemAbstraction(); - } - }; + return new SimpleKernelContext( new DefaultFileSystemAbstraction(), storeDir ); } private Config config( String... keysValues ) 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 2f1919f5f8826..85464a38aacb4 100644 --- a/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java +++ b/tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java @@ -40,6 +40,7 @@ import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.logging.StoreLogService; import org.neo4j.kernel.impl.spi.KernelContext; +import org.neo4j.kernel.impl.spi.SimpleKernelContext; import org.neo4j.kernel.impl.storemigration.DatabaseMigrator; import org.neo4j.kernel.impl.storemigration.StoreUpgrader; import org.neo4j.kernel.impl.storemigration.monitoring.VisibleMigrationProgressMonitor; @@ -53,7 +54,6 @@ import org.neo4j.logging.LogProvider; import static java.lang.String.format; - import static org.neo4j.kernel.extension.UnsatisfiedDependencyStrategies.ignore; import static org.neo4j.kernel.impl.pagecache.StandalonePageCacheFactory.createPageCache; @@ -106,7 +106,7 @@ public void run( final FileSystemAbstraction fs, final File storeDirectory, Conf deps.satisfyDependencies( fs, config ); deps.satisfyDependencies( legacyIndexProvider ); - KernelContext kernelContext = new MigrationKernelContext( fs, storeDirectory ); + KernelContext kernelContext = new SimpleKernelContext( fs, storeDirectory ); KernelExtensions kernelExtensions = life.add( new KernelExtensions( kernelContext, GraphDatabaseDependencies.newDependencies().kernelExtensions(), deps, ignore() ) ); @@ -145,30 +145,6 @@ public void run( final FileSystemAbstraction fs, final File storeDirectory, Conf } } - private class MigrationKernelContext implements KernelContext - { - private final FileSystemAbstraction fileSystem; - private final File storeDirectory; - - public MigrationKernelContext( FileSystemAbstraction fileSystem, File storeDirectory ) - { - this.fileSystem = fileSystem; - this.storeDirectory = storeDirectory; - } - - @Override - public FileSystemAbstraction fileSystem() - { - return fileSystem; - } - - @Override - public File storeDir() - { - return storeDirectory; - } - } - private class LegacyIndexProvider implements IndexProviders {