Skip to content

Commit

Permalink
Moved Storage Engine API back into kernel
Browse files Browse the repository at this point in the history
Since kernel API and storage engine API are too interrelated to be separated.
Either both move or none do, they can always be broken out later. Having it
separately wasn't in vain though since it got the API cleaner and less leaky.

This also collapses the super tiny "neo4j-resource" component, which was really
a part of the graphdb-api back into kernel again. It was weird as a component,
but was temporarily necessary for having the storage engine API living outside kernel.

Even neo4j-proc (a tiny 4 class componentl) was moved into the kernel API
because it's a part of that API to begin with and could only really live on its own
due to the storage engine API was outside kernel.

This may seem like a step backwards, but things get a bit more coherent
for the time being and, again, this can be broken out later.
  • Loading branch information
tinwelint committed Jan 19, 2016
1 parent d545c76 commit 12eb3f8
Show file tree
Hide file tree
Showing 149 changed files with 173 additions and 208 deletions.
Expand Up @@ -24,9 +24,9 @@ import java.util.stream.Stream
import org.neo4j.cypher.{CypherTypeException, ExecutionEngineFunSuite, InvalidArgumentException}
import org.neo4j.kernel.api.KernelAPI
import org.neo4j.kernel.api.exceptions.ProcedureException
import org.neo4j.proc.Procedure.{BasicProcedure, Context}
import org.neo4j.proc.ProcedureSignature.procedureSignature
import org.neo4j.proc.{Neo4jTypes, ProcedureSignature => KernelSignature}
import org.neo4j.kernel.api.proc.Procedure.Context;
import org.neo4j.kernel.api.proc.ProcedureSignature.procedureSignature;
import org.neo4j.kernel.api.proc.{Neo4jTypes, ProcedureSignature => KernelSignature}

class CallProcedureAcceptanceTest extends ExecutionEngineFunSuite {

Expand Down
Expand Up @@ -32,8 +32,8 @@ import org.neo4j.kernel.api.constraints.UniquenessConstraint
import org.neo4j.kernel.api.exceptions.KernelException
import org.neo4j.kernel.api.exceptions.schema.SchemaKernelException
import org.neo4j.kernel.api.index.{IndexDescriptor, InternalIndexState}
import org.neo4j.proc.Neo4jTypes.AnyType
import org.neo4j.proc.{Neo4jTypes, ProcedureSignature => KernelProcedureSignature}
import org.neo4j.kernel.api.proc.Neo4jTypes.AnyType
import org.neo4j.kernel.api.proc.{Neo4jTypes, ProcedureSignature => KernelProcedureSignature}

import scala.collection.JavaConverters._

Expand Down
Expand Up @@ -49,7 +49,7 @@ import org.neo4j.kernel.api.index.{IndexDescriptor, InternalIndexState}
import org.neo4j.kernel.impl.api.{KernelStatement => InternalKernelStatement}
import org.neo4j.kernel.impl.core.{NodeManager, RelationshipProxy, ThreadToStatementContextBridge}
import org.neo4j.kernel.impl.locking.ResourceTypes
import org.neo4j.proc
import org.neo4j.kernel.api.proc
import org.neo4j.graphdb.security.URLAccessValidationError

import scala.collection.Iterator
Expand Down
Expand Up @@ -31,9 +31,9 @@ import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.kernel.GraphDatabaseAPI
import org.neo4j.kernel.api._
import org.neo4j.kernel.api.proc.Procedures
import org.neo4j.kernel.impl.api.{KernelStatement, KernelTransactionImplementation}
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge
import org.neo4j.proc.Procedures
import org.neo4j.test.TestGraphDatabaseFactory

import scala.collection.JavaConverters._
Expand Down
5 changes: 0 additions & 5 deletions community/kernel/pom.xml
Expand Up @@ -235,11 +235,6 @@ the relevant Commercial Agreement.
<artifactId>neo4j-lucene-upgrade</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-storage-engine-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-procedure</artifactId>
Expand Down
Expand Up @@ -44,6 +44,7 @@
import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.api.index.SchemaIndexProvider;
import org.neo4j.kernel.api.labelscan.LabelScanStore;
import org.neo4j.kernel.api.proc.Procedures;
import org.neo4j.kernel.builtinprocs.BuiltInProcedures;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.extension.dependency.HighestSelectionStrategy;
Expand Down Expand Up @@ -97,7 +98,6 @@
import org.neo4j.kernel.impl.transaction.log.LogFileInformation;
import org.neo4j.kernel.impl.transaction.log.LogFileRecoverer;
import org.neo4j.kernel.impl.transaction.log.LogPosition;
import org.neo4j.kernel.impl.transaction.log.LogVersionRepository;
import org.neo4j.kernel.impl.transaction.log.LogVersionedStoreChannel;
import org.neo4j.kernel.impl.transaction.log.LoggingLogFileMonitor;
import org.neo4j.kernel.impl.transaction.log.LogicalTransactionStore;
Expand Down Expand Up @@ -153,7 +153,6 @@
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
import org.neo4j.logging.Logger;
import org.neo4j.proc.Procedures;
import org.neo4j.storageengine.api.StorageEngine;
import org.neo4j.storageengine.api.StoreReadLayer;

Expand Down Expand Up @@ -258,7 +257,7 @@ void dump( NeoStoreDataSource source, Logger log )

protected NeoStores neoStores( StorageEngine storageEngine )
{
return (NeoStores) storageEngine.neoStores();
return storageEngine.neoStores();
}

@Override
Expand Down Expand Up @@ -468,16 +467,16 @@ public void start() throws IOException
indexProviders.values(), storageEngine, logEntryReader );

