From 185ae5369932f0dd2217534966256f2aee907abf Mon Sep 17 00:00:00 2001 From: Mattias Persson Date: Tue, 31 May 2016 13:21:21 +0200 Subject: [PATCH] ClientAdapter --- .../neo4j/kernel/impl/locking/DeferringLocks.java | 2 +- .../java/org/neo4j/kernel/impl/locking/Locks.java | 15 +++++++++++++++ .../org/neo4j/kernel/impl/locking/NoOpClient.java | 13 +------------ .../locking/community/CommunityLockClient.java | 14 +------------- .../neo4j/kernel/ha/lock/SlaveLocksClient.java | 2 +- .../enterprise/lock/forseti/ForsetiClient.java | 14 +------------- 6 files changed, 20 insertions(+), 40 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/DeferringLocks.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/DeferringLocks.java index 352e5809da97b..2397ba3d99056 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/DeferringLocks.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/DeferringLocks.java @@ -94,7 +94,7 @@ public int compareTo( Resource o ) } } - // TODO the state in this class is quite unoptimized, please do so + // TODO the state keeping in this class is quite unoptimized, please do so private static class DeferringLockClient implements Client { private final Client clientDelegate; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/Locks.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/Locks.java index 3fdab2599571b..8ccab82fa7339 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/Locks.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/Locks.java @@ -135,4 +135,19 @@ interface Client extends AutoCloseable /** Visit all held locks. */ void accept(Visitor visitor); + + public abstract class ClientAdapter implements Client + { + @Override + public void prepare() + { + // Nothing to prepare + } + + @Override + public Client delegate() + { + return this; + } + } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/NoOpClient.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/NoOpClient.java index 7ce3f68a4a783..fce819371654f 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/NoOpClient.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/NoOpClient.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel.impl.locking; -public class NoOpClient implements Locks.Client +public class NoOpClient extends Locks.ClientAdapter { public static final Locks.Client NO_LOCKS = new NoOpClient(); @@ -60,11 +60,6 @@ public void releaseAll() { } - @Override - public void prepare() - { - } - @Override public void stop() { @@ -80,10 +75,4 @@ public int getLockSessionId() { return -1; } - - @Override - public Locks.Client delegate() - { - return this; - } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/CommunityLockClient.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/CommunityLockClient.java index 85dc8b87493fd..f2785c24f3aff 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/CommunityLockClient.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/CommunityLockClient.java @@ -38,7 +38,7 @@ // Please note. Except separate test cases for particular classes related to community locking // see also org.neo4j.kernel.impl.locking.community.CommunityLocksCompatibility test suite -public class CommunityLockClient implements Locks.Client +public class CommunityLockClient extends Locks.ClientAdapter { private final LockManagerImpl manager; private final LockTransaction lockTransaction = new LockTransaction(); @@ -254,12 +254,6 @@ public void releaseAll() } } - @Override - public void prepare() - { - // Do nothing - } - @Override public void stop() { @@ -312,12 +306,6 @@ public int getLockSessionId() return lockTransaction.getId(); } - @Override - public Locks.Client delegate() - { - return this; - } - private PrimitiveLongObjectMap localShared( Locks.ResourceType resourceType ) { PrimitiveLongObjectMap map = sharedLocks.get( resourceType.typeId() ); diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/lock/SlaveLocksClient.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/lock/SlaveLocksClient.java index df20788987e99..0cd321e03b608 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/lock/SlaveLocksClient.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/lock/SlaveLocksClient.java @@ -50,7 +50,7 @@ * with the master for certain types of locks. If you grab a lock on a node, for instance, this class will grab a * cluster-global lock by talking to the master machine, and then grab that same lock locally before returning. */ -class SlaveLocksClient implements Locks.Client +class SlaveLocksClient extends Locks.ClientAdapter { private final Master master; private final Locks.Client client; diff --git a/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/enterprise/lock/forseti/ForsetiClient.java b/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/enterprise/lock/forseti/ForsetiClient.java index 415efeef926e1..886ef44ead42b 100644 --- a/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/enterprise/lock/forseti/ForsetiClient.java +++ b/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/enterprise/lock/forseti/ForsetiClient.java @@ -47,7 +47,7 @@ * local fields how many times the lock has been grabbed, such that it will only grab and release the lock once from the * global lock manager. */ -public class ForsetiClient implements Locks.Client +public class ForsetiClient extends Locks.ClientAdapter { /** Id for this client */ private final int clientId; @@ -484,12 +484,6 @@ public void releaseAll() } } - @Override - public void prepare() - { - // Do nothing - } - private void releaseAllClientLocks() { // Force the release of all locks held. @@ -572,12 +566,6 @@ public int getLockSessionId() return clientId; } - @Override - public Locks.Client delegate() - { - return this; - } - public int waitListSize() { return waitList.size();