diff --git a/.baseline/checkstyle/checkstyle.xml b/.baseline/checkstyle/checkstyle.xml
index 1a086c49c8e..0297c79f472 100644
--- a/.baseline/checkstyle/checkstyle.xml
+++ b/.baseline/checkstyle/checkstyle.xml
@@ -402,7 +402,9 @@
-
+
+
+
diff --git a/atlasdb-api/src/test/java/com/palantir/atlasdb/metrics/MetricPublicationArbiterTest.java b/atlasdb-api/src/test/java/com/palantir/atlasdb/metrics/MetricPublicationArbiterTest.java
index 1aebc58f86a..53e02582084 100644
--- a/atlasdb-api/src/test/java/com/palantir/atlasdb/metrics/MetricPublicationArbiterTest.java
+++ b/atlasdb-api/src/test/java/com/palantir/atlasdb/metrics/MetricPublicationArbiterTest.java
@@ -55,6 +55,7 @@ public void metricsWithOneFilterAreFiltered() {
}
@Test
+ @SuppressWarnings("DistinctVarargsChecker")
public void metricsWithMultipleFiltersAreAcceptedOnlyIfAllFiltersPermit() {
MetricPublicationArbiter arbiter = createArbiter(ImmutableMap.of(
METRIC_NAME_1, ImmutableSet.of(trueFilter(), falseFilter(), trueFilter()),
@@ -100,7 +101,14 @@ public void deduplicatesFilters() {
}
private static MetricPublicationFilter trueFilter() {
- return () -> true;
+ // Depending on the JDK, identical lambdas may share the same hashcode
+ // As a result, we cannot use this method to create a set of filters
+ return new MetricPublicationFilter() {
+ @Override
+ public boolean shouldPublish() {
+ return true;
+ }
+ };
}
private static MetricPublicationFilter falseFilter() {
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/BackupTestUtils.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/BackupTestUtils.java
index 75368debfcb..235b460e7e5 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/BackupTestUtils.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/BackupTestUtils.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Range;
-import com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig;
import com.palantir.atlasdb.cassandra.CassandraServersConfigs;
import com.palantir.atlasdb.cassandra.ImmutableCqlCapableConfig;
import com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken;
@@ -56,6 +55,11 @@ public final class BackupTestUtils {
static final Range RANGE_2_TO_3 = Range.openClosed(TOKEN_2, TOKEN_3);
static final Range RANGE_GREATER_THAN_3 = Range.greaterThan(TOKEN_3);
+ static final CassandraServersConfigs.CqlCapableConfig CASSANDRA_SERVERS_CONFIG = ImmutableCqlCapableConfig.builder()
+ .addAllCqlHosts(HOSTS)
+ .addAllThriftHosts(HOSTS)
+ .build();
+
private BackupTestUtils() {
// utility
}
@@ -79,14 +83,6 @@ static void mockTokenRanges(CqlSession cqlSession, CqlMetadata cqlMetadata) {
when(cqlSession.getMetadata()).thenReturn(cqlMetadata);
}
- static void mockConfig(CassandraKeyValueServiceRuntimeConfig runtimeConfig) {
- CassandraServersConfigs.CqlCapableConfig cqlCapableConfig = ImmutableCqlCapableConfig.builder()
- .addAllCqlHosts(HOSTS)
- .addAllThriftHosts(HOSTS)
- .build();
- when(runtimeConfig.servers()).thenReturn(cqlCapableConfig);
- }
-
static List mockTableMetadatas(KeyspaceMetadata keyspaceMetadata, String... tableNames) {
return Arrays.stream(tableNames)
.map(tableName -> mockTableMetadata(keyspaceMetadata, tableName))
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/RepairRangeFetcherTest.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/RepairRangeFetcherTest.java
index 18f673b6a6f..51b7bea153d 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/RepairRangeFetcherTest.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/RepairRangeFetcherTest.java
@@ -29,7 +29,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Range;
import com.google.common.collect.RangeSet;
-import com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig;
import com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction;
import com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction;
import com.palantir.atlasdb.cassandra.backup.transaction.Transactions3TableInteraction;
@@ -60,9 +59,6 @@ public class RepairRangeFetcherTest {
@Mock
private CqlMetadata cqlMetadata;
- @Mock
- private CassandraKeyValueServiceRuntimeConfig runtimeConfig;
-
private RepairRangeFetcher repairRangeFetcher;
@Before
@@ -72,14 +68,14 @@ public void setUp() {
when(keyspaceMetadata.getTables()).thenReturn(tableMetadatas);
BackupTestUtils.mockTokenRanges(cqlSession, cqlMetadata);
- BackupTestUtils.mockConfig(runtimeConfig);
when(cqlSession.retrieveRowKeysAtConsistencyAll(anyList()))
.thenReturn(ImmutableSet.of(BackupTestUtils.TOKEN_1, OTHER_TOKEN));
when(cqlMetadata.getReplicas(eq(BackupTestUtils.NAMESPACE), any()))
.thenReturn(ImmutableSet.copyOf(BackupTestUtils.HOSTS));
- repairRangeFetcher = new RepairRangeFetcher(cqlSession, BackupTestUtils.NAMESPACE, runtimeConfig.servers());
+ repairRangeFetcher =
+ new RepairRangeFetcher(cqlSession, BackupTestUtils.NAMESPACE, BackupTestUtils.CASSANDRA_SERVERS_CONFIG);
}
@Test
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/TokenRangeFetcherTest.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/TokenRangeFetcherTest.java
index b3867aa426e..b84ca130f40 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/TokenRangeFetcherTest.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/TokenRangeFetcherTest.java
@@ -29,7 +29,6 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Range;
import com.google.common.collect.RangeSet;
-import com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig;
import com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken;
import java.net.InetSocketAddress;
import java.util.List;
@@ -51,9 +50,6 @@ public class TokenRangeFetcherTest {
@Mock
private CqlMetadata cqlMetadata;
- @Mock
- private CassandraKeyValueServiceRuntimeConfig runtimeConfig;
-
private TokenRangeFetcher tokenRangeFetcher;
@Before
@@ -62,13 +58,13 @@ public void setUp() {
List tableMetadatas = BackupTestUtils.mockTableMetadatas(keyspaceMetadata, TABLE_NAME);
when(keyspaceMetadata.getTable(TABLE_NAME)).thenReturn(Iterables.getOnlyElement(tableMetadatas));
- BackupTestUtils.mockConfig(runtimeConfig);
BackupTestUtils.mockTokenRanges(cqlSession, cqlMetadata);
when(cqlSession.retrieveRowKeysAtConsistencyAll(anyList()))
.thenReturn(ImmutableSet.of(BackupTestUtils.TOKEN_1, BackupTestUtils.TOKEN_2, BackupTestUtils.TOKEN_3));
- tokenRangeFetcher = new TokenRangeFetcher(cqlSession, BackupTestUtils.NAMESPACE, runtimeConfig.servers());
+ tokenRangeFetcher =
+ new TokenRangeFetcher(cqlSession, BackupTestUtils.NAMESPACE, BackupTestUtils.CASSANDRA_SERVERS_CONFIG);
}
@Test
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/transaction/Transactions3TableInteractionTest.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/transaction/Transactions3TableInteractionTest.java
index 51b450a4c21..dd18db2d717 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/transaction/Transactions3TableInteractionTest.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/cassandra/backup/transaction/Transactions3TableInteractionTest.java
@@ -26,7 +26,6 @@
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Statement;
import com.datastax.driver.core.TableMetadata;
-import com.datastax.driver.core.policies.RetryPolicy;
import com.google.common.collect.Range;
import com.google.common.primitives.Longs;
import com.palantir.atlasdb.atomic.AtomicValue;
@@ -53,8 +52,6 @@ public class Transactions3TableInteractionTest {
new TwoPhaseEncodingStrategy(BaseProgressEncodingStrategy.INSTANCE);
private static final String KEYSPACE = "keyspace";
-
- private final RetryPolicy mockPolicy = mock(RetryPolicy.class);
private final TransactionsTableInteraction interaction = new Transactions3TableInteraction(RANGE);
private final TableMetadata tableMetadata = mock(TableMetadata.class, RETURNS_DEEP_STUBS);
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/CassandraClientPoolTest.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/CassandraClientPoolTest.java
index 2d075e0e29c..335a8c6dcc0 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/CassandraClientPoolTest.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/CassandraClientPoolTest.java
@@ -31,7 +31,7 @@
import com.palantir.atlasdb.cassandra.CassandraCredentialsConfig;
import com.palantir.atlasdb.cassandra.CassandraKeyValueServiceConfig;
import com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig;
-import com.palantir.atlasdb.cassandra.CassandraServersConfigs.ThriftHostsExtractingVisitor;
+import com.palantir.atlasdb.cassandra.CassandraServersConfigs;
import com.palantir.atlasdb.cassandra.ImmutableDefaultConfig;
import com.palantir.atlasdb.keyvalue.cassandra.pool.CassandraServer;
import com.palantir.atlasdb.keyvalue.cassandra.pool.CassandraService;
@@ -108,13 +108,8 @@ public void setup() {
when(runtimeConfig.unresponsiveHostBackoffTimeSeconds()).thenReturn(UNRESPONSIVE_HOST_BACKOFF_SECONDS);
when(config.credentials()).thenReturn(mock(CassandraCredentialsConfig.class));
when(config.getKeyspaceOrThrow()).thenReturn("ks");
- blacklist = new Blacklist(config, Refreshable.only(runtimeConfig.unresponsiveHostBackoffTimeSeconds()));
+ blacklist = new Blacklist(config, Refreshable.only(UNRESPONSIVE_HOST_BACKOFF_SECONDS));
- doAnswer(invocation -> runtimeConfig.servers().accept(ThriftHostsExtractingVisitor.INSTANCE).stream()
- .map(CassandraServer::of)
- .collect(ImmutableSet.toImmutableSet()))
- .when(cassandra)
- .getCurrentServerListFromConfig();
doAnswer(invocation -> poolServers.add(getInvocationAddress(invocation)))
.when(cassandra)
.addPool(any());
@@ -277,8 +272,7 @@ public void resilientToRollingRestarts() {
@Test
public void attemptsShouldBeCountedPerHost() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder().addThriftHosts().build());
+ setupThriftServers(ImmutableSet.of());
CassandraClientPoolImpl cassandraClientPool = CassandraClientPoolImpl.createImplForTest(
MetricsManagers.of(metricRegistry, taggedMetricRegistry),
config,
@@ -299,10 +293,7 @@ public void attemptsShouldBeCountedPerHost() {
@Test
public void hostIsAutomaticallyRemovedOnStartup() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy(), CASS_SERVER_3.proxy())
- .build());
+ setupThriftServers(ImmutableSet.of(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy(), CASS_SERVER_3.proxy()));
when(config.autoRefreshNodes()).thenReturn(true);
setCassandraServersTo(CASS_SERVER_1);
@@ -313,10 +304,7 @@ public void hostIsAutomaticallyRemovedOnStartup() {
@Test
public void hostIsAutomaticallyRemovedOnRefresh() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy(), CASS_SERVER_3.proxy())
- .build());
+ setupThriftServers(ImmutableSet.of(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy(), CASS_SERVER_3.proxy()));
when(config.autoRefreshNodes()).thenReturn(true);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
@@ -325,16 +313,13 @@ public void hostIsAutomaticallyRemovedOnRefresh() {
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2);
- deterministicExecutor.tick(config.poolRefreshIntervalSeconds(), TimeUnit.SECONDS);
+ deterministicExecutor.tick(POOL_REFRESH_INTERVAL_SECONDS, TimeUnit.SECONDS);
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
}
@Test
public void hostIsAutomaticallyAddedOnStartup() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy())
- .build());
+ setupThriftServers(ImmutableSet.of(CASS_SERVER_1.proxy()));
when(config.autoRefreshNodes()).thenReturn(true);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2);
@@ -345,10 +330,7 @@ public void hostIsAutomaticallyAddedOnStartup() {
@Test
public void hostIsAutomaticallyAddedOnRefresh() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy())
- .build());
+ setupThriftServers(ImmutableSet.of(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy()));
when(config.autoRefreshNodes()).thenReturn(true);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2);
@@ -357,16 +339,13 @@ public void hostIsAutomaticallyAddedOnRefresh() {
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
- deterministicExecutor.tick(config.poolRefreshIntervalSeconds(), TimeUnit.SECONDS);
+ deterministicExecutor.tick(POOL_REFRESH_INTERVAL_SECONDS, TimeUnit.SECONDS);
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
}
@Test
public void hostsAreNotRemovedOrAddedWhenRefreshIsDisabled() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy())
- .build());
+ setupThriftServers(ImmutableSet.of(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy()));
when(config.autoRefreshNodes()).thenReturn(false);
setCassandraServersTo(CASS_SERVER_1);
@@ -374,33 +353,7 @@ public void hostsAreNotRemovedOrAddedWhenRefreshIsDisabled() {
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
setCassandraServersTo(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
- deterministicExecutor.tick(config.poolRefreshIntervalSeconds(), TimeUnit.SECONDS);
- assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
- }
-
- @Test
- public void hostsAreResetToConfigOnRefreshWhenRefreshIsDisabled() {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addThriftHosts(CASS_SERVER_1.proxy(), CASS_SERVER_2.proxy())
- .build());
- when(config.autoRefreshNodes()).thenReturn(false);
-
- setCassandraServersTo(CASS_SERVER_1);
- createClientPool();
- assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
-
- cassandra.addPool(CASS_SERVER_3);
- assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2, CASS_SERVER_3);
-
- deterministicExecutor.tick(config.poolRefreshIntervalSeconds(), TimeUnit.SECONDS);
- assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
-
- setCassandraServersTo(CASS_SERVER_2, CASS_SERVER_3);
- cassandra.removePool(CASS_SERVER_1);
- assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_2);
-
- deterministicExecutor.tick(config.poolRefreshIntervalSeconds(), TimeUnit.SECONDS);
+ deterministicExecutor.tick(POOL_REFRESH_INTERVAL_SECONDS, TimeUnit.SECONDS);
assertThat(poolServers).containsExactlyInAnyOrder(CASS_SERVER_1, CASS_SERVER_2);
}
@@ -501,10 +454,7 @@ private CassandraClientPoolImpl throwingClientPoolWithServersInCurrentPool(
@SuppressWarnings("OptionalUsedAsFieldOrParameterType") // Unpacking it seems less readable
private CassandraClientPoolImpl clientPoolWith(
Set servers, Set serversInPool, Optional failureMode) {
- when(runtimeConfig.servers())
- .thenReturn(ImmutableDefaultConfig.builder()
- .addAllThriftHosts(servers)
- .build());
+ setupThriftServers(servers);
when(config.timeoutOnConnectionClose()).thenReturn(Duration.ofSeconds(10));
when(config.timeoutOnConnectionBorrow()).thenReturn(HumanReadableDuration.minutes(10));
when(config.consecutiveAbsencesBeforePoolRemoval()).thenReturn(1);
@@ -596,4 +546,14 @@ private Object getAggregateMetricValueForMetricName(String metricName) {
String fullyQualifiedMetricName = MetricRegistry.name(CassandraClientPool.class, metricName);
return metricRegistry.getGauges().get(fullyQualifiedMetricName).getValue();
}
+
+ private void setupThriftServers(Set servers) {
+ CassandraServersConfigs.CassandraServersConfig config =
+ ImmutableDefaultConfig.builder().addAllThriftHosts(servers).build();
+ when(runtimeConfig.servers()).thenReturn(config);
+ when(cassandra.getCurrentServerListFromConfig())
+ .thenReturn(config.accept(CassandraServersConfigs.ThriftHostsExtractingVisitor.INSTANCE).stream()
+ .map(CassandraServer::of)
+ .collect(ImmutableSet.toImmutableSet()));
+ }
}
diff --git a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/ProfilingCassandraClientTest.java b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/ProfilingCassandraClientTest.java
index 580ef29f8a8..69c45e18bf0 100644
--- a/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/ProfilingCassandraClientTest.java
+++ b/atlasdb-cassandra/src/test/java/com/palantir/atlasdb/keyvalue/cassandra/ProfilingCassandraClientTest.java
@@ -36,6 +36,7 @@
import org.apache.cassandra.thrift.CqlResultType;
import org.apache.cassandra.thrift.CqlRow;
import org.apache.cassandra.thrift.SlicePredicate;
+import org.apache.cassandra.thrift.SliceRange;
import org.apache.thrift.TException;
import org.junit.After;
import org.junit.Test;
@@ -89,14 +90,16 @@ public void handlesNullMultigetSliceResponseFromDelegate() throws TException {
List columns =
ImmutableList.of(new ColumnOrSuperColumn().setColumn(new Column(byteBuffer)));
ImmutableMap> resultMap = ImmutableMap.of(byteBuffer, columns);
+ SlicePredicate slicePredicate = new SlicePredicate();
+ slicePredicate.setSlice_range(new SliceRange());
when(delegate.multiget_slice(any(), any(), any(), any(), any())).thenReturn(resultMap);
- assertThat(delegate.multiget_slice(
+ assertThat(profilingClient.multiget_slice(
"getRows",
TableReference.createFromFullyQualifiedName("a.b"),
ImmutableList.of(byteBuffer),
- new SlicePredicate(),
+ slicePredicate,
ConsistencyLevel.QUORUM))
.containsExactlyInAnyOrderEntriesOf(resultMap);
@@ -105,7 +108,7 @@ public void handlesNullMultigetSliceResponseFromDelegate() throws TException {
"getRows",
TableReference.createFromFullyQualifiedName("a.b"),
ImmutableList.of(byteBuffer),
- new SlicePredicate(),
+ slicePredicate,
ConsistencyLevel.QUORUM);
}
diff --git a/atlasdb-commons/src/test/java/com/palantir/common/proxy/ReplaceIfExceptionMatchingProxyTest.java b/atlasdb-commons/src/test/java/com/palantir/common/proxy/ReplaceIfExceptionMatchingProxyTest.java
index a1b8cfd3b10..70e564cba4c 100644
--- a/atlasdb-commons/src/test/java/com/palantir/common/proxy/ReplaceIfExceptionMatchingProxyTest.java
+++ b/atlasdb-commons/src/test/java/com/palantir/common/proxy/ReplaceIfExceptionMatchingProxyTest.java
@@ -31,6 +31,8 @@
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+// Mock is used as a convenient supplier, alternatives are rather verbose
+@SuppressWarnings("DirectInvocationOnMock")
@RunWith(MockitoJUnitRunner.class)
public class ReplaceIfExceptionMatchingProxyTest {
@Mock
diff --git a/atlasdb-config/src/test/java/com/palantir/atlasdb/config/AtlasDbConfigTest.java b/atlasdb-config/src/test/java/com/palantir/atlasdb/config/AtlasDbConfigTest.java
index c3939bbb781..0d516bf4cd6 100644
--- a/atlasdb-config/src/test/java/com/palantir/atlasdb/config/AtlasDbConfigTest.java
+++ b/atlasdb-config/src/test/java/com/palantir/atlasdb/config/AtlasDbConfigTest.java
@@ -34,7 +34,6 @@ public class AtlasDbConfigTest {
private static final KeyValueServiceConfig KVS_CONFIG_WITHOUT_NAMESPACE = mock(KeyValueServiceConfig.class);
private static final KeyValueServiceConfig KVS_CONFIG_WITH_OTHER_NAMESPACE = mock(KeyValueServiceConfig.class);
private static final KeyValueServiceConfig KVS_CONFIG_WITH_NAMESPACE = mock(KeyValueServiceConfig.class);
- private static final KeyValueServiceConfig CASSANDRA_CONFIG_WITHOUT_NAMESPACE = mock(KeyValueServiceConfig.class);
private static final KeyValueServiceConfig CASSANDRA_CONFIG_WITH_NAMESPACE = mock(KeyValueServiceConfig.class);
private static final LeaderConfig LEADER_CONFIG = ImmutableLeaderConfig.builder()
.quorumSize(1)
@@ -72,13 +71,11 @@ public static void setUp() {
when(KVS_CONFIG_WITHOUT_NAMESPACE.namespace()).thenReturn(Optional.empty());
when(KVS_CONFIG_WITH_OTHER_NAMESPACE.namespace()).thenReturn(Optional.of(OTHER_CLIENT));
when(KVS_CONFIG_WITH_NAMESPACE.namespace()).thenReturn(Optional.of(TEST_NAMESPACE));
- when(CASSANDRA_CONFIG_WITHOUT_NAMESPACE.namespace()).thenReturn(Optional.empty());
when(CASSANDRA_CONFIG_WITH_NAMESPACE.namespace()).thenReturn(Optional.of(TEST_NAMESPACE));
when(KVS_CONFIG_WITHOUT_NAMESPACE.type()).thenReturn("type");
when(KVS_CONFIG_WITH_OTHER_NAMESPACE.type()).thenReturn("type");
when(KVS_CONFIG_WITH_NAMESPACE.type()).thenReturn("type");
- when(CASSANDRA_CONFIG_WITHOUT_NAMESPACE.type()).thenReturn(CASSANDRA);
when(CASSANDRA_CONFIG_WITH_NAMESPACE.type()).thenReturn(CASSANDRA);
}
diff --git a/atlasdb-config/src/test/java/com/palantir/atlasdb/config/ShouldRunBackgroundSweepSupplierTest.java b/atlasdb-config/src/test/java/com/palantir/atlasdb/config/ShouldRunBackgroundSweepSupplierTest.java
index c4dde7044c7..99709ed401e 100644
--- a/atlasdb-config/src/test/java/com/palantir/atlasdb/config/ShouldRunBackgroundSweepSupplierTest.java
+++ b/atlasdb-config/src/test/java/com/palantir/atlasdb/config/ShouldRunBackgroundSweepSupplierTest.java
@@ -61,7 +61,9 @@ public void disableBackgroundSweepIfNotSet() {
.isFalse();
}
- @SuppressWarnings("unchecked") // Mock assignment known to be safe
+ // Mock assignment known to be safe
+ // Direct mock invocation is safe here as we're using it as a convenient way to create a supplier
+ @SuppressWarnings({"unchecked", "DirectInvocationOnMock"})
@Test
public void liveReload() {
Supplier runtimeConfigSupplier = mock(Supplier.class);
diff --git a/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/sweep/metrics/SweepMetricsAssert.java b/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/sweep/metrics/SweepMetricsAssert.java
index 7b0355cc3a6..b2ae43f9984 100644
--- a/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/sweep/metrics/SweepMetricsAssert.java
+++ b/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/sweep/metrics/SweepMetricsAssert.java
@@ -260,7 +260,7 @@ private Gauge getGauge(Class metricClass, String name, Map) metrics.getTaggedRegistry().getMetrics().get(metricName);
}
- private Gauge getGauge(String metricNamespace, String name, Map tag) {
+ private Gauge getGauge(String metricNamespace, String name, Map tag) {
MetricName metricName = MetricName.builder()
.safeName(metricNamespace + "." + name)
.safeTags(tag)
diff --git a/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/transaction/impl/TransactionConflictDetectionManagerTest.java b/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/transaction/impl/TransactionConflictDetectionManagerTest.java
index a4cfe57ae5d..073a0710a8d 100644
--- a/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/transaction/impl/TransactionConflictDetectionManagerTest.java
+++ b/atlasdb-impl-shared/src/test/java/com/palantir/atlasdb/transaction/impl/TransactionConflictDetectionManagerTest.java
@@ -46,6 +46,7 @@ public final class TransactionConflictDetectionManagerTest {
private TransactionConflictDetectionManager conflictDetectionManager;
@Before
+ @SuppressWarnings("DirectInvocationOnMock") // Safe usage which is hard to replicate otherwise
public void before() {
conflictDetectionManager = new TransactionConflictDetectionManager(new ConflictDetectionManager(delegate) {
@Override
diff --git a/atlasdb-perf/src/test/java/com/palantir/atlasdb/performance/backend/KeyValueServiceInstrumentationTest.java b/atlasdb-perf/src/test/java/com/palantir/atlasdb/performance/backend/KeyValueServiceInstrumentationTest.java
index 37b590cae05..979fd25ffb6 100644
--- a/atlasdb-perf/src/test/java/com/palantir/atlasdb/performance/backend/KeyValueServiceInstrumentationTest.java
+++ b/atlasdb-perf/src/test/java/com/palantir/atlasdb/performance/backend/KeyValueServiceInstrumentationTest.java
@@ -18,8 +18,11 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import com.palantir.atlasdb.spi.KeyValueServiceConfig;
+import com.palantir.atlasdb.spi.KeyValueServiceRuntimeConfig;
+import java.net.InetSocketAddress;
+import java.util.Optional;
import org.junit.Test;
-import org.mockito.Mockito;
public class KeyValueServiceInstrumentationTest {
@@ -47,18 +50,40 @@ public void forDatabaseThrowsForInvalidClassName() {
@Test
public void canAddNewBackendType() {
- KeyValueServiceInstrumentation mockKeyValueServiceInstrumentation =
- Mockito.mock(KeyValueServiceInstrumentation.class);
- Mockito.when(mockKeyValueServiceInstrumentation.toString()).thenReturn("MOCK2");
- Mockito.when(mockKeyValueServiceInstrumentation.getClassName()).thenReturn("mock_classname");
+ DummyKeyValueServiceInstrumentation dummyKeyValueServiceInstrumentation =
+ new DummyKeyValueServiceInstrumentation(5, "foo");
+ KeyValueServiceInstrumentation.addNewBackendType(dummyKeyValueServiceInstrumentation);
+ assertThat(KeyValueServiceInstrumentation.forDatabase(DummyKeyValueServiceInstrumentation.class.getName()))
+ .isExactlyInstanceOf(DummyKeyValueServiceInstrumentation.class);
+ assertThat(KeyValueServiceInstrumentation.forDatabase(dummyKeyValueServiceInstrumentation.toString()))
+ .isExactlyInstanceOf(DummyKeyValueServiceInstrumentation.class);
+ KeyValueServiceInstrumentation.removeBackendType(dummyKeyValueServiceInstrumentation);
+ }
- KeyValueServiceInstrumentation.addNewBackendType(mockKeyValueServiceInstrumentation);
+ private static class DummyKeyValueServiceInstrumentation extends KeyValueServiceInstrumentation {
- assertThat(KeyValueServiceInstrumentation.forDatabase(mockKeyValueServiceInstrumentation.getClassName()))
- .isExactlyInstanceOf(mockKeyValueServiceInstrumentation.getClass());
- assertThat(KeyValueServiceInstrumentation.forDatabase(mockKeyValueServiceInstrumentation.toString()))
- .isExactlyInstanceOf(mockKeyValueServiceInstrumentation.getClass());
+ DummyKeyValueServiceInstrumentation(int kvsPort, String dockerComposeFileName) {
+ super(kvsPort, dockerComposeFileName);
+ }
- KeyValueServiceInstrumentation.removeBackendType(mockKeyValueServiceInstrumentation);
+ @Override
+ public KeyValueServiceConfig getKeyValueServiceConfig(InetSocketAddress addr) {
+ return null;
+ }
+
+ @Override
+ public Optional getKeyValueServiceRuntimeConfig(InetSocketAddress addr) {
+ return Optional.empty();
+ }
+
+ @Override
+ public boolean canConnect(InetSocketAddress addr) {
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "dummy";
+ }
}
}
diff --git a/build.gradle b/build.gradle
index d4b75725236..0f249fc5815 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ buildscript {
dependencies {
classpath 'com.netflix.nebula:gradle-info-plugin:11.4.1'
classpath 'com.netflix.nebula:nebula-publishing-plugin:18.4.0'
- classpath 'com.palantir.baseline:gradle-baseline-java:4.153.0'
+ classpath 'com.palantir.baseline:gradle-baseline-java:4.173.0'
classpath 'com.palantir.gradle.conjure:gradle-conjure:5.30.0'
classpath 'com.palantir.gradle.consistentversions:gradle-consistent-versions:2.11.0'
classpath 'com.palantir.gradle.docker:gradle-docker:0.32.0'
diff --git a/flake-rule/src/test/java/com/palantir/flake/example/BeforeAndAfterTest.java b/flake-rule/src/test/java/com/palantir/flake/example/BeforeAndAfterTest.java
index dd62b746347..b27c117f622 100644
--- a/flake-rule/src/test/java/com/palantir/flake/example/BeforeAndAfterTest.java
+++ b/flake-rule/src/test/java/com/palantir/flake/example/BeforeAndAfterTest.java
@@ -16,8 +16,8 @@
package com.palantir.flake.example;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -36,10 +36,10 @@ public class BeforeAndAfterTest {
private static final AtomicInteger attemptCount = new AtomicInteger();
private static final int SEVENTY_SEVEN = 77;
- private static Runnable beforeRunnable = mock(Runnable.class);
- private static Runnable afterRunnable = mock(Runnable.class);
- private static Runnable beforeClassRunnable = mock(Runnable.class);
- private static Runnable afterClassRunnable = mock(Runnable.class);
+ private static Runnable beforeRunnable = spy(new NoOpRunnable());
+ private static Runnable afterRunnable = spy(new NoOpRunnable());
+ private static Runnable beforeClassRunnable = spy(new NoOpRunnable());
+ private static Runnable afterClassRunnable = spy(new NoOpRunnable());
@Rule
public final TestRule flakeRetryingRule = new FlakeRetryingRule();
@@ -76,4 +76,9 @@ public void runsSetUpBeforeEachIteration() {
assertThat(attemptNumber).isEqualTo(SEVENTY_SEVEN);
}
+
+ public static class NoOpRunnable implements Runnable {
+ @Override
+ public void run() {}
+ }
}