This is an automated email from the ASF dual-hosted git repository.

robbie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 50a1824c02 ARTEMIS-4349: Replace Guava cache with Caffeine
50a1824c02 is described below

commit 50a1824c0298bae1407cfe328519a7450b399f69
Author: Alexey Markevich <[email protected]>
AuthorDate: Tue Aug 29 11:31:49 2023 +0100

    ARTEMIS-4349: Replace Guava cache with Caffeine
    
    Combination of changes from Alexey Markevich with updates from Robbie 
Gemmell. See PRs for detail.
    
    This closes #4584.
    This closes #4540.
---
 .../commands/tools/xml/XmlDataExporterUtil.java    |   5 +-
 artemis-features/src/main/resources/features.xml   |   3 +-
 .../artemis/core/protocol/mqtt/MQTTUtil.java       |   4 +-
 artemis-quorum-ri/pom.xml                          |  22 ++++
 artemis-server/pom.xml                             |  16 +--
 .../core/security/impl/SecurityStoreImpl.java      |  26 +++--
 .../core/server/routing/caches/LocalCache.java     |  18 +--
 pom.xml                                            |   7 ++
 .../integration/plugin/MethodCalledVerifier.java   | 128 ++++++++++-----------
 .../tests/smoke/jmx2/JmxServerControlTest.java     |   5 +-
 tests/unit-tests/pom.xml                           |   5 +
 11 files changed, 133 insertions(+), 106 deletions(-)

diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporterUtil.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporterUtil.java
index 51fd3c4842..e918a88293 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporterUtil.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporterUtil.java
@@ -16,7 +16,8 @@
  */
 package org.apache.activemq.artemis.cli.commands.tools.xml;
 
-import com.google.common.base.Preconditions;
+import java.util.Objects;
+
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
 import org.apache.activemq.artemis.api.core.Message;
 import org.apache.activemq.artemis.api.core.SimpleString;