buildRecovery( fs,
(NeoStores) storageEngine.neoStores(),
storageEngine.neoStores(),
monitors.newMonitor( RecoveryVisitor.Monitor.class ), monitors.newMonitor( Recovery.Monitor.class ),
transactionLogModule.logFiles(), transactionLogModule.storeFlusher(), startupStatistics,
storageEngine, logEntryReader );

KernelModule kernelModule = buildKernel(
transactionLogModule.transactionAppender(),
(IndexingService) storageEngine.indexingService(),
storageEngine.indexingService(),
storageEngine.storeReadLayer(),
updateableSchemaState, (LabelScanStore) storageEngine.labelScanStore(),
updateableSchemaState, storageEngine.labelScanStore(),
storageEngine );


Expand Down Expand Up @@ -511,7 +510,7 @@ public void start() throws IOException
// Close the neostore, so that locks are released properly
if ( storageEngine != null )
{
((NeoStores)storageEngine.neoStores()).close();
storageEngine.neoStores().close();
}
}
catch ( Exception closeException )
Expand All @@ -534,7 +533,7 @@ public void start() throws IOException
{
life.shutdown();
// Close the neostore, so that locks are released properly
((NeoStores)storageEngine.neoStores()).close();
storageEngine.neoStores().close();
}
catch ( Exception closeException )
{
Expand Down Expand Up @@ -600,12 +599,12 @@ private TransactionLogModule buildTransactionLogs(
fileSystemAbstraction );

final IdOrderingQueue legacyIndexTransactionOrdering =
(IdOrderingQueue) storageEngine.legacyIndexTransactionOrdering();
storageEngine.legacyIndexTransactionOrdering();

TransactionIdStore transactionIdStore = (TransactionIdStore) storageEngine.transactionIdStore();
TransactionIdStore transactionIdStore = storageEngine.transactionIdStore();
final PhysicalLogFile logFile = life.add( new PhysicalLogFile( fileSystemAbstraction, logFiles,
config.get( GraphDatabaseSettings.logical_log_rotation_threshold ), transactionIdStore,
(LogVersionRepository) storageEngine.logVersionRepository(), physicalLogMonitor, transactionMetadataCache ) );
storageEngine.logVersionRepository(), physicalLogMonitor, transactionMetadataCache ) );

final PhysicalLogFileInformation.LogVersionToTimestamp
logInformation = new PhysicalLogFileInformation.LogVersionToTimestamp()
Expand Down Expand Up @@ -793,7 +792,7 @@ public KernelAPI get()
new ConstraintIndexCreator( kernelProvider, indexingService );

LegacyIndexStore legacyIndexStore = new LegacyIndexStore( config,
(IndexConfigStore) storageEngine.indexConfigStore(), kernelProvider, legacyIndexProviderLookup );
storageEngine.indexConfigStore(), kernelProvider, legacyIndexProviderLookup );

LegacyPropertyTrackers legacyPropertyTrackers = new LegacyPropertyTrackers( propertyKeyTokenHolder,
nodeManager.getNodePropertyTrackers(), nodeManager.getRelationshipPropertyTrackers(), nodeManager );
Expand All @@ -807,7 +806,7 @@ public KernelAPI get()
TransactionHooks hooks = new TransactionHooks();
KernelTransactions kernelTransactions = life.add( new KernelTransactions( locks, constraintIndexCreator,
statementOperations, schemaWriteGuard, transactionHeaderInformationFactory,
transactionCommitProcess, (IndexConfigStore) storageEngine.indexConfigStore(),
transactionCommitProcess, storageEngine.indexConfigStore(),
legacyIndexProviderLookup, hooks, transactionMonitor, life, tracers, storageEngine, procedures ) );

