diff --git a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java index c01c070787cdc..b679b5b777189 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java @@ -153,7 +153,6 @@ import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; import org.neo4j.kernel.impl.transaction.state.NeoStoreFileListing; import org.neo4j.kernel.impl.transaction.state.NeoStoreIndexStoreView; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; import org.neo4j.kernel.impl.transaction.state.NeoStoreTransactionContextFactory; import org.neo4j.kernel.impl.transaction.state.NeoStoresSupplier; import org.neo4j.kernel.impl.transaction.state.PropertyLoader; @@ -1042,9 +1041,8 @@ private KernelModule buildKernel( IntegrityValidator integrityValidator, Transac UpdateableSchemaState updateableSchemaState, LabelScanStore labelScanStore, SchemaIndexProviderMap schemaIndexProviderMap, ProcedureCache procedureCache ) { - NeoStoreInjectedTransactionValidator validator = new NeoStoreInjectedTransactionValidator( integrityValidator ); TransactionCommitProcess transactionCommitProcess = commitProcessFactory.create( appender, storeApplier, - validator, indexUpdatesValidator, config ); + integrityValidator, indexUpdatesValidator, config ); /* * This is used by legacy indexes and constraint indexes whenever a transaction is to be spawned diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/CommitProcessFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/CommitProcessFactory.java index ccc14efc876dd..430f51c975f99 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/CommitProcessFactory.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/CommitProcessFactory.java @@ -22,11 +22,10 @@ import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.api.index.IndexUpdatesValidator; import org.neo4j.kernel.impl.transaction.log.TransactionAppender; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; public interface CommitProcessFactory { TransactionCommitProcess create( TransactionAppender appender, TransactionRepresentationStoreApplier storeApplier, - NeoStoreInjectedTransactionValidator txValidator, IndexUpdatesValidator indexUpdatesValidator, - Config config ); + IntegrityValidator integrityValidator, IndexUpdatesValidator indexUpdatesValidator, Config config ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactory.java index 47c53fc6a214b..d5737544434c0 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactory.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactory.java @@ -28,13 +28,13 @@ import org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier; import org.neo4j.kernel.impl.api.index.IndexUpdatesValidator; import org.neo4j.kernel.impl.transaction.log.TransactionAppender; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; public class CommunityCommitProcessFactory implements CommitProcessFactory { @Override public TransactionCommitProcess create( TransactionAppender appender, - TransactionRepresentationStoreApplier storeApplier, NeoStoreInjectedTransactionValidator txValidator, + TransactionRepresentationStoreApplier storeApplier, IntegrityValidator integrityValidator, IndexUpdatesValidator indexUpdatesValidator, Config config ) { if ( config.get( GraphDatabaseSettings.read_only ) ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/InjectedTransactionValidator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/InjectedTransactionValidator.java deleted file mode 100644 index 6b456e8bbad56..0000000000000 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/InjectedTransactionValidator.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.transaction; - -import org.neo4j.kernel.api.exceptions.TransactionFailureException; - -/** - * Allowed to validate and, if it likes, fail transactions that are injected into the logical log. Injection normally - * happens during recovery or in HA. Be careful with this. - */ -public interface InjectedTransactionValidator -{ - void assertInjectionAllowed( long lastCommittedTxWhenTransactionStarted ) throws TransactionFailureException; -} diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/NeoStoreInjectedTransactionValidator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/NeoStoreInjectedTransactionValidator.java deleted file mode 100644 index e4d9dfff3baa2..0000000000000 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/NeoStoreInjectedTransactionValidator.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.transaction.state; - -import org.neo4j.kernel.api.exceptions.TransactionFailureException; -import org.neo4j.kernel.impl.transaction.InjectedTransactionValidator; - -public class NeoStoreInjectedTransactionValidator implements InjectedTransactionValidator -{ - private final IntegrityValidator integrityValidator; - - public NeoStoreInjectedTransactionValidator( IntegrityValidator integrityValidator ) - { - this.integrityValidator = integrityValidator; - } - - @Override - public void assertInjectionAllowed( long lastCommittedTxWhenTransactionStarted ) throws TransactionFailureException - { - integrityValidator.validateTransactionStartKnowledge( lastCommittedTxWhenTransactionStarted ); - } -} diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactoryTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactoryTest.java index d1e33eaa13ecc..b9c320999f6be 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactoryTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/CommunityCommitProcessFactoryTest.java @@ -29,7 +29,7 @@ import org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier; import org.neo4j.kernel.impl.api.index.IndexUpdatesValidator; import org.neo4j.kernel.impl.transaction.log.TransactionAppender; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertThat; @@ -46,7 +46,7 @@ public void createReadOnlyCommitProcess() Config config = new Config( stringMap( GraphDatabaseSettings.read_only.name(), "true" ) ); TransactionCommitProcess commitProcess = factory.create( mock( TransactionAppender.class ), - mock( TransactionRepresentationStoreApplier.class ), mock( NeoStoreInjectedTransactionValidator.class ), + mock( TransactionRepresentationStoreApplier.class ), mock( IntegrityValidator.class ), mock( IndexUpdatesValidator.class ), config ); assertThat( commitProcess, instanceOf( ReadOnlyTransactionCommitProcess.class ) ); @@ -58,7 +58,7 @@ public void createRegularCommitProcess() CommunityCommitProcessFactory factory = new CommunityCommitProcessFactory(); TransactionCommitProcess commitProcess = factory.create( mock( TransactionAppender.class ), - mock( TransactionRepresentationStoreApplier.class ), mock( NeoStoreInjectedTransactionValidator.class ), + mock( TransactionRepresentationStoreApplier.class ), mock( IntegrityValidator.class ), mock( IndexUpdatesValidator.class ), new Config() ); assertThat( commitProcess, instanceOf( TransactionRepresentationCommitProcess.class ) ); diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterTransactionCommitProcess.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterTransactionCommitProcess.java index 2389442c38058..d2bf5d3bc9a61 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterTransactionCommitProcess.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterTransactionCommitProcess.java @@ -24,9 +24,9 @@ import org.neo4j.kernel.impl.api.TransactionApplicationMode; import org.neo4j.kernel.impl.api.TransactionCommitProcess; import org.neo4j.kernel.impl.locking.LockGroup; -import org.neo4j.kernel.impl.transaction.tracing.CommitEvent; import org.neo4j.kernel.impl.transaction.TransactionRepresentation; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; +import org.neo4j.kernel.impl.transaction.tracing.CommitEvent; /** * Commit process on the master side in HA, where transactions either comes in from slaves committing, @@ -35,12 +35,12 @@ public class MasterTransactionCommitProcess implements TransactionCommitProcess { private final TransactionPropagator pusher; - private final NeoStoreInjectedTransactionValidator validator; + private final IntegrityValidator validator; private final TransactionCommitProcess inner; public MasterTransactionCommitProcess( TransactionCommitProcess commitProcess, TransactionPropagator pusher, - NeoStoreInjectedTransactionValidator validator ) + IntegrityValidator validator ) { this.inner = commitProcess; this.pusher = pusher; @@ -51,7 +51,7 @@ public MasterTransactionCommitProcess( TransactionCommitProcess commitProcess, public long commit( TransactionRepresentation representation, LockGroup locks, CommitEvent commitEvent, TransactionApplicationMode mode ) throws TransactionFailureException { - validator.assertInjectionAllowed( representation.getLatestCommittedTxWhenStarted() ); + validator.validateTransactionStartKnowledge( representation.getLatestCommittedTxWhenStarted() ); long result = inner.commit( representation, locks, commitEvent, mode ); diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/CommitProcessSwitcher.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/CommitProcessSwitcher.java index efa98461640bf..b188a7a3fb875 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/CommitProcessSwitcher.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/CommitProcessSwitcher.java @@ -26,7 +26,7 @@ import org.neo4j.kernel.ha.com.master.Master; import org.neo4j.kernel.ha.transaction.TransactionPropagator; import org.neo4j.kernel.impl.api.TransactionCommitProcess; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; public class CommitProcessSwitcher extends AbstractComponentSwitcher { @@ -35,10 +35,10 @@ public class CommitProcessSwitcher extends AbstractComponentSwitcher delegate, RequestContextFactory requestContextFactory, - NeoStoreInjectedTransactionValidator validator, TransactionCommitProcess innerCommitProcess ) + IntegrityValidator integrityValidator, TransactionCommitProcess innerCommitProcess ) { super( delegate ); - this.masterImpl = new MasterTransactionCommitProcess( innerCommitProcess, pusher, validator ); + this.masterImpl = new MasterTransactionCommitProcess( innerCommitProcess, pusher, integrityValidator ); this.slaveImpl = new SlaveTransactionCommitProcess( master, requestContextFactory ); } diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactory.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactory.java index 6122ef9aeb5ae..15ded2da8aa3d 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactory.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactory.java @@ -34,7 +34,7 @@ import org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier; import org.neo4j.kernel.impl.api.index.IndexUpdatesValidator; import org.neo4j.kernel.impl.transaction.log.TransactionAppender; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; import static java.lang.reflect.Proxy.newProxyInstance; @@ -59,7 +59,7 @@ class HighlyAvailableCommitProcessFactory implements CommitProcessFactory @Override public TransactionCommitProcess create( TransactionAppender appender, - TransactionRepresentationStoreApplier storeApplier, NeoStoreInjectedTransactionValidator txValidator, + TransactionRepresentationStoreApplier storeApplier, IntegrityValidator integrityValidator, IndexUpdatesValidator indexUpdatesValidator, Config config ) { if ( config.get( GraphDatabaseSettings.read_only ) ) @@ -71,7 +71,7 @@ public TransactionCommitProcess create( TransactionAppender appender, indexUpdatesValidator ); CommitProcessSwitcher commitProcessSwitcher = new CommitProcessSwitcher( transactionPropagator, - master, commitProcessDelegate, requestContextFactory, txValidator, commitProcess ); + master, commitProcessDelegate, requestContextFactory, integrityValidator, commitProcess ); componentSwitcherContainer.add( commitProcessSwitcher ); diff --git a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactoryTest.java b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactoryTest.java index 406f8dcf7b7d5..f132ce591b019 100644 --- a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactoryTest.java +++ b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/factory/HighlyAvailableCommitProcessFactoryTest.java @@ -35,7 +35,7 @@ import org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier; import org.neo4j.kernel.impl.api.index.IndexUpdatesValidator; import org.neo4j.kernel.impl.transaction.log.TransactionAppender; -import org.neo4j.kernel.impl.transaction.state.NeoStoreInjectedTransactionValidator; +import org.neo4j.kernel.impl.transaction.state.IntegrityValidator; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.not; @@ -55,7 +55,7 @@ public void createReadOnlyCommitProcess() Config config = new Config( stringMap( GraphDatabaseSettings.read_only.name(), "true" ) ); TransactionCommitProcess commitProcess = factory.create( mock( TransactionAppender.class ), - mock( TransactionRepresentationStoreApplier.class ), mock( NeoStoreInjectedTransactionValidator.class ), + mock( TransactionRepresentationStoreApplier.class ), mock( IntegrityValidator.class ), mock( IndexUpdatesValidator.class ), config ); assertThat( commitProcess, instanceOf( ReadOnlyTransactionCommitProcess.class ) ); @@ -69,7 +69,7 @@ public void createRegularCommitProcess() mock( RequestContextFactory.class ) ); TransactionCommitProcess commitProcess = factory.create( mock( TransactionAppender.class ), - mock( TransactionRepresentationStoreApplier.class ), mock( NeoStoreInjectedTransactionValidator.class ), + mock( TransactionRepresentationStoreApplier.class ), mock( IntegrityValidator.class ), mock( IndexUpdatesValidator.class ), new Config() ); assertThat( commitProcess, not( instanceOf( ReadOnlyTransactionCommitProcess.class ) ) );