diff --git a/activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/kahadb/exporter/artemis/OpenWireMessageTypeConverter.java b/activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/kahadb/exporter/artemis/OpenWireMessageTypeConverter.java
index c921b48..662062a 100644
--- a/activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/kahadb/exporter/artemis/OpenWireMessageTypeConverter.java
+++ b/activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/kahadb/exporter/artemis/OpenWireMessageTypeConverter.java
@@ -16,9 +16,9 @@
  */
 package org.apache.activemq.cli.kahadb.exporter.artemis;
 
+import org.apache.activemq.artemis.api.core.ICoreMessage;
 import org.apache.activemq.artemis.cli.commands.tools.XmlDataExporterUtil;
 import org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter;
-import org.apache.activemq.artemis.core.server.ServerMessage;
 import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
 import org.apache.activemq.cli.kahadb.exporter.OpenWireExportConverter;
 import org.apache.activemq.cli.schema.BodyType;
@@ -51,7 +51,7 @@
      */
     @Override
     public MessageType convert(final Message message) throws Exception {
-        final ServerMessage serverMessage = converter.inbound(message);
+        final ICoreMessage serverMessage = (ICoreMessage) converter.inbound(message);
         final MessageType messageType = convertAttributes(serverMessage);
 
         try {
@@ -96,7 +96,7 @@
         }
     }
 
-    private BodyType convertBody(final ServerMessage serverMessage) throws Exception {
+    private BodyType convertBody(final ICoreMessage serverMessage) throws Exception {
         String value = XmlDataExporterUtil.encodeMessageBody(serverMessage);
 
         //requires CDATA
@@ -105,7 +105,7 @@
             .build();
     }
 
-    private MessageType convertAttributes(final ServerMessage message) {
+    private MessageType convertAttributes(final ICoreMessage message) {
         MessageType messageType = MessageType.builder()
                 .withId(message.getMessageID())
                 .withTimestamp(message.getTimestamp())
diff --git a/pom.xml b/pom.xml
index 9541e1b..e0b6c81 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
 
-    <activemq-version>5.14.3</activemq-version>
+    <activemq-version>5.14.4</activemq-version>
     <artemis-version>2.0.0-SNAPSHOT</artemis-version>
     <slf4j-version>1.7.13</slf4j-version>
     <log4j-version>1.2.17</log4j-version>