final Kernel kernel = new Kernel( kernelTransactions, hooks, databaseHealth, transactionMonitor, procedures );
Expand Down Expand Up @@ -872,17 +871,17 @@ private void satisfyDependencies( Object... modules )
// Only public for testing purpose
public NeoStores getNeoStores()
{
return (NeoStores) storageEngine.neoStores();
return storageEngine.neoStores();
}

public IndexingService getIndexService()
{
return (IndexingService) storageEngine.indexingService();
return storageEngine.indexingService();
}

public LabelScanStore getLabelScanStore()
{
return (LabelScanStore) storageEngine.labelScanStore();
return storageEngine.labelScanStore();
}

@Override
Expand Down Expand Up @@ -936,7 +935,7 @@ public synchronized void stop()
life.shutdown();

// Close the NeoStores
((NeoStores)storageEngine.neoStores()).close();
storageEngine.neoStores().close();
msgLog.info( "NeoStores closed" );
}
// After we've released the logFile monitor there might be transactions that wants to commit, but had
Expand All @@ -948,7 +947,7 @@ private void awaitAllTransactionsClosed()
{
// Only wait for committed transactions to be applied if the kernel is healthy (i.e. no panic)
// otherwise if there has been a panic transactions will not be applied properly anyway.
TransactionIdStore txIdStore = ((NeoStores) storageEngine.neoStores()).getMetaDataStore();
TransactionIdStore txIdStore = storageEngine.neoStores().getMetaDataStore();
while ( databaseHealth.isHealthy() &&
!txIdStore.closedTransactionIdIsOnParWithOpenedTransactionId() )
{
Expand Down Expand Up @@ -1016,7 +1015,7 @@ public void registerDiagnosticsWith( DiagnosticsManager manager )
@Override
public NeoStores get()
{
return (NeoStores) storageEngine.neoStores();
return storageEngine.neoStores();
}

public StoreReadLayer getStoreLayer()
Expand Down
Expand Up @@ -21,7 +21,7 @@

import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.api.exceptions.TransactionFailureException;
import org.neo4j.proc.Procedure;
import org.neo4j.kernel.api.proc.Procedure;

/**
* The main API through which access to the Neo4j kernel is made, both read
Expand Down
Expand Up @@ -43,10 +43,10 @@
import org.neo4j.kernel.api.exceptions.schema.SchemaRuleNotFoundException;
import org.neo4j.kernel.api.index.IndexDescriptor;
import org.neo4j.kernel.api.index.InternalIndexState;
import org.neo4j.kernel.api.proc.Procedure;
import org.neo4j.kernel.api.proc.ProcedureSignature;
import org.neo4j.kernel.impl.api.RelationshipVisitor;
import org.neo4j.kernel.impl.api.store.RelationshipIterator;
import org.neo4j.proc.Procedure;
import org.neo4j.proc.ProcedureSignature;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.RelationshipItem;
import org.neo4j.storageengine.api.Token;
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.proc;
package org.neo4j.kernel.api.proc;

/**
* See also type_system.txt in the cypher code base, this is a mapping of that type system definition
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.proc;
package org.neo4j.kernel.api.proc;

import java.util.HashMap;
import java.util.Iterator;
Expand Down
Expand Up @@ -17,15 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.proc;
package org.neo4j.kernel.api.proc;

import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import org.neo4j.proc.Neo4jTypes.AnyType;
import org.neo4j.kernel.api.proc.Neo4jTypes.AnyType;

import static java.util.Arrays.asList;

Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.proc;
package org.neo4j.kernel.api.proc;

import java.util.HashMap;
import java.util.Map;
Expand Down
Expand Up @@ -22,7 +22,7 @@
import org.neo4j.kernel.api.KernelAPI;
import org.neo4j.kernel.api.exceptions.ProcedureException;

import static org.neo4j.proc.ProcedureSignature.procedureName;
import static org.neo4j.kernel.api.proc.ProcedureSignature.procedureName;

/**
* This registers procedures that are expected to be available by default in Neo4j.
Expand Down
Expand Up @@ -22,12 +22,12 @@
import java.util.stream.Stream;

import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.proc.Neo4jTypes;
import org.neo4j.proc.Procedure;
import org.neo4j.proc.ProcedureSignature.ProcedureName;
import org.neo4j.kernel.api.proc.Neo4jTypes;
import org.neo4j.kernel.api.proc.Procedure;
import org.neo4j.kernel.api.proc.ProcedureSignature.ProcedureName;

import static org.neo4j.proc.ProcedureSignature.procedureSignature;
import static org.neo4j.kernel.api.ReadOperations.readStatement;
import static org.neo4j.kernel.api.proc.ProcedureSignature.procedureSignature;

public class ListLabelsProcedure extends Procedure.BasicProcedure
{
Expand Down
Expand Up @@ -22,12 +22,12 @@
import java.util.stream.Stream;

import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.proc.Neo4jTypes;
import org.neo4j.proc.Procedure;
import org.neo4j.proc.ProcedureSignature;
import org.neo4j.kernel.api.proc.Neo4jTypes;
import org.neo4j.kernel.api.proc.Procedure;
import org.neo4j.kernel.api.proc.ProcedureSignature;

import static org.neo4j.proc.ProcedureSignature.procedureSignature;
import static org.neo4j.kernel.api.ReadOperations.readStatement;
import static org.neo4j.kernel.api.proc.ProcedureSignature.procedureSignature;

public class ListPropertyKeysProcedure extends Procedure.BasicProcedure
{
Expand Down
Expand Up @@ -22,12 +22,12 @@
import java.util.stream.Stream;

import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.proc.Neo4jTypes;
import org.neo4j.proc.Procedure;
import org.neo4j.proc.ProcedureSignature;
import org.neo4j.kernel.api.proc.Neo4jTypes;
import org.neo4j.kernel.api.proc.Procedure;
import org.neo4j.kernel.api.proc.ProcedureSignature;

import static org.neo4j.proc.ProcedureSignature.procedureSignature;
import static org.neo4j.kernel.api.ReadOperations.readStatement;
import static org.neo4j.kernel.api.proc.ProcedureSignature.procedureSignature;

public class ListRelationshipTypesProcedure extends Procedure.BasicProcedure
{
Expand Down
Expand Up @@ -24,8 +24,8 @@
import org.neo4j.kernel.api.TransactionHook;
import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.api.exceptions.TransactionFailureException;
import org.neo4j.proc.Procedure;
import org.neo4j.proc.Procedures;
import org.neo4j.kernel.api.proc.Procedure;
import org.neo4j.kernel.api.proc.Procedures;
import org.neo4j.kernel.impl.transaction.TransactionMonitor;
import org.neo4j.kernel.internal.DatabaseHealth;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
Expand Down
Expand Up @@ -27,11 +27,11 @@
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.api.TokenWriteOperations;
import org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException;
import org.neo4j.kernel.api.proc.Procedures;
import org.neo4j.kernel.api.txstate.LegacyIndexTransactionState;
import org.neo4j.kernel.api.txstate.TransactionState;
import org.neo4j.kernel.api.txstate.TxStateHolder;
import org.neo4j.kernel.impl.locking.Locks;
import org.neo4j.proc.Procedures;
import org.neo4j.storageengine.api.StorageStatement;
import org.neo4j.storageengine.api.schema.LabelScanReader;

Expand Down
Expand Up @@ -35,13 +35,13 @@
import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException;
import org.neo4j.kernel.api.exceptions.schema.DropIndexFailureException;
import org.neo4j.kernel.api.index.IndexDescriptor;
import org.neo4j.kernel.api.proc.Procedures;
import org.neo4j.kernel.api.txstate.LegacyIndexTransactionState;
import org.neo4j.kernel.api.txstate.TransactionState;
import org.neo4j.kernel.api.txstate.TxStateHolder;
import org.neo4j.kernel.impl.api.state.ConstraintIndexCreator;
import org.neo4j.kernel.impl.api.state.TxState;
import org.neo4j.kernel.impl.locking.Locks;
import org.neo4j.proc.Procedures;
import org.neo4j.kernel.impl.transaction.TransactionHeaderInformationFactory;
import org.neo4j.kernel.impl.transaction.TransactionMonitor;
import org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation;
Expand Down
Expand Up @@ -28,12 +28,12 @@
import org.neo4j.graphdb.DatabaseShutdownException;
import org.neo4j.helpers.Clock;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.proc.Procedures;
import org.neo4j.kernel.api.txstate.LegacyIndexTransactionState;
import org.neo4j.kernel.impl.api.state.ConstraintIndexCreator;
import org.neo4j.kernel.impl.api.state.LegacyIndexTransactionStateImpl;
import org.neo4j.kernel.impl.index.IndexConfigStore;
import org.neo4j.kernel.impl.locking.Locks;
import org.neo4j.proc.Procedures;
import org.neo4j.kernel.impl.store.MetaDataStore;
import org.neo4j.kernel.impl.transaction.TransactionHeaderInformationFactory;
import org.neo4j.kernel.impl.transaction.TransactionMonitor;
Expand Down

0 comments on commit 12eb3f8

Please sign in to comment.