You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2019/12/30 21:21:54 UTC
[geode] 01/01: GEODE-7634: create an ArchUnitTest that asserts that
geode-core only uses the membership API
This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch feature/GEODE-7634
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 8b9285cc2700024335339424563057388d31a33f
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Dec 30 13:18:43 2019 -0800
GEODE-7634: create an ArchUnitTest that asserts that geode-core only uses the membership API
creating a new test to enforce use of membership APIs. There are a few
exceptions in test code, plus others that aren't in the "integration
test" source set.
---
.../apache/geode/cache30/ReconnectDUnitTest.java | 6 +-
.../distributed/DistributedMemberDUnitTest.java | 3 +-
.../distributed/DistributedSystemDUnitTest.java | 2 +-
.../ClusterDistributionManagerDUnitTest.java | 4 +-
.../MeterSubregistryReconnectDistributedTest.java | 7 +-
.../LoggingWithReconnectDistributedTest.java | 3 +-
.../AutoConnectionSourceImplJUnitTest.java | 27 +++--
.../api/CoreOnlyUsesMembershipAPIArchUnitTest.java | 60 ++++++++++++
.../main/java/org/apache/geode/SystemFailure.java | 39 --------
.../client/internal/AutoConnectionSourceImpl.java | 51 +++++-----
.../cache/client/internal/ConnectionImpl.java | 5 -
.../cache/client/internal/EndpointManagerImpl.java | 4 -
.../cache/client/internal/LocatorAddress.java | 109 +++++++++++++++++++++
.../geode/cache/client/internal/PoolImpl.java | 13 +--
.../cache/client/internal/QueueConnectionImpl.java | 4 -
.../cache/client/internal/QueueManagerImpl.java | 4 -
.../internal/pooling/ConnectionManagerImpl.java | 4 -
.../client/internal/pooling/PooledConnection.java | 5 -
.../geode/distributed/internal/Distribution.java | 28 ------
.../distributed/internal/DistributionImpl.java | 80 +--------------
.../internal/InternalDistributedSystem.java | 19 ----
.../distributed/internal/direct/DirectChannel.java | 9 --
.../internal/membership/gms/GMSMembership.java | 46 ++-------
.../membership/gms/fd/GMSHealthMonitor.java | 3 -
.../membership/gms/membership/GMSJoinLeave.java | 2 -
.../geode/internal/SystemFailureTestHook.java | 4 -
.../admin/remote/RemoteGfManagerAgent.java | 19 ----
.../geode/internal/cache/GemFireCacheImpl.java | 22 -----
.../geode/internal/cache/PoolFactoryImpl.java | 6 +-
.../geode/internal/cache/PoolManagerImpl.java | 4 -
.../internal/cache/tier/CachedRegionHelper.java | 10 --
.../internal/cache/tier/sockets/AcceptorImpl.java | 20 ----
.../cache/tier/sockets/ServerConnection.java | 9 --
.../apache/geode/internal/tcp/ConnectionTable.java | 9 --
.../org/apache/geode/internal/tcp/TCPConduit.java | 9 --
.../geode/cache/client/internal/PoolImplTest.java | 3 +-
...itTest.java => GMSMembershipViewJUnitTest.java} | 26 ++---
.../membership/InternalDistributedMemberTest.java | 26 ++---
.../membership/gms/MembershipManagerHelper.java | 9 +-
...SenderEventRemoteDispatcherIntegrationTest.java | 3 +-
40 files changed, 269 insertions(+), 447 deletions(-)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
index a1b5edb..bdbe97cf 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
@@ -86,7 +86,6 @@ import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.distributed.DistributedSystemDisconnectedException;
import org.apache.geode.distributed.Locator;
-import org.apache.geode.distributed.internal.Distribution;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.InternalDistributedSystem.ReconnectListener;
import org.apache.geode.distributed.internal.InternalLocator;
@@ -250,9 +249,8 @@ public class ReconnectDUnitTest extends JUnit4CacheTestCase {
locatorVm.invoke(new SerializableRunnable("disable force-disconnect") {
@Override
public void run() {
- Distribution mgr = MembershipManagerHelper
- .getDistribution(Locator.getLocator().getDistributedSystem());
- mgr.disableDisconnectOnQuorumLossForTesting();
+ MembershipManagerHelper
+ .disableDisconnectOnQuorumLossForTesting(Locator.getLocator().getDistributedSystem());
}
});
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
index 07487e5..b7c4bbc 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
@@ -49,6 +49,7 @@ import org.apache.geode.distributed.internal.DistributionManager;
import org.apache.geode.distributed.internal.HighPriorityAckedMessage;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.distributed.internal.membership.gms.GMSMembership;
import org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper;
import org.apache.geode.internal.HeapDataOutputStream;
import org.apache.geode.test.dunit.Host;
@@ -306,7 +307,7 @@ public class DistributedMemberDUnitTest extends JUnit4DistributedTestCase {
Distribution manager =
MembershipManagerHelper.getDistribution(basicGetSystem());
- manager.replacePartialIdentifierInMessage(message);
+ ((GMSMembership) manager.getMembership()).replacePartialIdentifierInMessage(message);
assertFalse(message.getSender().isPartial());
}
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java
index 4bf80f0..bde5458 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java
@@ -246,7 +246,7 @@ public class DistributedSystemDUnitTest extends JUnit4DistributedTestCase {
ClusterDistributionManager dm = (ClusterDistributionManager) system.getDistributionManager();
Distribution mgr = dm.getDistribution();
- assertThat(mgr.getDirectChannelPort()).isEqualTo(this.tcpPort);
+ assertThat(mgr.getLocalMember().getDirectChannelPort()).isEqualTo(this.tcpPort);
}
/**
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
index ea78eab..7bbcfda 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
@@ -61,6 +61,7 @@ import org.apache.geode.cache.util.CacheListenerAdapter;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.distributed.Locator;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.distributed.internal.membership.gms.GMSMembership;
import org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper;
import org.apache.geode.distributed.internal.membership.gms.api.MemberDisconnectedException;
import org.apache.geode.distributed.internal.membership.gms.api.MembershipView;
@@ -171,7 +172,6 @@ public class ClusterDistributionManagerDUnitTest extends CacheTestCase {
InternalDistributedSystem system = getSystem();
Distribution membershipManager =
MembershipManagerHelper.getDistribution(system);
- assertThat(membershipManager.isCleanupTimerStarted()).isTrue();
InternalDistributedMember member = new InternalDistributedMember(getIPLiteral(), 12345);
@@ -194,7 +194,7 @@ public class ClusterDistributionManagerDUnitTest extends CacheTestCase {
// now forcibly add it as a surprise member and show that it is reaped
long gracePeriod = 5000;
long startTime = System.currentTimeMillis();
- long timeout = membershipManager.getSurpriseMemberTimeout();
+ long timeout = ((GMSMembership) membershipManager.getMembership()).getSurpriseMemberTimeout();
long birthTime = startTime - timeout + gracePeriod;
MembershipManagerHelper.addSurpriseMember(system, member, birthTime);
assertThat(membershipManager.isSurpriseMember(member)).as("Member was not a surprise member")
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/metrics/MeterSubregistryReconnectDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/metrics/MeterSubregistryReconnectDistributedTest.java
index 8b616fd..306328a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/metrics/MeterSubregistryReconnectDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/metrics/MeterSubregistryReconnectDistributedTest.java
@@ -21,7 +21,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
import static org.apache.geode.distributed.ConfigurationProperties.MAX_WAIT_TIME_RECONNECT;
import static org.apache.geode.distributed.ConfigurationProperties.MEMBER_TIMEOUT;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper.getDistribution;
import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
import static org.apache.geode.test.awaitility.GeodeAwaitility.getTimeout;
import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
@@ -46,8 +45,8 @@ import org.junit.Test;
import org.apache.geode.ForcedDisconnectException;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.distributed.LocatorLauncher;
-import org.apache.geode.distributed.internal.Distribution;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
+import org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper;
import org.apache.geode.distributed.internal.membership.gms.api.MemberDisconnectedException;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.test.dunit.VM;
@@ -137,9 +136,7 @@ public class MeterSubregistryReconnectDistributedTest implements Serializable {
}
private void reconnect() throws InterruptedException {
- Distribution membershipManager = getDistribution(system);
- membershipManager.forceDisconnect("Forcing disconnect in test");
-
+ MembershipManagerHelper.crashDistributedSystem(system);
await().until(() -> system.isReconnecting());
system.waitUntilReconnected(TIMEOUT, MILLISECONDS);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/logging/internal/LoggingWithReconnectDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/logging/internal/LoggingWithReconnectDistributedTest.java
index 36b00a5..4b5ef63 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/logging/internal/LoggingWithReconnectDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/logging/internal/LoggingWithReconnectDistributedTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.distributed.LocatorLauncher;
import org.apache.geode.distributed.ServerLauncher;
import org.apache.geode.distributed.internal.Distribution;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
+import org.apache.geode.distributed.internal.membership.gms.GMSMembership;
import org.apache.geode.distributed.internal.membership.gms.api.MemberDisconnectedException;
import org.apache.geode.test.assertj.LogFileAssert;
import org.apache.geode.test.dunit.VM;
@@ -139,7 +140,7 @@ public class LoggingWithReconnectDistributedTest implements Serializable {
server2VM.invoke(() -> {
Distribution membershipManager = getDistribution(system);
- membershipManager
+ ((GMSMembership) membershipManager.getMembership())
.forceDisconnect("Forcing disconnect in " + testName.getMethodName());
await().until(() -> system.isReconnecting());
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
index bc40399..a971665 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
@@ -72,7 +72,6 @@ import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.PoolStatHelper;
import org.apache.geode.distributed.internal.RestartableTcpHandler;
import org.apache.geode.distributed.internal.ServerLocation;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.distributed.internal.tcpserver.TcpClient;
import org.apache.geode.distributed.internal.tcpserver.TcpServer;
import org.apache.geode.internal.AvailablePortHelper;
@@ -125,8 +124,8 @@ public class AutoConnectionSourceImplJUnitTest {
InetAddress ia = InetAddress.getLocalHost();
InetSocketAddress isa = new InetSocketAddress(ia, port);
locators.add(isa);
- List<HostAddress> la = new ArrayList<>();
- la.add(new HostAddress(isa, ia.getHostName()));
+ List<LocatorAddress> la = new ArrayList<>();
+ la.add(new LocatorAddress(isa, ia.getHostName()));
source = new AutoConnectionSourceImpl(la, "", 60 * 1000);
source.start(pool);
}
@@ -187,14 +186,14 @@ public class AutoConnectionSourceImplJUnitTest {
locators.add(floc1);
locators.add(floc2);
- List<HostAddress> la = new ArrayList<>();
- la.add(new HostAddress(floc1, floc1.getHostName()));
- la.add(new HostAddress(floc2, floc2.getHostName()));
+ List<LocatorAddress> la = new ArrayList<>();
+ la.add(new LocatorAddress(floc1, floc1.getHostName()));
+ la.add(new LocatorAddress(floc2, floc2.getHostName()));
AutoConnectionSourceImpl src = new AutoConnectionSourceImpl(la, "", 60 * 1000);
// This method will create a new InetSocketAddress of floc1
- src.updateLocatorInLocatorList(new HostAddress(floc1, floc1.getHostName()));
+ src.updateLocatorInLocatorList(new LocatorAddress(floc1, floc1.getHostName()));
List<InetSocketAddress> cLocList = src.getCurrentLocators();
@@ -218,18 +217,18 @@ public class AutoConnectionSourceImplJUnitTest {
InetSocketAddress floc2 = new InetSocketAddress("fakeLocalHost2", port);
locators.add(floc1);
locators.add(floc2);
- List<HostAddress> la = new ArrayList<>();
- la.add(new HostAddress(floc1, floc1.getHostName()));
- la.add(new HostAddress(floc2, floc2.getHostName()));
+ List<LocatorAddress> la = new ArrayList<>();
+ la.add(new LocatorAddress(floc1, floc1.getHostName()));
+ la.add(new LocatorAddress(floc2, floc2.getHostName()));
AutoConnectionSourceImpl src = new AutoConnectionSourceImpl(la, "", 60 * 1000);
InetSocketAddress b1 = new InetSocketAddress("fakeLocalHost1", port);
InetSocketAddress b2 = new InetSocketAddress("fakeLocalHost3", port);
- Set<HostAddress> bla = new HashSet<>();
- bla.add(new HostAddress(b1, b1.getHostName()));
- bla.add(new HostAddress(b2, b2.getHostName()));
+ Set<LocatorAddress> bla = new HashSet<>();
+ bla.add(new LocatorAddress(b1, b1.getHostName()));
+ bla.add(new LocatorAddress(b2, b2.getHostName()));
src.addbadLocators(la, bla);
@@ -255,7 +254,7 @@ public class AutoConnectionSourceImplJUnitTest {
isA(Integer.class), isA(Boolean.class))).thenThrow(new ToDataException("testing"));
try {
InetSocketAddress address = new InetSocketAddress(NetworkUtils.getServerHostName(), 1234);
- source.queryOneLocatorUsingConnection(new HostAddress(address, "locator[1234]"), mock(
+ source.queryOneLocatorUsingConnection(new LocatorAddress(address, "locator[1234]"), mock(
ServerLocationRequest.class), mockConnection);
verify(mockConnection).requestToServer(isA(InetSocketAddress.class),
isA(ServerLocationRequest.class), isA(Integer.class), isA(Boolean.class));
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/api/CoreOnlyUsesMembershipAPIArchUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/api/CoreOnlyUsesMembershipAPIArchUnitTest.java
new file mode 100644
index 0000000..0978eda
--- /dev/null
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/api/CoreOnlyUsesMembershipAPIArchUnitTest.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.distributed.internal.membership.gms.api;
+
+import static com.tngtech.archunit.base.DescribedPredicate.not;
+import static com.tngtech.archunit.core.domain.JavaClass.Predicates.resideInAPackage;
+import static com.tngtech.archunit.core.domain.JavaClass.Predicates.type;
+import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
+
+import com.tngtech.archunit.core.importer.ImportOption;
+import com.tngtech.archunit.junit.AnalyzeClasses;
+import com.tngtech.archunit.junit.ArchTest;
+import com.tngtech.archunit.junit.ArchUnitRunner;
+import com.tngtech.archunit.junit.CacheMode;
+import com.tngtech.archunit.lang.ArchRule;
+import org.junit.runner.RunWith;
+
+import org.apache.geode.distributed.LocatorIntegrationTest;
+import org.apache.geode.distributed.internal.membership.MembershipJUnitTest;
+import org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper;
+
+@RunWith(ArchUnitRunner.class)
+@AnalyzeClasses(packages = "org.apache.geode..",
+ cacheMode = CacheMode.PER_CLASS,
+ importOptions = ImportOption.DoNotIncludeArchives.class)
+public class CoreOnlyUsesMembershipAPIArchUnitTest {
+
+ @ArchTest
+ public static final ArchRule coreOnlyUsesMembershipAPI = classes()
+ .that()
+ .resideInAPackage("org.apache.geode..")
+ .and(not(resideInAPackage("org.apache.geode.distributed.internal.membership.adapter")))
+ .and(not(resideInAPackage("org.apache.geode.distributed.internal.membership.gms..")))
+
+ // These non-integration tests also need to be addressed
+ // .and(not(type(GMSMembershipViewJUnitTest.class)))
+ // .and(not(type(AbstractGMSAuthenticatorTestCase.class)))
+ // .and(not(type(DistributionTest.class)))
+
+ .and(not(type(MembershipJUnitTest.class)))
+ .and(not(type(LocatorIntegrationTest.class)))
+
+ .should()
+ .onlyDependOnClassesThat(
+ resideInAPackage("org.apache.geode.distributed.internal.membership.gms.api")
+ .or(type(MembershipManagerHelper.class))
+ .or(not(resideInAPackage("org.apache.geode.distributed.internal.membership.gms.."))));
+}
diff --git a/geode-core/src/main/java/org/apache/geode/SystemFailure.java b/geode-core/src/main/java/org/apache/geode/SystemFailure.java
index c3f4e34..80197fe 100644
--- a/geode-core/src/main/java/org/apache/geode/SystemFailure.java
+++ b/geode-core/src/main/java/org/apache/geode/SystemFailure.java
@@ -356,30 +356,6 @@ public final class SystemFailure {
boolean warned = false;
logFine(WATCHDOG_NAME, "Starting");
- try {
- basicLoadEmergencyClasses();
- } catch (ExceptionInInitializerError e) {
- // Determine if we're shutting down...
- boolean noSurprise = false;
- Throwable cause = e.getCause();
- if (cause != null) {
- if (cause instanceof IllegalStateException) {
- String msg = cause.getMessage();
- if (msg.contains("Shutdown in progress")) {
- noSurprise = true;
- }
- }
- }
- if (!noSurprise) {
- logWarning(WATCHDOG_NAME, "Unable to load GemFire classes: ", e);
- }
- return;
- } catch (CancelException e) {
- // ignore this because we are shutting down anyway
- } catch (Throwable t) {
- logWarning(WATCHDOG_NAME, "Unable to initialize watchdog", t);
- return;
- }
while (!stopping) {
try {
if (isCacheClosing) {
@@ -724,12 +700,6 @@ public final class SystemFailure {
private static final String PROCTOR_NAME = "SystemFailure Proctor";
/**
- * break any potential circularity in {@link #loadEmergencyClasses()}
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded = false;
-
- /**
* Since it requires object memory to unpack a jar file, make sure this JVM has loaded the classes
* necessary for closure <em>before</em> it becomes necessary to use them.
* <p>
@@ -741,15 +711,6 @@ public final class SystemFailure {
startThreads();
}
- private static void basicLoadEmergencyClasses() {
- if (emergencyClassesLoaded)
- return;
- emergencyClassesLoaded = true;
- SystemFailureTestHook.loadEmergencyClasses(); // bug 50516
- GemFireCacheImpl.loadEmergencyClasses();
- RemoteGfManagerAgent.loadEmergencyClasses();
- }
-
/**
* Attempt to close any and all GemFire resources.
*
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
index f593183..d51909d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
@@ -51,7 +51,6 @@ import org.apache.geode.cache.client.internal.locator.ServerLocationRequest;
import org.apache.geode.cache.client.internal.locator.ServerLocationResponse;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.ServerLocation;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.distributed.internal.tcpserver.TcpClient;
import org.apache.geode.internal.InternalDataSerializer;
import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
@@ -75,7 +74,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
private static final LocatorListRequest LOCATOR_LIST_REQUEST = new LocatorListRequest();
@Immutable
- private static final Comparator<HostAddress> SOCKET_ADDRESS_COMPARATOR =
+ private static final Comparator<LocatorAddress> SOCKET_ADDRESS_COMPARATOR =
(address, otherAddress) -> {
InetSocketAddress inetSocketAddress = address.getSocketInetAddress();
InetSocketAddress otherInetSocketAddress = otherAddress.getSocketInetAddress();
@@ -93,7 +92,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
return inetSocketAddress.getPort() - otherInetSocketAddress.getPort();
}
};
- private final List<HostAddress> initialLocators;
+ private final List<LocatorAddress> initialLocators;
private final String serverGroup;
private AtomicReference<LocatorList> locators = new AtomicReference<>();
private AtomicReference<LocatorList> onlineLocators = new AtomicReference<>();
@@ -108,7 +107,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
*/
private final Map<InetSocketAddress, Exception> locatorState = new HashMap<>();
- public AutoConnectionSourceImpl(List<HostAddress> contacts, String serverGroup,
+ public AutoConnectionSourceImpl(List<LocatorAddress> contacts, String serverGroup,
int handshakeTimeout) {
this.locators.set(new LocatorList(new ArrayList<>(contacts)));
this.onlineLocators.set(new LocatorList(Collections.emptyList()));
@@ -197,13 +196,13 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
}
- private ServerLocationResponse queryOneLocator(HostAddress locator,
+ private ServerLocationResponse queryOneLocator(LocatorAddress locator,
ServerLocationRequest request) {
return queryOneLocatorUsingConnection(locator, request, tcpClient);
}
- ServerLocationResponse queryOneLocatorUsingConnection(HostAddress locator,
+ ServerLocationResponse queryOneLocatorUsingConnection(LocatorAddress locator,
ServerLocationRequest request,
TcpClient locatorConnection) {
Object returnObj = null;
@@ -243,16 +242,16 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
* This will cause another DNS lookup, hopefully finding the locator.
*
*/
- protected void updateLocatorInLocatorList(HostAddress locator) {
+ protected void updateLocatorInLocatorList(LocatorAddress locator) {
if (locator.getSocketInetAddressNoLookup().getHostName() != null && !locator.isIpString()) {
LocatorList locatorList = locators.get();
- List<HostAddress> newLocatorsList = new ArrayList<>();
+ List<LocatorAddress> newLocatorsList = new ArrayList<>();
- for (HostAddress tloc : locatorList.getLocatorAddresses()) {
+ for (LocatorAddress tloc : locatorList.getLocatorAddresses()) {
if (tloc.equals(locator)) {
InetSocketAddress changeLoc = new InetSocketAddress(locator.getHostName(),
locator.getSocketInetAddressNoLookup().getPort());
- HostAddress hostAddress = new HostAddress(changeLoc, locator.getHostName());
+ LocatorAddress hostAddress = new LocatorAddress(changeLoc, locator.getHostName());
newLocatorsList.add(hostAddress);
} else {
newLocatorsList.add(tloc);
@@ -277,7 +276,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
final boolean isDebugEnabled = logger.isDebugEnabled();
do {
- HostAddress hostAddress = (HostAddress) controllerItr.next();
+ LocatorAddress hostAddress = (LocatorAddress) controllerItr.next();
if (isDebugEnabled) {
logger.debug("Sending query to locator {}: {}", hostAddress, request);
}
@@ -296,13 +295,13 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
isBalanced = response.isBalanced();
List<ServerLocation> locatorResponse = response.getLocators();
- List<HostAddress> newLocatorAddresses = new ArrayList<>(locatorResponse.size());
- List<HostAddress> newOnlineLocators = new ArrayList<>(locatorResponse.size());
+ List<LocatorAddress> newLocatorAddresses = new ArrayList<>(locatorResponse.size());
+ List<LocatorAddress> newOnlineLocators = new ArrayList<>(locatorResponse.size());
- Set<HostAddress> badLocators = new HashSet<>(initialLocators);
+ Set<LocatorAddress> badLocators = new HashSet<>(initialLocators);
for (ServerLocation locator : locatorResponse) {
InetSocketAddress address = new InetSocketAddress(locator.getHostName(), locator.getPort());
- HostAddress hostAddress = new HostAddress(address, locator.getHostName());
+ LocatorAddress hostAddress = new LocatorAddress(address, locator.getHostName());
newLocatorAddresses.add(hostAddress);
newOnlineLocators.add(hostAddress);
badLocators.remove(hostAddress);
@@ -341,10 +340,10 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
* This method will add bad locator only when locator with hostname and port is not already in
* list.
*/
- protected void addbadLocators(List<HostAddress> newLocators, Set<HostAddress> badLocators) {
- for (HostAddress badloc : badLocators) {
+ protected void addbadLocators(List<LocatorAddress> newLocators, Set<LocatorAddress> badLocators) {
+ for (LocatorAddress badloc : badLocators) {
boolean addIt = true;
- for (HostAddress goodloc : newLocators) {
+ for (LocatorAddress goodloc : newLocators) {
boolean isSameHost = badloc.getHostName().equals(goodloc.getHostName());
if (isSameHost && badloc.getPort() == goodloc.getPort()) {
// ip has been changed so don't add this in current
@@ -410,23 +409,23 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
* A list of locators, which remembers the last known good locator.
*/
private static class LocatorList {
- protected final List<HostAddress> locators;
+ protected final List<LocatorAddress> locators;
AtomicInteger currentLocatorIndex = new AtomicInteger();
- LocatorList(List<HostAddress> locators) {
+ LocatorList(List<LocatorAddress> locators) {
locators.sort(SOCKET_ADDRESS_COMPARATOR);
this.locators = Collections.unmodifiableList(locators);
}
public List<InetSocketAddress> getLocators() {
List<InetSocketAddress> locs = new ArrayList<>();
- for (HostAddress la : locators) {
+ for (LocatorAddress la : locators) {
locs.add(la.getSocketInetAddress());
}
return locs;
}
- List<HostAddress> getLocatorAddresses() {
+ List<LocatorAddress> getLocatorAddresses() {
return locators;
}
@@ -434,7 +433,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
return locators.size();
}
- public Iterator<HostAddress> iterator() {
+ public Iterator<LocatorAddress> iterator() {
return new LocatorIterator();
}
@@ -449,7 +448,7 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
* controller.
*
*/
- protected class LocatorIterator implements Iterator<HostAddress> {
+ protected class LocatorIterator implements Iterator<LocatorAddress> {
private int startLocator = currentLocatorIndex.get();
private int locatorNum = 0;
@@ -459,12 +458,12 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
}
@Override
- public HostAddress next() {
+ public LocatorAddress next() {
if (!hasNext()) {
return null;
} else {
int index = (locatorNum + startLocator) % locators.size();
- HostAddress nextLocator = locators.get(index);
+ LocatorAddress nextLocator = locators.get(index);
currentLocatorIndex.set(index);
locatorNum++;
return nextLocator;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
index b4e0415..c149a72 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
@@ -267,11 +267,6 @@ public class ConnectionImpl implements Connection {
}
-
- public static void loadEmergencyClasses() {
- // do nothing
- }
-
@Override
public short getWanSiteVersion() {
return wanSiteVersion;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
index 50fc0bd..d41ca20 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/EndpointManagerImpl.java
@@ -207,10 +207,6 @@ public class EndpointManagerImpl implements EndpointManager {
return getEndpointMap().size();
}
- public static void loadEmergencyClasses() {
- // do nothing
- }
-
protected static class EndpointListenerBroadcaster implements EndpointManager.EndpointListener {
private volatile Set<EndpointListener> endpointListeners = Collections.emptySet();
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/LocatorAddress.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/LocatorAddress.java
new file mode 100644
index 0000000..94a43bb
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/LocatorAddress.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.cache.client.internal;
+
+import java.net.InetSocketAddress;
+
+import org.apache.commons.validator.routines.InetAddressValidator;
+
+public class LocatorAddress {
+
+ private final InetSocketAddress socketInetAddress;
+ private final String hostname;
+ private final int port;
+ private final boolean isIpString;
+
+ public LocatorAddress(InetSocketAddress loc, String locStr) {
+ this.socketInetAddress = loc;
+ this.hostname = locStr;
+ this.port = loc.getPort();
+ this.isIpString = InetAddressValidator.getInstance().isValid(locStr);
+ }
+
+ public boolean isIpString() {
+ return isIpString;
+ }
+
+ /**
+ * if host is ipString then it will return the cached InetSocketAddress Otherwise it will create
+ * the new instance of InetSocketAddress
+ */
+ public InetSocketAddress getSocketInetAddress() {
+ if (this.isIpString) {
+ return this.socketInetAddress;
+ } else {
+ return new InetSocketAddress(hostname, this.socketInetAddress.getPort());
+ }
+ }
+
+ public String getHostName() {
+ return hostname;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ /**
+ * If component has retry logic then use this method to get the InetSocketAddress address
+ * AutoConnectionSourceImpl for client has retry logic; This way client will not make DNS query
+ * each time
+ *
+ */
+ public InetSocketAddress getSocketInetAddressNoLookup() {
+ return this.socketInetAddress;
+ }
+
+ @Override
+ public int hashCode() {
+ int prime = 31;
+ int result = 1;
+ result = prime * result + (isIpString ? 1231 : 1237);
+ result = prime * result + (socketInetAddress == null ? 0 : socketInetAddress.hashCode());
+ result = prime * result + (hostname == null ? 0 : hostname.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ LocatorAddress other = (LocatorAddress) obj;
+ if (isIpString != other.isIpString)
+ return false;
+ if (socketInetAddress == null) {
+ if (other.socketInetAddress != null)
+ return false;
+ } else if (!socketInetAddress.equals(other.socketInetAddress))
+ return false;
+ if (hostname == null) {
+ if (other.hostname != null)
+ return false;
+ } else if (!hostname.equals(other.hostname))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "LocatorAddress [socketInetAddress=" + socketInetAddress + ", hostname=" + hostname
+ + ", isIpString=" + isIpString + "]";
+ }
+
+}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
index e49e2da..c82398a 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/PoolImpl.java
@@ -53,7 +53,6 @@ import org.apache.geode.distributed.PoolCancelledException;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.ServerLocation;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.internal.admin.ClientStatsManager;
import org.apache.geode.internal.cache.EventID;
import org.apache.geode.internal.cache.InternalCache;
@@ -110,7 +109,7 @@ public class PoolImpl implements InternalPool {
private final int subscriptionAckInterval;
private final int subscriptionTimeoutMultiplier;
private final String serverGroup;
- private final List<HostAddress> locatorAddresses;
+ private final List<LocatorAddress> locatorAddresses;
private final List<InetSocketAddress> locators;
private final List<InetSocketAddress> servers;
private final boolean startDisabled;
@@ -155,7 +154,7 @@ public class PoolImpl implements InternalPool {
private final ThreadsMonitoring threadMonitoring;
public static PoolImpl create(PoolManagerImpl pm, String name, Pool attributes,
- List<HostAddress> locatorAddresses, InternalDistributedSystem distributedSystem,
+ List<LocatorAddress> locatorAddresses, InternalDistributedSystem distributedSystem,
InternalCache cache, ThreadsMonitoring tMonitoring) {
PoolImpl pool =
new PoolImpl(pm, name, attributes, locatorAddresses, distributedSystem, cache, tMonitoring);
@@ -185,7 +184,7 @@ public class PoolImpl implements InternalPool {
}
protected PoolImpl(PoolManagerImpl pm, String name, Pool attributes,
- List<HostAddress> locatorAddresses, InternalDistributedSystem distributedSystem,
+ List<LocatorAddress> locatorAddresses, InternalDistributedSystem distributedSystem,
InternalCache cache, ThreadsMonitoring threadMonitoring) {
this.pm = pm;
this.name = name;
@@ -1371,12 +1370,6 @@ public class PoolImpl implements InternalPool {
}
}
- public static void loadEmergencyClasses() {
- QueueManagerImpl.loadEmergencyClasses();
- ConnectionManagerImpl.loadEmergencyClasses();
- EndpointManagerImpl.loadEmergencyClasses();
- }
-
/**
* Returns the QueryService, that can be used to execute Query functions on the servers associated
* with this pool.
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
index 132fb97..e50de27 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
@@ -212,10 +212,6 @@ public class QueueConnectionImpl implements Connection {
}
}
- public static void loadEmergencyClasses() {
- ConnectionImpl.loadEmergencyClasses();
- }
-
@Override
public short getWanSiteVersion() {
throw new UnsupportedOperationException();
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
index d69a3d1..12b7d99 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
@@ -1485,8 +1485,4 @@ public class QueueManagerImpl implements QueueManager {
}
}
-
- public static void loadEmergencyClasses() {
- QueueConnectionImpl.loadEmergencyClasses();
- }
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
index 52e1684..b3bffc9 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
@@ -613,10 +613,6 @@ public class ConnectionManagerImpl implements ConnectionManager {
return false;
}
- public static void loadEmergencyClasses() {
- PooledConnection.loadEmergencyClasses();
- }
-
protected class LifetimeExpireConnectionsTask implements Runnable {
@Override
public void run() {
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
index ae7bf5e..ae5df9d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.geode.InternalGemFireException;
import org.apache.geode.cache.client.internal.Connection;
-import org.apache.geode.cache.client.internal.ConnectionImpl;
import org.apache.geode.cache.client.internal.ConnectionStats;
import org.apache.geode.cache.client.internal.Endpoint;
import org.apache.geode.cache.client.internal.Op;
@@ -353,10 +352,6 @@ public class PooledConnection implements Connection {
return getConnection().execute(op);
}
- public static void loadEmergencyClasses() {
- ConnectionImpl.loadEmergencyClasses();
- }
-
@Override
public short getWanSiteVersion() {
return getConnection().getWanSiteVersion();
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/Distribution.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/Distribution.java
index 830135a..dc7c00d 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/Distribution.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/Distribution.java
@@ -20,10 +20,8 @@ import java.util.Set;
import java.util.concurrent.TimeoutException;
import java.util.function.Supplier;
-import org.apache.geode.annotations.VisibleForTesting;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
import org.apache.geode.distributed.internal.membership.gms.api.Membership;
import org.apache.geode.distributed.internal.membership.gms.api.MembershipView;
import org.apache.geode.distributed.internal.membership.gms.api.QuorumChecker;
@@ -114,32 +112,6 @@ public interface Distribution {
Set<InternalDistributedMember> getMembersNotShuttingDown();
- // TODO - this method is only used by tests
- @VisibleForTesting
- void forceDisconnect(String reason);
-
- // TODO - this method is only used by tests
- @VisibleForTesting
- void replacePartialIdentifierInMessage(DistributionMessage message);
-
- // TODO - this method is only used by tests
- @VisibleForTesting
- boolean isCleanupTimerStarted();
-
- // TODO - this method is only used by tests
- @VisibleForTesting
- long getSurpriseMemberTimeout();
-
- // TODO - this method is only used by tests
- @VisibleForTesting
- void installView(GMSMembershipView<InternalDistributedMember> newView);
-
- // TODO - this method is only used by tests
- @VisibleForTesting
- int getDirectChannelPort();
-
- void disableDisconnectOnQuorumLossForTesting();
-
boolean waitForDeparture(InternalDistributedMember mbr)
throws TimeoutException, InterruptedException;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
index 1df8903..063aea0 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
@@ -37,11 +37,9 @@ import org.apache.geode.CancelException;
import org.apache.geode.ForcedDisconnectException;
import org.apache.geode.GemFireConfigException;
import org.apache.geode.SystemConnectException;
-import org.apache.geode.SystemFailure;
import org.apache.geode.ToDataException;
import org.apache.geode.annotations.Immutable;
import org.apache.geode.annotations.VisibleForTesting;
-import org.apache.geode.annotations.internal.MakeNotStatic;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.DistributedSystemDisconnectedException;
import org.apache.geode.distributed.Locator;
@@ -50,9 +48,6 @@ import org.apache.geode.distributed.internal.direct.ShunnedMemberException;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.distributed.internal.membership.adapter.ServiceConfig;
import org.apache.geode.distributed.internal.membership.adapter.auth.GMSAuthenticator;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembership;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
-import org.apache.geode.distributed.internal.membership.gms.Services;
import org.apache.geode.distributed.internal.membership.gms.api.LifecycleListener;
import org.apache.geode.distributed.internal.membership.gms.api.MemberDisconnectedException;
import org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier;
@@ -68,8 +63,6 @@ import org.apache.geode.distributed.internal.membership.gms.api.MembershipView;
import org.apache.geode.distributed.internal.membership.gms.api.Message;
import org.apache.geode.distributed.internal.membership.gms.api.MessageListener;
import org.apache.geode.distributed.internal.membership.gms.api.QuorumChecker;
-import org.apache.geode.distributed.internal.membership.gms.fd.GMSHealthMonitor;
-import org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave;
import org.apache.geode.distributed.internal.tcpserver.TcpClient;
import org.apache.geode.internal.InternalDataSerializer;
import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
@@ -82,21 +75,16 @@ import org.apache.geode.internal.tcp.ConnectExceptions;
import org.apache.geode.internal.tcp.ConnectionException;
import org.apache.geode.internal.util.Breadcrumbs;
import org.apache.geode.logging.internal.executors.LoggingThread;
+import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.security.AuthenticationRequiredException;
import org.apache.geode.security.GemFireSecurityException;
public class DistributionImpl implements Distribution {
- private static final Logger logger = Services.getLogger();
+ private static final Logger logger = LogService.getLogger();
@Immutable
public static final InternalDistributedMember[] EMPTY_MEMBER_ARRAY =
new InternalDistributedMember[0];
- /**
- * @see SystemFailure#loadEmergencyClasses() /** break any potential circularity in
- * {@link #loadEmergencyClasses()}
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded = false;
private final ClusterDistributionManager clusterDistributionManager;
private final boolean tcpDisabled;
@@ -163,25 +151,11 @@ public class DistributionImpl implements Distribution {
} catch (GemFireSecurityException e) {
throw e;
} catch (RuntimeException e) {
- Services.getLogger().error("Unexpected problem starting up membership services", e);
+ logger.error("Unexpected problem starting up membership services", e);
throw new SystemConnectException("Problem starting up membership services", e);
}
}
- /**
- * Ensure that the critical classes from components get loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded)
- return;
- emergencyClassesLoaded = true;
- DirectChannel.loadEmergencyClasses();
- GMSJoinLeave.loadEmergencyClasses();
- GMSHealthMonitor.loadEmergencyClasses();
- }
-
public static void connectLocatorToServices(Membership<InternalDistributedMember> membership) {
// see if a locator was started and put it in GMS Services
InternalLocator l = (InternalLocator) Locator.getLocator();
@@ -638,49 +612,6 @@ public class DistributionImpl implements Distribution {
return membership.getMembersNotShuttingDown();
}
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public void forceDisconnect(String reason) {
- ((GMSMembership) membership).getGMSManager().forceDisconnect(reason);
- }
-
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public void replacePartialIdentifierInMessage(DistributionMessage message) {
- ((GMSMembership) membership).replacePartialIdentifierInMessage(message);
-
- }
-
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public boolean isCleanupTimerStarted() {
- return ((GMSMembership) membership).isCleanupTimerStarted();
- }
-
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public long getSurpriseMemberTimeout() {
- return ((GMSMembership) membership).getSurpriseMemberTimeout();
- }
-
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public void installView(GMSMembershipView newView) {
- ((GMSMembership) membership).getGMSManager().installView(newView);
- }
-
- // TODO - this method is only used by tests
- @Override
- @VisibleForTesting
- public int getDirectChannelPort() {
- return directChannel == null ? 0 : directChannel.getPort();
- }
-
/**
* for mock testing this allows insertion of a DirectChannel mock
*/
@@ -690,11 +621,6 @@ public class DistributionImpl implements Distribution {
this.directChannel = dc;
}
- @Override
- public void disableDisconnectOnQuorumLossForTesting() {
- ((GMSMembership) membership).disableDisconnectOnQuorumLossForTesting();
- }
-
private void startDirectChannel(final MemberIdentifier memberID) {
int dcPort = 0;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
index a47c3c0..05e52f9 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java
@@ -1439,25 +1439,6 @@ public class InternalDistributedSystem extends DistributedSystem
}
/**
- * break any potential circularity in {@link #loadEmergencyClasses()}
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded = false;
-
- /**
- * Ensure that the Distribution class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded) {
- return;
- }
- emergencyClassesLoaded = true;
- DistributionImpl.loadEmergencyClasses();
- }
-
- /**
* Closes the membership manager
*
* @see SystemFailure#emergencyClose()
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/direct/DirectChannel.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/direct/DirectChannel.java
index 6fcf531..ffaf779 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/direct/DirectChannel.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/direct/DirectChannel.java
@@ -718,15 +718,6 @@ public class DirectChannel {
}
/**
- * Ensure that the TCPConduit class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- TCPConduit.loadEmergencyClasses();
- }
-
- /**
* Close the Conduit
*
* @see SystemFailure#emergencyClose()
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
index a394aad..d57075f 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
@@ -27,17 +27,11 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.RejectedExecutionException;
-import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.locks.Lock;
@@ -50,6 +44,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.geode.GemFireConfigException;
import org.apache.geode.SystemFailure;
+import org.apache.geode.annotations.VisibleForTesting;
import org.apache.geode.annotations.internal.MakeNotStatic;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.StartupMessage;
@@ -71,7 +66,6 @@ import org.apache.geode.distributed.internal.membership.gms.interfaces.Manager;
import org.apache.geode.internal.serialization.Version;
import org.apache.geode.logging.internal.executors.LoggingExecutors;
import org.apache.geode.logging.internal.executors.LoggingThread;
-import org.apache.geode.logging.internal.executors.LoggingThreadFactory;
public class GMSMembership<ID extends MemberIdentifier> implements Membership<ID> {
private static final Logger logger = Services.getLogger();
@@ -660,10 +654,7 @@ public class GMSMembership<ID extends MemberIdentifier> implements Membership<ID
this.listener = listener;
this.messageListener = messageListener;
this.gmsManager = new ManagerImpl();
- LinkedBlockingQueue<Runnable> feed = new LinkedBlockingQueue<>();
- ThreadFactory threadFactory = new LoggingThreadFactory("Geode View Processor");
- this.viewExecutor = new ThreadPoolExecutor(1, 1, 30,
- TimeUnit.SECONDS, feed, threadFactory, new ViewExecutorBlockHandler(feed));
+ this.viewExecutor = LoggingExecutors.newSingleThreadExecutor("Geode View Processor", true);
}
public Manager<ID> getGMSManager() {
@@ -1777,6 +1768,11 @@ public class GMSMembership<ID extends MemberIdentifier> implements Membership<ID
}
}
+ @VisibleForTesting
+ public void forceDisconnect(String reason) {
+ this.gmsManager.forceDisconnect(reason);
+ }
+
/**
* Test hook - recover health
*/
@@ -2110,32 +2106,4 @@ public class GMSMembership<ID extends MemberIdentifier> implements Membership<ID
}
}
-
-
- private static class ViewExecutorBlockHandler implements RejectedExecutionHandler {
-
- private final Queue queue;
-
- private ViewExecutorBlockHandler(Queue feed) {
- queue = feed;
- }
-
- @Override
- public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
- if (executor.isShutdown()) {
- throw new RejectedExecutionException(
- "executor has been shutdown");
- } else {
- try {
- executor.getQueue().put(r);
- } catch (InterruptedException ie) {
- Thread.currentThread().interrupt();
- RejectedExecutionException e = new RejectedExecutionException(
- "interrupted");
- e.initCause(ie);
- }
- }
- }
- }
-
}
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
index 51e5835..517aa43 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
@@ -408,9 +408,6 @@ public class GMSHealthMonitor<ID extends MemberIdentifier> implements HealthMoni
this.socketCreator = socketCreator;
}
- @SuppressWarnings("EmptyMethod")
- public static void loadEmergencyClasses() {}
-
/*
* Record the member activity for current time interval.
*/
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
index ca53b4d..82fbdbe 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
@@ -1652,8 +1652,6 @@ public class GMSJoinLeave<ID extends MemberIdentifier> implements JoinLeave<ID>
VIEW_BROADCAST_INTERVAL);
}
- public static void loadEmergencyClasses() {}
-
@Override
public void emergencyClose() {
isStopping = true;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/SystemFailureTestHook.java b/geode-core/src/main/java/org/apache/geode/internal/SystemFailureTestHook.java
index e3907c5..e2d27cb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/SystemFailureTestHook.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/SystemFailureTestHook.java
@@ -41,8 +41,4 @@ public class SystemFailureTestHook {
public static boolean errorIsExpected(Error failure) {
return expectedClass != null && expectedClass.isInstance(failure);
}
-
- public static void loadEmergencyClasses() {
- // nothing more needed
- }
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGfManagerAgent.java b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGfManagerAgent.java
index cc54036..d9a878a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGfManagerAgent.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGfManagerAgent.java
@@ -206,12 +206,6 @@ public class RemoteGfManagerAgent implements GfManagerAgent {
private static volatile List<RemoteGfManagerAgent> allAgents = new ArrayList<>();
/**
- * break any potential circularity in {@link #loadEmergencyClasses()}
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded;
-
- /**
* Is this thread currently sending a message?
*/
private static final ThreadLocal<Boolean> sending = ThreadLocal.withInitial(() -> Boolean.FALSE);
@@ -237,19 +231,6 @@ public class RemoteGfManagerAgent implements GfManagerAgent {
}
/**
- * Ensure that the InternalDistributedSystem class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded) {
- return;
- }
- emergencyClassesLoaded = true;
- InternalDistributedSystem.loadEmergencyClasses();
- }
-
- /**
* Close all of the RemoteGfManagerAgent's.
*
* @see SystemFailure#emergencyClose()
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index ad31848..6d4d97f 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -227,7 +227,6 @@ import org.apache.geode.internal.cache.persistence.PersistentMemberID;
import org.apache.geode.internal.cache.persistence.PersistentMemberManager;
import org.apache.geode.internal.cache.snapshot.CacheSnapshotServiceImpl;
import org.apache.geode.internal.cache.tier.Acceptor;
-import org.apache.geode.internal.cache.tier.sockets.AcceptorImpl;
import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier;
import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy;
import org.apache.geode.internal.cache.tier.sockets.ClientHealthMonitor;
@@ -389,12 +388,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
new CopyOnWriteArraySet<>();
/**
- * Break any potential circularity in {@link #loadEmergencyClasses()}.
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded;
-
- /**
* Property set to true if resource manager heap percentage is set and query monitor is required
*/
@MakeNotStatic
@@ -1649,21 +1642,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
}
/**
- * Ensure that all the necessary classes for closing the cache are loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded) {
- return;
- }
- emergencyClassesLoaded = true;
- InternalDistributedSystem.loadEmergencyClasses();
- AcceptorImpl.loadEmergencyClasses();
- PoolManagerImpl.loadEmergencyClasses();
- }
-
- /**
* Close the distributed system, cache servers, and gateways. Clears the rootRegions and
* partitionedRegions map. Marks the cache as closed.
*
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
index 2cdaba8..ef39f87 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
@@ -34,12 +34,12 @@ import org.apache.geode.DataSerializer;
import org.apache.geode.cache.CacheException;
import org.apache.geode.cache.client.Pool;
import org.apache.geode.cache.client.PoolFactory;
+import org.apache.geode.cache.client.internal.LocatorAddress;
import org.apache.geode.cache.client.internal.LocatorDiscoveryCallback;
import org.apache.geode.cache.client.internal.PoolImpl;
import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.wan.GatewaySender;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.internal.monitoring.ThreadsMonitoring;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.pdx.internal.TypeRegistry;
@@ -57,7 +57,7 @@ public class PoolFactoryImpl implements PoolFactory {
*/
private PoolAttributes attributes = new PoolAttributes();
- private final List<HostAddress> locatorAddresses = new ArrayList<>();
+ private final List<LocatorAddress> locatorAddresses = new ArrayList<>();
/**
* The cache that created this factory
@@ -287,7 +287,7 @@ public class PoolFactoryImpl implements PoolFactory {
}
InetSocketAddress isa = getInetSocketAddress(host, port);
attributes.locators.add(isa);
- locatorAddresses.add(new HostAddress(isa, host));
+ locatorAddresses.add(new LocatorAddress(isa, host));
return this;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
index 67488ee..38acffb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
@@ -300,10 +300,6 @@ public class PoolManagerImpl {
});
}
- public static void loadEmergencyClasses() {
- PoolImpl.loadEmergencyClasses();
- }
-
public Pool find(Region<?, ?> region) {
return find(region.getAttributes().getPoolName());
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/CachedRegionHelper.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/CachedRegionHelper.java
index 7d8ce39..18c549d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/CachedRegionHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/CachedRegionHelper.java
@@ -15,7 +15,6 @@
package org.apache.geode.internal.cache.tier;
import org.apache.geode.CancelException;
-import org.apache.geode.SystemFailure;
import org.apache.geode.cache.Region;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalCacheForClientAccess;
@@ -68,13 +67,4 @@ public class CachedRegionHelper {
// cache = null;
}
- /**
- * Just ensure that this class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- // nothing needed, just make sure this class gets loaded
- }
-
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
index 831c08c..b4a475e 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
@@ -861,26 +861,6 @@ public class AcceptorImpl implements Acceptor, Runnable {
}
/**
- * break any potential circularity in {@link #loadEmergencyClasses()}
- */
- @MakeNotStatic
- private static volatile boolean emergencyClassesLoaded;
-
- /**
- * Ensure that the CachedRegionHelper and ServerConnection classes get loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- if (emergencyClassesLoaded) {
- return;
- }
- emergencyClassesLoaded = true;
- CachedRegionHelper.loadEmergencyClasses();
- ServerConnection.loadEmergencyClasses();
- }
-
- /**
* @see SystemFailure#emergencyClose()
*/
@Override
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
index bfe7acd..230e5a9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
@@ -1449,15 +1449,6 @@ public abstract class ServerConnection implements Runnable {
}
/**
- * Just ensure that this class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- // nothing needed, just make sure this class gets loaded.
- }
-
- /**
* @see SystemFailure#emergencyClose()
*/
public void emergencyClose() {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/tcp/ConnectionTable.java b/geode-core/src/main/java/org/apache/geode/internal/tcp/ConnectionTable.java
index dfd723d..7656fe0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/tcp/ConnectionTable.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/tcp/ConnectionTable.java
@@ -918,15 +918,6 @@ public class ConnectionTable {
}
/**
- * Just ensure that this class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- // don't go any further, Frodo!
- }
-
- /**
* Clears lastInstance. Does not yet close underlying sockets, but probably not strictly
* necessary.
*
diff --git a/geode-core/src/main/java/org/apache/geode/internal/tcp/TCPConduit.java b/geode-core/src/main/java/org/apache/geode/internal/tcp/TCPConduit.java
index 0639bc1..adf1cc2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/tcp/TCPConduit.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/tcp/TCPConduit.java
@@ -385,15 +385,6 @@ public class TCPConduit implements Runnable {
}
/**
- * Ensure that the ConnectionTable class gets loaded.
- *
- * @see SystemFailure#loadEmergencyClasses()
- */
- public static void loadEmergencyClasses() {
- ConnectionTable.loadEmergencyClasses();
- }
-
- /**
* Close the ServerSocketChannel, ServerSocket, and the ConnectionTable.
*
* @see SystemFailure#emergencyClose()
diff --git a/geode-core/src/test/java/org/apache/geode/cache/client/internal/PoolImplTest.java b/geode-core/src/test/java/org/apache/geode/cache/client/internal/PoolImplTest.java
index b3921bf..d39c290 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/client/internal/PoolImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/client/internal/PoolImplTest.java
@@ -37,7 +37,6 @@ import org.apache.geode.cache.client.ServerConnectivityException;
import org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.PoolFactoryImpl;
import org.apache.geode.internal.cache.PoolManagerImpl;
@@ -154,7 +153,7 @@ public class PoolImplTest {
final ThreadsMonitoring tMonitoring = mock(ThreadsMonitoring.class);
- return PoolImpl.create(poolManager, "pool", poolAttributes, new LinkedList<HostAddress>(),
+ return PoolImpl.create(poolManager, "pool", poolAttributes, new LinkedList<LocatorAddress>(),
internalDistributedSystem, internalCache, tMonitoring);
}
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipViewJUnitTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
similarity index 92%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipViewJUnitTest.java
rename to geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
index 997ae14..9e66615 100755
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipViewJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
@@ -30,14 +30,13 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
import org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier;
import org.apache.geode.internal.inet.LocalHostUtil;
import org.apache.geode.test.junit.categories.MembershipTest;
@Category({MembershipTest.class})
-public class MembershipViewJUnitTest {
+public class GMSMembershipViewJUnitTest {
private List<MemberIdentifier> members;
@@ -49,21 +48,21 @@ public class MembershipViewJUnitTest {
members.add(new InternalDistributedMember(LocalHostUtil.getLocalHost(), 1000 + i));
}
// view creator is a locator
- members.get(0).setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ members.get(0).setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
members.get(0).setVmViewId(0);
members.get(0).setPreferredForCoordinator(true);
// members who joined in view #1
for (int i = 1; i < (numMembers - 1); i++) {
members.get(i).setVmViewId(1);
- members.get(i).setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ members.get(i).setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
members.get(i).setPreferredForCoordinator(false);
}
// member joining in this view
members.get(numMembers - 1).setVmViewId(2);
members.get(numMembers - 1).getMemberData()
- .setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ .setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
}
private void setFailureDetectionPorts(GMSMembershipView view) {
@@ -184,7 +183,7 @@ public class MembershipViewJUnitTest {
int oldSize = view.size();
for (int i = 0; i < 100; i++) {
MemberIdentifier mbr = new InternalDistributedMember(LocalHostUtil.getLocalHost(), 2000 + i);
- mbr.setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ mbr.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
mbr.setVmViewId(2);
view.add(mbr);
view.setFailureDetectionPort(mbr, 2000 + i);
@@ -233,22 +232,22 @@ public class MembershipViewJUnitTest {
new InternalDistributedMember("localhost", 6)};
int i = 0;
// weight 3
- members[i].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
members[i++].setPreferredForCoordinator(true);
// weight 3
- members[i].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
members[i++].setPreferredForCoordinator(true);
// weight 15 (cache+leader)
- members[i].setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
members[i++].setPreferredForCoordinator(false);
// weight 0
- members[i].setVmKind(ClusterDistributionManager.ADMIN_ONLY_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.ADMIN_ONLY_DM_TYPE);
members[i++].setPreferredForCoordinator(false);
// weight 0
- members[i].setVmKind(ClusterDistributionManager.ADMIN_ONLY_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.ADMIN_ONLY_DM_TYPE);
members[i++].setPreferredForCoordinator(false);
// weight 10
- members[i].setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ members[i].setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
members[i++].setPreferredForCoordinator(false);
List<MemberIdentifier> vmbrs = new ArrayList<>(members.length);
@@ -262,7 +261,7 @@ public class MembershipViewJUnitTest {
assertTrue(!leader.preferredForCoordinator());
MemberIdentifier joiningMember = new InternalDistributedMember("localhost", 7);
- joiningMember.setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+ joiningMember.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
joiningMember.setPreferredForCoordinator(false);
// have the joining member and another cache process (weight 10) in the failed members
@@ -287,4 +286,5 @@ public class MembershipViewJUnitTest {
Set<MemberIdentifier> actual = newView.getActualCrashedMembers(lastView);
assertTrue(!actual.contains(members[members.length - 2]));
}
+
}
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/InternalDistributedMemberTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/InternalDistributedMemberTest.java
index 0f2afa8..13469ee 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/InternalDistributedMemberTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/InternalDistributedMemberTest.java
@@ -24,7 +24,7 @@ import java.net.UnknownHostException;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.distributed.internal.membership.gms.GMSMemberData;
+import org.apache.geode.distributed.internal.membership.gms.api.MemberData;
import org.apache.geode.test.junit.categories.MembershipTest;
/**
@@ -73,9 +73,9 @@ public class InternalDistributedMemberTest {
@Test
public void equalsReturnsTrueIfNullInetAddress() throws UnknownHostException {
InetAddress localHost = InetAddress.getLocalHost();
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(localHost).thenReturn(null);
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(localHost).thenReturn(null);
InternalDistributedMember member = new InternalDistributedMember(netMember1);
InternalDistributedMember other = new InternalDistributedMember(netMember2);
@@ -89,9 +89,9 @@ public class InternalDistributedMemberTest {
public void equalsReturnsFalseIfInetAddressDiffer() throws UnknownHostException {
InetAddress host1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
InetAddress host2 = InetAddress.getByAddress(new byte[] {127, 0, 0, 2});
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(host1);
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(host2);
InternalDistributedMember member = new InternalDistributedMember(netMember1);
InternalDistributedMember other = new InternalDistributedMember(netMember2);
@@ -104,9 +104,9 @@ public class InternalDistributedMemberTest {
@Test
public void equalsReturnsFalseIfGetViewIdDiffer() throws UnknownHostException {
InetAddress host1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(host1);
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(host1);
when(netMember1.getVmViewId()).thenReturn(1);
when(netMember2.getVmViewId()).thenReturn(2);
@@ -121,9 +121,9 @@ public class InternalDistributedMemberTest {
@Test
public void equalsReturnsFalseIfUniqueTagsDiffer() throws UnknownHostException {
InetAddress host1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(host1);
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(host1);
InternalDistributedMember member = new InternalDistributedMember(netMember1);
member.setUniqueTag("tag1");
@@ -138,10 +138,10 @@ public class InternalDistributedMemberTest {
@Test
public void equalsReturnsFalseIfNotPartialAndNamesDiffer() throws UnknownHostException {
InetAddress host1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(host1);
when(netMember1.getName()).thenReturn("name1");
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(host1);
when(netMember2.getName()).thenReturn("name2");
InternalDistributedMember member = new InternalDistributedMember(netMember1);
@@ -157,9 +157,9 @@ public class InternalDistributedMemberTest {
@Test
public void equalsReturnsFalseIfCompareAdditionalDataDiffer() throws UnknownHostException {
InetAddress host1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
- GMSMemberData netMember1 = mock(GMSMemberData.class);
+ MemberData netMember1 = mock(MemberData.class);
when(netMember1.getInetAddress()).thenReturn(host1);
- GMSMemberData netMember2 = mock(GMSMemberData.class);
+ MemberData netMember2 = mock(MemberData.class);
when(netMember2.getInetAddress()).thenReturn(host1);
when(netMember1.compareAdditionalData(netMember2)).thenReturn(1);
when(netMember2.compareAdditionalData(netMember1)).thenReturn(-1);
diff --git a/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java b/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
index df306ca..bf7878f 100644
--- a/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
+++ b/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
@@ -126,14 +126,19 @@ public class MembershipManagerHelper {
// this method is only used for testing. Should be extract to a test helper instead
public static void crashDistributedSystem(final DistributedSystem msys) {
msys.getLogWriter().info("crashing distributed system: " + msys);
- Distribution mgr = ((Distribution) getDistribution(msys));
+ Distribution mgr = getDistribution(msys);
MembershipManagerHelper.inhibitForcedDisconnectLogging(true);
MembershipManagerHelper.beSickMember(msys);
MembershipManagerHelper.playDead(msys);
- mgr.forceDisconnect("for testing");
+ ((GMSMembership.ManagerImpl) mgr).forceDisconnect("for testing");
// wait at most 10 seconds for system to be disconnected
await().until(() -> !msys.isConnected());
MembershipManagerHelper.inhibitForcedDisconnectLogging(false);
}
+ public static void disableDisconnectOnQuorumLossForTesting(DistributedSystem msys) {
+ msys.getLogWriter().info("crashing distributed system: " + msys);
+ Distribution mgr = getDistribution(msys);
+ ((GMSMembership) mgr.getMembership()).disableDisconnectOnQuorumLossForTesting();
+ }
}
diff --git a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventRemoteDispatcherIntegrationTest.java b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventRemoteDispatcherIntegrationTest.java
index e734a1d..f564b08 100644
--- a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventRemoteDispatcherIntegrationTest.java
+++ b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventRemoteDispatcherIntegrationTest.java
@@ -41,7 +41,6 @@ import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.ServerLocation;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.gms.membership.HostAddress;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.PoolFactoryImpl;
import org.apache.geode.internal.cache.PoolManagerImpl;
@@ -150,7 +149,7 @@ public class GatewaySenderEventRemoteDispatcherIntegrationTest {
final ThreadsMonitoring tMonitoring = mock(ThreadsMonitoring.class);
- return PoolImpl.create(poolManager, "pool", poolAttributes, new LinkedList<HostAddress>(),
+ return PoolImpl.create(poolManager, "pool", poolAttributes, new LinkedList<>(),
internalDistributedSystem, internalCache, tMonitoring);
}