@@ -89,7 +90,7 @@ public class XmlDataExporterUtil {
     * Base64 encode a ServerMessage body into the proper XML format
     */
    public static String encodeMessageBodyBase64(final Message message) throws 
Exception {
-      Preconditions.checkNotNull(message, "ServerMessage can not be null");
+      Objects.requireNonNull(message, "ServerMessage can not be null");
 
       ActiveMQBuffer byteBuffer = message.toCore().getReadOnlyBodyBuffer();
       byte[] buffer = new byte[byteBuffer.writerIndex()];
diff --git a/artemis-features/src/main/resources/features.xml 
b/artemis-features/src/main/resources/features.xml
index 5ae4b60546..5c0004f261 100644
--- a/artemis-features/src/main/resources/features.xml
+++ b/artemis-features/src/main/resources/features.xml
@@ -73,8 +73,7 @@
                <bundle 
dependency="true">mvn:org.apache.commons/commons-lang3/${commons.lang.version}</bundle>
                <bundle 
dependency="true">mvn:org.jctools/jctools-core/${jctools.version}</bundle>
                <bundle 
dependency="true">mvn:org.hdrhistogram/HdrHistogram/${hdrhistogram.version}</bundle>
-               <bundle 
dependency="true">mvn:com.google.guava/failureaccess/1.0.1</bundle>
-               <bundle 
dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
+               <bundle 
dependency="true">mvn:com.github.ben-manes.caffeine/caffeine/${caffeine.version}</bundle>
                <bundle 
dependency="true">mvn:org.apache.commons/commons-dbcp2/${commons.dbcp2.version}</bundle>
                <bundle 
dependency="true">mvn:org.apache.commons/commons-pool2/${commons.pool2.version}</bundle>
                <!-- Micrometer can't be included until it supports OSGi. It is 
currently an "optional" Maven dependency. -->
diff --git 
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java
 
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java
index 5ac19a0f0a..1f77de5c1b 100644
--- 
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java
+++ 
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java
@@ -20,7 +20,6 @@ import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
-import com.google.common.base.CaseFormat;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufUtil;
 import io.netty.handler.codec.EncoderException;
@@ -49,6 +48,7 @@ import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.WildcardConfiguration;
 import org.apache.activemq.artemis.core.message.impl.CoreMessage;
 import org.apache.activemq.artemis.reader.MessageUtil;
+import org.apache.commons.text.CaseUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import java.lang.invoke.MethodHandles;
@@ -382,7 +382,7 @@ public class MQTTUtil {
    }
 
    private static String formatCase(String string) {
-      return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, string);
+      return CaseUtils.toCamelCase(string, false, '_');
    }
 
    private static String getPayloadForLogging(MqttPublishMessage message, int 
maxPayloadLogSize) {
diff --git a/artemis-quorum-ri/pom.xml b/artemis-quorum-ri/pom.xml
index 9b4126065b..1641294312 100644
--- a/artemis-quorum-ri/pom.xml
+++ b/artemis-quorum-ri/pom.xml
@@ -43,6 +43,28 @@
       <dependency>
          <groupId>org.apache.curator</groupId>
          <artifactId>curator-client</artifactId>
+         <exclusions>
+            <exclusion>
+               <groupId>com.google.guava</groupId>
+               <artifactId>listenablefuture</artifactId>
+            </exclusion>
+            <exclusion>
+               <groupId>com.google.code.findbugs</groupId>
+               <artifactId>jsr305</artifactId>
+            </exclusion>
+            <exclusion>
+               <groupId>org.checkerframework</groupId>
+               <artifactId>checker-qual</artifactId>
+            </exclusion>
+            <exclusion>
+               <groupId>com.google.errorprone</groupId>
+               <artifactId>error_prone_annotations</artifactId>
+            </exclusion>
+            <exclusion>
+               <groupId>com.google.j2objc</groupId>
+               <artifactId>j2objc-annotations</artifactId>
+            </exclusion>
+         </exclusions>
       </dependency>
       <dependency>
          <groupId>org.apache.zookeeper</groupId>
diff --git a/artemis-server/pom.xml b/artemis-server/pom.xml
index 0c9bdd88c8..1520a66b96 100644
--- a/artemis-server/pom.xml
+++ b/artemis-server/pom.xml
@@ -51,17 +51,9 @@
          <scope>test</scope>
       </dependency>
       <dependency>
-         <groupId>com.google.guava</groupId>
-         <artifactId>guava</artifactId>
+         <groupId>com.github.ben-manes.caffeine</groupId>
+         <artifactId>caffeine</artifactId>
          <exclusions>
-            <exclusion>
-               <groupId>com.google.guava</groupId>
-               <artifactId>listenablefuture</artifactId>
-            </exclusion>
-            <exclusion>
-               <groupId>com.google.code.findbugs</groupId>
-               <artifactId>jsr305</artifactId>
-            </exclusion>
             <exclusion>
                <groupId>org.checkerframework</groupId>
                <artifactId>checker-qual</artifactId>
@@ -70,10 +62,6 @@
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
             </exclusion>
-            <exclusion>
-               <groupId>com.google.j2objc</groupId>
-               <artifactId>j2objc-annotations</artifactId>
-            </exclusion>
          </exclusions>
       </dependency>
       <dependency>
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/security/impl/SecurityStoreImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/security/impl/SecurityStoreImpl.java
index 7e3e627100..201e521371 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/security/impl/SecurityStoreImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/security/impl/SecurityStoreImpl.java
@@ -22,8 +22,6 @@ import java.security.AccessController;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
 import org.apache.activemq.artemis.api.core.Pair;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.management.CoreNotificationType;
@@ -54,6 +52,10 @@ import 
org.apache.activemq.artemis.utils.collections.ConcurrentHashSet;
 import org.apache.activemq.artemis.utils.collections.TypedProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import com.github.benmanes.caffeine.cache.Cache;
+import com.github.benmanes.caffeine.cache.Caffeine;
+
 import java.lang.invoke.MethodHandles;
 
 /**
@@ -101,18 +103,18 @@ public class SecurityStoreImpl implements SecurityStore, 
HierarchicalRepositoryC
       if (authenticationCacheSize == 0) {
          authenticationCache = null;
       } else {
-         authenticationCache = CacheBuilder.newBuilder()
-                                           
.maximumSize(authenticationCacheSize)
-                                           
.expireAfterWrite(invalidationInterval, TimeUnit.MILLISECONDS)
-                                           .build();
+         authenticationCache = Caffeine.newBuilder()
+                                       .maximumSize(authenticationCacheSize)
+                                       .expireAfterWrite(invalidationInterval, 
TimeUnit.MILLISECONDS)
+                                       .build();
       }
       if (authorizationCacheSize == 0) {
          authorizationCache = null;
       } else {
-         authorizationCache = CacheBuilder.newBuilder()
-                                          .maximumSize(authorizationCacheSize)
-                                          
.expireAfterWrite(invalidationInterval, TimeUnit.MILLISECONDS)
-                                          .build();
+         authorizationCache = Caffeine.newBuilder()
+                                      .maximumSize(authorizationCacheSize)
+                                      .expireAfterWrite(invalidationInterval, 
TimeUnit.MILLISECONDS)
+                                      .build();
       }
       this.securityRepository.registerListener(this);
    }
@@ -481,7 +483,7 @@ public class SecurityStoreImpl implements SecurityStore, 
HierarchicalRepositoryC
       if (authenticationCache == null) {
          return 0;
       } else {
-         return authenticationCache.size();
+         return authenticationCache.estimatedSize();
       }
    }
 
@@ -489,7 +491,7 @@ public class SecurityStoreImpl implements SecurityStore, 
HierarchicalRepositoryC
       if (authorizationCache == null) {
          return 0;
       } else {
-         return authorizationCache.size();
+         return authorizationCache.estimatedSize();
       }
    }
 
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/caches/LocalCache.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/caches/LocalCache.java
index 1ecfaa36fb..7c465be49d 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/caches/LocalCache.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/caches/LocalCache.java
@@ -16,13 +16,15 @@
  */
 package org.apache.activemq.artemis.core.server.routing.caches;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.RemovalListener;
-import com.google.common.cache.RemovalNotification;
 import org.apache.activemq.artemis.core.persistence.StorageManager;
 import 
org.apache.activemq.artemis.core.persistence.config.PersistedKeyValuePair;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.RemovalCause;
+import com.github.benmanes.caffeine.cache.RemovalListener;
+
 import java.lang.invoke.MethodHandles;
 
 import java.util.Map;
@@ -37,7 +39,7 @@ public class LocalCache implements Cache, 
RemovalListener<String, String> {
    private boolean persisted;
    private int timeout;
    private StorageManager storageManager;
-   private com.google.common.cache.Cache<String, String> cache;
+   private com.github.benmanes.caffeine.cache.Cache<String, String> cache;
    private Map<String, PersistedKeyValuePair> persistedCacheEntries;
 
    private volatile boolean running;
@@ -61,9 +63,9 @@ public class LocalCache implements Cache, 
RemovalListener<String, String> {
       this.storageManager = storageManager;
 
       if (timeout == 0) {
-         cache = CacheBuilder.newBuilder().build();
+         cache = Caffeine.newBuilder().executor(Runnable::run).build();
       } else {
-         cache = 
CacheBuilder.newBuilder().removalListener(this).expireAfterAccess(timeout, 
TimeUnit.MILLISECONDS).build();
+         cache = 
Caffeine.newBuilder().removalListener(this).expireAfterAccess(timeout, 
TimeUnit.MILLISECONDS).executor(Runnable::run).build();
       }
    }
 
@@ -123,9 +125,9 @@ public class LocalCache implements Cache, 
RemovalListener<String, String> {
    }
 
    @Override
-   public void onRemoval(RemovalNotification<String, String> notification) {
+   public void onRemoval(String key, String value, RemovalCause cause) {
       if (running && persisted) {
-         PersistedKeyValuePair persistedKeyValuePair = 
persistedCacheEntries.remove(notification.getKey());
+         PersistedKeyValuePair persistedKeyValuePair = 
persistedCacheEntries.remove(key);
 
          if (persistedKeyValuePair != null) {
             try {
diff --git a/pom.xml b/pom.xml
index eb322431e0..ced02b2d56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,7 @@
       <commons.io.version>2.10.0</commons.io.version>
       <commons.codec.version>1.15</commons.codec.version>
       <fuse.mqtt.client.version>1.16</fuse.mqtt.client.version>
+      <caffeine.version>3.1.6</caffeine.version>
       <guava.version>32.0.1-jre</guava.version>
       <hawtio.version>2.15.0</hawtio.version>
       <jsr305.version>3.0.2</jsr305.version>
@@ -943,6 +944,12 @@
             <version>${guava.version}</version>
             <!-- License: Apache 2.0 -->
          </dependency>
+         <dependency>
+            <groupId>com.github.ben-manes.caffeine</groupId>
+            <artifactId>caffeine</artifactId>
+            <version>${caffeine.version}</version>
+            <!-- License: Apache 2.0 -->
+         </dependency>
          <dependency>
             <groupId>com.google.code.findbugs</groupId>
             <artifactId>jsr305</artifactId>
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/plugin/MethodCalledVerifier.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/plugin/MethodCalledVerifier.java
index 449d0ff3ea..ac376cf37d 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/plugin/MethodCalledVerifier.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/plugin/MethodCalledVerifier.java
@@ -19,10 +19,10 @@ package 
org.apache.activemq.artemis.tests.integration.plugin;
 import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import com.google.common.base.Preconditions;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Message;
 import org.apache.activemq.artemis.api.core.RoutingType;
@@ -122,13 +122,13 @@ public class MethodCalledVerifier implements 
ActiveMQServerPlugin {
 
    @Override
    public void afterCreateConnection(RemotingConnection connection) {
-      Preconditions.checkNotNull(connection);
+      Objects.requireNonNull(connection);
       methodCalled(AFTER_CREATE_CONNECTION);
    }
 
    @Override
    public void afterDestroyConnection(RemotingConnection connection) {
-      Preconditions.checkNotNull(connection);
+      Objects.requireNonNull(connection);
       methodCalled(AFTER_DESTROY_CONNECTION);
    }
 
@@ -137,172 +137,172 @@ public class MethodCalledVerifier implements 
ActiveMQServerPlugin {
                                    boolean autoCommitSends, boolean 
autoCommitAcks, boolean preAcknowledge, boolean xa,
                                    String defaultAddress, SessionCallback 
callback, boolean autoCreateQueues,
                                    OperationContext context, Map<SimpleString, 
RoutingType> prefixes) {
-      Preconditions.checkNotNull(connection);
+      Objects.requireNonNull(connection);
       methodCalled(BEFORE_CREATE_SESSION);
    }
 
    @Override
    public void afterCreateSession(ServerSession session) {
-      Preconditions.checkNotNull(session);
+      Objects.requireNonNull(session);
       methodCalled(AFTER_CREATE_SESSION);
    }
 
    @Override
    public void beforeCloseSession(ServerSession session, boolean failed) {
-      Preconditions.checkNotNull(session);
+      Objects.requireNonNull(session);
       methodCalled(BEFORE_CLOSE_SESSION);
    }
 
    @Override
    public void afterCloseSession(ServerSession session, boolean failed) {
-      Preconditions.checkNotNull(session);
+      Objects.requireNonNull(session);
       methodCalled(AFTER_CLOSE_SESSION);
    }
 
    @Override
    public void beforeSessionMetadataAdded(ServerSession session, String key, 
String data) {
-      Preconditions.checkNotNull(key);
+      Objects.requireNonNull(key);
       methodCalled(BEFORE_SESSION_METADATA_ADDED);
    }
 
    @Override
    public void afterSessionMetadataAdded(ServerSession session, String key, 
String data) {
-      Preconditions.checkNotNull(key);
+      Objects.requireNonNull(key);
       methodCalled(AFTER_SESSION_METADATA_ADDED);
    }
 
    @Override
    public void beforeCreateConsumer(long consumerID, QueueBinding 
queueBinding, SimpleString filterString,
                                     boolean browseOnly, boolean 
supportLargeMessage) {
-      Preconditions.checkNotNull(queueBinding);
+      Objects.requireNonNull(queueBinding);
       methodCalled(BEFORE_CREATE_CONSUMER);
    }
 
    @Override
    public void afterCreateConsumer(ServerConsumer consumer) {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(AFTER_CREATE_CONSUMER);
    }
 
    @Override
    public void beforeCloseConsumer(ServerConsumer consumer, boolean failed) {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(BEFORE_CLOSE_CONSUMER);
    }
 
    @Override
    public void afterCloseConsumer(ServerConsumer consumer, boolean failed) {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(AFTER_CLOSE_CONSUMER);
    }
 
    @Override
    public void beforeAddAddress(AddressInfo addressInfo, boolean reload) 
throws ActiveMQException {
-      Preconditions.checkNotNull(addressInfo);
+      Objects.requireNonNull(addressInfo);
       methodCalled(BEFORE_ADD_ADDRESS);
    }
 
    @Override
    public void afterAddAddress(AddressInfo addressInfo, boolean reload) throws 
ActiveMQException {
-      Preconditions.checkNotNull(addressInfo);
+      Objects.requireNonNull(addressInfo);
       methodCalled(AFTER_ADD_ADDRESS);
    }
 
    @Override
    public void beforeUpdateAddress(SimpleString address, EnumSet<RoutingType> 
routingTypes)
          throws ActiveMQException {
-      Preconditions.checkNotNull(address);
-      Preconditions.checkNotNull(routingTypes);
+      Objects.requireNonNull(address);
+      Objects.requireNonNull(routingTypes);
       methodCalled(BEFORE_UPDATE_ADDRESS);
    }
 
    @Override
    public void afterUpdateAddress(AddressInfo addressInfo) throws 
ActiveMQException {
-      Preconditions.checkNotNull(addressInfo);
+      Objects.requireNonNull(addressInfo);
       methodCalled(AFTER_UPDATE_ADDRESS);
    }
 
    @Override
    public void beforeRemoveAddress(SimpleString address) throws 
ActiveMQException {
-      Preconditions.checkNotNull(address);
+      Objects.requireNonNull(address);
       methodCalled(BEFORE_REMOVE_ADDRESS);
    }
 
    @Override
    public void afterRemoveAddress(SimpleString address, AddressInfo 
addressInfo) throws ActiveMQException {
-      Preconditions.checkNotNull(address);
-      Preconditions.checkNotNull(addressInfo);
+      Objects.requireNonNull(address);
+      Objects.requireNonNull(addressInfo);
       methodCalled(AFTER_REMOVE_ADDRESS);
    }
 
    @Override
    public void beforeCreateQueue(QueueConfig queueConfig) {
-      Preconditions.checkNotNull(queueConfig);
+      Objects.requireNonNull(queueConfig);
       methodCalled(BEFORE_CREATE_QUEUE);
    }
 
    @Override
    public void afterCreateQueue(org.apache.activemq.artemis.core.server.Queue 
queue) {
-      Preconditions.checkNotNull(queue);
+      Objects.requireNonNull(queue);
       methodCalled(AFTER_CREATE_QUEUE);
    }
 
    @Override
    public void beforeDestroyQueue(Queue queue, SecurityAuth session, boolean 
checkConsumerCount,
          boolean removeConsumers, boolean autoDeleteAddress) {
-      Preconditions.checkNotNull(queue);
+      Objects.requireNonNull(queue);
       methodCalled(BEFORE_DESTROY_QUEUE);
    }
 
    @Override
    public void afterDestroyQueue(Queue queue, SimpleString address, 
SecurityAuth session, boolean checkConsumerCount,
          boolean removeConsumers, boolean autoDeleteAddress) {
-      Preconditions.checkNotNull(queue);
+      Objects.requireNonNull(queue);
       methodCalled(AFTER_DESTROY_QUEUE);
    }
 
    @Override
    public void beforeAddBinding(Binding binding) throws ActiveMQException {
-      Preconditions.checkNotNull(binding);
+      Objects.requireNonNull(binding);
       methodCalled(BEFORE_ADD_BINDING);
    }
 
    @Override
    public void afterAddBinding(Binding binding) throws ActiveMQException {
-      Preconditions.checkNotNull(binding);
+      Objects.requireNonNull(binding);
       methodCalled(AFTER_ADD_BINDING);
    }
 
    @Override
    public void beforeRemoveBinding(SimpleString uniqueName, Transaction tx, 
boolean deleteData)
          throws ActiveMQException {
-      Preconditions.checkNotNull(uniqueName);
+      Objects.requireNonNull(uniqueName);
       methodCalled(BEFORE_REMOVE_BINDING);
    }
 
    @Override
    public void afterRemoveBinding(Binding binding, Transaction tx, boolean 
deleteData) throws ActiveMQException {
-      Preconditions.checkNotNull(binding);
+      Objects.requireNonNull(binding);
       methodCalled(AFTER_REMOVE_BINDING);
    }
 
    @Override
    public void messageExpired(MessageReference message, SimpleString 
messageExpiryAddress, ServerConsumer consumer) {
-      Preconditions.checkNotNull(message);
+      Objects.requireNonNull(message);
       methodCalled(MESSAGE_EXPIRED);
    }
 
    @Override
    public void messageAcknowledged(MessageReference ref, AckReason reason, 
ServerConsumer consumer) {
-      Preconditions.checkNotNull(ref);
-      Preconditions.checkNotNull(reason);
+      Objects.requireNonNull(ref);
+      Objects.requireNonNull(reason);
       methodCalled(MESSAGE_ACKED);
    }
 
    @Override
    public void beforeSend(ServerSession session, Transaction tx, Message 
message, boolean direct,
          boolean noAutoCreateQueue) {
-      Preconditions.checkNotNull(message);
+      Objects.requireNonNull(message);
       methodCalled(BEFORE_SEND);
    }
 
@@ -310,148 +310,148 @@ public class MethodCalledVerifier implements 
ActiveMQServerPlugin {
    public void afterSend(ServerSession session, Transaction tx, Message 
message, boolean direct,
          boolean noAutoCreateQueue,
                          RoutingStatus result) {
-      Preconditions.checkNotNull(message);
-      Preconditions.checkNotNull(result);
+      Objects.requireNonNull(message);
+      Objects.requireNonNull(result);
       methodCalled(AFTER_SEND);
    }
 
    @Override
    public void onSendException(ServerSession session, Transaction tx, Message 
message, boolean direct,
                                boolean noAutoCreateQueue, Exception e) {
-      Preconditions.checkNotNull(message);
-      Preconditions.checkNotNull(e);
+      Objects.requireNonNull(message);
+      Objects.requireNonNull(e);
       methodCalled(ON_SEND_EXCEPTION);
    }
 
    @Override
    public void beforeMessageRoute(Message message, RoutingContext context, 
boolean direct, boolean rejectDuplicates) {
-      Preconditions.checkNotNull(message);
-      Preconditions.checkNotNull(context);
+      Objects.requireNonNull(message);
+      Objects.requireNonNull(context);
       methodCalled(BEFORE_MESSAGE_ROUTE);
    }
 
    @Override
    public void afterMessageRoute(Message message, RoutingContext context, 
boolean direct, boolean rejectDuplicates,
                                  RoutingStatus result) {
-      Preconditions.checkNotNull(message);
-      Preconditions.checkNotNull(context);
-      Preconditions.checkNotNull(result);
+      Objects.requireNonNull(message);
+      Objects.requireNonNull(context);
+      Objects.requireNonNull(result);
       methodCalled(AFTER_MESSAGE_ROUTE);
    }
 
    @Override
    public void onMessageRouteException(Message message, RoutingContext 
context, boolean direct, boolean rejectDuplicates,
                                        Exception e) {
-      Preconditions.checkNotNull(message);
-      Preconditions.checkNotNull(context);
-      Preconditions.checkNotNull(e);
+      Objects.requireNonNull(message);
+      Objects.requireNonNull(context);
+      Objects.requireNonNull(e);
       methodCalled(ON_MESSAGE_ROUTE_EXCEPTION);
    }
 
    @Override
    public void beforeDeliver(ServerConsumer consumer, MessageReference 
reference) {
-      Preconditions.checkNotNull(reference);
+      Objects.requireNonNull(reference);
       methodCalled(BEFORE_DELIVER);
    }
 
    @Override
    public void afterDeliver(ServerConsumer consumer, MessageReference 
reference) {
-      Preconditions.checkNotNull(reference);
+      Objects.requireNonNull(reference);
       methodCalled(AFTER_DELIVER);
    }
 
    @Override
    public void beforeDeployBridge(BridgeConfiguration config) {
-      Preconditions.checkNotNull(config);
+      Objects.requireNonNull(config);
       methodCalled(BEFORE_DEPLOY_BRIDGE);
    }
 
    @Override
    public void afterDeployBridge(Bridge bridge) {
-      Preconditions.checkNotNull(bridge);
+      Objects.requireNonNull(bridge);
       methodCalled(AFTER_DEPLOY_BRIDGE);
    }
 
    @Override
    public void beforeDeliverBridge(Bridge bridge, MessageReference ref) throws 
ActiveMQException {
-      Preconditions.checkNotNull(bridge);
+      Objects.requireNonNull(bridge);
       methodCalled(BEFORE_DELIVER_BRIDGE);
    }
 
    @Override
    public void afterDeliverBridge(Bridge bridge, MessageReference ref, 
HandleStatus status) throws ActiveMQException {
-      Preconditions.checkNotNull(bridge);
+      Objects.requireNonNull(bridge);
       methodCalled(AFTER_DELIVER_BRIDGE);
    }
 
    @Override
    public void afterAcknowledgeBridge(Bridge bridge, MessageReference ref) 
throws ActiveMQException {
-      Preconditions.checkNotNull(bridge);
+      Objects.requireNonNull(bridge);
       methodCalled(AFTER_ACKNOWLEDGE_BRIDGE);
    }
 
    @Override
    public void federationStreamStarted(FederationStream stream) throws 
ActiveMQException {
-      Preconditions.checkNotNull(stream);
+      Objects.requireNonNull(stream);
       methodCalled(FEDERATION_STREAM_STARTED);
    }
 
    @Override
    public void federationStreamStopped(FederationStream stream) throws 
ActiveMQException {
-      Preconditions.checkNotNull(stream);
+      Objects.requireNonNull(stream);
       methodCalled(FEDERATION_STREAM_STOPPED);
    }
 
    @Override
    public void beforeCreateFederatedQueueConsumer(FederatedConsumerKey key) 
throws ActiveMQException {
-      Preconditions.checkNotNull(key);
+      Objects.requireNonNull(key);
       methodCalled(BEFORE_CREATE_FEDERATED_QUEUE_CONSUMER);
    }
 
    @Override
    public void afterCreateFederatedQueueConsumer(FederatedQueueConsumer 
consumer) throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(AFTER_CREATE_FEDERATED_QUEUE_CONSUMER);
    }
 
    @Override
    public void beforeCloseFederatedQueueConsumer(FederatedQueueConsumer 
consumer) throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(BEFORE_CLOSE_FEDERATED_QUEUE_CONSUMER);
    }
 
    @Override
    public void afterCloseFederatedQueueConsumer(FederatedQueueConsumer 
consumer) throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(AFTER_CLOSE_FEDERATED_QUEUE_CONSUMER);
    }
 
    @Override
    public void 
beforeFederatedQueueConsumerMessageHandled(FederatedQueueConsumer consumer,
                                                           Message message) 
throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
-      Preconditions.checkNotNull(message);
+      Objects.requireNonNull(consumer);
+      Objects.requireNonNull(message);
       methodCalled(BEFORE_FEDERATED_QUEUE_CONSUMER_MESSAGE_HANDLED);
    }
 
    @Override
    public void 
afterFederatedQueueConsumerMessageHandled(FederatedQueueConsumer consumer,
                                                          Message message) 
throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
-      Preconditions.checkNotNull(message);
+      Objects.requireNonNull(consumer);
+      Objects.requireNonNull(message);
       methodCalled(AFTER_FEDERATED_QUEUE_CONSUMER_MESSAGE_HANDLED);
    }
 
    @Override
    public boolean federatedAddressConditionalCreateConsumer(Queue queue) 
throws ActiveMQException {
-      Preconditions.checkNotNull(queue);
+      Objects.requireNonNull(queue);
       methodCalled(FEDERATED_ADDRESS_CONDITIONAL_CREATE_CONSUMER);
       return true;
    }
 
    @Override
    public boolean federatedQueueConditionalCreateConsumer(ServerConsumer 
consumer) throws ActiveMQException {
-      Preconditions.checkNotNull(consumer);
+      Objects.requireNonNull(consumer);
       methodCalled(FEDERATED_QUEUE_CONDITIONAL_CREATE_CONSUMER);
       return true;
    }
diff --git 
a/tests/smoke-tests/src/test/java/org/apache/activemq/artemis/tests/smoke/jmx2/JmxServerControlTest.java
 
b/tests/smoke-tests/src/test/java/org/apache/activemq/artemis/tests/smoke/jmx2/JmxServerControlTest.java
index 1e1cf5eed2..162cecbec8 100644
--- 
a/tests/smoke-tests/src/test/java/org/apache/activemq/artemis/tests/smoke/jmx2/JmxServerControlTest.java
+++ 
b/tests/smoke-tests/src/test/java/org/apache/activemq/artemis/tests/smoke/jmx2/JmxServerControlTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.activemq.artemis.tests.smoke.jmx2;
 
+import java.util.Map;
+
 import javax.jms.MessageConsumer;
 import javax.jms.Session;
 import org.apache.activemq.artemis.json.JsonArray;
@@ -26,7 +28,6 @@ import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
-import com.google.common.collect.ImmutableMap;
 import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
 import org.apache.activemq.artemis.api.core.JsonUtil;
 import org.apache.activemq.artemis.api.core.QueueConfiguration;
@@ -91,7 +92,7 @@ public class JmxServerControlTest extends SmokeTestBase {
             MessageConsumer consumer = 
cf.createConnection().createSession(true, 
Session.SESSION_TRANSACTED).createConsumer(new ActiveMQQueue(queueName));
 
             try {
-               String options = 
JsonUtil.toJsonObject(ImmutableMap.of("field","queue", "operation", "EQUALS", 
"value", queueName)).toString();
+               String options = JsonUtil.toJsonObject(Map.of("field","queue", 
"operation", "EQUALS", "value", queueName)).toString();
                String consumersAsJsonString = 
activeMQServerControl.listConsumers(options, 1, 10);
 
                JsonObject consumersAsJsonObject = 
JsonUtil.readJsonObject(consumersAsJsonString);
diff --git a/tests/unit-tests/pom.xml b/tests/unit-tests/pom.xml
index 579a46cf59..450f850060 100644
--- a/tests/unit-tests/pom.xml
+++ b/tests/unit-tests/pom.xml
@@ -184,6 +184,11 @@
         <artifactId>mockito-core</artifactId>
         <scope>test</scope>
       </dependency>
+      <dependency>
+         <groupId>com.google.guava</groupId>
+         <artifactId>guava</artifactId>
+         <scope>test</scope>
+      </dependency>
 
       <!-- The johnzon-core and json-api contents are repackaged in -commons,
      However maven can still need them during tests, which run against

Reply via email to