You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2020/04/13 20:02:23 UTC

[activemq-artemis] 02/03: ARTEMIS-2692 refactor queue creation

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

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

commit 701b4e47944fad231b7ee94f89f93b4b11329b90
Author: Justin Bertram <jb...@apache.org>
AuthorDate: Sun Apr 5 14:48:21 2020 -0500

    ARTEMIS-2692 refactor queue creation
    
    This commit changes all tests to use the new methods.
---
 .../artemis/jms/client/ActiveMQParameterTest.java  |  14 +-
 ...dedActiveMQResourceCustomConfigurationTest.java |   4 +-
 .../artemis/rest/test/FindDestinationTest.java     |   7 +-
 .../activemq/artemis/rest/test/RawAckTest.java     |   3 +-
 .../config/impl/DefaultsFileConfigurationTest.java |   2 +-
 .../core/config/impl/FileConfigurationTest.java    |  62 +--
 .../core/message/impl/MessagePropertyTest.java     |   3 +-
 .../artemis/tests/util/ActiveMQTestBase.java       |   3 +-
 .../artemiswrapper/ArtemisBrokerWrapper.java       |   3 +-
 .../ActiveMQServerControlMultiThreadTest.java      |   3 +-
 .../tests/extras/byteman/BMFailoverTest.java       |  11 +-
 .../BridgeServerLocatorConfigurationTest.java      |  12 +-
 .../CriticalAnalyzerFaultInjectionTest.java        |   3 +-
 .../extras/byteman/LargeMessageOnShutdownTest.java |   4 +-
 .../byteman/LargeMessageReplicationTest.java       |  21 +-
 .../byteman/ManagementExceptionHandlingTest.java   |  16 +-
 .../tests/extras/byteman/OrphanedConsumerTest.java |   5 +-
 .../tests/extras/byteman/PagingLeakTest.java       |   4 +-
 .../tests/extras/byteman/PagingOMETest.java        |   3 +-
 .../extras/byteman/QueueDeploymentFailedTest.java  |   4 +-
 .../RaceOnClosingConsumerWhileReconnecting.java    |   3 +-
 .../extras/byteman/RaceOnCursorIteratorTest.java   |   3 +-
 .../extras/byteman/StompInternalStateTest.java     |   3 +-
 .../tests/extras/byteman/TimeoutXATest.java        |   5 +-
 .../CriticalAnalyzerFaultInjectionTestBase.java    |   3 +-
 .../tests/extras/jms/bridge/BridgeTestBase.java    |   4 +-
 .../extras/jms/bridge/ClusteredBridgeTestBase.java |   4 +-
 .../tests/integration/DuplicateDetectionTest.java  |  75 ++--
 .../artemis/tests/integration/SimpleTest.java      |   3 +-
 .../tests/integration/SingleServerSimpleTest.java  |   3 +-
 .../tests/integration/String64KLimitTest.java      |   5 +-
 .../integration/addressing/AddressConfigTest.java  |   3 +-
 .../integration/addressing/AddressingTest.java     |  27 +-
 .../tests/integration/addressing/AnycastTest.java  |   9 +-
 .../integration/addressing/MulticastTest.java      |   9 +-
 .../addressing/TwoWaysRemoveAddressTest.java       |   5 +-
 .../amqp/AmqpBridgeApplicationPropertiesTest.java  |   9 +-
 .../amqp/AmqpBridgeClusterRedistributionTest.java  |  13 +-
 .../integration/amqp/AmqpClientTestSupport.java    |   9 +-
 .../amqp/AmqpFullyQualifiedNameTest.java           |  17 +-
 .../integration/amqp/AmqpMessageDivertsTest.java   |   3 +-
 .../integration/amqp/AmqpMessageRoutingTest.java   |  29 +-
 .../amqp/AmqpPurgeOnNoConsumersTest.java           |   5 +-
 .../integration/amqp/AmqpSendReceiveTest.java      |   3 +-
 .../integration/amqp/AmqpTransactionTest.java      |  13 +-
 .../amqp/BrokerDefinedAnycastConsumerTest.java     |  17 +-
 .../amqp/BrokerDefinedMulticastConsumerTest.java   |   5 +-
 .../amqp/ClientDefinedMultiConsumerTest.java       |   3 +-
 .../tests/integration/amqp/ExtremeCancelsTest.java |   3 +-
 .../artemis/tests/integration/amqp/JMSLVQTest.java |   8 +-
 .../integration/amqp/JMSMessageTypesTest.java      |   5 +-
 .../integration/amqp/JMSNonDestructiveTest.java    |   9 +-
 .../tests/integration/amqp/JMSSelectorTest.java    |   4 +-
 .../amqp/JMSTransactedRedeliveryBugTest.java       |   5 +-
 .../integration/amqp/interop/AmqpCoreTest.java     |  20 +-
 .../AmqpReplicatedLargeMessageTest.java            |   3 +-
 .../integration/bridge/BridgeRoutingTest.java      |   5 +-
 .../tests/integration/cli/AddressCommandTest.java  |  11 +-
 .../tests/integration/cli/QueueCommandTest.java    |   7 +-
 .../tests/integration/client/AckBatchSizeTest.java |   5 +-
 .../tests/integration/client/AcknowledgeTest.java  |  11 +-
 .../integration/client/AddressSettingsTest.java    |  49 +--
 .../integration/client/AutoDeleteAddressTest.java  |   5 +-
 .../integration/client/AutoDeleteQueueTest.java    |  11 +-
 .../tests/integration/client/AutogroupIdTest.java  |   7 +-
 .../tests/integration/client/BlockingSendTest.java |   3 +-
 .../integration/client/CommitRollbackTest.java     |  13 +-
 .../client/ConcurrentCreateDeleteProduceTest.java  |   5 +-
 .../integration/client/ConsumerCloseTest.java      |   3 +-
 .../integration/client/ConsumerFilterTest.java     |   3 +-
 .../integration/client/ConsumerRoundRobinTest.java |   3 +-
 .../integration/client/ConsumerStuckTest.java      |   5 +-
 .../tests/integration/client/ConsumerTest.java     |   7 +-
 .../integration/client/ConsumerWindowSizeTest.java |  39 +-
 .../tests/integration/client/CoreClientTest.java   |   7 +-
 .../client/CreateQueueIdempotentTest.java          |   7 +-
 .../tests/integration/client/CreateQueueTest.java  |  35 +-
 .../integration/client/DeadLetterAddressTest.java  |  47 +--
 .../integration/client/DeliveryOrderTest.java      |   7 +-
 .../tests/integration/client/DurableQueueTest.java |   9 +-
 .../client/ExpireTestOnRestartTest.java            |   5 +-
 .../integration/client/ExpiryAddressTest.java      |  41 +-
 .../integration/client/ExpiryLargeMessageTest.java |  13 +-
 .../integration/client/FullQualifiedQueueTest.java |  27 +-
 .../tests/integration/client/HangConsumerTest.java |  16 +-
 .../tests/integration/client/HeuristicXATest.java  |   9 +-
 .../client/InVMNonPersistentMessageBufferTest.java |   3 +-
 .../client/InterruptedLargeMessageTest.java        |  16 +-
 .../integration/client/JmsNettyNioStressTest.java  |   5 +-
 .../tests/integration/client/JournalCrashTest.java |   3 +-
 .../client/LargeMessageAvoidLargeMessagesTest.java |  15 +-
 .../client/LargeMessageCompressTest.java           |  13 +-
 .../tests/integration/client/LargeMessageTest.java |  79 ++--
 .../integration/client/MessageBufferTest.java      |   3 +-
 .../integration/client/MessageConcurrencyTest.java |   3 +-
 .../client/MessageConsumerRollbackTest.java        |   5 +-
 .../integration/client/MessageCounterTest.java     |   3 +-
 .../integration/client/MessageDurabilityTest.java  |  11 +-
 .../integration/client/MessageExpirationTest.java  |  13 +-
 .../MessageGroupingConnectionFactoryTest.java      |   3 +-
 .../integration/client/MessageGroupingTest.java    |   3 +-
 .../integration/client/MessageHandlerTest.java     |   9 +-
 .../integration/client/MessagePriorityTest.java    |  11 +-
 .../tests/integration/client/MessageRateTest.java  |   9 +-
 .../tests/integration/client/MixRoutingTest.java   |   7 +-
 .../client/MultipleThreadFilterOneTest.java        |   3 +-
 .../tests/integration/client/NIOvsOIOTest.java     |   3 +-
 .../client/NewDeadLetterAddressTest.java           |   3 +-
 .../tests/integration/client/OrderTest.java        |   7 +-
 .../client/ProducerFlowControlTest.java            |  31 +-
 .../tests/integration/client/ProducerTest.java     |   4 +-
 .../tests/integration/client/QueueBrowserTest.java |  17 +-
 .../integration/client/ReceiveImmediateTest.java   |  11 +-
 .../tests/integration/client/ReceiveTest.java      |  15 +-
 .../integration/client/RedeliveryConsumerTest.java |   3 +-
 .../tests/integration/client/RequestorTest.java    |  11 +-
 .../tests/integration/client/RoutingTest.java      |  41 +-
 .../client/SelfExpandingBufferTest.java            |   3 +-
 .../tests/integration/client/SendAckFailTest.java  |   3 +-
 .../tests/integration/client/SessionCloseTest.java |   7 +-
 ...ssionClosedOnRemotingConnectionFailureTest.java |   3 +-
 .../client/SessionCreateAndDeleteQueueTest.java    |  15 +-
 .../client/SessionCreateConsumerTest.java          |  11 +-
 .../SessionSendAcknowledgementHandlerTest.java     |   7 +-
 .../integration/client/SessionStopStartTest.java   |  19 +-
 .../tests/integration/client/SessionTest.java      | 167 ++++++--
 .../client/SimpleSendMultipleQueuesTest.java       |   8 +-
 .../tests/integration/client/SlowConsumerTest.java |  11 +-
 .../integration/client/TemporaryQueueTest.java     |  44 +-
 .../client/TransactionDurabilityTest.java          |   5 +-
 .../integration/client/TransactionalSendTest.java  |   5 +-
 .../integration/client/TransientQueueTest.java     |  21 +-
 .../tests/integration/client/UpdateQueueTest.java  |  21 +-
 .../integration/client/WildCardRoutingTest.java    | 143 +++----
 .../client/WildcardConfigurationTest.java          |   7 +-
 .../integration/clientcrash/ClientCrashTest.java   |   5 +-
 .../integration/clientcrash/ClientExitTest.java    |   3 +-
 .../clientcrash/PendingDeliveriesTest.java         |   3 +-
 .../cluster/bridge/BridgeFailoverTest.java         |  14 +-
 .../cluster/bridge/BridgeReconnectTest.java        |  92 ++---
 .../cluster/bridge/BridgeStartTest.java            |  50 +--
 .../integration/cluster/bridge/BridgeTest.java     | 154 +++----
 .../bridge/BridgeWithDiscoveryGroupStartTest.java  |  14 +-
 .../ProtocolsMessageLoadBalancingTest.java         |   6 +-
 .../cluster/distribution/ClusterTestBase.java      |   3 +-
 .../distribution/ExpireWhileLoadBalanceTest.java   |   3 +-
 .../distribution/TemporaryQueueClusterTest.java    |   3 +-
 .../cluster/failover/AsynchronousFailoverTest.java |   3 +-
 .../failover/AutomaticColocatedQuorumVoteTest.java |   4 +-
 .../cluster/failover/BackupSyncJournalTest.java    |   4 +-
 .../failover/BackupSyncLargeMessageTest.java       |   3 +-
 .../cluster/failover/FailBackAutoTest.java         |   3 +-
 .../cluster/failover/FailBackManualTest.java       |   3 +-
 .../cluster/failover/FailoverListenerTest.java     |   3 +-
 .../failover/FailoverOnFlowControlTest.java        |   3 +-
 .../integration/cluster/failover/FailoverTest.java |  58 ++-
 .../cluster/failover/FailoverWithDivertTest.java   |  15 +-
 .../failover/LiveCrashOnBackupSyncTest.java        |   3 +-
 .../cluster/failover/LiveToLiveFailoverTest.java   |  11 +-
 .../failover/MultipleBackupsFailoverTestBase.java  |   3 +-
 .../cluster/failover/NettyFailoverTest.java        |   3 +-
 .../cluster/failover/NettyReplicationStopTest.java |   3 +-
 .../failover/NetworkFailureFailoverTest.java       |   7 +-
 .../cluster/failover/NetworkIsolationTest.java     |   3 +-
 .../cluster/failover/PagingFailoverTest.java       |   5 +-
 .../cluster/failover/ReplicaTimeoutTest.java       |   3 +-
 .../failover/ReplicatedDistributionTest.java       |   5 +-
 .../cluster/failover/ReplicatedFailoverTest.java   |   3 +-
 .../ReplicatedMultipleServerFailoverTest.java      |   4 +-
 .../failover/ReplicatedPagedFailoverTest.java      |   4 +-
 .../MultiThreadRandomReattachTestBase.java         |  29 +-
 .../cluster/reattach/OrderReattachTest.java        |   4 +-
 .../cluster/reattach/RandomReattachTest.java       |  25 +-
 .../integration/cluster/reattach/ReattachTest.java |  21 +-
 .../cluster/topology/TopologyClusterTestBase.java  |   6 +-
 .../crossprotocol/AMQPToJMSCoreTest.java           |   3 +-
 .../crossprotocol/AMQPToOpenwireTest.java          |   3 +-
 .../integration/crossprotocol/AMQPToStompTest.java |   3 +-
 .../crossprotocol/MessageIDMultiProtocolTest.java  |   3 +-
 .../crossprotocol/OpenWireToAMQPTest.java          |   3 +-
 .../crossprotocol/OpenwireAmqpResenderTest.java    |   7 +-
 .../RequestReplyMultiProtocolTest.java             |   5 +-
 .../crossprotocol/RequestReplyNonJMSTest.java      |   5 +-
 .../tests/integration/divert/DivertTest.java       |  93 ++---
 .../integration/divert/PersistentDivertTest.java   |  17 +-
 .../divert/ReplicationWithDivertTest.java          |  12 +-
 .../federation/FederatedAddressTest.java           |   2 +-
 .../integration/federation/FederatedTestBase.java  |   9 +-
 .../integration/http/CoreClientOverHttpTest.java   |   7 +-
 .../integration/interceptors/InterceptorTest.java  |  31 +-
 .../jdbc/store/journal/ShutdownServerTest.java     |   3 +-
 .../jms/ActiveMQConnectionFactoryTest.java         |   6 +-
 .../tests/integration/jms/JmsProducerTest.java     |   3 +-
 .../jms/ManualReconnectionToSingleServerTest.java  |   4 +-
 .../jms/client/ConsumerDelayDispatchTest.java      |   7 +-
 .../jms/client/ConsumerPriorityTest.java           |   3 +
 .../integration/jms/client/ExclusiveTest.java      |   4 +-
 .../tests/integration/jms/client/GroupingTest.java |  12 +-
 .../tests/integration/jms/client/LVQTest.java      |   4 +
 .../jms/client/QueueAutoDeleteTest.java            |   6 +
 .../jms/cluster/JMSFailoverListenerTest.java       |   5 +-
 .../integration/jms/cluster/JMSFailoverTest.java   |   7 +-
 .../integration/jms/cluster/JMSReconnectTest.java  |   7 +-
 .../integration/jms/consumer/JmsConsumerTest.java  |   7 +-
 .../largemessage/LargeMessageTestBase.java         |   3 +-
 .../largemessage/ServerLargeMessageTest.java       |   5 +-
 .../management/ActiveMQServerControlTest.java      | 441 +++++++++++++++++----
 .../ActiveMQServerControlUsingCoreTest.java        |   7 +
 .../integration/management/AddressControlTest.java |  31 +-
 .../integration/management/AuditLoggerTest.java    |   7 +-
 .../integration/management/BridgeControlTest.java  |   8 +-
 .../management/BridgeControlUsingCoreTest.java     |   8 +-
 .../management/ClusterConnectionControl2Test.java  |   6 +-
 .../management/ClusterConnectionControlTest.java   |  15 +-
 .../integration/management/DivertControlTest.java  |  30 +-
 .../management/LargeMessageOverManagementTest.java |   7 +-
 .../management/ManagementWithPagingServerTest.java |   7 +-
 .../integration/management/NotificationTest.java   |  21 +-
 .../integration/management/QueueControlTest.java   | 195 ++++-----
 .../management/SSLSecurityNotificationTest.java    |   5 +-
 .../management/SecurityNotificationTest.java       |   7 +-
 .../tests/integration/mqtt/imported/MQTTTest.java  |  17 +-
 .../imported/MqttClusterRemoteSubscribeTest.java   |   9 +-
 .../integration/openwire/BasicOpenWireTest.java    |   9 +-
 .../integration/openwire/FQQNOpenWireTest.java     |  11 +-
 .../openwire/OpenWireDivertExclusiveTest.java      |  13 +-
 .../openwire/OpenWireDivertNonExclusiveTest.java   |   9 +-
 .../openwire/OpenWireFlowControlFailTest.java      |   3 +-
 .../openwire/OpenWireLargeMessageTest.java         |   5 +-
 .../integration/openwire/SecurityOpenWireTest.java |   3 +-
 .../integration/openwire/SimpleOpenWireTest.java   |   9 +-
 .../openwire/VerySimpleOenwireTest.java            |   5 +-
 .../management/OpenWireManagementTest.java         |  29 +-
 .../integration/paging/AddressFullLoggingTest.java |   3 +-
 .../tests/integration/paging/GlobalPagingTest.java |  13 +-
 .../paging/PageCountSyncOnNonTXTest.java           |   3 +-
 .../integration/paging/PagingCounterTest.java      |  11 +-
 .../tests/integration/paging/PagingOrderTest.java  |  15 +-
 .../integration/paging/PagingReceiveTest.java      |   3 +-
 .../tests/integration/paging/PagingSendTest.java   |   9 +-
 .../tests/integration/paging/PagingSyncTest.java   |   3 +-
 .../tests/integration/paging/PagingTest.java       | 194 +++++----
 .../paging/PagingWithFailoverAndCountersTest.java  |   7 +-
 .../paging/TestDeadlockOnPurgePagingTest.java      |   3 +-
 .../integration/persistence/ConfigChangeTest.java  |  20 +-
 .../persistence/DeleteQueueRestartTest.java        |   3 +-
 .../integration/persistence/ExportFormatTest.java  |   3 +-
 .../persistence/QueueConfigRestartTest.java        |  14 +-
 .../integration/persistence/SyncSendTest.java      |   6 +-
 .../persistence/XmlImportExportTest.java           |  43 +-
 .../metrics/JournalPendingMessageTest.java         |   5 +-
 .../tests/integration/plugin/CorePluginTest.java   |  93 +++--
 .../integration/plugin/MetricsPluginTest.java      |   5 +-
 .../tests/integration/ra/ResourceAdapterTest.java  |   7 +-
 .../tests/integration/remoting/BatchDelayTest.java |   5 +-
 .../integration/remoting/DirectDeliverTest.java    |   3 +-
 .../tests/integration/remoting/ReconnectTest.java  |   3 +-
 .../replication/ReplicationOrderTest.java          |   3 +-
 .../integration/replication/ReplicationTest.java   |   3 +-
 .../SharedNothingReplicationFlowControlTest.java   |   5 +-
 .../replication/SharedNothingReplicationTest.java  |   3 +-
 .../integration/scheduling/DelayedMessageTest.java |   7 +-
 .../scheduling/MultipliedDelayedMessageTest.java   |   3 +-
 .../scheduling/ScheduledMessageTest.java           |  29 +-
 .../integration/security/JMSXUserIDPluginTest.java |   3 +-
 .../integration/security/LDAPSecurityTest.java     |  16 +-
 ...egacyLDAPSecuritySettingPluginListenerTest.java |  11 +-
 .../LegacyLDAPSecuritySettingPluginTest.java       |  15 +-
 .../LegacyLDAPSecuritySettingPluginTest2.java      |   4 +-
 .../tests/integration/security/SecurityTest.java   | 101 ++---
 .../tests/integration/security/SimpleClient.java   |   3 +-
 .../server/AddressQueueDeleteDelayTest.java        |  17 +-
 .../server/AutoCreateDeadLetterResourcesTest.java  |   5 +-
 .../server/AutoCreateExpiryResourcesTest.java      |   5 +-
 .../tests/integration/server/ExpiryRunnerTest.java |  12 +-
 .../integration/server/GracefulShutdownTest.java   |   3 +-
 .../tests/integration/server/LVQRecoveryTest.java  |   3 +-
 .../artemis/tests/integration/server/LVQTest.java  |   3 +-
 .../integration/server/MessageExpirationTest.java  |   6 +-
 .../server/PotentialOOMELoggingTest.java           |   4 +-
 .../integration/server/PredefinedQueueTest.java    |  42 +-
 .../integration/server/QueuePeristPauseTest.java   |   6 +-
 .../tests/integration/server/QueueQueryTest.java   |  14 +-
 .../integration/server/ResourceLimitTest.java      |  13 +-
 .../server/RetroactiveAddressFailoverTest.java     |   3 +-
 .../integration/server/RetroactiveAddressTest.java |  17 +-
 .../tests/integration/server/RingQueueTest.java    |  19 +-
 .../integration/server/ScaleDownDirectTest.java    |   5 +-
 .../ssl/CoreClientOverOneWaySSLKerb5Test.java      |   3 +-
 .../ssl/CoreClientOverOneWaySSLTest.java           |  31 +-
 .../ssl/CoreClientOverTwoWayOpenSSLServerTest.java |   5 +-
 .../ssl/CoreClientOverTwoWayOpenSSLTest.java       |   5 +-
 .../ssl/CoreClientOverTwoWaySSLTest.java           |   5 +-
 .../integration/ssl/DualAuthenticationTest.java    |   3 +-
 .../tests/integration/ssl/SSLProviderTest.java     |   3 +-
 .../integration/ssl/SSLProviderTwoWayTest.java     |   3 +-
 .../tests/integration/stomp/FQQNStompTest.java     |  13 +-
 .../artemis/tests/integration/stomp/StompTest.java |  21 +-
 .../tests/integration/stomp/StompTestBase.java     |   4 +-
 .../integration/stomp/StompWebSocketTest.java      |   6 +-
 .../stomp/StompWithLargeMessagesTest.java          |   4 +-
 .../stomp/StompWithRejectingInterceptorTest.java   |   2 +-
 .../netty/NettyConnectorWithHTTPUpgradeTest.java   |   3 +-
 .../tests/integration/xa/BasicXaRecoveryTest.java  |  11 +-
 .../artemis/tests/integration/xa/BasicXaTest.java  |  15 +-
 .../tests/integration/xa/SessionFailureXATest.java |   3 +-
 .../tests/integration/xa/XaTimeoutTest.java        |   6 +-
 .../artemis/jms/tests/MessageProducerTest.java     |   3 +-
 .../activemq/artemis/jms/tests/SecurityTest.java   |   9 +-
 .../karaf/client/ArtemisCoreClientFeatureIT.java   |   3 +-
 .../paging/MeasurePagingMultiThreadTest.java       |   3 +-
 .../storage/SendReceiveMultiThreadTest.java        |   8 +-
 .../tests/smoke/jmx2/JmxServerControlTest.java     |   3 +-
 .../soak/client/ClientNonDivertedSoakTest.java     |   3 +-
 .../artemis/tests/soak/client/ClientSoakTest.java  |   7 +-
 .../soak/client/SimpleSendReceiveSoakTest.java     |   3 +-
 .../tests/stress/client/SendStressTest.java        |   4 +-
 .../tests/stress/journal/CompactingStressTest.java |   7 +-
 .../stress/journal/JournalRestartStressTest.java   |   6 +-
 .../stress/journal/LargeJournalStressTest.java     |   5 +-
 .../journal/MultiThreadConsumerStressTest.java     |   5 +-
 .../journal/NIOMultiThreadCompactorStressTest.java |   5 +-
 .../stress/journal/XmlImportExportStressTest.java  |   3 +-
 .../paging/MultipleConsumersPageStressTest.java    |   3 +-
 .../tests/stress/paging/PageCursorStressTest.java  |   3 +-
 .../tests/stress/paging/PageStressTest.java        |   7 +-
 .../tests/stress/stomp/StompStressTest.java        |   4 +-
 .../timing/jms/bridge/impl/JMSBridgeImplTest.java  |   5 +-
 .../unit/core/message/impl/MessageImplTest.java    |   3 +-
 .../tests/unit/core/server/impl/QueueImplTest.java |   3 +-
 .../artemis/tests/unit/ra/ResourceAdapterTest.java |   3 +-
 331 files changed, 2706 insertions(+), 2014 deletions(-)

diff --git a/artemis-jms-client/src/test/java/org/apache/activemq/artemis/jms/client/ActiveMQParameterTest.java b/artemis-jms-client/src/test/java/org/apache/activemq/artemis/jms/client/ActiveMQParameterTest.java
index 1cb179d..7324682 100644
--- a/artemis-jms-client/src/test/java/org/apache/activemq/artemis/jms/client/ActiveMQParameterTest.java
+++ b/artemis-jms-client/src/test/java/org/apache/activemq/artemis/jms/client/ActiveMQParameterTest.java
@@ -31,18 +31,18 @@ public class ActiveMQParameterTest {
    @Test
    public void testQueueParameters() {
       ActiveMQDestination activeMQDestination = new ActiveMQQueue("jms.queue.foo?exclusive=true");
-      assertTrue(activeMQDestination.getQueueAttributes().getExclusive());
+      assertTrue(activeMQDestination.getQueueConfiguration().isExclusive());
 
       assertEquals("jms.queue.foo", activeMQDestination.getAddress());
 
       activeMQDestination = new ActiveMQQueue("jms.queue.foo?exclusive=false");
-      assertFalse(activeMQDestination.getQueueAttributes().getExclusive());
+      assertFalse(activeMQDestination.getQueueConfiguration().isExclusive());
 
       activeMQDestination = new ActiveMQQueue("jms.queue.foo?last-value=true");
-      assertTrue(activeMQDestination.getQueueAttributes().getLastValue());
+      assertTrue(activeMQDestination.getQueueConfiguration().isLastValue());
 
       activeMQDestination = new ActiveMQQueue("jms.queue.foo?last-value=false");
-      assertFalse(activeMQDestination.getQueueAttributes().getLastValue());
+      assertFalse(activeMQDestination.getQueueConfiguration().isLastValue());
 
    }
 
@@ -50,14 +50,14 @@ public class ActiveMQParameterTest {
    public void testMultipleQueueParameters() {
       ActiveMQDestination activeMQDestination = new ActiveMQQueue("jms.queue.foo?last-value=true&exclusive=true");
       assertEquals("jms.queue.foo", activeMQDestination.getAddress());
-      assertTrue(activeMQDestination.getQueueAttributes().getLastValue());
-      assertTrue(activeMQDestination.getQueueAttributes().getExclusive());
+      assertTrue(activeMQDestination.getQueueConfiguration().isLastValue());
+      assertTrue(activeMQDestination.getQueueConfiguration().isExclusive());
    }
 
    @Test
    public void testNoQueueParameters() {
       ActiveMQDestination activeMQDestination = new ActiveMQQueue("jms.queue.foo");
       assertEquals("jms.queue.foo", activeMQDestination.getAddress());
-      assertNull(activeMQDestination.getQueueAttributes());
+      assertNull(activeMQDestination.getQueueConfiguration());
    }
 }
diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedActiveMQResourceCustomConfigurationTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedActiveMQResourceCustomConfigurationTest.java
index e6613e2..0ee10be 100644
--- a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedActiveMQResourceCustomConfigurationTest.java
+++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedActiveMQResourceCustomConfigurationTest.java
@@ -18,8 +18,8 @@ package org.apache.activemq.artemis.junit;
 
 import java.util.List;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.core.config.Configuration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
 import org.apache.activemq.artemis.core.server.Queue;
 import org.junit.After;
@@ -37,7 +37,7 @@ public class EmbeddedActiveMQResourceCustomConfigurationTest {
    static final String TEST_QUEUE = "test.queue";
    static final String TEST_ADDRESS = "test.address";
 
-   CoreQueueConfiguration queueConfiguration = new CoreQueueConfiguration().setAddress(TEST_ADDRESS).setName(TEST_QUEUE);
+   QueueConfiguration queueConfiguration = new QueueConfiguration(TEST_QUEUE).setAddress(TEST_ADDRESS);
    Configuration customConfiguration = new ConfigurationImpl().setPersistenceEnabled(false).setSecurityEnabled(true).addQueueConfiguration(queueConfiguration);
 
    private EmbeddedActiveMQResource server = new EmbeddedActiveMQResource(customConfiguration);
diff --git a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/FindDestinationTest.java b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/FindDestinationTest.java
index 7deab4d..7faa5c4 100644
--- a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/FindDestinationTest.java
+++ b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/FindDestinationTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.rest.test;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -32,7 +33,7 @@ public class FindDestinationTest extends MessageTestBase {
    public void testFindQueue() throws Exception {
       String testName = "testFindQueue";
       server.getActiveMQServer().addAddressInfo(new AddressInfo(SimpleString.toSimpleString(testName), RoutingType.MULTICAST));
-      server.getActiveMQServer().createQueue(new SimpleString(testName), RoutingType.MULTICAST, new SimpleString(testName), null, false, false);
+      server.getActiveMQServer().createQueue(new QueueConfiguration(testName).setDurable(false));
 
       ClientRequest request = new ClientRequest(TestPortProvider.generateURL("/queues/" + testName));
 
@@ -63,7 +64,9 @@ public class FindDestinationTest extends MessageTestBase {
    @Test
    public void testFindTopic() throws Exception {
       server.getActiveMQServer().addAddressInfo(new AddressInfo(SimpleString.toSimpleString("testTopic"), RoutingType.MULTICAST));
-      server.getActiveMQServer().createQueue(new SimpleString("testTopic"), RoutingType.MULTICAST, new SimpleString("testTopic"), null, false, false);
+      server.getActiveMQServer().createQueue(new QueueConfiguration("testTopic")
+                                                .setRoutingType(RoutingType.MULTICAST)
+                                                .setDurable(false));
       ClientRequest request = new ClientRequest(TestPortProvider.generateURL("/topics/testTopic"));
 
       ClientResponse<?> response = request.head();
diff --git a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/RawAckTest.java b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/RawAckTest.java
index 025785a..e9468ff 100644
--- a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/RawAckTest.java
+++ b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/RawAckTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.rest.test;
 import java.util.HashMap;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -68,7 +69,7 @@ public class RawAckTest {
 
       SimpleString addr = SimpleString.toSimpleString("testQueue");
       activeMQServer.addAddressInfo(new AddressInfo(addr, RoutingType.MULTICAST));
-      activeMQServer.createQueue(addr, RoutingType.MULTICAST, addr, null, false, false);
+      activeMQServer.createQueue(new QueueConfiguration(addr).setDurable(false));
       session = sessionFactory.createSession(true, true);
       producer = session.createProducer(addr);
       session.start();
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/DefaultsFileConfigurationTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/DefaultsFileConfigurationTest.java
index fca5304..c50f0d1 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/DefaultsFileConfigurationTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/DefaultsFileConfigurationTest.java
@@ -62,7 +62,7 @@ public class DefaultsFileConfigurationTest extends ConfigurationImplTest {
 
       Assert.assertEquals(Collections.emptyList(), conf.getClusterConfigurations());
 
-      Assert.assertEquals(Collections.emptyList(), conf.getQueueConfigurations());
+      Assert.assertEquals(Collections.emptyList(), conf.getQueueConfigs());
 
       Assert.assertEquals(Collections.emptyList(), conf.getAddressConfigurations());
 
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java
index ba15671..475ec62 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java
@@ -31,6 +31,7 @@ import java.util.Set;
 import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
 import org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration;
 import org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -39,7 +40,6 @@ import org.apache.activemq.artemis.core.config.BridgeConfiguration;
 import org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.DivertConfiguration;
 import org.apache.activemq.artemis.core.config.FileDeploymentManager;
 import org.apache.activemq.artemis.core.config.HAPolicyConfiguration;
@@ -405,17 +405,17 @@ public class FileConfigurationTest extends ConfigurationImplTest {
       assertEquals(104, conf.getResourceLimitSettings().get("myUser").getMaxConnections());
       assertEquals(13, conf.getResourceLimitSettings().get("myUser").getMaxQueues());
 
-      assertEquals(2, conf.getQueueConfigurations().size());
+      assertEquals(2, conf.getQueueConfigs().size());
 
-      assertEquals("queue1", conf.getQueueConfigurations().get(0).getName());
-      assertEquals("address1", conf.getQueueConfigurations().get(0).getAddress());
-      assertEquals("color='red'", conf.getQueueConfigurations().get(0).getFilterString());
-      assertEquals(false, conf.getQueueConfigurations().get(0).isDurable());
+      assertEquals("queue1", conf.getQueueConfigs().get(0).getName().toString());
+      assertEquals("address1", conf.getQueueConfigs().get(0).getAddress().toString());
+      assertEquals("color='red'", conf.getQueueConfigs().get(0).getFilterString().toString());
+      assertEquals(false, conf.getQueueConfigs().get(0).isDurable());
 
-      assertEquals("queue2", conf.getQueueConfigurations().get(1).getName());
-      assertEquals("address2", conf.getQueueConfigurations().get(1).getAddress());
-      assertEquals("color='blue'", conf.getQueueConfigurations().get(1).getFilterString());
-      assertEquals(false, conf.getQueueConfigurations().get(1).isDurable());
+      assertEquals("queue2", conf.getQueueConfigs().get(1).getName().toString());
+      assertEquals("address2", conf.getQueueConfigs().get(1).getAddress().toString());
+      assertEquals("color='blue'", conf.getQueueConfigs().get(1).getFilterString().toString());
+      assertEquals(false, conf.getQueueConfigs().get(1).isDurable());
 
       verifyAddresses();
 
@@ -474,30 +474,30 @@ public class FileConfigurationTest extends ConfigurationImplTest {
       Set<RoutingType> routingTypes = new HashSet<>();
       routingTypes.add(RoutingType.ANYCAST);
       assertEquals(routingTypes, addressConfiguration.getRoutingTypes());
-      assertEquals(2, addressConfiguration.getQueueConfigurations().size());
+      assertEquals(2, addressConfiguration.getQueueConfigs().size());
 
       // Addr 1 Queue 1
-      CoreQueueConfiguration queueConfiguration = addressConfiguration.getQueueConfigurations().get(0);
+      QueueConfiguration queueConfiguration = addressConfiguration.getQueueConfigs().get(0);
 
-      assertEquals("q1", queueConfiguration.getName());
+      assertEquals("q1", queueConfiguration.getName().toString());
       assertEquals(3L, queueConfiguration.getRingSize().longValue());
       assertFalse(queueConfiguration.isDurable());
-      assertEquals("color='blue'", queueConfiguration.getFilterString());
-      assertEquals(ActiveMQDefaultConfiguration.getDefaultPurgeOnNoConsumers(), queueConfiguration.getPurgeOnNoConsumers());
-      assertEquals("addr1", queueConfiguration.getAddress());
+      assertEquals("color='blue'", queueConfiguration.getFilterString().toString());
+      assertEquals(ActiveMQDefaultConfiguration.getDefaultPurgeOnNoConsumers(), queueConfiguration.isPurgeOnNoConsumers());
+      assertEquals("addr1", queueConfiguration.getAddress().toString());
       // If null, then default will be taken from address-settings (which defaults to ActiveMQDefaultConfiguration.getDefaultMaxQueueConsumers())
       assertEquals(null, queueConfiguration.getMaxConsumers());
 
       // Addr 1 Queue 2
-      queueConfiguration = addressConfiguration.getQueueConfigurations().get(1);
+      queueConfiguration = addressConfiguration.getQueueConfigs().get(1);
 
-      assertEquals("q2", queueConfiguration.getName());
+      assertEquals("q2", queueConfiguration.getName().toString());
       assertEquals(-1, queueConfiguration.getRingSize().longValue());
       assertTrue(queueConfiguration.isDurable());
-      assertEquals("color='green'", queueConfiguration.getFilterString());
+      assertEquals("color='green'", queueConfiguration.getFilterString().toString());
       assertEquals(Queue.MAX_CONSUMERS_UNLIMITED, queueConfiguration.getMaxConsumers().intValue());
-      assertFalse(queueConfiguration.getPurgeOnNoConsumers());
-      assertEquals("addr1", queueConfiguration.getAddress());
+      assertFalse(queueConfiguration.isPurgeOnNoConsumers());
+      assertEquals("addr1", queueConfiguration.getAddress().toString());
 
       // Addr 2
       addressConfiguration = conf.getAddressConfigurations().get(1);
@@ -505,28 +505,28 @@ public class FileConfigurationTest extends ConfigurationImplTest {
       routingTypes = new HashSet<>();
       routingTypes.add(RoutingType.MULTICAST);
       assertEquals(routingTypes, addressConfiguration.getRoutingTypes());
-      assertEquals(2, addressConfiguration.getQueueConfigurations().size());
+      assertEquals(2, addressConfiguration.getQueueConfigs().size());
 
       // Addr 2 Queue 1
-      queueConfiguration = addressConfiguration.getQueueConfigurations().get(0);
+      queueConfiguration = addressConfiguration.getQueueConfigs().get(0);
 
-      assertEquals("q3", queueConfiguration.getName());
+      assertEquals("q3", queueConfiguration.getName().toString());
       assertTrue(queueConfiguration.isDurable());
-      assertEquals("color='red'", queueConfiguration.getFilterString());
+      assertEquals("color='red'", queueConfiguration.getFilterString().toString());
       assertEquals(10, queueConfiguration.getMaxConsumers().intValue());
-      assertEquals(ActiveMQDefaultConfiguration.getDefaultPurgeOnNoConsumers(), queueConfiguration.getPurgeOnNoConsumers());
-      assertEquals("addr2", queueConfiguration.getAddress());
+      assertEquals(ActiveMQDefaultConfiguration.getDefaultPurgeOnNoConsumers(), queueConfiguration.isPurgeOnNoConsumers());
+      assertEquals("addr2", queueConfiguration.getAddress().toString());
 
       // Addr 2 Queue 2
-      queueConfiguration = addressConfiguration.getQueueConfigurations().get(1);
+      queueConfiguration = addressConfiguration.getQueueConfigs().get(1);
 
-      assertEquals("q4", queueConfiguration.getName());
+      assertEquals("q4", queueConfiguration.getName().toString());
       assertTrue(queueConfiguration.isDurable());
       assertNull(queueConfiguration.getFilterString());
       // If null, then default will be taken from address-settings (which defaults to ActiveMQDefaultConfiguration.getDefaultMaxQueueConsumers())
       assertEquals(null, queueConfiguration.getMaxConsumers());
-      assertTrue(queueConfiguration.getPurgeOnNoConsumers());
-      assertEquals("addr2", queueConfiguration.getAddress());
+      assertTrue(queueConfiguration.isPurgeOnNoConsumers());
+      assertEquals("addr2", queueConfiguration.getAddress().toString());
 
       // Addr 3
       addressConfiguration = conf.getAddressConfigurations().get(2);
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/message/impl/MessagePropertyTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/message/impl/MessagePropertyTest.java
index 1a69c0e..a31e09f 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/message/impl/MessagePropertyTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/message/impl/MessagePropertyTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.core.message.impl;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -54,7 +55,7 @@ public class MessagePropertyTest extends ActiveMQTestBase {
 
       String filter = null;
       session.createAddress(SimpleString.toSimpleString(ADDRESS), RoutingType.MULTICAST, false);
-      session.createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, filter, true);
+      session.createQueue(new QueueConfiguration(ADDRESS).setRoutingType(RoutingType.MULTICAST).setFilterString(filter));
       ClientProducer producer = session.createProducer(ADDRESS);
 
       for (int i = 0; i < numMessages; i++) {
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
index 1af3400..91128a0 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java
@@ -66,6 +66,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ICoreMessage;
 import org.apache.activemq.artemis.api.core.Message;
 import org.apache.activemq.artemis.api.core.Pair;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -1580,7 +1581,7 @@ public abstract class ActiveMQTestBase extends Assert {
       ClientSessionFactory sf = locator.createSessionFactory();
       ClientSession session = sf.createSession();
       try {
-         session.createQueue(address, queue);
+         session.createQueue(new QueueConfiguration(queue).setAddress(address));
       } finally {
          session.close();
          closeSessionFactory(sf);
diff --git a/tests/activemq5-unit-tests/src/main/java/org/apache/activemq/broker/artemiswrapper/ArtemisBrokerWrapper.java b/tests/activemq5-unit-tests/src/main/java/org/apache/activemq/broker/artemiswrapper/ArtemisBrokerWrapper.java
index 22a8e44..00c0d1b 100644
--- a/tests/activemq5-unit-tests/src/main/java/org/apache/activemq/broker/artemiswrapper/ArtemisBrokerWrapper.java
+++ b/tests/activemq5-unit-tests/src/main/java/org/apache/activemq/broker/artemiswrapper/ArtemisBrokerWrapper.java
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -254,7 +255,7 @@ public class ArtemisBrokerWrapper extends ArtemisBrokerBase {
          if (coreQ == null) {
             coreQ = new SimpleString(qname);
             try {
-               this.server.createQueue(coreQ, RoutingType.MULTICAST, coreQ, null, false, false);
+               this.server.createQueue(new QueueConfiguration(coreQ).setDurable(false));
                testQueues.put(qname, coreQ);
             } catch (ActiveMQQueueExistsException e) {
                //ignore
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
index 609103a..7ac0949 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.JsonUtil;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -139,7 +140,7 @@ public class ActiveMQServerControlMultiThreadTest extends ManagementTestBase {
       ActiveMQServerControl serverControl = createManagementControl();
 
       server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
-      server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+      server.createQueue(new QueueConfiguration(queueName1).setAddress(addressName1).setRoutingType(RoutingType.ANYCAST).setDurable(false));
 
       // create a consumer
       try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BMFailoverTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BMFailoverTest.java
index 6e6509f..e6d29c6 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BMFailoverTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BMFailoverTest.java
@@ -23,6 +23,7 @@ import javax.transaction.xa.Xid;
 import org.apache.activemq.artemis.api.core.ActiveMQTransactionOutcomeUnknownException;
 import org.apache.activemq.artemis.api.core.ActiveMQTransactionRolledBackException;
 import org.apache.activemq.artemis.api.core.ActiveMQUnBlockedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -101,7 +102,7 @@ public class BMFailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -175,8 +176,8 @@ public class BMFailoverTest extends FailoverTestBase {
       // closeable will take care of closing it
       try (ClientSession session = sf.createSession(false, true, true);
            ClientProducer sendInitialProducer = session.createProducer();) {
-         session.createQueue(inQueue, inQueue, null, true);
-         session.createQueue(outQueue, outQueue, null, true);
+         session.createQueue(new QueueConfiguration(inQueue));
+         session.createQueue(new QueueConfiguration(outQueue));
          sendInitialProducer.send(inQueue, createMessage(session, 0, true));
       }
 
@@ -325,14 +326,14 @@ public class BMFailoverTest extends FailoverTestBase {
    private ClientSession createSessionAndQueue() throws Exception {
       ClientSession session = createSession(sf, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
       return session;
    }
 
    private ClientSession createXASessionAndQueue() throws Exception {
       ClientSession session = addClientSession(sf.createSession(true, true, true));
 
-      session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
       return session;
    }
 
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BridgeServerLocatorConfigurationTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BridgeServerLocatorConfigurationTest.java
index 5e6a497..fa40256 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BridgeServerLocatorConfigurationTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/BridgeServerLocatorConfigurationTest.java
@@ -21,9 +21,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl;
@@ -94,15 +94,9 @@ public class BridgeServerLocatorConfigurationTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          serverWithBridge.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
-         queueConfigs0.add(queueConfig0);
-         serverWithBridge.getConfiguration().setQueueConfigurations(queueConfigs0);
+         serverWithBridge.getConfiguration().addQueueConfiguration(new QueueConfiguration(queueName0).setAddress(testAddress));
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
-         queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().addQueueConfiguration(new QueueConfiguration(queueName1).setAddress(forwardAddress));
 
          server1.start();
          waitForServerToStart(server1);
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/CriticalAnalyzerFaultInjectionTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/CriticalAnalyzerFaultInjectionTest.java
index 785b9eb..77bfe02 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/CriticalAnalyzerFaultInjectionTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/CriticalAnalyzerFaultInjectionTest.java
@@ -22,6 +22,7 @@ import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -52,7 +53,7 @@ public class CriticalAnalyzerFaultInjectionTest extends JMSTestBase {
    public void setUp() throws Exception {
       super.setUp();
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
       conn = nettyCf.createConnection();
    }
 
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageOnShutdownTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageOnShutdownTest.java
index 9b01223..d21e070 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageOnShutdownTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageOnShutdownTest.java
@@ -20,7 +20,7 @@ import java.io.ByteArrayInputStream;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffers;
-import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -52,7 +52,7 @@ public class LargeMessageOnShutdownTest extends ActiveMQTestBase {
 
       server = createServer(true, createDefaultNettyConfig());
       startServer();
-      server.createQueue(queueName, RoutingType.MULTICAST, queueName, null, true, false);
+      server.createQueue(new QueueConfiguration(queueName));
    }
 
    @After
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageReplicationTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageReplicationTest.java
index 9429ab0..9af81b8 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageReplicationTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/LargeMessageReplicationTest.java
@@ -16,7 +16,15 @@
  */
 package org.apache.activemq.artemis.tests.extras.byteman;
 
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -28,7 +36,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryInternal;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.DivertConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
 import org.apache.activemq.artemis.tests.integration.cluster.failover.FailoverTestBase;
@@ -39,13 +46,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicLong;
-
 @RunWith(BMUnitRunner.class)
 public class LargeMessageReplicationTest extends FailoverTestBase {
 
@@ -94,10 +94,7 @@ public class LargeMessageReplicationTest extends FailoverTestBase {
       CoreAddressConfiguration addrCfg = new CoreAddressConfiguration();
       addrCfg.setName(address);
       addrCfg.addRoutingType(RoutingType.ANYCAST);
-      CoreQueueConfiguration qConfig = new CoreQueueConfiguration();
-      qConfig.setName(name);
-      qConfig.setAddress(address);
-      addrCfg.addQueueConfiguration(qConfig);
+      addrCfg.addQueueConfiguration(new QueueConfiguration(name).setAddress(address));
       addrConfigs.add(addrCfg);
    }
 
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ManagementExceptionHandlingTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ManagementExceptionHandlingTest.java
index 8c79bf6..fe1d9d3 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ManagementExceptionHandlingTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ManagementExceptionHandlingTest.java
@@ -16,7 +16,15 @@
  */
 package org.apache.activemq.artemis.tests.extras.byteman;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.RuntimeMBeanException;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
+import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.jboss.byteman.contrib.bmunit.BMRule;
@@ -27,12 +35,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.RuntimeMBeanException;
-import java.lang.management.ManagementFactory;
-import java.util.HashMap;
-
 @RunWith(BMUnitRunner.class)
 public class ManagementExceptionHandlingTest extends ActiveMQTestBase {
 
@@ -67,7 +69,7 @@ public class ManagementExceptionHandlingTest extends ActiveMQTestBase {
                    action = "throw new org.apache.activemq.artemis.api.core.ActiveMQException(\"gotcha\")")})
    public void testActiveMQServerControl() throws Exception {
       try {
-         server.getActiveMQServerControl().createQueue("some.address", "ANYCAST", "some.queue", "filter", true, -1, false, true);
+         server.getActiveMQServerControl().createQueue(new QueueConfiguration("some.queue").setAddress("some.address").setRoutingType(RoutingType.ANYCAST).toJSON());
          fail("test should have gotten an exception!");
       } catch (ActiveMQException e) {
          fail("Wrong exception got!");
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/OrphanedConsumerTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/OrphanedConsumerTest.java
index 72a4a2d..a162570 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/OrphanedConsumerTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/OrphanedConsumerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.extras.byteman;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -165,8 +166,8 @@ public class OrphanedConsumerTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, true, 0);
 
-      session.createQueue("queue", "queue1", true);
-      session.createQueue("queue", "queue2", true);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("queue"));
+      session.createQueue(new QueueConfiguration("queue2").setAddress("queue"));
 
       ClientProducer prod = session.createProducer("queue");
 
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingLeakTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingLeakTest.java
index 8bf1645..834b88a 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingLeakTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingLeakTest.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -31,7 +32,6 @@ import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.paging.cursor.impl.PagePositionImpl;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.ActiveMQServers;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy;
 import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
@@ -132,7 +132,7 @@ public class PagingLeakTest extends ActiveMQTestBase {
          final int maxConsumed;
 
          Consumer(int sleepTime, String suffix, int maxConsumed) throws Exception {
-            server.createQueue(address, RoutingType.MULTICAST, address.concat(suffix), null, true, false);
+            server.createQueue(new QueueConfiguration(address.concat(suffix)).setAddress(address));
 
             this.sleepTime = sleepTime;
             locator = createInVMLocator(0);
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingOMETest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingOMETest.java
index 4f3b722..bc94f85 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingOMETest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/PagingOMETest.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
 import java.util.HashMap;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -109,7 +110,7 @@ public class PagingOMETest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       Queue queue = server.locateQueue(ADDRESS);
       queue.getPageSubscription().getPagingStore().startPaging();
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/QueueDeploymentFailedTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/QueueDeploymentFailedTest.java
index d01215a..d932c41 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/QueueDeploymentFailedTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/QueueDeploymentFailedTest.java
@@ -18,9 +18,9 @@ package org.apache.activemq.artemis.tests.extras.byteman;
 
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.jboss.byteman.contrib.bmunit.BMRule;
@@ -40,7 +40,7 @@ public class QueueDeploymentFailedTest extends ActiveMQTestBase {
    public void testQueueDeploymentFailure() throws Exception {
       ActiveMQServer server = createServer(false, createDefaultNettyConfig());
       String address = UUID.randomUUID().toString();
-      server.getConfiguration().addAddressConfiguration(new CoreAddressConfiguration().setName(address).addRoutingType(RoutingType.ANYCAST).addQueueConfiguration(new CoreQueueConfiguration().setName(UUID.randomUUID().toString()).setRoutingType(RoutingType.ANYCAST).setAddress(address)));
+      server.getConfiguration().addAddressConfiguration(new CoreAddressConfiguration().setName(address).addRoutingType(RoutingType.ANYCAST).addQueueConfiguration(new QueueConfiguration(UUID.randomUUID().toString()).setRoutingType(RoutingType.ANYCAST).setAddress(address)));
       server.start();
       assertTrue(server.getRemotingService().isStarted());
    }
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnClosingConsumerWhileReconnecting.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnClosingConsumerWhileReconnecting.java
index db27c0a..a7a6e39 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnClosingConsumerWhileReconnecting.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnClosingConsumerWhileReconnecting.java
@@ -20,6 +20,7 @@ package org.apache.activemq.artemis.tests.extras.byteman;
 import java.util.Set;
 
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -66,7 +67,7 @@ public class RaceOnClosingConsumerWhileReconnecting extends ActiveMQTestBase {
       SimpleString addressName1 = new SimpleString("my_address_one");
 
       server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
-      server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, true, false);
+      server.createQueue(new QueueConfiguration(queueName1).setAddress(addressName1).setRoutingType(RoutingType.ANYCAST));
 
       final long retryInterval = 500;
       final double retryMultiplier = 1d;
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnCursorIteratorTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnCursorIteratorTest.java
index b7e29f1..7196923 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnCursorIteratorTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/RaceOnCursorIteratorTest.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -103,7 +104,7 @@ public class RaceOnCursorIteratorTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       queue = server.locateQueue(ADDRESS);
       queue.getPageSubscription().getPagingStore().startPaging();
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java
index a4dd033..a336cd8 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/StompInternalStateTest.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -64,7 +65,7 @@ public class StompInternalStateTest extends ActiveMQTestBase {
          ServerLocator locator = createNettyNonHALocator();
          ClientSessionFactory factory = createSessionFactory(locator);
          session = factory.createSession();
-         session.createTemporaryQueue(STOMP_QUEUE_NAME, STOMP_QUEUE_NAME);
+         session.createQueue(new QueueConfiguration(STOMP_QUEUE_NAME).setDurable(false).setTemporary(true));
          session.deleteQueue(STOMP_QUEUE_NAME);
 
          assertNull(resultTestStompProtocolManagerLeak);
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/TimeoutXATest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/TimeoutXATest.java
index c75c7e1..6afccd8 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/TimeoutXATest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/TimeoutXATest.java
@@ -29,9 +29,10 @@ import javax.transaction.xa.Xid;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
+import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.jboss.byteman.contrib.bmunit.BMRule;
@@ -56,7 +57,7 @@ public class TimeoutXATest extends ActiveMQTestBase {
       server.getConfiguration().setTransactionTimeoutScanPeriod(1100);
       server.getConfiguration().setJournalSyncNonTransactional(false);
       server.start();
-      server.createQueue(SimpleString.toSimpleString("Queue1"), RoutingType.ANYCAST, SimpleString.toSimpleString("Queue1"), null, true, false);
+      server.createQueue(new QueueConfiguration("Queue1").setRoutingType(RoutingType.ANYCAST));
 
       removingTXEntered0 = new CountDownLatch(1);
       removingTXAwait0 = new CountDownLatch(1);
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/critical/analyzer/CriticalAnalyzerFaultInjectionTestBase.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/critical/analyzer/CriticalAnalyzerFaultInjectionTestBase.java
index d96cb3c..6b3549a 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/critical/analyzer/CriticalAnalyzerFaultInjectionTestBase.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/critical/analyzer/CriticalAnalyzerFaultInjectionTestBase.java
@@ -21,6 +21,7 @@ import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -46,7 +47,7 @@ public abstract class CriticalAnalyzerFaultInjectionTestBase extends JMSTestBase
    public void setUp() throws Exception {
       super.setUp();
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
       conn = nettyCf.createConnection();
    }
 
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java
index e76643c..6b02791 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java
@@ -37,8 +37,8 @@ import java.util.Set;
 import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
-import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.management.AddressControl;
 import org.apache.activemq.artemis.api.core.management.QueueControl;
@@ -125,7 +125,7 @@ public abstract class BridgeTestBase extends ActiveMQTestBase {
       if (index == 1) {
          server = server1;
       }
-      assertTrue("queue '/queue/" + queueName + "' created", server.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), null, true, false) != null);
+      assertTrue("queue '/queue/" + queueName + "' created", server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST)) != null);
    }
 
    @Override
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java
index 6fae34e..cf22f29 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java
@@ -27,8 +27,8 @@ import java.util.concurrent.TimeUnit;
 import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
-import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -173,7 +173,7 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase {
       }
 
       public void createQueue(String queueName) throws Exception {
-         liveNode.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), null, true, false);
+         liveNode.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
       }
 
       public ConnectionFactoryFactory getConnectionFactoryFactory() {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/DuplicateDetectionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/DuplicateDetectionTest.java
index 235497b..5a8c23e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/DuplicateDetectionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/DuplicateDetectionTest.java
@@ -23,6 +23,7 @@ import javax.transaction.xa.Xid;
 import org.apache.activemq.artemis.api.core.ActiveMQDuplicateIdException;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -61,7 +62,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -167,11 +168,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
       for (int i = 0; i < TEST_SIZE; i++) {
          final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue_" + i);
 
-         if (temporary) {
-            session.createTemporaryQueue(addressName, queueName, (SimpleString) null);
-         } else {
-            session.createQueue(addressName, queueName, null, true);
-         }
+         session.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setDurable(!temporary).setTemporary(temporary));
 
          ClientProducer producer = session.createProducer(addressName);
 
@@ -236,7 +233,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
       session.start();
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
-      session.createQueue(queueName, queueName, null, true);
+      session.createQueue(new QueueConfiguration(queueName));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -290,7 +287,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -354,11 +351,11 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName3 = new SimpleString("DuplicateDetectionTestQueue3");
 
-      session.createQueue(queueName1, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setDurable(false));
 
-      session.createQueue(queueName2, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setDurable(false));
 
-      session.createQueue(queueName3, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setDurable(false));
 
       ClientProducer producer1 = session.createProducer(queueName1);
       ClientConsumer consumer1 = session.createConsumer(queueName1);
@@ -491,7 +488,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -533,7 +530,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -569,7 +566,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -621,7 +618,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -661,9 +658,9 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queue2 = new SimpleString("queue2");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
-      session.createQueue(queue2, queue2, null, false);
+      session.createQueue(new QueueConfiguration(queue2).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -741,7 +738,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -810,7 +807,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -881,7 +878,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -951,7 +948,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1013,7 +1010,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, true);
+      session.createQueue(new QueueConfiguration(queueName));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1091,7 +1088,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1182,7 +1179,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1218,7 +1215,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1257,7 +1254,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1288,7 +1285,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1322,7 +1319,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1358,7 +1355,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1395,7 +1392,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1433,7 +1430,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1462,7 +1459,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1504,7 +1501,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1563,7 +1560,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1603,7 +1600,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1644,7 +1641,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1680,7 +1677,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
@@ -1721,7 +1718,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       ClientProducer producer = session.createProducer(queueName);
 
@@ -1761,7 +1758,7 @@ public class DuplicateDetectionTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createQueue(queueName, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setDurable(false));
 
       producer = session.createProducer(queueName);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java
index 7bf2ce0..55be4d2 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration;
 
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -87,7 +88,7 @@ public class SimpleTest extends ActiveMQTestBase {
       final String addressName = "simpleAddress";
 
       // Create a queue bound to a particular address where the test will send to & consume from.
-      session.createQueue(addressName, RoutingType.ANYCAST, queueName);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
 
       // Create a producer to send a message to the previously created address.
       ClientProducer producer = session.createProducer(addressName);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SingleServerSimpleTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SingleServerSimpleTest.java
index b89726b..1cb7c8e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SingleServerSimpleTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SingleServerSimpleTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration;
 
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -44,7 +45,7 @@ public class SingleServerSimpleTest extends SingleServerTestBase {
       final String addressName = "simpleAddress";
 
       // Create a queue bound to a particular address where the test will send to & consume from.
-      session.createQueue(addressName, RoutingType.ANYCAST, queueName);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
 
       // Create a producer to send a message to the previously created address.
       ClientProducer producer = session.createProducer(addressName);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/String64KLimitTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/String64KLimitTest.java
index 5857173..588ef11 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/String64KLimitTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/String64KLimitTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -69,7 +70,7 @@ public class String64KLimitTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientConsumer consumer = session.createConsumer(queue);
@@ -133,7 +134,7 @@ public class String64KLimitTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientConsumer consumer = session.createConsumer(queue);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java
index 859c613..47a9160 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java
@@ -20,6 +20,7 @@ package org.apache.activemq.artemis.tests.integration.addressing;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -44,7 +45,7 @@ public class AddressConfigTest extends ActiveMQTestBase {
 
    @Test
    public void persistAddressConfigTest() throws Exception {
-      server.createQueue(SimpleString.toSimpleString("myAddress"), RoutingType.MULTICAST, SimpleString.toSimpleString("myQueue"), null, true, false);
+      server.createQueue(new QueueConfiguration("myQueue").setAddress("myAddress"));
       server.stop();
       server.start();
       AddressInfo addressInfo = server.getAddressInfo(SimpleString.toSimpleString("myAddress"));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
index 5a905b8..aed19c6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
@@ -23,6 +23,7 @@ import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQQueueMaxConsumerLimitReached;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -75,8 +76,8 @@ public class AddressingTest extends ActiveMQTestBase {
          addressInfo.addRoutingType(RoutingType.MULTICAST);
 
          server.addOrUpdateAddressInfo(addressInfo);
-         Queue q1 = server.createQueue(new SimpleString(consumeAddress), RoutingType.MULTICAST, new SimpleString(consumeAddress + ".1"), null, true, false);
-         Queue q2 = server.createQueue(new SimpleString(consumeAddress), RoutingType.MULTICAST, new SimpleString(consumeAddress + ".2"), null, true, false);
+         Queue q1 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".1")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.MULTICAST));
+         Queue q2 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".2")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.MULTICAST));
 
          ClientSession session = sessionFactory.createSession();
          session.start();
@@ -113,8 +114,8 @@ public class AddressingTest extends ActiveMQTestBase {
          addressInfo.addRoutingType(RoutingType.ANYCAST);
 
          server.addOrUpdateAddressInfo(addressInfo);
-         Queue q1 = server.createQueue(new SimpleString(consumeAddress), RoutingType.ANYCAST, new SimpleString(consumeAddress + ".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-         Queue q2 = server.createQueue(new SimpleString(consumeAddress), RoutingType.ANYCAST, new SimpleString(consumeAddress + ".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+         Queue q1 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".1")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+         Queue q2 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".2")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
          ClientSession session = sessionFactory.createSession();
          session.start();
@@ -147,9 +148,9 @@ public class AddressingTest extends ActiveMQTestBase {
       addressInfo.addRoutingType(RoutingType.ANYCAST);
 
       server.addOrUpdateAddressInfo(addressInfo);
-      Queue q1 = server.createQueue(address, RoutingType.ANYCAST, address.concat(".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q2 = server.createQueue(address, RoutingType.ANYCAST, address.concat(".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q3 = server.createQueue(address, RoutingType.ANYCAST, address.concat(".3"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(address.concat(".1")).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q2 = server.createQueue(new QueueConfiguration(address.concat(".2")).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q3 = server.createQueue(new QueueConfiguration(address.concat(".3")).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
       ClientSession session = sessionFactory.createSession();
       session.start();
@@ -200,8 +201,8 @@ public class AddressingTest extends ActiveMQTestBase {
       for (String consumeAddress : testAddresses) {
 
          // For each address, create 2 Queues with the same address, assert both queues receive message
-         Queue q1 = server.createQueue(new SimpleString(consumeAddress), RoutingType.MULTICAST, new SimpleString(consumeAddress + ".1"), null, true, false);
-         Queue q2 = server.createQueue(new SimpleString(consumeAddress), RoutingType.MULTICAST, new SimpleString(consumeAddress + ".2"), null, true, false);
+         Queue q1 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".1")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.MULTICAST));
+         Queue q2 = server.createQueue(new QueueConfiguration(new SimpleString(consumeAddress + ".2")).setAddress(new SimpleString(consumeAddress)).setRoutingType(RoutingType.MULTICAST));
 
          ClientSession session = sessionFactory.createSession();
          session.start();
@@ -227,7 +228,7 @@ public class AddressingTest extends ActiveMQTestBase {
    public void testPurgeOnNoConsumersTrue() throws Exception {
       SimpleString address = new SimpleString("test.address");
       SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString());
-      server.createQueue(address, RoutingType.ANYCAST, queueName, null, null, true, false, false, false, false, 1, true, true);
+      server.createQueue(new QueueConfiguration(queueName).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1).setPurgeOnNoConsumers(true));
       Queue queue = server.locateQueue(queueName);
       assertNotNull(queue);
       ClientSession session = sessionFactory.createSession();
@@ -257,7 +258,7 @@ public class AddressingTest extends ActiveMQTestBase {
    public void testPurgeOnNoConsumersFalse() throws Exception {
       SimpleString address = new SimpleString("test.address");
       SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString());
-      server.createQueue(address, RoutingType.ANYCAST, queueName, null, null, true, false, false, false, false, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueName).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1));
       assertNotNull(server.locateQueue(queueName));
       ClientSession session = sessionFactory.createSession();
       ClientProducer producer = session.createProducer(address);
@@ -273,7 +274,7 @@ public class AddressingTest extends ActiveMQTestBase {
       SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString());
       // For each address, create 2 Queues with the same address, assert both queues receive message
       boolean purgeOnNoConsumers = false;
-      Queue q1 = server.createQueue(address, RoutingType.MULTICAST, queueName, null, true, false, 0, purgeOnNoConsumers, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(queueName).setAddress(address).setMaxConsumers(0).setPurgeOnNoConsumers(purgeOnNoConsumers));
 
       Exception expectedException = null;
       String expectedMessage = "Maximum Consumer Limit Reached on Queue";
@@ -299,7 +300,7 @@ public class AddressingTest extends ActiveMQTestBase {
       SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString());
       // For each address, create 2 Queues with the same address, assert both queues receive message
       boolean purgeOnNoConsumers = false;
-      Queue q1 = server.createQueue(address, RoutingType.MULTICAST, queueName, null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, purgeOnNoConsumers, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(queueName).setAddress(address).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED).setPurgeOnNoConsumers(purgeOnNoConsumers));
 
       ClientSession session = sessionFactory.createSession();
       session.start();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AnycastTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AnycastTest.java
index 05747aa..89246a5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AnycastTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AnycastTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.addressing;
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -66,8 +67,8 @@ public class AnycastTest extends ActiveMQTestBase {
    @Test
    public void testTxCommitReceive() throws Exception {
 
-      Queue q1 = server.createQueue(baseAddress, RoutingType.ANYCAST, baseAddress.concat(".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q2 = server.createQueue(baseAddress, RoutingType.ANYCAST, baseAddress.concat(".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(baseAddress.concat(".1")).setAddress(baseAddress).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q2 = server.createQueue(new QueueConfiguration(baseAddress.concat(".2")).setAddress(baseAddress).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
       ClientSession session = sessionFactory.createSession(false, false);
       session.start();
@@ -113,8 +114,8 @@ public class AnycastTest extends ActiveMQTestBase {
    @Test
    public void testTxRollbackReceive() throws Exception {
 
-      Queue q1 = server.createQueue(baseAddress, RoutingType.ANYCAST, baseAddress.concat(".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q2 = server.createQueue(baseAddress, RoutingType.ANYCAST, baseAddress.concat(".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(baseAddress.concat(".1")).setAddress(baseAddress).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q2 = server.createQueue(new QueueConfiguration(baseAddress.concat(".2")).setAddress(baseAddress).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
       ClientSession session = sessionFactory.createSession(false, false);
       session.start();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/MulticastTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/MulticastTest.java
index dac2b9a..e5e5187 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/MulticastTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/MulticastTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.addressing;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -66,8 +67,8 @@ public class MulticastTest extends ActiveMQTestBase {
    @Test
    public void testTxCommitReceive() throws Exception {
 
-      Queue q1 = server.createQueue(baseAddress, RoutingType.MULTICAST, baseAddress.concat(".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q2 = server.createQueue(baseAddress, RoutingType.MULTICAST, baseAddress.concat(".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(baseAddress.concat(".1")).setAddress(baseAddress).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q2 = server.createQueue(new QueueConfiguration(baseAddress.concat(".2")).setAddress(baseAddress).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
       ClientSession session = sessionFactory.createSession(false, false);
       session.start();
@@ -113,8 +114,8 @@ public class MulticastTest extends ActiveMQTestBase {
    @Test
    public void testTxRollbackReceive() throws Exception {
 
-      Queue q1 = server.createQueue(baseAddress, RoutingType.MULTICAST, baseAddress.concat(".1"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
-      Queue q2 = server.createQueue(baseAddress, RoutingType.MULTICAST, baseAddress.concat(".2"), null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, false, true);
+      Queue q1 = server.createQueue(new QueueConfiguration(baseAddress.concat(".1")).setAddress(baseAddress).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
+      Queue q2 = server.createQueue(new QueueConfiguration(baseAddress.concat(".2")).setAddress(baseAddress).setMaxConsumers(Queue.MAX_CONSUMERS_UNLIMITED));
 
       ClientSession session = sessionFactory.createSession(false, false);
       session.start();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/TwoWaysRemoveAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/TwoWaysRemoveAddressTest.java
index 5ffe42e..b3dd24c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/TwoWaysRemoveAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/TwoWaysRemoveAddressTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.CyclicBarrier;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -55,7 +56,7 @@ public class TwoWaysRemoveAddressTest extends ActiveMQTestBase {
 
                for (int i = 0; i < retries; i++) {
                   logger.debug("Removed queue on thread 1 ::" + i);
-                  server.createQueue(SimpleString.toSimpleString("address_1_" + i), RoutingType.ANYCAST, SimpleString.toSimpleString("queueName_1_" + i), null, true, false);
+                  server.createQueue(new QueueConfiguration("queueName_1_" + i).setAddress("address_1_" + i).setRoutingType(RoutingType.ANYCAST));
                   server.destroyQueue(SimpleString.toSimpleString("queueName_1_" + i));
                }
             } catch (Throwable e) {
@@ -74,7 +75,7 @@ public class TwoWaysRemoveAddressTest extends ActiveMQTestBase {
 
                for (int i = 0; i < retries; i++) {
                   logger.debug("Removed queue on thread 2 ::" + i);
-                  server.createQueue(SimpleString.toSimpleString("address_2_" + i), RoutingType.ANYCAST, SimpleString.toSimpleString("queueName_2_" + i), null, true, false);
+                  server.createQueue(new QueueConfiguration("queueName_2_" + i).setAddress("address_2_" + i).setRoutingType(RoutingType.ANYCAST));
                   server.removeAddressInfo(SimpleString.toSimpleString("address_2_" + i), null, true);
                }
             } catch (Throwable e) {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeApplicationPropertiesTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeApplicationPropertiesTest.java
index 43aea33..7b33de1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeApplicationPropertiesTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeApplicationPropertiesTest.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -118,10 +119,10 @@ public class AmqpBridgeApplicationPropertiesTest extends AmqpClientTestSupport {
       server0.start();
       server1.start();
 
-      server0.createQueue(customNotificationQueue, RoutingType.ANYCAST, customNotificationQueue, null, true, false);
-      server0.createQueue(frameworkNotificationsQueue, RoutingType.ANYCAST, frameworkNotificationsQueue, null, true, false);
-      server1.createQueue(bridgeNotificationsQueue, RoutingType.ANYCAST, bridgeNotificationsQueue, null, true, false);
-      server1.createQueue(notificationsQueue, RoutingType.MULTICAST, notificationsQueue, null, true, false);
+      server0.createQueue(new QueueConfiguration(customNotificationQueue).setRoutingType(RoutingType.ANYCAST));
+      server0.createQueue(new QueueConfiguration(frameworkNotificationsQueue).setRoutingType(RoutingType.ANYCAST));
+      server1.createQueue(new QueueConfiguration(bridgeNotificationsQueue).setRoutingType(RoutingType.ANYCAST));
+      server1.createQueue(new QueueConfiguration(notificationsQueue));
 
       server0.deployBridge(new BridgeConfiguration().setName("notifications-bridge").setQueueName(frameworkNotificationsQueue.toString()).setForwardingAddress(bridgeNotificationsQueue.toString()).setConfirmationWindowSize(10).setStaticConnectors(Arrays.asList("notification-broker")).setTransformerConfiguration(new TransformerConfiguration(BridgeApplicationPropertiesTransformer.class.getName())));
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeClusterRedistributionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeClusterRedistributionTest.java
index 328f7f9..91f6a24 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeClusterRedistributionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpBridgeClusterRedistributionTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.activemq.artemis.tests.integration.amqp;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -143,14 +144,14 @@ public class AmqpBridgeClusterRedistributionTest extends AmqpClientTestSupport {
       server1.start();
       server2.start();
 
-      server0.createQueue(customNotificationQueue, RoutingType.ANYCAST, customNotificationQueue, null, true, false);
-      server0.createQueue(frameworkNotificationsQueue, RoutingType.ANYCAST, frameworkNotificationsQueue, null, true, false);
+      server0.createQueue(new QueueConfiguration(customNotificationQueue).setRoutingType(RoutingType.ANYCAST));
+      server0.createQueue(new QueueConfiguration(frameworkNotificationsQueue).setRoutingType(RoutingType.ANYCAST));
 
-      server1.createQueue(bridgeNotificationsQueue, RoutingType.ANYCAST, bridgeNotificationsQueue, null, true, false);
-      server1.createQueue(notificationsQueue, RoutingType.MULTICAST, notificationsQueue, null, true, false);
+      server1.createQueue(new QueueConfiguration(bridgeNotificationsQueue).setRoutingType(RoutingType.ANYCAST));
+      server1.createQueue(new QueueConfiguration(notificationsQueue));
 
-      server2.createQueue(bridgeNotificationsQueue, RoutingType.ANYCAST, bridgeNotificationsQueue, null, true, false);
-      server2.createQueue(notificationsQueue, RoutingType.MULTICAST, notificationsQueue, null, true, false);
+      server2.createQueue(new QueueConfiguration(bridgeNotificationsQueue).setRoutingType(RoutingType.ANYCAST));
+      server2.createQueue(new QueueConfiguration(notificationsQueue));
 
       server0.deployBridge(new BridgeConfiguration().setName("notifications-bridge").setQueueName(frameworkNotificationsQueue.toString()).setForwardingAddress(bridgeNotificationsQueue.toString()).setConfirmationWindowSize(10).setStaticConnectors(Arrays.asList("notification-broker")));
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
index a4b63a3..b94e1f7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
@@ -25,6 +25,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -227,20 +228,20 @@ public class AmqpClientTestSupport extends AmqpTestSupport {
    protected void createAddressAndQueues(ActiveMQServer server) throws Exception {
       // Default Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getQueueName()), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(getQueueName()), RoutingType.ANYCAST, SimpleString.toSimpleString(getQueueName()), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(getQueueName()).setRoutingType(RoutingType.ANYCAST));
 
       // Default DLQ
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getDeadLetterAddress()), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(getDeadLetterAddress()), RoutingType.ANYCAST, SimpleString.toSimpleString(getDeadLetterAddress()), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(getDeadLetterAddress()).setRoutingType(RoutingType.ANYCAST));
 
       // Default Topic
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getTopicName()), RoutingType.MULTICAST));
-      server.createQueue(SimpleString.toSimpleString(getTopicName()), RoutingType.MULTICAST, SimpleString.toSimpleString(getTopicName()), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(getTopicName()));
 
       // Additional Test Queues
       for (int i = 0; i < getPrecreatedQueueSize(); ++i) {
          server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getQueueName(i)), RoutingType.ANYCAST));
-         server.createQueue(SimpleString.toSimpleString(getQueueName(i)), RoutingType.ANYCAST, SimpleString.toSimpleString(getQueueName(i)), null, true, false, -1, false, true);
+         server.createQueue(new QueueConfiguration(getQueueName(i)).setRoutingType(RoutingType.ANYCAST));
       }
    }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
index ba9ff23..95c99f1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
@@ -26,6 +26,7 @@ import javax.jms.MessageProducer;
 import javax.jms.Session;
 import javax.jms.Topic;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -95,8 +96,8 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
       String queue1 = "q1";
       String queue2 = "q2";
 
-      server.createQueue(SimpleString.toSimpleString(address1), RoutingType.ANYCAST, SimpleString.toSimpleString(queue1), null, true, false, -1, false, true);
-      server.createQueue(SimpleString.toSimpleString(address2), RoutingType.ANYCAST, SimpleString.toSimpleString(queue2), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address1).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(queue2).setAddress(address2).setRoutingType(RoutingType.ANYCAST));
 
       Exception e = null;
 
@@ -127,8 +128,8 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
       String queue1 = "q1";
       String queue2 = "q2";
 
-      server.createQueue(SimpleString.toSimpleString(address1), RoutingType.MULTICAST, SimpleString.toSimpleString(queue1), null, true, false, -1, false, true);
-      server.createQueue(SimpleString.toSimpleString(address2), RoutingType.MULTICAST, SimpleString.toSimpleString(queue2), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address1));
+      server.createQueue(new QueueConfiguration(queue2).setAddress(address2));
 
       Exception e = null;
 
@@ -156,7 +157,7 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
    public void testTopic() throws Exception {
 
       SimpleString queueName = new SimpleString("someAddress");
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, queueName, null, false, false);
+      server.createQueue(new QueueConfiguration(queueName).setAddress(multicastAddress).setDurable(false));
       Connection connection = createConnection(false);
 
       try {
@@ -204,8 +205,8 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
 
       SimpleString queueName1 = new SimpleString("sub.queue1");
       SimpleString queueName2 = new SimpleString("sub.queue2");
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, queueName1, null, false, false);
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, queueName2, null, false, false);
+      server.createQueue(new QueueConfiguration(queueName1).setAddress(multicastAddress).setDurable(false));
+      server.createQueue(new QueueConfiguration(queueName2).setAddress(multicastAddress).setDurable(false));
       Connection connection = createConnection(false);
 
       try {
@@ -313,7 +314,7 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
     */
    @Test
    public void testQueueSpecial() throws Exception {
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastQ1, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(anycastQ1).setAddress(anycastAddress).setRoutingType(RoutingType.ANYCAST));
 
       Connection connection = createConnection();
       Exception expectedException = null;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageDivertsTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageDivertsTest.java
index 0613801..483d557 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageDivertsTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageDivertsTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.amqp;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ComponentConfigurationRoutingType;
@@ -44,7 +45,7 @@ public class AmqpMessageDivertsTest extends AmqpClientTestSupport {
    public void runQueueReceiverReadMessageWithDivert(String routingType) throws Exception {
       final String forwardingAddress = getQueueName() + "Divert";
       final SimpleString simpleForwardingAddress = SimpleString.toSimpleString(forwardingAddress);
-      server.createQueue(simpleForwardingAddress, RoutingType.ANYCAST, simpleForwardingAddress, null, true, false);
+      server.createQueue(new QueueConfiguration(simpleForwardingAddress).setRoutingType(RoutingType.ANYCAST));
       server.getActiveMQServerControl().createDivert("name", "routingName", getQueueName(), forwardingAddress, true, null, null, routingType);
 
       sendMessages(getQueueName(), 1);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageRoutingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageRoutingTest.java
index 774b3a2..89f3ebc 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageRoutingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpMessageRoutingTest.java
@@ -23,6 +23,7 @@ import javax.jms.MessageProducer;
 import javax.jms.Session;
 import javax.jms.Topic;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl;
@@ -57,9 +58,9 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
 
       ActiveMQServerControl serverControl = server.getActiveMQServerControl();
       serverControl.createAddress(addressA, RoutingType.ANYCAST.toString() + "," + RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueA, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueB, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueC, RoutingType.MULTICAST.toString());
+      serverControl.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
 
       sendMessages("anycast://" + addressA, 1);
 
@@ -76,9 +77,9 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
 
       ActiveMQServerControl serverControl = server.getActiveMQServerControl();
       serverControl.createAddress(addressA, RoutingType.ANYCAST.toString() + "," + RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueA, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueB, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueC, RoutingType.MULTICAST.toString());
+      serverControl.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
 
       sendMessages(addressA, 1, RoutingType.ANYCAST);
 
@@ -95,9 +96,9 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
 
       ActiveMQServerControl serverControl = server.getActiveMQServerControl();
       serverControl.createAddress(addressA, RoutingType.ANYCAST.toString() + "," + RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueA, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueB, RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueC, RoutingType.MULTICAST.toString());
+      serverControl.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
 
       sendMessages("multicast://" + addressA, 1);
 
@@ -114,9 +115,9 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
 
       ActiveMQServerControl serverControl = server.getActiveMQServerControl();
       serverControl.createAddress(addressA, RoutingType.ANYCAST.toString() + "," + RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueA, RoutingType.ANYCAST.toString());
-      serverControl.createQueue(addressA, queueB, RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, queueC, RoutingType.MULTICAST.toString());
+      serverControl.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
+      serverControl.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setRoutingType(RoutingType.MULTICAST).toJSON());
 
       sendMessages(addressA, 1, RoutingType.MULTICAST);
 
@@ -143,7 +144,7 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
       addressInfo.addRoutingType(RoutingType.ANYCAST);
 
       server.addAddressInfo(addressInfo);
-      server.createQueue(ssTestAddress, RoutingType.ANYCAST, ssTestAddress, null, true, false);
+      server.createQueue(new QueueConfiguration(ssTestAddress).setRoutingType(RoutingType.ANYCAST));
 
       Connection connection = createConnection(UUIDGenerator.getInstance().generateStringUUID());
 
@@ -188,7 +189,7 @@ public class AmqpMessageRoutingTest extends JMSClientTestSupport {
 
       ActiveMQServerControl serverControl = server.getActiveMQServerControl();
       serverControl.createAddress(addressA, RoutingType.ANYCAST.toString() + "," + RoutingType.MULTICAST.toString());
-      serverControl.createQueue(addressA, addressA, RoutingType.ANYCAST.toString());
+      serverControl.createQueue(new QueueConfiguration(addressA).setRoutingType(RoutingType.ANYCAST).toJSON());
       try {
          Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpPurgeOnNoConsumersTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpPurgeOnNoConsumersTest.java
index ae4849b..04097f4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpPurgeOnNoConsumersTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpPurgeOnNoConsumersTest.java
@@ -25,6 +25,7 @@ import javax.jms.TextMessage;
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -52,7 +53,7 @@ public class AmqpPurgeOnNoConsumersTest extends AmqpClientTestSupport {
       SimpleString ssQueue = new SimpleString(queue);
 
       server.addAddressInfo(new AddressInfo(ssQueue, RoutingType.ANYCAST));
-      server.createQueue(ssQueue, RoutingType.ANYCAST, ssQueue, null, true, false, 1, true, false);
+      server.createQueue(new QueueConfiguration(ssQueue).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1).setPurgeOnNoConsumers(true).setAutoCreateAddress(false));
 
       AmqpClient client = createAmqpClient();
       connection = addConnection(client.connect());
@@ -107,7 +108,7 @@ public class AmqpPurgeOnNoConsumersTest extends AmqpClientTestSupport {
       String queue = "purgeQueue";
       SimpleString ssQueue = new SimpleString(queue);
       server.addAddressInfo(new AddressInfo(ssQueue, RoutingType.ANYCAST));
-      server.createQueue(ssQueue, RoutingType.ANYCAST, ssQueue, null, true, false, 1, true, false);
+      server.createQueue(new QueueConfiguration(ssQueue).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1).setPurgeOnNoConsumers(true).setAutoCreateAddress(false));
 
       ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:5672");
       Connection connection = cf.createConnection();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpSendReceiveTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpSendReceiveTest.java
index dda89ec..d11faad 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpSendReceiveTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpSendReceiveTest.java
@@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.jms.Topic;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
@@ -1084,7 +1085,7 @@ public class AmqpSendReceiveTest extends AmqpClientTestSupport {
       String queueName = "TestQueueName";
       String address = "TestAddress";
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(address), RoutingType.ANYCAST));
-      server.createQueue(new SimpleString(address), RoutingType.ANYCAST, new SimpleString(queueName), null, true, false);
+      server.createQueue(new QueueConfiguration(new SimpleString(queueName)).setAddress(new SimpleString(address)).setRoutingType(RoutingType.ANYCAST));
 
       AmqpClient client = createAmqpClient();
       AmqpConnection connection = addConnection(client.connect());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpTransactionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpTransactionTest.java
index 84a4927..b6e04ec 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpTransactionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpTransactionTest.java
@@ -16,11 +16,6 @@
  */
 package org.apache.activemq.artemis.tests.integration.amqp;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.DeliveryMode;
@@ -28,9 +23,13 @@ import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
-import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.Queue;
 import org.apache.activemq.artemis.tests.util.Wait;
 import org.apache.activemq.transport.amqp.client.AmqpClient;
@@ -856,7 +855,7 @@ public class AmqpTransactionTest extends AmqpClientTestSupport {
    public void testSendPersistentTX() throws Exception {
       int MESSAGE_COUNT = 2000;
       AtomicInteger errors = new AtomicInteger(0);
-      server.createQueue(SimpleString.toSimpleString("q1"), RoutingType.ANYCAST, SimpleString.toSimpleString("q1"), null, true, false, 1, false, true);
+      server.createQueue(new QueueConfiguration("q1").setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1));
       ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + AMQP_PORT);
       Connection sendConnection = factory.createConnection();
       Connection consumerConnection = factory.createConnection();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedAnycastConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedAnycastConsumerTest.java
index 7f0fdd8..00b48a1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedAnycastConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedAnycastConsumerTest.java
@@ -21,6 +21,7 @@ import static org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.TO
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -48,7 +49,7 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQueueOnAddressSameName() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
 
       sendMessages(address.toString(), 1);
 
@@ -69,8 +70,8 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQueueOnAddressSameNameMultipleQueues() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, queue1, null, true, false);
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
 
       sendMessages(address.toString(), 2);
 
@@ -91,7 +92,7 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQueueOnAddressDifferentName() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, queue1, null, true, false);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address).setRoutingType(RoutingType.ANYCAST));
 
       sendMessages(address.toString(), 1);
 
@@ -112,8 +113,8 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQueueOnAddressDifferentNameMultipleQueues() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, queue1, null, true, false);
-      server.createQueue(address, RoutingType.ANYCAST, queue2, null, true, false);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(queue2).setAddress(address).setRoutingType(RoutingType.ANYCAST));
 
       sendMessages(address.toString(), 1);
 
@@ -134,7 +135,7 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQualifiedQueueOnAddressSameName() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.ANYCAST));
-      server.createQueue(address, RoutingType.ANYCAST, queue1, null, true, false);
+      server.createQueue(new QueueConfiguration(queue1).setAddress(address).setRoutingType(RoutingType.ANYCAST));
 
       sendMessages(address.toString(), 1);
 
@@ -215,7 +216,7 @@ public class BrokerDefinedAnycastConsumerTest extends AmqpClientTestSupport  {
       addressInfo.getRoutingTypes().add(RoutingType.ANYCAST);
       addressInfo.getRoutingTypes().add(RoutingType.MULTICAST);
       server.addAddressInfo(addressInfo);
-      server.createQueue(address, RoutingType.MULTICAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address));
 
       AmqpClient client = createAmqpClient();
       AmqpConnection connection = addConnection(client.connect());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedMulticastConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedMulticastConsumerTest.java
index bdf6258..5300447 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedMulticastConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/BrokerDefinedMulticastConsumerTest.java
@@ -21,6 +21,7 @@ import static org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.TO
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -42,7 +43,7 @@ public class BrokerDefinedMulticastConsumerTest extends AmqpClientTestSupport  {
    @Test(timeout = 60000)
    public void testConsumeFromSingleQueueOnAddressSameName() throws Exception {
       server.addAddressInfo(new AddressInfo(address, RoutingType.MULTICAST));
-      server.createQueue(address, RoutingType.MULTICAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address));
 
       sendMessages(address.toString(), 1);
 
@@ -87,7 +88,7 @@ public class BrokerDefinedMulticastConsumerTest extends AmqpClientTestSupport  {
       addressInfo.getRoutingTypes().add(RoutingType.MULTICAST);
       addressInfo.getRoutingTypes().add(RoutingType.ANYCAST);
       server.addAddressInfo(addressInfo);
-      server.createQueue(address, RoutingType.MULTICAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address));
 
       AmqpClient client = createAmqpClient();
       AmqpConnection connection = addConnection(client.connect());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ClientDefinedMultiConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ClientDefinedMultiConsumerTest.java
index 51c70ee..e2085a4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ClientDefinedMultiConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ClientDefinedMultiConsumerTest.java
@@ -20,6 +20,7 @@ import static org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.TO
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -76,7 +77,7 @@ public class ClientDefinedMultiConsumerTest extends AmqpClientTestSupport  {
       AddressInfo addressInfo = new AddressInfo(address);
       addressInfo.getRoutingTypes().add(RoutingType.MULTICAST);
       server.addAddressInfo(addressInfo);
-      server.createQueue(address, RoutingType.MULTICAST, SimpleString.toSimpleString("myClientId.mySub:shared-volatile"), null, true, false, -1, false, false);
+      server.createQueue(new QueueConfiguration("myClientId.mySub:shared-volatile").setAddress(address).setAutoCreateAddress(false));
       AmqpClient client = createAmqpClient();
 
       AmqpConnection connection = addConnection(client.connect("myClientId"));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ExtremeCancelsTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ExtremeCancelsTest.java
index f3ef6a4..83b4cbe 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ExtremeCancelsTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/ExtremeCancelsTest.java
@@ -29,6 +29,7 @@ import java.util.Collection;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
@@ -67,7 +68,7 @@ public class ExtremeCancelsTest extends JMSClientTestSupport {
    @Test(timeout = 120000)
    public void testLotsOfCloseOpenConsumer() throws Exception {
 
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastAddress, null, true, false);
+      server.createQueue(new QueueConfiguration(anycastAddress).setRoutingType(RoutingType.ANYCAST));
 
       AtomicInteger errors = new AtomicInteger(0);
       AtomicBoolean runnning = new AtomicBoolean(true);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSLVQTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSLVQTest.java
index 9eef3e9..844e735 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSLVQTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSLVQTest.java
@@ -25,6 +25,7 @@ import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -55,7 +56,6 @@ public class JMSLVQTest extends JMSClientTestSupport {
       server.getAddressSettingsRepository().addMatch(NORMAL_QUEUE_NAME, new AddressSettings());
       server.getAddressSettingsRepository().addMatch(LVQ_QUEUE_NAME, new AddressSettings().setDefaultLastValueQueue(true));
       server.getAddressSettingsRepository().addMatch(LVQ_CUSTOM_KEY_QUEUE_NAME, new AddressSettings().setDefaultLastValueQueue(true).setDefaultLastValueKey(SimpleString.toSimpleString(CUSTOM_KEY)));
-
    }
 
    @Override
@@ -64,16 +64,16 @@ public class JMSLVQTest extends JMSClientTestSupport {
 
       //Add Standard Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NORMAL_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NORMAL_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NORMAL_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NORMAL_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
 
       //Add LVQ using Default Message.HDR_LAST_VALUE_NAME
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(LVQ_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(LVQ_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(LVQ_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(LVQ_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
       //Add LVQ using Custom Key
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(LVQ_CUSTOM_KEY_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(LVQ_CUSTOM_KEY_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(LVQ_CUSTOM_KEY_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(LVQ_CUSTOM_KEY_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
    }
 
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageTypesTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageTypesTest.java
index 2a62f05..4a1e296 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageTypesTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageTypesTest.java
@@ -31,6 +31,7 @@ import javax.jms.Session;
 import javax.jms.StreamMessage;
 import javax.jms.TextMessage;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.management.AddressControl;
@@ -57,7 +58,7 @@ public class JMSMessageTypesTest extends JMSClientTestSupport {
    @Test(timeout = 60000)
    public void testAddressControlSendMessage() throws Exception {
       SimpleString address = RandomUtil.randomSimpleString();
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
 
       AddressControl addressControl = ManagementControlHelper.createAddressControl(address, mBeanServer);
       Assert.assertEquals(1, addressControl.getQueueNames().length);
@@ -87,7 +88,7 @@ public class JMSMessageTypesTest extends JMSClientTestSupport {
    @Test(timeout = 60000)
    public void testAddressControlSendMessageWithText() throws Exception {
       SimpleString address = RandomUtil.randomSimpleString();
-      server.createQueue(address, RoutingType.ANYCAST, address, null, true, false);
+      server.createQueue(new QueueConfiguration(address).setRoutingType(RoutingType.ANYCAST));
 
       AddressControl addressControl = ManagementControlHelper.createAddressControl(address, mBeanServer);
       Assert.assertEquals(1, addressControl.getQueueNames().length);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSNonDestructiveTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSNonDestructiveTest.java
index 9b31b79..4fa5706 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSNonDestructiveTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSNonDestructiveTest.java
@@ -28,6 +28,7 @@ import java.util.Arrays;
 import java.util.Collection;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.management.QueueControl;
@@ -86,19 +87,19 @@ public class JMSNonDestructiveTest extends JMSClientTestSupport {
 
       //Add Non Destructive Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NON_DESTRUCTIVE_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NON_DESTRUCTIVE_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NON_DESTRUCTIVE_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NON_DESTRUCTIVE_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
       //Add Non Destructive Expiry Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NON_DESTRUCTIVE_EXPIRY_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NON_DESTRUCTIVE_EXPIRY_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NON_DESTRUCTIVE_EXPIRY_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NON_DESTRUCTIVE_EXPIRY_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
       //Add Non Destructive Last Value Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NON_DESTRUCTIVE_LVQ_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NON_DESTRUCTIVE_LVQ_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NON_DESTRUCTIVE_LVQ_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NON_DESTRUCTIVE_LVQ_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
       //Add  Non Destructive Last Value Queue for Tombstone Test
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NON_DESTRUCTIVE_TOMBSTONE_LVQ_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NON_DESTRUCTIVE_TOMBSTONE_LVQ_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NON_DESTRUCTIVE_TOMBSTONE_LVQ_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NON_DESTRUCTIVE_TOMBSTONE_LVQ_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
 
    }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSSelectorTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSSelectorTest.java
index 56c83d2..7c7630a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSSelectorTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSSelectorTest.java
@@ -24,6 +24,8 @@ import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
+
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -56,7 +58,7 @@ public class JMSSelectorTest extends JMSClientTestSupport {
 
       //Add Standard Queue
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(NORMAL_QUEUE_NAME), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString(NORMAL_QUEUE_NAME), RoutingType.ANYCAST, SimpleString.toSimpleString(NORMAL_QUEUE_NAME), null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(NORMAL_QUEUE_NAME).setRoutingType(RoutingType.ANYCAST));
    }
 
    @Test
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSTransactedRedeliveryBugTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSTransactedRedeliveryBugTest.java
index 9bbb62d..5ac39a7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSTransactedRedeliveryBugTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSTransactedRedeliveryBugTest.java
@@ -25,6 +25,7 @@ import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -50,9 +51,9 @@ public class JMSTransactedRedeliveryBugTest extends JMSClientTestSupport {
    protected void createAddressAndQueues(ActiveMQServer server) throws Exception {
       super.createAddressAndQueues(server);
       server.addAddressInfo(new AddressInfo(INITIAL_QUEUE_SS, RoutingType.ANYCAST));
-      server.createQueue(INITIAL_QUEUE_SS, RoutingType.ANYCAST, INITIAL_QUEUE_SS, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(INITIAL_QUEUE_SS).setRoutingType(RoutingType.ANYCAST));
       server.addAddressInfo(new AddressInfo(FINAL_QUEUE_SS, RoutingType.ANYCAST));
-      server.createQueue(FINAL_QUEUE_SS, RoutingType.ANYCAST, FINAL_QUEUE_SS, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(FINAL_QUEUE_SS).setRoutingType(RoutingType.ANYCAST));
    }
 
    @Override
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/interop/AmqpCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/interop/AmqpCoreTest.java
index ef20384..be79b0f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/interop/AmqpCoreTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/interop/AmqpCoreTest.java
@@ -16,23 +16,23 @@
  */
 package org.apache.activemq.artemis.tests.integration.amqp.interop;
 
-import org.apache.activemq.artemis.api.core.RoutingType;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.MessageHandler;
 import org.apache.activemq.artemis.jms.client.ActiveMQSession;
-import org.apache.activemq.artemis.tests.util.Wait;
 import org.apache.activemq.artemis.tests.integration.amqp.JMSClientTestSupport;
+import org.apache.activemq.artemis.tests.util.Wait;
 import org.apache.qpid.jms.JmsConnectionFactory;
 import org.apache.qpid.jms.JmsTopic;
 import org.junit.Test;
 
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-
 public class AmqpCoreTest extends JMSClientTestSupport {
 
    @Override
@@ -55,9 +55,9 @@ public class AmqpCoreTest extends JMSClientTestSupport {
       try {
          Session session = coreJmsConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          ClientSession coreSession = ((ActiveMQSession) session).getCoreSession();
-         coreSession.createQueue("exampleQueueAddress", RoutingType.MULTICAST, "exampleQueue1");
-         coreSession.createQueue("exampleQueueAddress", RoutingType.MULTICAST, "exampleQueue2");
-         coreSession.createQueue("exampleQueueAddress", RoutingType.MULTICAST, "exampleQueue3");
+         coreSession.createQueue(new QueueConfiguration("exampleQueue1").setAddress("exampleQueueAddress"));
+         coreSession.createQueue(new QueueConfiguration("exampleQueue2").setAddress("exampleQueueAddress"));
+         coreSession.createQueue(new QueueConfiguration("exampleQueue3").setAddress("exampleQueueAddress"));
 
          ClientConsumer consumer1 = coreSession.createConsumer("exampleQueue1");
          CoreMessageHandler handler1 = new CoreMessageHandler(1);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/largemessages/AmqpReplicatedLargeMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/largemessages/AmqpReplicatedLargeMessageTest.java
index a87a82e..53263d3 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/largemessages/AmqpReplicatedLargeMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/largemessages/AmqpReplicatedLargeMessageTest.java
@@ -20,6 +20,7 @@ package org.apache.activemq.artemis.tests.integration.amqp.largemessages;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -64,7 +65,7 @@ public class AmqpReplicatedLargeMessageTest extends AmqpReplicatedTestSupport {
       backupServer.start();
 
       liveServer.getServer().addAddressInfo(new AddressInfo(getQueueName(), RoutingType.ANYCAST));
-      liveServer.getServer().createQueue(getQueueName(), RoutingType.ANYCAST, getQueueName(), null, true, false, -1, false, true);
+      liveServer.getServer().createQueue(new QueueConfiguration(getQueueName()).setRoutingType(RoutingType.ANYCAST));
 
 
       waitForRemoteBackupSynchronization(backupServer.getServer());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/bridge/BridgeRoutingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/bridge/BridgeRoutingTest.java
index 394dc36..3cdfb5a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/bridge/BridgeRoutingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/bridge/BridgeRoutingTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.bridge;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -131,8 +132,8 @@ public class BridgeRoutingTest extends ActiveMQTestBase {
       SimpleString source = SimpleString.toSimpleString("source");
       SimpleString destination = SimpleString.toSimpleString("destination");
 
-      server0.createQueue(source, sourceRoutingType, source, null, true, false);
-      server1.createQueue(destination, destinationRoutingType, destination, null, true, false);
+      server0.createQueue(new QueueConfiguration(source).setRoutingType(sourceRoutingType));
+      server1.createQueue(new QueueConfiguration(destination).setRoutingType(destinationRoutingType));
 
       server0.deployBridge(new BridgeConfiguration()
                               .setRoutingType(bridgeRoutingType)
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/AddressCommandTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/AddressCommandTest.java
index 0bd686f..0dcb468 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/AddressCommandTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/AddressCommandTest.java
@@ -21,6 +21,7 @@ import java.io.PrintStream;
 import java.text.MessageFormat;
 import java.util.EnumSet;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.cli.commands.AbstractAction;
 import org.apache.activemq.artemis.cli.commands.ActionContext;
@@ -107,7 +108,7 @@ public class AddressCommandTest extends JMSTestBase {
       final SimpleString addressSimpleString = new SimpleString(addressName);
       final AddressInfo addressInfo = new AddressInfo(addressSimpleString, EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST));
       server.addAddressInfo(addressInfo);
-      server.createQueue(addressSimpleString, RoutingType.MULTICAST, new SimpleString("queue1"), null, true, false);
+      server.createQueue(new QueueConfiguration(new SimpleString("queue1")).setAddress(addressSimpleString).setRoutingType(RoutingType.MULTICAST));
 
       final DeleteAddress deleteAddress = new DeleteAddress();
       deleteAddress.setName(addressName);
@@ -144,9 +145,9 @@ public class AddressCommandTest extends JMSTestBase {
       // Create bindings
       SimpleString address = new SimpleString("address");
       server.addAddressInfo(new AddressInfo(address, RoutingType.MULTICAST));
-      server.createQueue(address, RoutingType.MULTICAST, new SimpleString("queue1"), null, true, false);
-      server.createQueue(address, RoutingType.MULTICAST, new SimpleString("queue2"), null, true, false);
-      server.createQueue(address, RoutingType.MULTICAST, new SimpleString("queue3"), null, true, false);
+      server.createQueue(new QueueConfiguration(new SimpleString("queue1")).setAddress(address).setRoutingType(RoutingType.MULTICAST));
+      server.createQueue(new QueueConfiguration(new SimpleString("queue2")).setAddress(address).setRoutingType(RoutingType.MULTICAST));
+      server.createQueue(new QueueConfiguration(new SimpleString("queue3")).setAddress(address).setRoutingType(RoutingType.MULTICAST));
 
       DivertConfiguration divertConfiguration = new DivertConfiguration();
       divertConfiguration.setName(address.toString());
@@ -193,7 +194,7 @@ public class AddressCommandTest extends JMSTestBase {
       final SimpleString addressSimpleString = new SimpleString(addressName);
       final AddressInfo addressInfo = new AddressInfo(addressSimpleString, EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST));
       server.addAddressInfo(addressInfo);
-      server.createQueue(addressSimpleString, RoutingType.MULTICAST, new SimpleString("queue1"), null, true, false);
+      server.createQueue(new QueueConfiguration(new SimpleString("queue1")).setAddress(addressSimpleString).setRoutingType(RoutingType.MULTICAST));
 
       final UpdateAddress updateAddress = new UpdateAddress();
       updateAddress.setName(addressName);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/QueueCommandTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/QueueCommandTest.java
index f45c191..7ea05ac 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/QueueCommandTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cli/QueueCommandTest.java
@@ -22,6 +22,7 @@ import java.util.EnumSet;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.cli.commands.AbstractAction;
 import org.apache.activemq.artemis.cli.commands.ActionContext;
@@ -249,7 +250,7 @@ public class QueueCommandTest extends JMSTestBase {
       final boolean oldPurgeOnNoConsumers = false;
       final AddressInfo addressInfo = new AddressInfo(addressSimpleString, EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST));
       server.addAddressInfo(addressInfo);
-      server.createQueue(addressSimpleString, oldRoutingType, queueNameString, null, true, false, oldMaxConsumers, oldPurgeOnNoConsumers, false);
+      server.createQueue(new QueueConfiguration(queueNameString).setAddress(addressSimpleString).setRoutingType(oldRoutingType).setMaxConsumers(oldMaxConsumers).setPurgeOnNoConsumers(oldPurgeOnNoConsumers).setAutoCreateAddress(false));
 
       final int newMaxConsumers = 1;
       final RoutingType newRoutingType = RoutingType.ANYCAST;
@@ -282,7 +283,7 @@ public class QueueCommandTest extends JMSTestBase {
       final Set<RoutingType> supportedRoutingTypes = EnumSet.of(oldRoutingType);
       final AddressInfo addressInfo = new AddressInfo(addressSimpleString, EnumSet.copyOf(supportedRoutingTypes));
       server.addAddressInfo(addressInfo);
-      server.createQueue(addressSimpleString, oldRoutingType, queueNameString, null, true, false, oldMaxConsumers, oldPurgeOnNoConsumers, false);
+      server.createQueue(new QueueConfiguration(queueNameString).setAddress(addressSimpleString).setRoutingType(oldRoutingType).setMaxConsumers(oldMaxConsumers).setPurgeOnNoConsumers(oldPurgeOnNoConsumers).setAutoCreateAddress(false));
 
       final RoutingType newRoutingType = RoutingType.ANYCAST;
       final UpdateQueue updateQueue = new UpdateQueue();
@@ -311,7 +312,7 @@ public class QueueCommandTest extends JMSTestBase {
       final boolean oldPurgeOnNoConsumers = false;
       final AddressInfo addressInfo = new AddressInfo(addressSimpleString, oldRoutingType);
       server.addAddressInfo(addressInfo);
-      server.createQueue(addressSimpleString, oldRoutingType, queueNameString, null, true, false, oldMaxConsumers, oldPurgeOnNoConsumers, false);
+      server.createQueue(new QueueConfiguration(queueNameString).setAddress(addressSimpleString).setRoutingType(oldRoutingType).setMaxConsumers(oldMaxConsumers).setPurgeOnNoConsumers(oldPurgeOnNoConsumers).setAutoCreateAddress(false));
 
       server.locateQueue(queueNameString).addConsumer(new DummyServerConsumer());
       server.locateQueue(queueNameString).addConsumer(new DummyServerConsumer());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AckBatchSizeTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AckBatchSizeTest.java
index 847b69e..452398c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AckBatchSizeTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AckBatchSizeTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -69,7 +70,7 @@ public class AckBatchSizeTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
 
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
          ClientMessage message = (ClientMessage)sendSession.createMessage(false).setAddress(addressA);
@@ -111,7 +112,7 @@ public class AckBatchSizeTest extends ActiveMQTestBase {
       int numMessages = 100;
 
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
          cp.send(sendSession.createMessage(false));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AcknowledgeTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AcknowledgeTest.java
index ce6a229..a6bec7a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AcknowledgeTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AcknowledgeTest.java
@@ -27,6 +27,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQPropertyConversionException;
 import org.apache.activemq.artemis.api.core.ICoreMessage;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -68,7 +69,7 @@ public class AcknowledgeTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession session = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
@@ -98,7 +99,7 @@ public class AcknowledgeTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession session = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 3;
@@ -135,7 +136,7 @@ public class AcknowledgeTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       final ClientSession session = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
@@ -186,7 +187,7 @@ public class AcknowledgeTest extends ActiveMQTestBase {
 
       sessionConsumer.start();
 
-      sessionConsumer.createQueue(addressA, queueA, true);
+      sessionConsumer.createQueue(new QueueConfiguration(queueA).setAddress(addressA));
 
       ClientConsumer consumer = sessionConsumer.createConsumer(queueA);
 
@@ -249,7 +250,7 @@ public class AcknowledgeTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       final ClientSession session = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AddressSettingsTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AddressSettingsTest.java
index d684a67..b27d1ff 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AddressSettingsTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AddressSettingsTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -73,10 +74,10 @@ public class AddressSettingsTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, false);
-      session.createQueue(addressA, queueA, false);
-      session.createQueue(addressB, queueB, false);
-      session.createQueue(dlaA, dlqA, false);
-      session.createQueue(dlaB, dlqB, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqA).setAddress(dlaA).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqB).setAddress(dlaB).setDurable(false));
       ClientSession sendSession = sf.createSession(false, true, true);
       ClientMessage cm = sendSession.createMessage(true);
       cm.getBodyBuffer().writeString("A");
@@ -125,10 +126,10 @@ public class AddressSettingsTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, false);
-      session.createQueue(addressA, queueA, false);
-      session.createQueue(addressB, queueB, false);
-      session.createQueue(dlaA, dlqA, false);
-      session.createQueue(dlaB, dlqB, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqA).setAddress(dlaA).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqB).setAddress(dlaB).setDurable(false));
       ClientSession sendSession = sf.createSession(false, true, true);
       ClientMessage cm = sendSession.createMessage(true);
       cm.getBodyBuffer().writeString("A");
@@ -176,10 +177,10 @@ public class AddressSettingsTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, false);
-      session.createQueue(addressA, queueA, false);
-      session.createQueue(addressB, queueB, false);
-      session.createQueue(dlaA, dlqA, false);
-      session.createQueue(dlaB, dlqB, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqA).setAddress(dlaA).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqB).setAddress(dlaB).setDurable(false));
       ClientSession sendSession = sf.createSession(false, true, true);
       ClientMessage cm = sendSession.createMessage(true);
       cm.getBodyBuffer().writeString("A");
@@ -229,12 +230,12 @@ public class AddressSettingsTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, false);
-      session.createQueue(addressA2, queueA, false);
-      session.createQueue(addressB2, queueB, false);
-      session.createQueue(addressC, queueC, false);
-      session.createQueue(dlaA, dlqA, false);
-      session.createQueue(dlaB, dlqB, false);
-      session.createQueue(dlaC, dlqC, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA2).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB2).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueC).setAddress(addressC).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqA).setAddress(dlaA).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqB).setAddress(dlaB).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqC).setAddress(dlaC).setDurable(false));
       ClientSession sendSession = sf.createSession(false, true, true);
       ClientMessage cm = sendSession.createMessage(true);
       cm.getBodyBuffer().writeString("A");
@@ -298,12 +299,12 @@ public class AddressSettingsTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, false);
-      session.createQueue(addressA2, queueA, false);
-      session.createQueue(addressB2, queueB, false);
-      session.createQueue(addressC, queueC, false);
-      session.createQueue(dlaA, dlqA, false);
-      session.createQueue(dlaB, dlqB, false);
-      session.createQueue(dlaC, dlqC, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA2).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB2).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueC).setAddress(addressC).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqA).setAddress(dlaA).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqB).setAddress(dlaB).setDurable(false));
+      session.createQueue(new QueueConfiguration(dlqC).setAddress(dlaC).setDurable(false));
       ClientSession sendSession = sf.createSession(false, true, true);
       ClientMessage cm = sendSession.createMessage(true);
       ClientMessage cm2 = sendSession.createMessage(true);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteAddressTest.java
index ee78bda..6b82935 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteAddressTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
@@ -50,7 +51,7 @@ public class AutoDeleteAddressTest extends ActiveMQTestBase {
    @Test
    public void testAutoDeleteAutoCreatedAddress() throws Exception {
       // auto-delete-addresses defaults to true
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.getAddressInfo(addressA));
       cf.createSession().createConsumer(queueA).close();
       Wait.assertTrue(() -> server.getAddressInfo(addressA) == null);
@@ -59,7 +60,7 @@ public class AutoDeleteAddressTest extends ActiveMQTestBase {
    @Test
    public void testNegativeAutoDeleteAutoCreatedAddress() throws Exception {
       server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings().setAutoDeleteAddresses(false));
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.getAddressInfo(addressA));
       cf.createSession().createConsumer(queueA).close();
       assertNotNull(server.getAddressInfo(addressA));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteQueueTest.java
index 5bce2cf..87c75b8 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoDeleteQueueTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -54,7 +55,7 @@ public class AutoDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testAutoDeleteAutoCreatedQueueOnLastConsumerClose() throws Exception {
       // auto-delete-queues defaults to true
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.locateQueue(queueA));
       cf.createSession().createConsumer(queueA).close();
       Wait.assertTrue(() -> server.locateQueue(queueA) == null);
@@ -63,7 +64,7 @@ public class AutoDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testAutoDeleteAutoCreatedQueueOnLastMessageRemovedWithoutConsumer() throws Exception {
       // auto-delete-queues defaults to true
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.locateQueue(queueA));
       ClientSession session = cf.createSession();
       ClientProducer producer = session.createProducer(addressA);
@@ -76,7 +77,7 @@ public class AutoDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testAutoDeleteAutoCreatedQueueOnLastMessageExpired() throws Exception {
       // auto-delete-queues defaults to true
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.locateQueue(queueA));
       ClientSession session = cf.createSession();
       ClientProducer producer = session.createProducer(addressA);
@@ -87,7 +88,7 @@ public class AutoDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testNegativeAutoDeleteAutoCreatedQueue() throws Exception {
       server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings().setAutoDeleteQueues(false));
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.locateQueue(queueA));
       cf.createSession().createConsumer(queueA).close();
       assertNotNull(server.locateQueue(queueA));
@@ -96,7 +97,7 @@ public class AutoDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testNegativeAutoDeleteAutoCreatedQueue2() throws Exception {
       server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings());
-      server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true);
+      server.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setAutoCreated(true));
       assertNotNull(server.locateQueue(queueA));
       assertFalse(Wait.waitFor(() -> server.locateQueue(queueA) == null, 5000, 100));
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java
index da86e97..7ed58f5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutogroupIdTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.util.concurrent.CountDownLatch;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -78,7 +79,7 @@ public class AutogroupIdTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(groupTestQ, groupTestQ, null, false);
+      session.createQueue(new QueueConfiguration(groupTestQ).setDurable(false));
 
       ClientProducer producer = session.createProducer(groupTestQ);
 
@@ -121,7 +122,7 @@ public class AutogroupIdTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(groupTestQ, groupTestQ, null, false);
+      session.createQueue(new QueueConfiguration(groupTestQ).setDurable(false));
 
       ClientProducer producer = session.createProducer(groupTestQ);
       ClientProducer producer2 = session.createProducer(groupTestQ);
@@ -167,7 +168,7 @@ public class AutogroupIdTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(groupTestQ, groupTestQ, null, false);
+      session.createQueue(new QueueConfiguration(groupTestQ).setDurable(false));
 
       ClientProducer producer = session.createProducer(groupTestQ);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/BlockingSendTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/BlockingSendTest.java
index a34eb56..896989f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/BlockingSendTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/BlockingSendTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -59,7 +60,7 @@ public class BlockingSendTest extends ActiveMQTestBase {
 
       session = factory.createSession();
 
-      session.createQueue("address", RoutingType.ANYCAST, "queue");
+      session.createQueue(new QueueConfiguration("queue").setAddress("address").setRoutingType(RoutingType.ANYCAST));
 
       ClientProducer prod = session.createProducer("address");
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CommitRollbackTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CommitRollbackTest.java
index 1bb29a3..f70e408 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CommitRollbackTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CommitRollbackTest.java
@@ -20,6 +20,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -55,7 +56,7 @@ public class CommitRollbackTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession session = cf.createSession(false, false, false);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
@@ -85,7 +86,7 @@ public class CommitRollbackTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession session = cf.createSession(false, false, false);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
@@ -120,8 +121,8 @@ public class CommitRollbackTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession session = cf.createSession(false, false, false);
-      sendSession.createQueue(addressA, queueA, false);
-      sendSession.createQueue(addressB, queueB, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientProducer cp2 = sendSession.createProducer(addressB);
       ClientConsumer cc = session.createConsumer(queueA);
@@ -162,7 +163,7 @@ public class CommitRollbackTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       final ClientSession session = cf.createSession(false, true, false);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
@@ -206,7 +207,7 @@ public class CommitRollbackTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       final ClientSession session = cf.createSession(false, true, false);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientConsumer cc = session.createConsumer(queueA);
       int numMessages = 100;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConcurrentCreateDeleteProduceTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConcurrentCreateDeleteProduceTest.java
index 12a7af4..546e55b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConcurrentCreateDeleteProduceTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConcurrentCreateDeleteProduceTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.util.HashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -75,7 +76,7 @@ public class ConcurrentCreateDeleteProduceTest extends ActiveMQTestBase {
       ClientProducer producer = session.createProducer(ADDRESS);
 
       // just to make it page forever
-      Queue serverQueue = server.createQueue(ADDRESS, RoutingType.ANYCAST, SimpleString.toSimpleString("everPage"), null, true, false);
+      Queue serverQueue = server.createQueue(new QueueConfiguration("everPage").setAddress(ADDRESS).setRoutingType(RoutingType.ANYCAST));
       serverQueue.getPageSubscription().getPagingStore().startPaging();
 
       Consumer[] consumers = new Consumer[10];
@@ -120,7 +121,7 @@ public class ConcurrentCreateDeleteProduceTest extends ActiveMQTestBase {
 
             for (int i = 0; i < 100 && running; i++) {
                SimpleString queueName = ADDRESS.concat("_" + sequence.incrementAndGet());
-               session.createQueue(ADDRESS, queueName, true);
+               session.createQueue(new QueueConfiguration(queueName).setAddress(ADDRESS));
                ClientConsumer consumer = session.createConsumer(queueName);
                while (running) {
                   ClientMessage msg = consumer.receive(500);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerCloseTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerCloseTest.java
index d942269..45b95e8 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerCloseTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerCloseTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -284,7 +285,7 @@ public class ConsumerCloseTest extends ActiveMQTestBase {
       sf = createSessionFactory(locator);
 
       session = addClientSession(sf.createSession(false, true, true));
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
    }
 
 }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerFilterTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerFilterTest.java
index 283b1c7..1eee70d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerFilterTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerFilterTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -54,7 +55,7 @@ public class ConsumerFilterTest extends ActiveMQTestBase {
       session = sf.createSession();
 
       session.start();
-      session.createQueue("foo", RoutingType.ANYCAST, "foo");
+      session.createQueue(new QueueConfiguration("foo").setRoutingType(RoutingType.ANYCAST));
 
       producer = session.createProducer("foo");
       consumer = session.createConsumer("foo", "animal='giraffe'");
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerRoundRobinTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerRoundRobinTest.java
index 8350ddc..0de5f3d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerRoundRobinTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerRoundRobinTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -44,7 +45,7 @@ public class ConsumerRoundRobinTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = addClientSession(cf.createSession(false, true, true));
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
 
       ClientConsumer[] consumers = new ClientConsumer[5];
       // start the session before we create the consumers, this is because start is non blocking and we have to
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerStuckTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerStuckTest.java
index d655753..be72733 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerStuckTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerStuckTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -61,7 +62,7 @@ public class ConsumerStuckTest extends ActiveMQTestBase {
       RemotingConnectionImpl remotingConnection = (RemotingConnectionImpl) sf.getConnection();
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -151,7 +152,7 @@ public class ConsumerStuckTest extends ActiveMQTestBase {
       RemotingConnectionImpl remotingConnection = (RemotingConnectionImpl) sf.getConnection();
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       final int numMessages = 10000;
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java
index 9cdf38a..5a73116 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java
@@ -46,6 +46,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException;
 import org.apache.activemq.artemis.api.core.Interceptor;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -126,7 +127,7 @@ public class ConsumerTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
 
-      server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+      server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       session.close();
 
@@ -940,10 +941,10 @@ public class ConsumerTest extends ActiveMQTestBase {
 
          sessions.add(session);
 
-         session.createQueue(QUEUE, QUEUE.concat("" + i), null, true);
+         session.createQueue(new QueueConfiguration(QUEUE.concat("" + i)).setAddress(QUEUE).setDurable(true));
 
          if (i == 0) {
-            session.createQueue(QUEUE_RESPONSE, QUEUE_RESPONSE);
+            session.createQueue(new QueueConfiguration(QUEUE_RESPONSE));
          }
 
          ClientConsumer consumer = session.createConsumer(QUEUE.concat("" + i));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerWindowSizeTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerWindowSizeTest.java
index 2fb737c..843aee1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerWindowSizeTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerWindowSizeTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -104,7 +105,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
 
       ClientSession session = sf.createSession(false, false, false);
-      session.createQueue("testWindow", "testWindow", true);
+      session.createQueue(new QueueConfiguration("testWindow"));
       session.close();
 
       int numConsumers = 5;
@@ -156,7 +157,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          ClientSessionFactory sf = createSessionFactory(locator);
          ClientSession session = sf.createSession(false, false, false);
-         session.createQueue("testReceive", "testReceive", true);
+         session.createQueue(new QueueConfiguration("testReceive"));
          session.close();
 
          ClientSession sessionProd = sf.createSession(false, false);
@@ -203,7 +204,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
 
       ClientSession session = sf.createSession(false, false, false);
-      session.createQueue("testWindow", "testWindow", true);
+      session.createQueue(new QueueConfiguration("testWindow"));
       session.close();
 
       int numConsumers = 5;
@@ -255,7 +256,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
 
       ClientSession session = sf.createSession(false, false, false);
-      session.createQueue("testWindow", "testWindow", true);
+      session.createQueue(new QueueConfiguration("testWindow"));
       session.close();
 
       int numConsumers = 5;
@@ -310,7 +311,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
       {
          ClientSession session = sf.createSession(false, false, false);
-         session.createQueue("testWindow", "testWindow", true);
+         session.createQueue(new QueueConfiguration("testWindow"));
          session.close();
       }
 
@@ -389,7 +390,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
       {
          ClientSession session = sf.createSession(false, false, false);
-         session.createQueue("testWindow", "testWindow", true);
+         session.createQueue(new QueueConfiguration("testWindow"));
          session.close();
       }
 
@@ -445,7 +446,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession receiveSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientConsumer receivingConsumer = receiveSession.createConsumer(queueA);
 
       ClientSession session = cf.createSession(false, true, true);
@@ -496,7 +497,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = addressA;
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          sessionB = sf.createSession(false, true, true);
          sessionB.start();
@@ -577,7 +578,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = addressA;
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          sessionB = sf.createSession(false, true, true);
          sessionB.start();
@@ -695,7 +696,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         session1.createQueue(ADDRESS, ADDRESS, true);
+         session1.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientConsumerInternal cons1 = (ClientConsumerInternal) session1.createConsumer(ADDRESS);
 
@@ -842,7 +843,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         session1.createQueue(ADDRESS, ADDRESS, true);
+         session1.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientConsumerInternal cons1 = (ClientConsumerInternal) session1.createConsumer(ADDRESS);
 
@@ -943,7 +944,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1016,7 +1017,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          sessionB = sf.createSession(false, true, true);
          sessionB.start();
@@ -1158,7 +1159,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          sessionB = sf.createSession(false, true, true);
          sessionB.start();
@@ -1305,7 +1306,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
 
          SimpleString ADDRESS = new SimpleString("some-queue");
 
-         sessionA.createQueue(ADDRESS, ADDRESS, true);
+         sessionA.createQueue(new QueueConfiguration(ADDRESS));
 
          sessionB = sf.createSession(false, true, true);
 
@@ -1397,7 +1398,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
       ActiveMQServer messagingService = createServer(false, isNetty());
 
       messagingService.start();
-      messagingService.createQueue(queueA, RoutingType.ANYCAST, queueA, null, true, false);
+      messagingService.createQueue(new QueueConfiguration(queueA).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
@@ -1419,7 +1420,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
             .getAddressesSettings().put(queueA.toString(), settings);
 
       messagingService.start();
-      messagingService.createQueue(queueA, RoutingType.ANYCAST, queueA, null, true, false);
+      messagingService.createQueue(new QueueConfiguration(queueA).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
@@ -1441,7 +1442,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
             .getAddressesSettings().put(addressA.toString(), settings);
 
       messagingService.start();
-      messagingService.createQueue(addressA, RoutingType.ANYCAST, queueA, null, true, false);
+      messagingService.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
@@ -1468,7 +1469,7 @@ public class ConsumerWindowSizeTest extends ActiveMQTestBase {
          .getAddressesSettings().put("#", settings);
 
       messagingService.start();
-      messagingService.createQueue(queueA, RoutingType.ANYCAST, queueA, null, true, false);
+      messagingService.createQueue(new QueueConfiguration(queueA).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CoreClientTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CoreClientTest.java
index 6090b42..4c3ad12 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CoreClientTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CoreClientTest.java
@@ -28,6 +28,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -118,7 +119,7 @@ public class CoreClientTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -231,7 +232,7 @@ public class CoreClientTest extends ActiveMQTestBase {
          String queueName = UUIDGenerator.getInstance().generateSimpleStringUUID().toString();
          String address = prefix + baseAddress;
 
-         session.createQueue(prefix + baseAddress, null, queueName, null, false);
+         session.createQueue(new QueueConfiguration(queueName).setAddress(prefix + baseAddress).setDurable(false));
          consumerMap.put(address, session.createConsumer(queueName));
       }
 
@@ -239,7 +240,7 @@ public class CoreClientTest extends ActiveMQTestBase {
          String queueName = UUIDGenerator.getInstance().generateSimpleStringUUID().toString();
          String address = prefix + baseAddress;
 
-         session.createQueue(prefix + baseAddress, null, queueName, null, false);
+         session.createQueue(new QueueConfiguration(queueName).setAddress(prefix + baseAddress).setDurable(false));
          consumerMap.put(address, session.createConsumer(queueName));
       }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueIdempotentTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueIdempotentTest.java
index 2b57f06..cd69c36 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueIdempotentTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueIdempotentTest.java
@@ -20,6 +20,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -53,10 +54,10 @@ public class CreateQueueIdempotentTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, true);
+      session.createQueue(new QueueConfiguration(QUEUE));
 
       try {
-         session.createQueue(QUEUE, QUEUE, null, true);
+         session.createQueue(new QueueConfiguration(QUEUE));
          fail("Expected exception, queue already exists");
       } catch (ActiveMQQueueExistsException qee) {
          //ok
@@ -127,7 +128,7 @@ public class CreateQueueIdempotentTest extends ActiveMQTestBase {
             ClientSessionFactory sf = createSessionFactory(locator);
             session = sf.createSession(false, true, true);
             final SimpleString QUEUE = new SimpleString(queueName);
-            session.createQueue(QUEUE, QUEUE, null, true);
+            session.createQueue(new QueueConfiguration(QUEUE));
             queuesCreated.incrementAndGet();
          } catch (ActiveMQQueueExistsException qne) {
             failedAttempts.incrementAndGet();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueTest.java
index 754405b..2fbe62a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/CreateQueueTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -32,9 +35,14 @@ import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
+@RunWith(Parameterized.class)
 public class CreateQueueTest extends ActiveMQTestBase {
 
+   private boolean legacyCreateQueue;
+
    public final SimpleString addressA = new SimpleString("addressA");
    public final SimpleString addressB = new SimpleString("addressB");
    public final SimpleString queueA = new SimpleString("queueA");
@@ -46,6 +54,15 @@ public class CreateQueueTest extends ActiveMQTestBase {
    private ActiveMQServer server;
    private ClientSessionFactory cf;
 
+   @Parameterized.Parameters(name = "legacyCreateQueue={0}")
+   public static Collection<Object[]> getParams() {
+      return Arrays.asList(new Object[][]{{true}, {false}});
+   }
+
+   public CreateQueueTest(boolean legacyCreateQueue) {
+      this.legacyCreateQueue = legacyCreateQueue;
+   }
+
    @Override
    @Before
    public void setUp() throws Exception {
@@ -66,7 +83,11 @@ public class CreateQueueTest extends ActiveMQTestBase {
       EnumSet<RoutingType> routingTypes = EnumSet.of(RoutingType.ANYCAST);
       sendSession.createAddress(addressA, routingTypes, false);
       try {
-         sendSession.createQueue(addressA, RoutingType.MULTICAST, queueA);
+         if (legacyCreateQueue) {
+            sendSession.createQueue(addressA, RoutingType.MULTICAST, queueA);
+         } else {
+            sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA));
+         }
          fail("Creating a queue here should fail since the queue routing type differs from what is supported on the address.");
       } catch (Exception e) {
          assertTrue(e instanceof ActiveMQException);
@@ -77,7 +98,11 @@ public class CreateQueueTest extends ActiveMQTestBase {
       routingTypes = EnumSet.of(RoutingType.MULTICAST);
       sendSession.createAddress(addressB, routingTypes, false);
       try {
-         sendSession.createQueue(addressB, RoutingType.ANYCAST, queueB);
+         if (legacyCreateQueue) {
+            sendSession.createQueue(addressB, RoutingType.ANYCAST, queueB);
+         } else {
+            sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setRoutingType(RoutingType.ANYCAST));
+         }
          fail("Creating a queue here should fail since the queue routing type differs from what is supported on the address.");
       } catch (Exception e) {
          assertTrue(e instanceof ActiveMQException);
@@ -94,7 +119,11 @@ public class CreateQueueTest extends ActiveMQTestBase {
       Set<RoutingType> routingTypes = new HashSet<>();
       routingTypes.add(RoutingType.ANYCAST);
       try {
-         sendSession.createQueue(addressA, RoutingType.MULTICAST, queueA);
+         if (legacyCreateQueue) {
+            sendSession.createQueue(addressA, RoutingType.MULTICAST, queueA);
+         } else {
+            sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA));
+         }
          fail("Creating a queue here should fail since the queue's address doesn't exist and auto-create-addresses = false.");
       } catch (Exception e) {
          assertTrue(e instanceof ActiveMQException);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeadLetterAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeadLetterAddressTest.java
index 8c9b809..c921ff4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeadLetterAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeadLetterAddressTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 import com.sun.management.UnixOperatingSystemMXBean;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -63,8 +64,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(adName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(adName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setAddress(adName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(adName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
@@ -102,8 +103,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(adName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(adName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setAddress(adName).setDurable(false));
       for (int i = 0; i < 10; i++) {
          ClientProducer producer = clientSession.createProducer(adName);
          ClientMessage clientFile = clientSession.createMessage(true);
@@ -132,8 +133,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       //SimpleString dlq = new SimpleString("DLQ1");
-      //clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      //clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
@@ -158,8 +159,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(2).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
@@ -193,8 +194,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(2).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       ClientConsumer clientConsumer = clientSession.createConsumer(qName);
@@ -243,9 +244,9 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
       SimpleString dlq2 = new SimpleString("DLQ2");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(dla, dlq2, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(dlq2).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
@@ -278,7 +279,7 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       SimpleString qName = new SimpleString("q1");
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
@@ -303,8 +304,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(MAX_DELIVERIES).setDeadLetterAddress(dla);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ServerLocator locator = createInVMNonHALocator();
       ClientSessionFactory sessionFactory = createSessionFactory(locator);
       ClientSession sendSession = sessionFactory.createSession(false, true, true);
@@ -382,8 +383,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(deliveryAttempt).setDeadLetterAddress(deadLetterAddress);
       server.getAddressSettingsRepository().setDefault(addressSettings);
 
-      clientSession.createQueue(address, queue, false);
-      clientSession.createQueue(deadLetterAddress, deadLetterQueue, false);
+      clientSession.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(deadLetterQueue).setAddress(deadLetterAddress).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(address);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
@@ -421,8 +422,8 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(deliveryAttempt).setDeadLetterAddress(deadLetterAddress);
       server.getAddressSettingsRepository().addMatch("*", addressSettings);
 
-      clientSession.createQueue(address, queue, false);
-      clientSession.createQueue(deadLetterAddress, deadLetterQueue, false);
+      clientSession.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(deadLetterQueue).setAddress(deadLetterAddress).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(address);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
@@ -464,9 +465,9 @@ public class DeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings specificAddressSettings = new AddressSettings().setMaxDeliveryAttempts(specificeDeliveryAttempt).setDeadLetterAddress(specificDeadLetterAddress);
       server.getAddressSettingsRepository().addMatch(address.toString(), specificAddressSettings);
 
-      clientSession.createQueue(address, queue, false);
-      clientSession.createQueue(defaultDeadLetterAddress, defaultDeadLetterQueue, false);
-      clientSession.createQueue(specificDeadLetterAddress, specificDeadLetterQueue, false);
+      clientSession.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(defaultDeadLetterQueue).setAddress(defaultDeadLetterAddress).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(specificDeadLetterQueue).setAddress(specificDeadLetterAddress).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(address);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeliveryOrderTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeliveryOrderTest.java
index f93c271..c9e7bb7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeliveryOrderTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DeliveryOrderTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -66,7 +67,7 @@ public class DeliveryOrderTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, false, true);
       ClientProducer cp = sendSession.createProducer(addressA);
       int numMessages = 1000;
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       for (int i = 0; i < numMessages; i++) {
          ClientMessage cm = sendSession.createMessage(false);
          cm.getBodyBuffer().writeInt(i);
@@ -91,7 +92,7 @@ public class DeliveryOrderTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, false);
       ClientProducer cp = sendSession.createProducer(addressA);
       int numMessages = 1000;
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       for (int i = 0; i < numMessages; i++) {
          ClientMessage cm = sendSession.createMessage(false);
          cm.getBodyBuffer().writeInt(i);
@@ -119,7 +120,7 @@ public class DeliveryOrderTest extends ActiveMQTestBase {
    public void testMultipleConsumersMessageOrder() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientSession recSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       int numReceivers = 100;
       AtomicInteger count = new AtomicInteger(0);
       int numMessage = 10000;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DurableQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DurableQueueTest.java
index 85b3dd5..53384f5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DurableQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/DurableQueueTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -56,7 +57,7 @@ public class DurableQueueTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, true);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(false));
@@ -76,7 +77,7 @@ public class DurableQueueTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, true);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(true));
@@ -108,7 +109,7 @@ public class DurableQueueTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, true);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address));
 
       session.close();
 
@@ -123,7 +124,7 @@ public class DurableQueueTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, true);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address));
 
       session.close();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpireTestOnRestartTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpireTestOnRestartTest.java
index 2be9db1..84d0515 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpireTestOnRestartTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpireTestOnRestartTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -57,8 +58,8 @@ public class ExpireTestOnRestartTest extends ActiveMQTestBase {
       ClientSessionFactory factory = locator.createSessionFactory();
       ClientSession session = factory.createSession(true, true);
 
-      session.createQueue("test", "test", true);
-      session.createQueue("exp", "exp", true);
+      session.createQueue(new QueueConfiguration("test"));
+      session.createQueue(new QueueConfiguration("exp"));
       ClientProducer prod = session.createProducer("test");
 
       for (int i = 0; i < 10; i++) {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryAddressTest.java
index fc4dec2..c0ebef6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryAddressTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -51,8 +52,8 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString eq = new SimpleString("EA1");
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
       server.getAddressSettingsRepository().addMatch("#", addressSettings);
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(adSend, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setAddress(adSend).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(adSend);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
@@ -84,15 +85,15 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString expiryQueue1 = new SimpleString("expiryQueue1");
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(expiryAddress1);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
-      clientSession.createQueue(expiryAddress1, expiryQueue1, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(expiryQueue1).setAddress(expiryAddress1).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
 
       // override "original" address settings
       SimpleString expiryAddress2 = new SimpleString("expiryAddress2");
       SimpleString expiryQueue2 = new SimpleString("expiryQueue2");
       addressSettings = new AddressSettings().setExpiryAddress(expiryAddress2);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
-      clientSession.createQueue(expiryAddress2, expiryQueue2, null, false);
+      clientSession.createQueue(new QueueConfiguration(expiryQueue2).setAddress(expiryAddress2).setDurable(false));
 
       // send message that will expire ASAP
       ClientProducer producer = clientSession.createProducer(qName);
@@ -134,9 +135,9 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString eq2 = new SimpleString("EQ2");
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(ea, eq2, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(eq2).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
       clientMessage.setExpiration(System.currentTimeMillis());
@@ -192,9 +193,9 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString qName = new SimpleString("q1");
       SimpleString eq = new SimpleString("EQ1");
       SimpleString eq2 = new SimpleString("EQ2");
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(ea, eq2, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(eq2).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ClientProducer producer = clientSession.createProducer(qName);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
       clientMessage.setExpiration(System.currentTimeMillis());
@@ -215,8 +216,8 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
       server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
       SimpleString eq = new SimpleString("EA1");
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
       ServerLocator locator1 = createInVMNonHALocator();
 
       ClientSessionFactory sessionFactory = createSessionFactory(locator1);
@@ -265,8 +266,8 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString eq = new SimpleString("EA1");
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
       server.getAddressSettingsRepository().setDefault(addressSettings);
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(qName);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
@@ -293,8 +294,8 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       SimpleString eq = new SimpleString("EA1");
       AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
       server.getAddressSettingsRepository().addMatch("*", addressSettings);
-      clientSession.createQueue(ea, eq, null, false);
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(eq).setAddress(ea).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(qName);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
@@ -328,9 +329,9 @@ public class ExpiryAddressTest extends ActiveMQTestBase {
       AddressSettings specificAddressSettings = new AddressSettings().setExpiryAddress(specificExpiryAddress);
       server.getAddressSettingsRepository().addMatch("prefix.address", specificAddressSettings);
 
-      clientSession.createQueue(address, queue, false);
-      clientSession.createQueue(defaultExpiryAddress, defaultExpiryQueue, false);
-      clientSession.createQueue(specificExpiryAddress, specificExpiryQueue, false);
+      clientSession.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(defaultExpiryQueue).setAddress(defaultExpiryAddress).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(specificExpiryQueue).setAddress(specificExpiryAddress).setDurable(false));
 
       ClientProducer producer = clientSession.createProducer(address);
       ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryLargeMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryLargeMessageTest.java
index 84885d3..1f0a3ad 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryLargeMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ExpiryLargeMessageTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.io.File;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -75,11 +76,11 @@ public class ExpiryLargeMessageTest extends ActiveMQTestBase {
 
       server.start();
 
-      server.createQueue(EXPIRY, RoutingType.ANYCAST, EXPIRY, null, true, false);
+      server.createQueue(new QueueConfiguration(EXPIRY).setRoutingType(RoutingType.ANYCAST));
 
-      server.createQueue(DLQ, RoutingType.ANYCAST, DLQ, null, true, false);
+      server.createQueue(new QueueConfiguration(DLQ).setRoutingType(RoutingType.ANYCAST));
 
-      server.createQueue(MY_QUEUE, RoutingType.ANYCAST, MY_QUEUE, null, true, false);
+      server.createQueue(new QueueConfiguration(MY_QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       ServerLocator locator = createInVMNonHALocator();
 
@@ -253,11 +254,11 @@ public class ExpiryLargeMessageTest extends ActiveMQTestBase {
 
       server.start();
 
-      server.createQueue(EXPIRY, RoutingType.ANYCAST, EXPIRY, null, true, false);
+      server.createQueue(new QueueConfiguration(EXPIRY).setRoutingType(RoutingType.ANYCAST));
 
-      server.createQueue(DLQ, RoutingType.ANYCAST, DLQ, null, true, false);
+      server.createQueue(new QueueConfiguration(DLQ).setRoutingType(RoutingType.ANYCAST));
 
-      server.createQueue(MY_QUEUE, RoutingType.ANYCAST, MY_QUEUE, null, true, false);
+      server.createQueue(new QueueConfiguration(MY_QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       ServerLocator locator = createInVMNonHALocator();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FullQualifiedQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FullQualifiedQueueTest.java
index 5cbfea7..daaf9e5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FullQualifiedQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FullQualifiedQueueTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -62,12 +63,12 @@ public class FullQualifiedQueueTest extends ActiveMQTestBase {
 
    @Test
    public void testMixedQueues() throws Exception {
-      server.createQueue(mixedAddress, RoutingType.MULTICAST, multicastQ1, null, true, false, -1, false, true);
-      server.createQueue(mixedAddress, RoutingType.MULTICAST, multicastQ2, null, true, false, -1, false, true);
-      server.createQueue(mixedAddress, RoutingType.MULTICAST, multicastQ3, null, true, false, -1, false, true);
-      server.createQueue(mixedAddress, RoutingType.ANYCAST, anycastQ1, null, true, false, -1, false, true);
-      server.createQueue(mixedAddress, RoutingType.ANYCAST, anycastQ2, null, true, false, -1, false, true);
-      server.createQueue(mixedAddress, RoutingType.ANYCAST, anycastQ3, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(multicastQ1).setAddress(mixedAddress));
+      server.createQueue(new QueueConfiguration(multicastQ2).setAddress(mixedAddress));
+      server.createQueue(new QueueConfiguration(multicastQ3).setAddress(mixedAddress));
+      server.createQueue(new QueueConfiguration(anycastQ1).setAddress(mixedAddress).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(anycastQ2).setAddress(mixedAddress).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(anycastQ3).setAddress(mixedAddress).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession();
@@ -132,9 +133,9 @@ public class FullQualifiedQueueTest extends ActiveMQTestBase {
 
    @Test
    public void testMulticastQueues() throws Exception {
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, multicastQ1, null, true, false, -1, false, true);
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, multicastQ2, null, true, false, -1, false, true);
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, multicastQ3, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(multicastQ1).setAddress(multicastAddress));
+      server.createQueue(new QueueConfiguration(multicastQ2).setAddress(multicastAddress));
+      server.createQueue(new QueueConfiguration(multicastQ3).setAddress(multicastAddress));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession();
@@ -173,9 +174,9 @@ public class FullQualifiedQueueTest extends ActiveMQTestBase {
 
    @Test
    public void testAnycastQueues() throws Exception {
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastQ1, null, true, false, -1, false, true);
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastQ2, null, true, false, -1, false, true);
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastQ3, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(anycastQ1).setAddress(anycastAddress).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(anycastQ2).setAddress(anycastAddress).setRoutingType(RoutingType.ANYCAST));
+      server.createQueue(new QueueConfiguration(anycastQ3).setAddress(anycastAddress).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession();
@@ -234,7 +235,7 @@ public class FullQualifiedQueueTest extends ActiveMQTestBase {
 
    @Test
    public void testSpecialCase() throws Exception {
-      server.createQueue(anycastAddress, RoutingType.ANYCAST, anycastQ1, null, true, false, -1, false, true);
+      server.createQueue(new QueueConfiguration(anycastQ1).setAddress(anycastAddress).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HangConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HangConsumerTest.java
index 9b0e648..d900247 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HangConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HangConsumerTest.java
@@ -112,7 +112,7 @@ public class HangConsumerTest extends ActiveMQTestBase {
 
    @Test
    public void testHangOnDelivery() throws Exception {
-      queue = server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+      queue = server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
       try {
 
          ClientSessionFactory factory = locator.createSessionFactory();
@@ -273,15 +273,13 @@ public class HangConsumerTest extends ActiveMQTestBase {
          }
       }
 
-      LocalFactory queueFactory =
-               new LocalFactory(server.getExecutorFactory(), server.getScheduledPool(),
-                                server.getAddressSettingsRepository(), server.getStorageManager(), server);
+      LocalFactory queueFactory = new LocalFactory(server.getExecutorFactory(), server.getScheduledPool(), server.getAddressSettingsRepository(), server.getStorageManager(), server);
 
       queueFactory.setPostOffice(server.getPostOffice());
 
       ((ActiveMQServerImpl) server).replaceQueueFactory(queueFactory);
 
-      queue = server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+      queue = server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       blocked.acquire();
 
@@ -309,7 +307,7 @@ public class HangConsumerTest extends ActiveMQTestBase {
       Assert.assertTrue(latchDelete.await(10, TimeUnit.SECONDS));
 
       try {
-         server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+         server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
       } catch (Exception expected) {
       }
 
@@ -337,7 +335,7 @@ public class HangConsumerTest extends ActiveMQTestBase {
     */
    @Test
    public void testForceDuplicationOnBindings() throws Exception {
-      queue = server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+      queue = server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       ClientSessionFactory factory = locator.createSessionFactory();
       ClientSession session = factory.createSession(false, false, false);
@@ -371,7 +369,7 @@ public class HangConsumerTest extends ActiveMQTestBase {
    // An exception during delivery shouldn't make the message disappear
    @Test
    public void testExceptionWhileDelivering() throws Exception {
-      queue = server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
+      queue = server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       HangInterceptor hangInt = new HangInterceptor();
       try {
@@ -425,7 +423,7 @@ public class HangConsumerTest extends ActiveMQTestBase {
       try {
          for (int i = 0; i < 5; i++) {
             if (server.locateQueue(SimpleString.toSimpleString("tt")) == null) {
-               server.createQueue(SimpleString.toSimpleString("tt"), RoutingType.ANYCAST, SimpleString.toSimpleString("tt"), SimpleString.toSimpleString(Filter.GENERIC_IGNORED_FILTER), true, false);
+               server.createQueue(new QueueConfiguration("tt").setRoutingType(RoutingType.ANYCAST).setFilterString(Filter.GENERIC_IGNORED_FILTER));
             }
 
             server.stop();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
index e32c014..c44a7a0 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
@@ -21,6 +21,7 @@ import javax.management.MBeanServerFactory;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -94,7 +95,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       session.start(xid, XAResource.TMNOFLAGS);
 
@@ -167,7 +168,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       session.start(xid, XAResource.TMNOFLAGS);
 
@@ -245,7 +246,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       session.start(xid, XAResource.TMNOFLAGS);
 
@@ -348,7 +349,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       session.start(xid, XAResource.TMNOFLAGS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InVMNonPersistentMessageBufferTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InVMNonPersistentMessageBufferTest.java
index d35f436..c6d6fd6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InVMNonPersistentMessageBufferTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InVMNonPersistentMessageBufferTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -252,7 +253,7 @@ public class InVMNonPersistentMessageBufferTest extends ActiveMQTestBase {
 
       session = cf.createSession();
 
-      session.createQueue(InVMNonPersistentMessageBufferTest.address, RoutingType.ANYCAST, InVMNonPersistentMessageBufferTest.queueName);
+      session.createQueue(new QueueConfiguration(InVMNonPersistentMessageBufferTest.queueName).setAddress(InVMNonPersistentMessageBufferTest.address).setRoutingType(RoutingType.ANYCAST));
 
       producer = session.createProducer(InVMNonPersistentMessageBufferTest.address);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InterruptedLargeMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InterruptedLargeMessageTest.java
index 2249487..df4bc8c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InterruptedLargeMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/InterruptedLargeMessageTest.java
@@ -117,7 +117,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -158,7 +158,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -220,7 +220,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       SimpleString jmsAddress = new SimpleString("Test");
 
-      server.createQueue(jmsAddress, RoutingType.ANYCAST, jmsAddress, null, true, false);
+      server.createQueue(new QueueConfiguration(jmsAddress).setRoutingType(RoutingType.ANYCAST));
 
       final AtomicInteger unexpectedErrors = new AtomicInteger(0);
       final AtomicInteger expectedErrors = new AtomicInteger(0);
@@ -280,7 +280,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, false);
+      session.createQueue(new QueueConfiguration(ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -339,7 +339,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       server.getPagingManager().getPageStore(ADDRESS).startPaging();
 
@@ -417,7 +417,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
       Xid xid1 = newXID();
       Xid xid2 = newXID();
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -612,7 +612,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -669,7 +669,7 @@ public class InterruptedLargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
index afc6420..aa5a76b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -147,8 +148,8 @@ public class JmsNettyNioStressTest extends ActiveMQTestBase {
 
       Assert.assertTrue(session.addressQuery(SimpleString.toSimpleString("queue")).isExists());
       Assert.assertTrue(session.addressQuery(SimpleString.toSimpleString("queue2")).isExists());
-      session.createQueue("queue", RoutingType.ANYCAST, "queue");
-      session.createQueue("queue2", RoutingType.ANYCAST, "queue2");
+      session.createQueue(new QueueConfiguration("queue").setRoutingType(RoutingType.ANYCAST));
+      session.createQueue(new QueueConfiguration("queue2").setRoutingType(RoutingType.ANYCAST));
       Assert.assertTrue(session.addressQuery(SimpleString.toSimpleString("queue")).isExists());
       Assert.assertTrue(session.addressQuery(SimpleString.toSimpleString("queue2")).isExists());
       session.commit();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java
index c10f2ba..944fff8 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JournalCrashTest.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 
 import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -110,7 +111,7 @@ public class JournalCrashTest extends SpawnedTestBase {
       try (ClientSession session = factory.createSession(false, false)) {
 
          try {
-            session.createQueue(QUEUE, QUEUE, true);
+            session.createQueue(new QueueConfiguration(QUEUE));
          } catch (Exception ignored) {
          }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageAvoidLargeMessagesTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageAvoidLargeMessagesTest.java
index 70c1952..4b46cd1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageAvoidLargeMessagesTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageAvoidLargeMessagesTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -62,7 +63,7 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, true, true));
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -105,7 +106,7 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, true, true));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -157,7 +158,7 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -208,7 +209,7 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -281,8 +282,8 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       session = addClientSession(sf.createSession(false, false, false));
 
-      session.createQueue(ADDRESS, ADDRESS, true);
-      session.createQueue(ADDRESS, ADDRESS.concat("-2"), true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-2")).setAddress(ADDRESS));
 
       SimpleString ADDRESS_DLA = ADDRESS.concat("-dla");
 
@@ -290,7 +291,7 @@ public class LargeMessageAvoidLargeMessagesTest extends LargeMessageTest {
 
       server.getAddressSettingsRepository().addMatch("*", addressSettings);
 
-      session.createQueue(ADDRESS_DLA, ADDRESS_DLA, true);
+      session.createQueue(new QueueConfiguration(ADDRESS_DLA));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageCompressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageCompressTest.java
index 117ca75..bce8375 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageCompressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageCompressTest.java
@@ -25,6 +25,7 @@ import java.io.OutputStream;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -76,7 +77,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -136,7 +137,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -179,7 +180,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -237,7 +238,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -300,7 +301,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -376,7 +377,7 @@ public class LargeMessageCompressTest extends LargeMessageTest {
 
       ClientSession session = addClientSession(sf.createSession(false, false, false));
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageTest.java
index f2ba6c5..e5cc609 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/LargeMessageTest.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -118,7 +119,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -191,7 +192,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = addClientSession(sf.createSession(false, false, false));
 
-      session.createTemporaryQueue(ADDRESS, ADDRESS);
+      session.createQueue(new QueueConfiguration(ADDRESS).setAddress(ADDRESS).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -287,7 +288,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -347,7 +348,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = addClientSession(sf.createSession(!transacted, !transacted, 0));
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -403,8 +404,8 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = addClientSession(sf.createSession(false, false, false));
 
-      session.createQueue(ADDRESS, ADDRESS, true);
-      session.createQueue(ADDRESS, ADDRESS.concat("-2"), true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-2")).setAddress(ADDRESS));
 
       SimpleString ADDRESS_DLA = ADDRESS.concat("-dla");
 
@@ -412,7 +413,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       server.getAddressSettingsRepository().addMatch("*", addressSettings);
 
-      session.createQueue(ADDRESS_DLA, ADDRESS_DLA, true);
+      session.createQueue(new QueueConfiguration(ADDRESS_DLA));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -507,7 +508,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -575,10 +576,10 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
-      session.createQueue(ADDRESS_DLA, ADDRESS_DLA, true);
-      session.createQueue(ADDRESS_EXPIRY, ADDRESS_EXPIRY, true);
+      session.createQueue(new QueueConfiguration(ADDRESS_DLA));
+      session.createQueue(new QueueConfiguration(ADDRESS_EXPIRY));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -683,10 +684,10 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(false, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
-      session.createQueue(ADDRESS_DLA, ADDRESS_DLA, true);
-      session.createQueue(ADDRESS_EXPIRY, ADDRESS_EXPIRY, true);
+      session.createQueue(new QueueConfiguration(ADDRESS_DLA));
+      session.createQueue(new QueueConfiguration(ADDRESS_EXPIRY));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -789,9 +790,9 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(false, false, false);
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
-         session.createQueue(ADDRESS_EXPIRY, ADDRESS_EXPIRY, true);
+         session.createQueue(new QueueConfiguration(ADDRESS_EXPIRY));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -881,7 +882,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(true, true, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -950,11 +951,11 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(false, false, false);
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          SimpleString ADDRESS2 = ADDRESS.concat("-2");
 
-         session.createQueue(ADDRESS2, ADDRESS2, true);
+         session.createQueue(new QueueConfiguration(ADDRESS2));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1025,7 +1026,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(false, false, false);
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1347,8 +1348,8 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
 
-      session.createQueue(ADDRESS, queue[0], null, true);
-      session.createQueue(ADDRESS, queue[1], null, true);
+      session.createQueue(new QueueConfiguration(queue[0]).setAddress(ADDRESS));
+      session.createQueue(new QueueConfiguration(queue[1]).setAddress(ADDRESS));
 
       int numberOfBytes = 400000;
 
@@ -1414,8 +1415,8 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
 
-      session.createQueue(ADDRESS, queue[0], null, true);
-      session.createQueue(ADDRESS, queue[1], null, true);
+      session.createQueue(new QueueConfiguration(queue[0]).setAddress(ADDRESS));
+      session.createQueue(new QueueConfiguration(queue[1]).setAddress(ADDRESS));
 
       int numberOfBytes = 400000;
 
@@ -1480,7 +1481,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(isXA, false, false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       Xid xid = null;
 
@@ -1544,7 +1545,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
          session.start(xid, XAResource.TMNOFLAGS);
       }
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       int numberOfBytes = 200000;
 
@@ -1642,7 +1643,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(null, null, false, false, false, false, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1720,7 +1721,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(null, null, false, false, false, false, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1807,8 +1808,8 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
 
-      session.createQueue(ADDRESS, ADDRESS.concat("-0"), null, true);
-      session.createQueue(ADDRESS, ADDRESS.concat("-1"), null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-0")).setAddress(ADDRESS));
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-1")).setAddress(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -1934,8 +1935,8 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS.concat("-0"), null, true);
-      session.createQueue(ADDRESS, ADDRESS.concat("-1"), null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-0")).setAddress(ADDRESS));
+      session.createQueue(new QueueConfiguration(ADDRESS.concat("-1")).setAddress(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
       int msgId = 0;
@@ -2031,7 +2032,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(null, null, false, true, true, false, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientMessage clientFile = session.createMessage(true);
          clientFile.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE));
@@ -2098,7 +2099,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(null, null, false, true, true, false, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientMessage clientFile = session.createMessage(true);
          clientFile.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE));
@@ -2164,7 +2165,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
          session = sf.createSession(null, null, false, true, true, false, 0);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -2242,7 +2243,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       session = sf.createSession(null, null, false, true, true, false, 0);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -2334,7 +2335,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       fileMessage.releaseResources(false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer prod = session.createProducer(ADDRESS);
 
@@ -2401,7 +2402,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -2499,7 +2500,7 @@ public class LargeMessageTest extends LargeMessageTestBase {
 
       fileMessage.releaseResources(false);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java
index cb0b02b..41fdaad 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -56,7 +57,7 @@ public class MessageBufferTest extends ActiveMQTestBase {
       final String queueName = "simpleQueue";
       final String addressName = "simpleAddress";
 
-      session.createQueue(addressName, RoutingType.ANYCAST, queueName);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
       ClientProducer producer = session.createProducer(addressName);
 
       ClientMessageImpl message = (ClientMessageImpl) session.createMessage(true);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConcurrencyTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConcurrencyTest.java
index 6d67fca..2a1145d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConcurrencyTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConcurrencyTest.java
@@ -21,6 +21,7 @@ import java.util.Set;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -125,7 +126,7 @@ public class MessageConcurrencyTest extends ActiveMQTestBase {
 
       final ClientProducer mainProducer = consumeSession.createProducer(ADDRESS);
 
-      consumeSession.createQueue(ADDRESS, QUEUE_NAME);
+      consumeSession.createQueue(new QueueConfiguration(QUEUE_NAME).setAddress(ADDRESS));
 
       ClientConsumer consumer = consumeSession.createConsumer(QUEUE_NAME);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConsumerRollbackTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConsumerRollbackTest.java
index 99c16ff..dee29af 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConsumerRollbackTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageConsumerRollbackTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -65,9 +66,9 @@ public class MessageConsumerRollbackTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createTransactedSession();
 
-      session.createQueue(inQueue, inQueue, true);
+      session.createQueue(new QueueConfiguration(inQueue));
 
-      session.createQueue(outQueue, outQueue, true);
+      session.createQueue(new QueueConfiguration(outQueue));
 
       session.close();
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageCounterTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageCounterTest.java
index 1e094c3..c3708fe 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageCounterTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageCounterTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -55,7 +56,7 @@ public class MessageCounterTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageDurabilityTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageDurabilityTest.java
index 5a557a3..8644088 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageDurabilityTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageDurabilityTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -59,7 +60,7 @@ public class MessageDurabilityTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, !durable);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(!durable));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(!durable));
@@ -83,7 +84,7 @@ public class MessageDurabilityTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, durable);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(durable));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(!durable));
@@ -105,7 +106,7 @@ public class MessageDurabilityTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, durable);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(durable));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(durable));
@@ -130,7 +131,7 @@ public class MessageDurabilityTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       final SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, !durable);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(!durable));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(durable));
@@ -157,7 +158,7 @@ public class MessageDurabilityTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       final SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(durable));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageExpirationTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageExpirationTest.java
index b60c293..f4b4a35 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageExpirationTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageExpirationTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -50,7 +51,7 @@ public class MessageExpirationTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage message = session.createMessage(false);
@@ -77,7 +78,7 @@ public class MessageExpirationTest extends ActiveMQTestBase {
       session.close();
 
       session = addClientSession(sf.createSession(false, false, false));
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage message = session.createMessage(false);
@@ -130,7 +131,7 @@ public class MessageExpirationTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientConsumer consumer = session.createConsumer(queue);
@@ -159,7 +160,7 @@ public class MessageExpirationTest extends ActiveMQTestBase {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString queue = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage message = session.createMessage(false);
@@ -197,8 +198,8 @@ public class MessageExpirationTest extends ActiveMQTestBase {
          }
       });
 
-      session.createQueue(address, queue, false);
-      session.createQueue(expiryAddress, expiryQueue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
+      session.createQueue(new QueueConfiguration(expiryQueue).setAddress(expiryAddress).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage message = session.createMessage(false);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingConnectionFactoryTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingConnectionFactoryTest.java
index 0f7e9f6..dc19d64 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingConnectionFactoryTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingConnectionFactoryTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -113,7 +114,7 @@ public class MessageGroupingConnectionFactoryTest extends ActiveMQTestBase {
       ServerLocator locator = createInVMNonHALocator().setGroupID("grp1");
       ClientSessionFactory sessionFactory = createSessionFactory(locator);
       clientSession = addClientSession(sessionFactory.createSession(false, true, true));
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
    }
 
    private static class DummyMessageHandler implements MessageHandler {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingTest.java
index 3d916b6..be7b48d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageGroupingTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -536,7 +537,7 @@ public class MessageGroupingTest extends ActiveMQTestBase {
       locator = createInVMNonHALocator();
       clientSessionFactory = createSessionFactory(locator);
       clientSession = addClientSession(clientSessionFactory.createSession(false, true, true));
-      clientSession.createQueue(qName, qName, null, false);
+      clientSession.createQueue(new QueueConfiguration(qName).setDurable(false));
    }
 
    private static class DummyMessageHandler implements MessageHandler {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageHandlerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageHandlerTest.java
index d354321..a43d5ae 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageHandlerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageHandlerTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -64,7 +65,7 @@ public class MessageHandlerTest extends ActiveMQTestBase {
    public void testSetMessageHandlerWithMessagesPending() throws Exception {
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -119,7 +120,7 @@ public class MessageHandlerTest extends ActiveMQTestBase {
    public void testSetResetMessageHandler() throws Exception {
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -211,7 +212,7 @@ public class MessageHandlerTest extends ActiveMQTestBase {
    public void testSetUnsetMessageHandler() throws Exception {
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -290,7 +291,7 @@ public class MessageHandlerTest extends ActiveMQTestBase {
    public void testSetUnsetResetMessageHandler() throws Exception {
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessagePriorityTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessagePriorityTest.java
index 55c83d1..bd0b88d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessagePriorityTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessagePriorityTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -59,7 +60,7 @@ public class MessagePriorityTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
 
@@ -95,7 +96,7 @@ public class MessagePriorityTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       session.start();
 
@@ -132,7 +133,7 @@ public class MessagePriorityTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
 
@@ -200,7 +201,7 @@ public class MessagePriorityTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
 
@@ -258,7 +259,7 @@ public class MessagePriorityTest extends ActiveMQTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageRateTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageRateTest.java
index b42f992..0ce4eda 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageRateTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageRateTest.java
@@ -20,6 +20,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -60,7 +61,7 @@ public class MessageRateTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
       long start = System.currentTimeMillis();
@@ -85,7 +86,7 @@ public class MessageRateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -120,7 +121,7 @@ public class MessageRateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -156,7 +157,7 @@ public class MessageRateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MixRoutingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MixRoutingTest.java
index 8e12033..7b3039d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MixRoutingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MixRoutingTest.java
@@ -25,6 +25,7 @@ import javax.jms.TemporaryQueue;
 import javax.jms.TextMessage;
 import javax.jms.Topic;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
@@ -58,7 +59,7 @@ public class MixRoutingTest extends SingleServerTestBase {
    @Test
    public void testMix() throws Exception {
       SimpleString queueName = SimpleString.toSimpleString(getName());
-      server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false);
+      server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
       ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
       Connection connection = factory.createConnection();
       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -104,7 +105,7 @@ public class MixRoutingTest extends SingleServerTestBase {
    @Test
    public void testMix2() throws Exception {
       SimpleString queueName = SimpleString.toSimpleString(getName());
-      server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false);
+      server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
       ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
       Connection connection = factory.createConnection();
       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -157,7 +158,7 @@ public class MixRoutingTest extends SingleServerTestBase {
       SimpleString topicName = SimpleString.toSimpleString("topic" + getName());
       AddressInfo info = new AddressInfo(topicName, RoutingType.MULTICAST);
       server.addAddressInfo(info);
-      server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false);
+      server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
       ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
       Connection connection = factory.createConnection();
       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MultipleThreadFilterOneTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MultipleThreadFilterOneTest.java
index d74f16b..2af1104 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MultipleThreadFilterOneTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MultipleThreadFilterOneTest.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -135,7 +136,7 @@ public class MultipleThreadFilterOneTest extends ActiveMQTestBase {
          locator = createNonHALocator(isNetty);
          factory = locator.createSessionFactory();
          consumerSession = factory.createSession(false, false);
-         consumerSession.createQueue(ADDRESS, "Q" + nr, "prodNR=" + nr, true);
+         consumerSession.createQueue(new QueueConfiguration("Q" + nr).setAddress(ADDRESS).setFilterString("prodNR=" + nr));
          consumer = consumerSession.createConsumer("Q" + nr);
          consumerSession.start();
          this.nr = nr;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NIOvsOIOTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NIOvsOIOTest.java
index 673c83e..0bd8145 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NIOvsOIOTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NIOvsOIOTest.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -249,7 +250,7 @@ public class NIOvsOIOTest extends ActiveMQTestBase {
 
          queueName = UUIDGenerator.getInstance().generateStringUUID();
 
-         session.createQueue(dest, RoutingType.ANYCAST, queueName);
+         session.createQueue(new QueueConfiguration(queueName).setAddress(dest).setRoutingType(RoutingType.ANYCAST));
 
          consumer = session.createConsumer(queueName);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NewDeadLetterAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NewDeadLetterAddressTest.java
index 869f25e..479e0f2 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NewDeadLetterAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/NewDeadLetterAddressTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -48,7 +49,7 @@ public class NewDeadLetterAddressTest extends ActiveMQTestBase {
       AddressSettings addressSettings = new AddressSettings().setDeadLetterAddress(dla).setSendToDLAOnNoRoute(true);
       server.getAddressSettingsRepository().addMatch(address.toString(), addressSettings);
       SimpleString dlq = new SimpleString("DLQ1");
-      clientSession.createQueue(dla, dlq, null, false);
+      clientSession.createQueue(new QueueConfiguration(dlq).setAddress(dla).setDurable(false));
       ClientProducer producer = clientSession.createProducer(address);
       producer.send(createTextMessage(clientSession, "heyho!"));
       clientSession.start();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/OrderTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/OrderTest.java
index cf3f880..16dd1df 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/OrderTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/OrderTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -76,7 +77,7 @@ public class OrderTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(true, true, 0);
 
-      session.createQueue("queue", "queue", true);
+      session.createQueue(new QueueConfiguration("queue"));
 
       ClientProducer prod = session.createProducer("queue");
 
@@ -141,7 +142,7 @@ public class OrderTest extends ActiveMQTestBase {
       ClientSession session = sf.createSession(true, true, 0);
 
       int numberOfMessages = 500;
-      session.createQueue("queue", "queue", true);
+      session.createQueue(new QueueConfiguration("queue"));
 
       ClientProducer prod = session.createProducer("queue");
 
@@ -199,7 +200,7 @@ public class OrderTest extends ActiveMQTestBase {
 
       int numberOfMessages = 500;
 
-      session.createQueue("queue", "queue", true);
+      session.createQueue(new QueueConfiguration("queue"));
 
       ClientProducer prod = session.createProducer("queue");
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerFlowControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerFlowControlTest.java
index 9b93629..168475f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerFlowControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerFlowControlTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -213,7 +214,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
       final String queueName = "testqueue";
 
       for (int i = 0; i < numConsumers; i++) {
-         session.createQueue(address, new SimpleString(queueName + i), null, false);
+         session.createQueue(new QueueConfiguration(new SimpleString(queueName + i)).setAddress(address).setDurable(false));
       }
 
       final byte[] bytes = RandomUtil.randomBytes(messageSize);
@@ -326,7 +327,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       final SimpleString queueName = new SimpleString("testqueue");
 
-      session.createQueue(address, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
 
@@ -414,11 +415,11 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
-      session.createQueue("address", "queue2", null, false);
-      session.createQueue("address", "queue3", null, false);
-      session.createQueue("address", "queue4", null, false);
-      session.createQueue("address", "queue5", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
+      session.createQueue(new QueueConfiguration("queue2").setAddress("address").setDurable(false));
+      session.createQueue(new QueueConfiguration("queue3").setAddress("address").setDurable(false));
+      session.createQueue(new QueueConfiguration("queue4").setAddress("address").setDurable(false));
+      session.createQueue(new QueueConfiguration("queue5").setAddress("address").setDurable(false));
 
       ClientConsumer consumer1 = session.createConsumer("queue1");
       ClientConsumer consumer2 = session.createConsumer("queue2");
@@ -476,7 +477,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducerCredits credits = null;
 
@@ -506,7 +507,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducerCredits credits = null;
 
@@ -539,7 +540,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducerCredits credits = null;
 
@@ -569,7 +570,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducerCredits credits = null;
 
@@ -602,7 +603,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducerCredits credits = null;
 
@@ -656,7 +657,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       for (int i = 0; i < ClientProducerCreditManagerImpl.MAX_UNREFERENCED_CREDITS_CACHE_SIZE; i++) {
          ClientProducer prod = session.createProducer((String) null);
@@ -679,7 +680,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       for (int i = 0; i < ClientProducerCreditManagerImpl.MAX_UNREFERENCED_CREDITS_CACHE_SIZE; i++) {
          ClientProducer prod = session.createProducer((String) null);
@@ -720,7 +721,7 @@ public class ProducerFlowControlTest extends ActiveMQTestBase {
 
       session = sf.createSession(false, true, true, true);
 
-      session.createQueue("address", "queue1", null, false);
+      session.createQueue(new QueueConfiguration("queue1").setAddress("address").setDurable(false));
 
       ClientProducer prod1 = session.createProducer("address");
       Assert.assertEquals(1, ((ClientSessionInternal) session).getProducerCreditManager().creditsMapSize());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerTest.java
index ba71e24..ac66eec 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ProducerTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -31,7 +32,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.protocol.core.Packet;
 import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy;
 import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
@@ -90,7 +90,7 @@ public class ProducerTest extends ActiveMQTestBase {
       server.getConfiguration().getAddressesSettings().put(QUEUE.toString(), setting);
       server.start();
 
-      server.createQueue(QUEUE, RoutingType.MULTICAST, QUEUE, null, true, false);
+      server.createQueue(new QueueConfiguration(QUEUE));
 
       for (int i = 0; i < 100; i++) {
          final CountDownLatch latch = new CountDownLatch(1);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/QueueBrowserTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/QueueBrowserTest.java
index beabef9..14cc4ef 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/QueueBrowserTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/QueueBrowserTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -59,7 +60,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
       sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -101,7 +102,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -143,7 +144,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -176,7 +177,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -211,7 +212,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -259,7 +260,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(null, null, false, true, true, preACK, 0);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -291,7 +292,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -327,7 +328,7 @@ public class QueueBrowserTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveImmediateTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveImmediateTest.java
index 42b3549..99c1676 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveImmediateTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveImmediateTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -83,7 +84,7 @@ public class ReceiveImmediateTest extends ActiveMQTestBase {
       sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setDurable(false));
 
       ClientConsumer consumer = session.createConsumer(QUEUE, null, false);
       session.start();
@@ -112,7 +113,7 @@ public class ReceiveImmediateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -146,7 +147,7 @@ public class ReceiveImmediateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -187,7 +188,7 @@ public class ReceiveImmediateTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, false);
 
-      session.createQueue(ADDRESS, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setDurable(false));
 
       ClientConsumer consumer = session.createConsumer(QUEUE, null, browser);
       session.start();
@@ -204,7 +205,7 @@ public class ReceiveImmediateTest extends ActiveMQTestBase {
       sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ADDRESS, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveTest.java
index cca8b10..9d039bb 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ReceiveTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException;
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -72,7 +73,7 @@ public class ReceiveTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientConsumer cc = session.createConsumer(queueA);
       session.start();
       cp.send(sendSession.createMessage(false));
@@ -86,7 +87,7 @@ public class ReceiveTest extends ActiveMQTestBase {
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientConsumer cc = session.createConsumer(queueA);
       session.start();
       long time = System.currentTimeMillis();
@@ -100,7 +101,7 @@ public class ReceiveTest extends ActiveMQTestBase {
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientConsumer cc = session.createConsumer(queueA);
       session.start();
       session.close();
@@ -120,7 +121,7 @@ public class ReceiveTest extends ActiveMQTestBase {
 
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientConsumer cc = session.createConsumer(queueA);
       session.start();
       cc.setMessageHandler(new MessageHandler() {
@@ -147,7 +148,7 @@ public class ReceiveTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientProducer cp = sendSession.createProducer(addressA);
       ClientSession session = cf.createSession(false, true, true);
-      session.createQueue(addressA, RoutingType.ANYCAST, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST).setDurable(false));
       ClientConsumer cc = session.createConsumer(queueA);
       ClientConsumer cc2 = session.createConsumer(queueA);
       session.start();
@@ -177,8 +178,8 @@ public class ReceiveTest extends ActiveMQTestBase {
       ClientProducer cp2 = sendSession.createProducer(addressB);
 
       ClientSession session = cf.createSession(false, true, false);
-      session.createQueue(addressA, queueA, false);
-      session.createQueue(addressB, queueB, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueB).setAddress(addressB).setDurable(false));
 
       ClientConsumer cc1 = session.createConsumer(queueA);
       ClientConsumer cc2 = session.createConsumer(queueB);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RedeliveryConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RedeliveryConsumerTest.java
index 69e516e..e78e34a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RedeliveryConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RedeliveryConsumerTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -419,7 +420,7 @@ public class RedeliveryConsumerTest extends ActiveMQTestBase {
 
       ClientSession session = addClientSession(factory.createSession(false, false, false));
       try {
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
       } catch (ActiveMQException expected) {
          // in case of restart
       }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RequestorTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RequestorTest.java
index 68e1784..69ba87f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RequestorTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RequestorTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -54,7 +55,7 @@ public class RequestorTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createTemporaryQueue(requestAddress, requestQueue);
+      session.createQueue(new QueueConfiguration(requestQueue).setAddress(requestAddress).setDurable(false).setTemporary(true));
 
       ClientConsumer requestConsumer = session.createConsumer(requestQueue);
       requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
@@ -85,7 +86,7 @@ public class RequestorTest extends ActiveMQTestBase {
 
       final ClientSession sessionRequest = sf.createSession(false, true, true);
 
-      sessionRequest.createQueue(requestAddress, requestQueue);
+      sessionRequest.createQueue(new QueueConfiguration(requestQueue).setAddress(requestAddress));
 
       sessionRequest.start();
 
@@ -128,7 +129,7 @@ public class RequestorTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createTemporaryQueue(requestAddress, requestQueue);
+      session.createQueue(new QueueConfiguration(requestQueue).setAddress(requestAddress).setDurable(false).setTemporary(true));
 
       ClientConsumer requestConsumer = session.createConsumer(requestQueue);
       requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
@@ -161,7 +162,7 @@ public class RequestorTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createTemporaryQueue(requestAddress, requestQueue);
+      session.createQueue(new QueueConfiguration(requestQueue).setAddress(requestAddress).setDurable(false).setTemporary(true));
 
       ClientConsumer requestConsumer = session.createConsumer(requestQueue);
       requestConsumer.setMessageHandler(new MessageHandler() {
@@ -212,7 +213,7 @@ public class RequestorTest extends ActiveMQTestBase {
 
       session.start();
 
-      session.createTemporaryQueue(requestAddress, requestQueue);
+      session.createQueue(new QueueConfiguration(requestQueue).setAddress(requestAddress).setDurable(false).setTemporary(true));
 
       ClientConsumer requestConsumer = session.createConsumer(requestQueue);
       requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RoutingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RoutingTest.java
index 7e058d8..66e2d51 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RoutingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/RoutingTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 
 import java.util.EnumSet;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -60,9 +61,9 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToMultipleQueues() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
-      sendSession.createQueue(addressA, queueB, false);
-      sendSession.createQueue(addressA, queueC, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setDurable(false));
+      sendSession.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setDurable(false));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -94,7 +95,7 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToSingleNonDurableQueue() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -116,7 +117,7 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToSingleDurableQueue() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, true);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -138,7 +139,7 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToSingleQueueWithFilter() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setFilterString(new SimpleString("foo = 'bar'")).setDurable(false));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -162,9 +163,9 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToMultipleQueueWithFilters() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
-      sendSession.createQueue(addressA, queueB, new SimpleString("x = 1"), false);
-      sendSession.createQueue(addressA, queueC, new SimpleString("b = false"), false);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setFilterString(new SimpleString("foo = 'bar'")).setDurable(false));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setFilterString(new SimpleString("x = 1")).setDurable(false));
+      sendSession.createQueue(new QueueConfiguration(queueC).setAddress(addressA).setFilterString(new SimpleString("b = false")).setDurable(false));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -204,7 +205,7 @@ public class RoutingTest extends ActiveMQTestBase {
    @Test
    public void testRouteToSingleTemporaryQueue() throws Exception {
       ClientSession sendSession = cf.createSession(false, true, true);
-      sendSession.createTemporaryQueue(addressA, queueA);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false).setTemporary(true));
       int numMessages = 300;
       ClientProducer p = sendSession.createProducer(addressA);
       for (int i = 0; i < numMessages; i++) {
@@ -228,9 +229,9 @@ public class RoutingTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       EnumSet<RoutingType> routingTypes = EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST);
       sendSession.createAddress(addressA, routingTypes, false);
-      sendSession.createQueue(addressA, RoutingType.ANYCAST, queueA);
-      sendSession.createQueue(addressA, RoutingType.ANYCAST, queueB);
-      sendSession.createQueue(addressA, RoutingType.MULTICAST, queueC);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
+      sendSession.createQueue(new QueueConfiguration(queueC).setAddress(addressA));
       ClientProducer p = sendSession.createProducer(addressA);
       ClientMessage message = sendSession.createMessage(false);
       message.setRoutingType(RoutingType.ANYCAST);
@@ -245,9 +246,9 @@ public class RoutingTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       EnumSet<RoutingType> routingTypes = EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST);
       sendSession.createAddress(addressA, routingTypes, false);
-      sendSession.createQueue(addressA, RoutingType.ANYCAST, queueA);
-      sendSession.createQueue(addressA, RoutingType.MULTICAST, queueB);
-      sendSession.createQueue(addressA, RoutingType.MULTICAST, queueC);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressA));
+      sendSession.createQueue(new QueueConfiguration(queueC).setAddress(addressA));
       ClientProducer p = sendSession.createProducer(addressA);
       ClientMessage message = sendSession.createMessage(false);
       message.setRoutingType(RoutingType.MULTICAST);
@@ -262,10 +263,10 @@ public class RoutingTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       EnumSet<RoutingType> routingTypes = EnumSet.of(RoutingType.ANYCAST, RoutingType.MULTICAST);
       sendSession.createAddress(addressA, routingTypes, false);
-      sendSession.createQueue(addressA, RoutingType.ANYCAST, queueA);
-      sendSession.createQueue(addressA, RoutingType.ANYCAST, queueB);
-      sendSession.createQueue(addressA, RoutingType.MULTICAST, queueC);
-      sendSession.createQueue(addressA, RoutingType.MULTICAST, queueD);
+      sendSession.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
+      sendSession.createQueue(new QueueConfiguration(queueB).setAddress(addressA).setRoutingType(RoutingType.ANYCAST));
+      sendSession.createQueue(new QueueConfiguration(queueC).setAddress(addressA));
+      sendSession.createQueue(new QueueConfiguration(queueD).setAddress(addressA));
       ClientProducer p = sendSession.createProducer(addressA);
       ClientMessage message = sendSession.createMessage(false);
       p.send(message);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SelfExpandingBufferTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SelfExpandingBufferTest.java
index aff0475..f9be93a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SelfExpandingBufferTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SelfExpandingBufferTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -72,7 +73,7 @@ public class SelfExpandingBufferTest extends ActiveMQTestBase {
 
       try {
 
-         session.createQueue(ADDRESS, ADDRESS, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          ClientMessage msg = session.createMessage(true);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SendAckFailTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SendAckFailTest.java
index 3980b3b..3d77d1a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SendAckFailTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SendAckFailTest.java
@@ -33,6 +33,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Message;
 import org.apache.activemq.artemis.api.core.Pair;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -136,7 +137,7 @@ public class SendAckFailTest extends SpawnedTestBase {
 
             ClientSession session = sf.createSession();
             session.createAddress(SimpleString.toSimpleString("T1"), RoutingType.ANYCAST, true);
-            session.createQueue(SimpleString.toSimpleString("T1"), RoutingType.ANYCAST, SimpleString.toSimpleString("T1"), true);
+            session.createQueue(new QueueConfiguration("T1").setRoutingType(RoutingType.ANYCAST));
 
             ClientProducer producer = session.createProducer("T1");
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCloseTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCloseTest.java
index 5d32fc1..bf939cc 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCloseTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCloseTest.java
@@ -21,6 +21,7 @@ import javax.transaction.xa.XAResource;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -79,14 +80,14 @@ public class SessionCloseTest extends ActiveMQTestBase {
       ActiveMQTestBase.expectActiveMQException(ActiveMQExceptionType.OBJECT_CLOSED, new ActiveMQAction() {
          @Override
          public void run() throws ActiveMQException {
-            session.createQueue(RandomUtil.randomSimpleString(), RandomUtil.randomSimpleString(), RandomUtil.randomBoolean());
+            session.createQueue(new QueueConfiguration(RandomUtil.randomSimpleString()).setDurable(RandomUtil.randomBoolean()));
          }
       });
 
       ActiveMQTestBase.expectActiveMQException(ActiveMQExceptionType.OBJECT_CLOSED, new ActiveMQAction() {
          @Override
          public void run() throws ActiveMQException {
-            session.createTemporaryQueue(RandomUtil.randomSimpleString(), RandomUtil.randomSimpleString());
+            session.createQueue(new QueueConfiguration(RandomUtil.randomSimpleString()).setAddress(RandomUtil.randomSimpleString()).setDurable(false).setTemporary(true));
          }
       });
 
@@ -209,7 +210,7 @@ public class SessionCloseTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(address, queue, false);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientProducer producer = session.createProducer(address);
       ClientConsumer consumer = session.createConsumer(queue);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java
index 7ddbb3b..cf50661 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -44,7 +45,7 @@ public class SessionClosedOnRemotingConnectionFailureTest extends ActiveMQTestBa
    public void testSessionClosedOnRemotingConnectionFailure() throws Exception {
       ClientSession session = addClientSession(sf.createSession());
 
-      session.createQueue("fooaddress", RoutingType.ANYCAST, "fooqueue");
+      session.createQueue(new QueueConfiguration("fooqueue").setAddress("fooaddress").setRoutingType(RoutingType.ANYCAST));
 
       ClientProducer prod = session.createProducer("fooaddress");
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateAndDeleteQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateAndDeleteQueueTest.java
index af4ab8d..f4c1da4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateAndDeleteQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateAndDeleteQueueTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
@@ -44,7 +45,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testDurableFalse() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Queue q = (Queue) binding.getBindable();
       Assert.assertFalse(q.isDurable());
@@ -55,7 +56,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testDurableTrue() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
-      session.createQueue(address, queueName, true);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Queue q = (Queue) binding.getBindable();
       Assert.assertTrue(q.isDurable());
@@ -66,7 +67,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testTemporaryFalse() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Queue q = (Queue) binding.getBindable();
       Assert.assertFalse(q.isTemporary());
@@ -77,7 +78,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testTemporaryTrue() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
-      session.createTemporaryQueue(address, queueName);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false).setTemporary(true));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Queue q = (Queue) binding.getBindable();
       Assert.assertTrue(q.isTemporary());
@@ -89,7 +90,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    public void testcreateWithFilter() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
       SimpleString filterString = new SimpleString("x=y");
-      session.createQueue(address, queueName, filterString, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setFilterString(filterString).setDurable(false));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Queue q = (Queue) binding.getBindable();
       Assert.assertEquals(q.getFilter().getFilterString(), filterString);
@@ -102,7 +103,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
       server.getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings().setDefaultLastValueQueue(true));
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
       SimpleString filterString = new SimpleString("x=y");
-      session.createQueue(address, queueName, filterString, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setFilterString(filterString).setDurable(false));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Assert.assertTrue(binding.getBindable() instanceof LastValueQueue);
 
@@ -112,7 +113,7 @@ public class SessionCreateAndDeleteQueueTest extends ActiveMQTestBase {
    @Test
    public void testDeleteQueue() throws Exception {
       ClientSession session = createSessionFactory(locator).createSession(false, true, true);
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       Binding binding = server.getPostOffice().getBinding(queueName);
       Assert.assertNotNull(binding);
       session.deleteQueue(queueName);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateConsumerTest.java
index 8d40d4c..630f7e9 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionCreateConsumerTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQInvalidFilterExpressionException;
 import org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
@@ -53,7 +54,7 @@ public class SessionCreateConsumerTest extends ActiveMQTestBase {
 
    @Test
    public void testCreateConsumer() throws Exception {
-      clientSession.createQueue(queueName, queueName, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
       ClientConsumer consumer = clientSession.createConsumer(queueName);
       Assert.assertNotNull(consumer);
    }
@@ -72,14 +73,14 @@ public class SessionCreateConsumerTest extends ActiveMQTestBase {
 
    @Test
    public void testCreateConsumerWithFilter() throws Exception {
-      clientSession.createQueue(queueName, queueName, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
       ClientConsumer consumer = clientSession.createConsumer(queueName, "foo=bar");
       Assert.assertNotNull(consumer);
    }
 
    @Test
    public void testCreateConsumerWithInvalidFilter() throws Exception {
-      clientSession.createQueue(queueName, queueName, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
       try {
          clientSession.createConsumer(queueName, "this is not valid filter");
          Assert.fail("should throw exception");
@@ -92,14 +93,14 @@ public class SessionCreateConsumerTest extends ActiveMQTestBase {
 
    @Test
    public void testCreateConsumerWithBrowseOnly() throws Exception {
-      clientSession.createQueue(queueName, queueName, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
       ClientConsumer consumer = clientSession.createConsumer(queueName, null, true);
       Assert.assertNotNull(consumer);
    }
 
    @Test
    public void testCreateConsumerWithOverrides() throws Exception {
-      clientSession.createQueue(queueName, queueName, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
       ClientConsumer consumer = clientSession.createConsumer(queueName, null, 100, 100, false);
       Assert.assertNotNull(consumer);
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionSendAcknowledgementHandlerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionSendAcknowledgementHandlerTest.java
index 8b88073..f0794e6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionSendAcknowledgementHandlerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionSendAcknowledgementHandlerTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -74,7 +75,7 @@ public class SessionSendAcknowledgementHandlerTest extends ActiveMQTestBase {
 
       assertTrue("Expected a failure on setting ACK Handler", failed);
 
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
    }
 
    @Test
@@ -105,7 +106,7 @@ public class SessionSendAcknowledgementHandlerTest extends ActiveMQTestBase {
       ClientSessionFactory csf = createSessionFactory(locator);
       ClientSession session = csf.createSession(null, null, false, true, true, false, 1);
 
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
 
       ClientProducer prod = session.createProducer(address);
 
@@ -137,7 +138,7 @@ public class SessionSendAcknowledgementHandlerTest extends ActiveMQTestBase {
       ClientSessionFactory csf = createSessionFactory(locator);
       ClientSession session = csf.createSession(null, null, false, true, true, false, 1);
 
-      session.createQueue(address, queueName, false);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
 
       ClientProducer prod = session.createProducer(address);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionStopStartTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionStopStartTest.java
index afc7a1c..083ac7c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionStopStartTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionStopStartTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.client;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -60,7 +61,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -101,7 +102,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -145,7 +146,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -227,7 +228,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -314,7 +315,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -408,7 +409,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -516,7 +517,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -568,7 +569,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -606,7 +607,7 @@ public class SessionStopStartTest extends ActiveMQTestBase {
 
       final ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
index ed6ab54..8e51681 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQInternalErrorException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -44,18 +47,32 @@ import org.apache.activemq.artemis.tests.util.Wait;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * This test covers the API for ClientSession although XA tests are tested separately.
  */
+@RunWith(Parameterized.class)
 public class SessionTest extends ActiveMQTestBase {
 
+   private boolean legacyCreateQueue;
+
    private final String queueName = "ClientSessionTestQ";
 
    private ServerLocator locator;
    private ActiveMQServer server;
    private ClientSessionFactory cf;
 
+   @Parameterized.Parameters(name = "legacyCreateQueue={0}")
+   public static Collection<Object[]> getParams() {
+      return Arrays.asList(new Object[][]{{true}, {false}});
+   }
+
+   public SessionTest(boolean legacyCreateQueue) {
+      this.legacyCreateQueue = legacyCreateQueue;
+   }
+
    @Override
    @Before
    public void setUp() throws Exception {
@@ -127,7 +144,11 @@ public class SessionTest extends ActiveMQTestBase {
       server.start();
       cf = createSessionFactory(locator);
       ClientSessionInternal clientSession = (ClientSessionInternal) cf.createSession(false, true, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       /** keep unused variables in order to maintain references to both objects */
       @SuppressWarnings("unused")
       ClientProducer producer = clientSession.createProducer();
@@ -165,11 +186,19 @@ public class SessionTest extends ActiveMQTestBase {
    public void testBindingQuery() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue("a1", "q1", false);
-      clientSession.createQueue("a1", "q2", false);
-      clientSession.createQueue("a2", "q3", false);
-      clientSession.createQueue("a2", "q4", false);
-      clientSession.createQueue("a2", "q5", false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue("a1", "q1", false);
+         clientSession.createQueue("a1", "q2", false);
+         clientSession.createQueue("a2", "q3", false);
+         clientSession.createQueue("a2", "q4", false);
+         clientSession.createQueue("a2", "q5", false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration("q1").setAddress("a1").setDurable(false));
+         clientSession.createQueue(new QueueConfiguration("q2").setAddress("a1").setDurable(false));
+         clientSession.createQueue(new QueueConfiguration("q3").setAddress("a2").setDurable(false));
+         clientSession.createQueue(new QueueConfiguration("q4").setAddress("a2").setDurable(false));
+         clientSession.createQueue(new QueueConfiguration("q5").setAddress("a2").setDurable(false));
+      }
       ClientSession.AddressQuery resp = clientSession.addressQuery(new SimpleString("a"));
       List<SimpleString> queues = resp.getQueueNames();
       Assert.assertTrue(queues.isEmpty());
@@ -191,7 +220,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testQueueQuery() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue("a1", queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue("a1", queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setAddress("a1").setDurable(false));
+      }
       clientSession.createConsumer(queueName);
       clientSession.createConsumer(queueName);
       ClientProducer cp = clientSession.createProducer("a1");
@@ -218,7 +251,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testQueueQueryWithFilter() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue("a1", queueName, "foo=bar", false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue("a1", queueName, "foo=bar", false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setAddress("a1").setFilterString("foo=bar").setDurable(false));
+      }
       clientSession.createConsumer(queueName);
       clientSession.createConsumer(queueName);
 
@@ -246,7 +283,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testClose() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       ClientProducer p = clientSession.createProducer();
       ClientProducer p1 = clientSession.createProducer(queueName);
       ClientConsumer c = clientSession.createConsumer(queueName);
@@ -310,7 +351,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testStart() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       clientSession.start();
       clientSession.close();
    }
@@ -319,7 +364,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testStop() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, true, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       clientSession.start();
       clientSession.stop();
       clientSession.close();
@@ -329,7 +378,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testCommitWithSend() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, false, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       ClientProducer cp = clientSession.createProducer(queueName);
       for (int i = 0; i < 10; i++) {
          cp.send(clientSession.createMessage(false));
@@ -345,7 +398,11 @@ public class SessionTest extends ActiveMQTestBase {
    public void testRollbackWithSend() throws Exception {
       cf = createSessionFactory(locator);
       ClientSession clientSession = cf.createSession(false, false, true);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       ClientProducer cp = clientSession.createProducer(queueName);
       for (int i = 0; i < 10; i++) {
          cp.send(clientSession.createMessage(false));
@@ -367,7 +424,11 @@ public class SessionTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientProducer cp = sendSession.createProducer(queueName);
       ClientSession clientSession = cf.createSession(false, true, false);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       for (int i = 0; i < 10; i++) {
          cp.send(clientSession.createMessage(false));
       }
@@ -395,7 +456,11 @@ public class SessionTest extends ActiveMQTestBase {
       ClientSession sendSession = cf.createSession(false, true, true);
       ClientProducer cp = sendSession.createProducer(queueName);
       ClientSession clientSession = cf.createSession(false, true, false);
-      clientSession.createQueue(queueName, queueName, false);
+      if (legacyCreateQueue) {
+         clientSession.createQueue(queueName, queueName, false);
+      } else {
+         clientSession.createQueue(new QueueConfiguration(queueName).setDurable(false));
+      }
       for (int i = 0; i < 10; i++) {
          cp.send(clientSession.createMessage(false));
       }
@@ -428,7 +493,11 @@ public class SessionTest extends ActiveMQTestBase {
       SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString());
       SimpleString addressName = SimpleString.toSimpleString(UUID.randomUUID().toString());
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -436,7 +505,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString());
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString());
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -444,7 +517,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -453,7 +530,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -462,7 +543,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter"));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -472,7 +557,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter"));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -482,7 +571,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -493,7 +586,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -504,7 +601,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true, 0, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true, 0, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true).setMaxConsumers(0).setPurgeOnNoConsumers(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -517,7 +618,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true).setMaxConsumers(0).setPurgeOnNoConsumers(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -530,7 +635,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true, 0, true, true, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName, RoutingType.ANYCAST, queueName, SimpleString.toSimpleString("filter"), true, true, 0, true, true, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true).setMaxConsumers(0).setPurgeOnNoConsumers(true).setExclusive(true).setLastValue(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
@@ -545,7 +654,11 @@ public class SessionTest extends ActiveMQTestBase {
          server.destroyQueue(queueName);
       }
       {
-         clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true, true, true);
+         if (legacyCreateQueue) {
+            clientSession.createQueue(addressName.toString(), RoutingType.ANYCAST, queueName.toString(), "filter", true, true, 0, true, true, true);
+         } else {
+            clientSession.createQueue(new QueueConfiguration(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setFilterString("filter").setAutoCreated(true).setMaxConsumers(0).setPurgeOnNoConsumers(true).setExclusive(true).setLastValue(true));
+         }
          Queue result = server.locateQueue(queueName);
          assertEquals(addressName, result.getAddress());
          assertEquals(queueName, result.getName());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SimpleSendMultipleQueuesTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SimpleSendMultipleQueuesTest.java
index 75a04f0..06250f2 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SimpleSendMultipleQueuesTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SimpleSendMultipleQueuesTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -23,7 +24,6 @@ import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.apache.activemq.artemis.utils.RandomUtil;
 import org.junit.Assert;
@@ -92,9 +92,9 @@ public class SimpleSendMultipleQueuesTest extends ActiveMQTestBase {
 
       session = cf.createSession();
 
-      session.createQueue(SimpleSendMultipleQueuesTest.address, RoutingType.MULTICAST, "queue1");
-      session.createQueue(SimpleSendMultipleQueuesTest.address, RoutingType.MULTICAST, "queue2");
-      session.createQueue(SimpleSendMultipleQueuesTest.address, RoutingType.MULTICAST, "queue3");
+      session.createQueue(new QueueConfiguration("queue1").setAddress(SimpleSendMultipleQueuesTest.address));
+      session.createQueue(new QueueConfiguration("queue2").setAddress(SimpleSendMultipleQueuesTest.address));
+      session.createQueue(new QueueConfiguration("queue3").setAddress(SimpleSendMultipleQueuesTest.address));
 
       producer = session.createProducer(SimpleSendMultipleQueuesTest.address);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SlowConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SlowConsumerTest.java
index 8a83845..a03d5ec 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SlowConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SlowConsumerTest.java
@@ -27,6 +27,7 @@ import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -109,7 +110,7 @@ public class SlowConsumerTest extends ActiveMQTestBase {
 
       server.getAddressSettingsRepository().addMatch(QUEUE.toString(), addressSettings);
 
-      server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false).getPageSubscription().getPagingStore().startPaging();
+      server.createQueue(new QueueConfiguration(QUEUE).setRoutingType(RoutingType.ANYCAST)).getPageSubscription().getPagingStore().startPaging();
 
       locator = createFactory(isNetty);
    }
@@ -244,7 +245,7 @@ public class SlowConsumerTest extends ActiveMQTestBase {
 
       SimpleString notifQueue = RandomUtil.randomSimpleString();
 
-      session.createQueue(ActiveMQDefaultConfiguration.getDefaultManagementNotificationAddress(), notifQueue, null, false);
+      session.createQueue(new QueueConfiguration(notifQueue).setAddress(ActiveMQDefaultConfiguration.getDefaultManagementNotificationAddress()).setDurable(false));
 
       ClientConsumer notifConsumer = session.createConsumer(notifQueue.toString(), ManagementHelper.HDR_NOTIFICATION_TYPE + "='" + CoreNotificationType.CONSUMER_SLOW + "'");
 
@@ -393,9 +394,9 @@ public class SlowConsumerTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
 
       ClientSession session = addClientSession(sf.createSession(false, true, true, false));
-      session.createQueue(addressAB, queueName1, null, false);
-      session.createQueue(addressAC, queueName2, null, false);
-      session.createQueue(address, queueName, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = session.createProducer(addressAB);
       ClientProducer producer2 = session.createProducer(addressAC);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
index bb359f9..96bdfe0 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
@@ -28,6 +28,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQIOErrorException;
 import org.apache.activemq.artemis.api.core.ActiveMQInternalErrorException;
 import org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -42,7 +43,6 @@ import org.apache.activemq.artemis.core.protocol.core.Packet;
 import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;
 import org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl;
 import org.apache.activemq.artemis.core.remoting.CloseListener;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.ServerSession;
 import org.apache.activemq.artemis.core.server.impl.ServerSessionImpl;
 import org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy;
@@ -74,7 +74,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage msg = session.createMessage(false);
@@ -98,7 +98,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       for (int i = 0; i < 1000; i++) {
          SimpleString queue = RandomUtil.randomSimpleString();
          SimpleString address = RandomUtil.randomSimpleString();
-         session.createTemporaryQueue(address, queue);
+         session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
 
          session.close();
          session = sf.createSession();
@@ -118,7 +118,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(address);
       ClientMessage msg = session.createMessage(false);
@@ -149,7 +149,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createMessage(false));
@@ -170,7 +170,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
       RemotingConnectionImpl conn = (RemotingConnectionImpl) server.getRemotingService().getConnections().iterator().next();
 
       final CountDownLatch latch = new CountDownLatch(1);
@@ -203,9 +203,9 @@ public class TemporaryQueueTest extends SingleServerTestBase {
 
    @Test
    public void testQueueWithWildcard() throws Exception {
-      session.createQueue("a.b", RoutingType.MULTICAST, "queue1");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue2");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue3");
+      session.createQueue(new QueueConfiguration("queue1").setAddress("a.b"));
+      session.createQueue(new QueueConfiguration("queue2").setAddress("a.#").setDurable(false).setTemporary(true));
+      session.createQueue(new QueueConfiguration("queue3").setAddress("a.#").setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer("a.b");
       producer.send(session.createMessage(false));
@@ -242,9 +242,9 @@ public class TemporaryQueueTest extends SingleServerTestBase {
 
    @Test
    public void testQueueWithWildcard2() throws Exception {
-      session.createQueue("a.b", RoutingType.MULTICAST, "queue1");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue2");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue3");
+      session.createQueue(new QueueConfiguration("queue1").setAddress("a.b"));
+      session.createQueue(new QueueConfiguration("queue2").setAddress("a.#").setDurable(false).setTemporary(true));
+      session.createQueue(new QueueConfiguration("queue3").setAddress("a.#").setDurable(false).setTemporary(true));
 
       ClientProducer producer = session.createProducer("a.b");
       producer.send(session.createMessage(false));
@@ -281,9 +281,9 @@ public class TemporaryQueueTest extends SingleServerTestBase {
 
    @Test
    public void testQueueWithWildcard3() throws Exception {
-      session.createQueue("a.b", RoutingType.MULTICAST, "queue1");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue2");
-      session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue2.1");
+      session.createQueue(new QueueConfiguration("queue1").setAddress("a.b"));
+      session.createQueue(new QueueConfiguration("queue2").setAddress("a.#").setDurable(false).setTemporary(true));
+      session.createQueue(new QueueConfiguration("queue2.1").setAddress("a.#").setDurable(false).setTemporary(true));
 
       session.deleteQueue("queue2");
    }
@@ -293,7 +293,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address));
       assertEquals(1, server.getConnectionCount());
 
       // we create a second session. the temp queue must be present
@@ -318,7 +318,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       ClientSessionFactory reattachSF = createSessionFactory(serverWithReattach);
 
       ClientSession session = reattachSF.createSession(false, false);
-      session.createTemporaryQueue("tmpAd", "tmpQ");
+      session.createQueue(new QueueConfiguration("tmpQ").setAddress("tmpAd").setDurable(false).setTemporary(true));
       ClientConsumer consumer = session.createConsumer("tmpQ");
 
       ClientProducer prod = session.createProducer("tmpAd");
@@ -403,14 +403,14 @@ public class TemporaryQueueTest extends SingleServerTestBase {
          String queueBlue = address + "_blue_" + (countTmpQueue++);
 
          ClientSession sessConsumerRed = clientsConnecton.createSession();
-         sessConsumerRed.createTemporaryQueue(address, queueRed, "color='red'");
+         sessConsumerRed.createQueue(new QueueConfiguration(queueRed).setAddress(address).setFilterString("color='red'").setDurable(false).setTemporary(true));
          MyHandler redHandler = new MyHandler(sessConsumerRed, "red", msgs);
          ClientConsumer redClientConsumer = sessConsumerRed.createConsumer(queueRed);
          redClientConsumer.setMessageHandler(redHandler);
          sessConsumerRed.start();
 
          ClientSession sessConsumerBlue = clientsConnecton.createSession();
-         sessConsumerBlue.createTemporaryQueue(address, queueBlue, "color='blue'");
+         sessConsumerBlue.createQueue(new QueueConfiguration(queueBlue).setAddress(address).setFilterString("color='blue'").setDurable(false).setTemporary(true));
          MyHandler blueHandler = new MyHandler(sessConsumerBlue, "blue", msgs);
          ClientConsumer blueClientConsumer = sessConsumerBlue.createConsumer(queueBlue);
          blueClientConsumer.setMessageHandler(blueHandler);
@@ -471,7 +471,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       sf = addSessionFactory(createSessionFactory(locator));
       session = sf.createSession(false, true, true);
 
-      session.createTemporaryQueue(address, queue);
+      session.createQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false).setTemporary(true));
       assertTrue("server has not received any ping from the client", pingOnServerLatch.await(2 * server.getConfiguration().getConnectionTtlCheckInterval(), TimeUnit.MILLISECONDS));
       assertEquals(1, server.getConnectionCount());
 
@@ -529,7 +529,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       ClientSessionFactory consumerCF = createSessionFactory(locator);
       ClientSession consumerSession = consumerCF.createSession(true, true);
       consumerSession.addMetaData("consumer", "consumer");
-      consumerSession.createTemporaryQueue("TestAD", "Q1");
+      consumerSession.createQueue(new QueueConfiguration("Q1").setAddress("TestAD").setDurable(false).setTemporary(true));
       consumerSession.createConsumer("Q1");
       consumerSession.start();
 
@@ -582,7 +582,7 @@ public class TemporaryQueueTest extends SingleServerTestBase {
 
       ClientSessionFactory newConsumerCF = createSessionFactory(locator);
       ClientSession newConsumerSession = newConsumerCF.createSession(true, true);
-      newConsumerSession.createTemporaryQueue("TestAD", "Q2");
+      newConsumerSession.createQueue(new QueueConfiguration("Q2").setAddress("TestAD").setDurable(false).setTemporary(true));
       ClientConsumer newConsumer = newConsumerSession.createConsumer("Q2");
       newConsumerSession.start();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionDurabilityTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionDurabilityTest.java
index e9f3b31..b9da444 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionDurabilityTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionDurabilityTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -65,9 +66,9 @@ public class TransactionDurabilityTest extends ActiveMQTestBase {
 
       ClientSession session2 = addClientSession(sf.createSession(false, false, false));
 
-      session1.createQueue(testAddress, queue1, null, true);
+      session1.createQueue(new QueueConfiguration(queue1).setAddress(testAddress));
 
-      session1.createQueue(testAddress, queue2, null, true);
+      session1.createQueue(new QueueConfiguration(queue2).setAddress(testAddress));
 
       ClientProducer producer = session1.createProducer(testAddress);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionalSendTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionalSendTest.java
index 3185d15..b72e7a9 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionalSendTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransactionalSendTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -53,7 +54,7 @@ public class TransactionalSendTest extends ActiveMQTestBase {
       server.start();
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, false, false);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = session.createProducer(addressA);
       int numMessages = 100;
       for (int i = 0; i < numMessages; i++) {
@@ -79,7 +80,7 @@ public class TransactionalSendTest extends ActiveMQTestBase {
       server.start();
       ClientSessionFactory cf = createSessionFactory(locator);
       ClientSession session = cf.createSession(false, false, false);
-      session.createQueue(addressA, queueA, false);
+      session.createQueue(new QueueConfiguration(queueA).setAddress(addressA).setDurable(false));
       ClientProducer cp = session.createProducer(addressA);
       int numMessages = 100;
       for (int i = 0; i < numMessages; i++) {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransientQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransientQueueTest.java
index e9acf3c..745affa 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransientQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TransientQueueTest.java
@@ -17,6 +17,7 @@
 package org.apache.activemq.artemis.tests.integration.client;
 
 import org.apache.activemq.artemis.api.core.ActiveMQInvalidTransientQueueUseException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -35,7 +36,7 @@ public class TransientQueueTest extends SingleServerTestBase {
       SimpleString queue = RandomUtil.randomSimpleString();
       SimpleString address = RandomUtil.randomSimpleString();
 
-      session.createSharedQueue(address, queue, false);
+      session.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
       assertEquals(1, server.getConnectionCount());
 
       // we create a second session. the temp queue must be present
@@ -56,7 +57,7 @@ public class TransientQueueTest extends SingleServerTestBase {
       SimpleString queue = SimpleString.toSimpleString("queue");
       SimpleString address = SimpleString.toSimpleString("address");
 
-      session.createSharedQueue(address, queue, false);
+      session.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
       assertEquals(1, server.getConnectionCount());
 
       assertNotNull(server.locateQueue(queue));
@@ -68,7 +69,7 @@ public class TransientQueueTest extends SingleServerTestBase {
       // At this point this has no effect, other than making sure the queue exists...
       // the JMS implementation will certainly create the queue again when dealing with
       // non durable shared subscriptions
-      session2.createSharedQueue(address, queue, false);
+      session2.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       ClientConsumer consumer1 = session.createConsumer(queue);
       ClientConsumer consumer2 = session2.createConsumer(queue);
@@ -114,7 +115,7 @@ public class TransientQueueTest extends SingleServerTestBase {
 
       consumer2.close();
 
-      session.createSharedQueue(address, queue, false);
+      session.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
 
       consumer1 = session.createConsumer(queue);
 
@@ -137,7 +138,7 @@ public class TransientQueueTest extends SingleServerTestBase {
       server.locateQueue(queue);
       SimpleString address2 = RandomUtil.randomSimpleString();
 
-      session.createSharedQueue(address, queue, false);
+      session.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
       assertEquals(1, server.getConnectionCount());
 
       ServerLocator locator2 = createLocator();
@@ -149,7 +150,7 @@ public class TransientQueueTest extends SingleServerTestBase {
 
       try {
          // There's already a queue with that name, we are supposed to throw an exception
-         session2.createSharedQueue(address2, queue, false);
+         session2.createSharedQueue(new QueueConfiguration(queue).setAddress(address2).setDurable(false));
       } catch (ActiveMQInvalidTransientQueueUseException e) {
          exHappened = true;
       }
@@ -160,7 +161,7 @@ public class TransientQueueTest extends SingleServerTestBase {
 
       try {
          // There's already a queue with that name, we are supposed to throw an exception
-         session2.createSharedQueue(address, queue, SimpleString.toSimpleString("a=1"), false);
+         session2.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setFilterString(SimpleString.toSimpleString("a=1")).setDurable(false));
       } catch (ActiveMQInvalidTransientQueueUseException e) {
          exHappened = true;
       }
@@ -172,13 +173,13 @@ public class TransientQueueTest extends SingleServerTestBase {
 
       assertNull(server.locateQueue(queue));
 
-      session.createSharedQueue(address, queue, SimpleString.toSimpleString("q=1"), false);
+      session.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setFilterString(SimpleString.toSimpleString("q=1")).setDurable(false));
 
       exHappened = false;
 
       try {
          // There's already a queue with that name, we are supposed to throw an exception
-         session2.createSharedQueue(address, queue, SimpleString.toSimpleString("q=2"), false);
+         session2.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setFilterString(SimpleString.toSimpleString("q=2")).setDurable(false));
       } catch (ActiveMQInvalidTransientQueueUseException e) {
          exHappened = true;
       }
@@ -188,7 +189,7 @@ public class TransientQueueTest extends SingleServerTestBase {
       exHappened = false;
       try {
          // There's already a queue with that name, we are supposed to throw an exception
-         session2.createSharedQueue(address, queue, false);
+         session2.createSharedQueue(new QueueConfiguration(queue).setAddress(address).setDurable(false));
       } catch (ActiveMQInvalidTransientQueueUseException e) {
          exHappened = true;
       }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/UpdateQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/UpdateQueueTest.java
index 0901ece..a9250b3 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/UpdateQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/UpdateQueueTest.java
@@ -25,6 +25,7 @@ import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.persistence.impl.journal.JournalRecordIds;
@@ -50,7 +51,7 @@ public class UpdateQueueTest extends ActiveMQTestBase {
 
       final SimpleString user = new SimpleString("newUser");
 
-      Queue queue = server.createQueue(ADDRESS, RoutingType.ANYCAST, ADDRESS, user, null, true, false);
+      Queue queue = server.createQueue(new QueueConfiguration(ADDRESS).setRoutingType(RoutingType.ANYCAST).setUser(user));
 
       long originalID = queue.getID();
 
@@ -64,7 +65,7 @@ public class UpdateQueueTest extends ActiveMQTestBase {
          prod.send(session.createTextMessage("message " + i));
       }
 
-      server.updateQueue(ADDRESS.toString(), RoutingType.ANYCAST, 1, false, false, null);
+      server.updateQueue(new QueueConfiguration(ADDRESS).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1).setExclusive(false));
 
       conn.close();
       factory.close();
@@ -118,7 +119,7 @@ public class UpdateQueueTest extends ActiveMQTestBase {
 
       SimpleString ADDRESS = SimpleString.toSimpleString("queue.0");
 
-      Queue queue = server.createQueue(ADDRESS, RoutingType.ANYCAST, ADDRESS, null, null, true, false);
+      Queue queue = server.createQueue(new QueueConfiguration(ADDRESS).setRoutingType(RoutingType.ANYCAST));
 
       long originalID = queue.getID();
 
@@ -132,7 +133,19 @@ public class UpdateQueueTest extends ActiveMQTestBase {
          prod.send(session.createTextMessage("message " + i));
       }
 
-      server.updateQueue(ADDRESS.toString(), RoutingType.ANYCAST, null, 1, false, true, true, 5, "gfk", true, 1, 10L, "newUser", 180L);
+      server.updateQueue(new QueueConfiguration(ADDRESS.toString())
+                            .setRoutingType(RoutingType.ANYCAST)
+                            .setMaxConsumers(1)
+                            .setPurgeOnNoConsumers(false)
+                            .setExclusive(true)
+                            .setGroupRebalance(true)
+                            .setGroupBuckets(5)
+                            .setGroupFirstKey("gfk")
+                            .setNonDestructive(true)
+                            .setConsumersBeforeDispatch(1)
+                            .setDelayBeforeDispatch(10L)
+                            .setUser("newUser")
+                            .setRingSize(180L));
 
       conn.close();
       factory.close();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildCardRoutingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildCardRoutingTest.java
index 6a3619b..0afe80e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildCardRoutingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildCardRoutingTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -46,9 +47,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -73,7 +74,7 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString addressAC = new SimpleString("a.c");
       SimpleString address = new SimpleString("a.*");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -105,8 +106,8 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString address = new SimpleString("a.*");
       SimpleString queueName = new SimpleString("Q");
       SimpleString queueName2 = new SimpleString("Q2");
-      clientSession.createQueue(address, queueName, null, false);
-      clientSession.createQueue(address, queueName2, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -145,9 +146,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -174,12 +175,12 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
       clientSession.start();
       producer.send(createTextMessage(clientSession, "m1"));
       producer2.send(createTextMessage(clientSession, "m2"));
@@ -203,9 +204,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -250,16 +251,16 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName8 = new SimpleString("Q8");
       SimpleString queueName9 = new SimpleString("Q9");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(addressAD, queueName3, null, false);
-      clientSession.createQueue(addressAE, queueName4, null, false);
-      clientSession.createQueue(addressAF, queueName5, null, false);
-      clientSession.createQueue(addressAG, queueName6, null, false);
-      clientSession.createQueue(addressAH, queueName7, null, false);
-      clientSession.createQueue(addressAJ, queueName8, null, false);
-      clientSession.createQueue(addressAK, queueName9, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName3).setAddress(addressAD).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName4).setAddress(addressAE).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName5).setAddress(addressAF).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName6).setAddress(addressAG).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName7).setAddress(addressAH).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName8).setAddress(addressAJ).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName9).setAddress(addressAK).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer();
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
       clientSession.start();
@@ -347,16 +348,16 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName8 = new SimpleString("Q8");
       SimpleString queueName9 = new SimpleString("Q9");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(addressAD, queueName3, null, false);
-      clientSession.createQueue(addressAE, queueName4, null, false);
-      clientSession.createQueue(addressAF, queueName5, null, false);
-      clientSession.createQueue(addressAG, queueName6, null, false);
-      clientSession.createQueue(addressAH, queueName7, null, false);
-      clientSession.createQueue(addressAJ, queueName8, null, false);
-      clientSession.createQueue(addressAK, queueName9, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName3).setAddress(addressAD).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName4).setAddress(addressAE).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName5).setAddress(addressAF).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName6).setAddress(addressAG).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName7).setAddress(addressAH).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName8).setAddress(addressAJ).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName9).setAddress(addressAK).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer();
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
       clientSession.start();
@@ -430,9 +431,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -459,9 +460,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -488,9 +489,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -517,9 +518,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -546,9 +547,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -571,9 +572,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -598,9 +599,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -623,9 +624,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -648,9 +649,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -673,9 +674,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -698,9 +699,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
@@ -723,9 +724,9 @@ public class WildCardRoutingTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAB).getBindings().size());
       Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAC).getBindings().size());
       Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(address).getBindings().size());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildcardConfigurationTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildcardConfigurationTest.java
index dd8a470..b861919 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildcardConfigurationTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/WildcardConfigurationTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.client;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -62,9 +63,9 @@ public class WildcardConfigurationTest extends ActiveMQTestBase {
       SimpleString queueName1 = new SimpleString("Q1");
       SimpleString queueName2 = new SimpleString("Q2");
       SimpleString queueName = new SimpleString("Q");
-      clientSession.createQueue(addressAB, queueName1, null, false);
-      clientSession.createQueue(addressAC, queueName2, null, false);
-      clientSession.createQueue(address, queueName, null, false);
+      clientSession.createQueue(new QueueConfiguration(queueName1).setAddress(addressAB).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName2).setAddress(addressAC).setDurable(false));
+      clientSession.createQueue(new QueueConfiguration(queueName).setAddress(address).setDurable(false));
       ClientProducer producer = clientSession.createProducer(addressAB);
       ClientProducer producer2 = clientSession.createProducer(addressAC);
       ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientCrashTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientCrashTest.java
index 01df8b7..ff92b11 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientCrashTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientCrashTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.clientcrash;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -94,7 +95,7 @@ public class ClientCrashTest extends ClientTestBase {
       assertActiveConnections(1);
 
       ClientSession session = sf.createSession(false, true, true);
-      session.createQueue(ClientCrashTest.QUEUE, ClientCrashTest.QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(ClientCrashTest.QUEUE).setDurable(false));
 
       // spawn a JVM that creates a Core client, which sends a message
       // It has to be spawned after the queue was created.
@@ -148,7 +149,7 @@ public class ClientCrashTest extends ClientTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ClientCrashTest.QUEUE2, ClientCrashTest.QUEUE2, null, false);
+      session.createQueue(new QueueConfiguration(ClientCrashTest.QUEUE2).setDurable(false));
 
       // spawn a JVM that creates a Core client, which sends a message
       p = SpawnedVMSupport.spawnVM(CrashClient2.class.getName());
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientExitTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientExitTest.java
index 0c0f27e..e179826 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientExitTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/ClientExitTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.clientcrash;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -101,7 +102,7 @@ public class ClientExitTest extends ClientTestBase {
       addServerLocator(locator);
       ClientSessionFactory sf = createSessionFactory(locator);
       session = sf.createSession(false, true, true);
-      session.createQueue(ClientExitTest.QUEUE, ClientExitTest.QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(ClientExitTest.QUEUE).setDurable(false));
       consumer = session.createConsumer(ClientExitTest.QUEUE);
       session.start();
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/PendingDeliveriesTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/PendingDeliveriesTest.java
index 8af9290..703de6b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/PendingDeliveriesTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/clientcrash/PendingDeliveriesTest.java
@@ -25,6 +25,7 @@ import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -42,7 +43,7 @@ public class PendingDeliveriesTest extends ClientTestBase {
    @Before
    public void createQueue() throws Exception {
       server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString("queue1"), RoutingType.ANYCAST));
-      server.createQueue(SimpleString.toSimpleString("queue1"), RoutingType.ANYCAST, SimpleString.toSimpleString("queue1"), null, true, false);
+      server.createQueue(new QueueConfiguration("queue1").setRoutingType(RoutingType.ANYCAST));
    }
 
    @After
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeFailoverTest.java
index d46a61e..559c996 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeFailoverTest.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -27,7 +28,6 @@ import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl;
 import org.apache.activemq.artemis.tests.integration.cluster.util.MultiServerTestBase;
@@ -56,8 +56,8 @@ public class BridgeFailoverTest extends MultiServerTestBase {
       servers[2].getConfiguration().getBridgeConfigurations().add(bridgeConfiguration);
 
       for (ActiveMQServer server : servers) {
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(ORIGINAL_QUEUE).setName(ORIGINAL_QUEUE));
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(ORIGINAL_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(TARGET_QUEUE));
       }
 
       startServers();
@@ -124,8 +124,8 @@ public class BridgeFailoverTest extends MultiServerTestBase {
       servers[2].getConfiguration().getBridgeConfigurations().add(bridgeConfiguration);
 
       for (ActiveMQServer server : servers) {
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(ORIGINAL_QUEUE).setName(ORIGINAL_QUEUE));
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(ORIGINAL_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(TARGET_QUEUE));
       }
 
       startServers();
@@ -227,8 +227,8 @@ public class BridgeFailoverTest extends MultiServerTestBase {
       servers[2].getConfiguration().getBridgeConfigurations().add(bridgeConfiguration);
 
       for (ActiveMQServer server : servers) {
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(ORIGINAL_QUEUE).setName(ORIGINAL_QUEUE));
-         server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(ORIGINAL_QUEUE));
+         server.getConfiguration().addQueueConfiguration(new QueueConfiguration(TARGET_QUEUE));
       }
 
       startBackups(0, 1, 3, 4);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeReconnectTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeReconnectTest.java
index 23ce8a7..e2b819e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeReconnectTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeReconnectTest.java
@@ -24,6 +24,7 @@ import java.util.Map;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -36,7 +37,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.api.core.management.QueueControl;
 import org.apache.activemq.artemis.api.core.management.ResourceNames;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.NodeManager;
@@ -141,16 +141,16 @@ public class BridgeReconnectTest extends BridgeTestBase {
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
       server2.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server1.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs1);
-      server2.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server0.getConfiguration().setQueueConfigs(queueConfigs1);
+      server2.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
 
@@ -191,16 +191,16 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
-      server2.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
+      server2.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
 
@@ -272,16 +272,16 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
-      server2.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
+      server2.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
       // Now we will simulate a failure of the bridge connection between server0 and server1
@@ -337,15 +337,15 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
 
@@ -425,15 +425,15 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
       startServers();
 
       waitForServerStart(server0);
@@ -529,15 +529,15 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
 
@@ -631,15 +631,15 @@ public class BridgeReconnectTest extends BridgeTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       startServers();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeStartTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeStartTest.java
index 29cb8e6..ee52ea4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeStartTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeStartTest.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -33,7 +34,6 @@ import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.cluster.Bridge;
@@ -108,15 +108,15 @@ public class BridgeStartTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          server1.start();
          waitForServerToStart(server1);
@@ -252,15 +252,15 @@ public class BridgeStartTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
       ServerLocator locator = null;
       try {
          // Don't start server 1 yet
@@ -437,15 +437,15 @@ public class BridgeStartTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          // Don't start server 1 yet
 
@@ -567,15 +567,15 @@ public class BridgeStartTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          server1.start();
          waitForServerToStart(server1);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeTest.java
index 3c8b5c2..e734042 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeTest.java
@@ -37,6 +37,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Interceptor;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -49,7 +50,6 @@ import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
 import org.apache.activemq.artemis.core.config.Configuration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.TransformerConfiguration;
 import org.apache.activemq.artemis.core.io.SequentialFileFactory;
 import org.apache.activemq.artemis.core.io.nio.NIOSequentialFileFactory;
@@ -180,15 +180,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -291,15 +291,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -428,15 +428,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -583,15 +583,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -717,10 +717,10 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
       server0.start();
 
@@ -758,7 +758,7 @@ public class BridgeTest extends ActiveMQTestBase {
       ClientSession session1 = sf1.createSession(false, true, true);
 
       try {
-         session1.createQueue(forwardAddress, RoutingType.ANYCAST, queueName1);
+         session1.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setRoutingType(RoutingType.ANYCAST));
       } catch (Throwable ignored) {
          ignored.printStackTrace();
       }
@@ -825,12 +825,12 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(secondQueue);
+      queueConfig0 = new QueueConfiguration(secondQueue).setAddress(testAddress);
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
       server0.start();
 
@@ -893,7 +893,7 @@ public class BridgeTest extends ActiveMQTestBase {
       ClientSession session1 = sf1.createSession(false, true, true);
 
       try {
-         session1.createQueue(forwardAddress, RoutingType.ANYCAST, queueName1);
+         session1.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setRoutingType(RoutingType.ANYCAST));
       } catch (Throwable ignored) {
          ignored.printStackTrace();
       }
@@ -995,15 +995,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -1105,15 +1105,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -1207,15 +1207,15 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       try {
          server1.start();
@@ -1410,15 +1410,15 @@ public class BridgeTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          List<String> interceptorToStop = new ArrayList<>();
          interceptorToStop.add(StopInterceptor.class.getName());
@@ -1638,15 +1638,15 @@ public class BridgeTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          server1.start();
          server0.start();
@@ -1770,15 +1770,15 @@ public class BridgeTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          server1.start();
          server0.start();
@@ -1923,16 +1923,16 @@ public class BridgeTest extends ActiveMQTestBase {
       bridgeConfigs.add(bridgeConfiguration);
       server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-      CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-      List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+      QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
       queueConfigs0.add(queueConfig0);
-      server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+      server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
       // on server #1, we bind queueName1 to same address testAddress
-      CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName1);
-      List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+      QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(testAddress);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
       queueConfigs1.add(queueConfig1);
-      server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+      server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
       server1.start();
       server0.start();
@@ -2007,7 +2007,7 @@ public class BridgeTest extends ActiveMQTestBase {
       ActiveMQServer server = addServer(new ActiveMQServerImpl(config, null, null, null, serviceRegistry));
       server.start();
       server.waitForActivation(100, TimeUnit.MILLISECONDS);
-      server.createQueue(ADDRESS, RoutingType.ANYCAST, QUEUE, null, false, false);
+      server.createQueue(new QueueConfiguration(QUEUE).setAddress(ADDRESS).setRoutingType(RoutingType.ANYCAST).setDurable(false));
       List<String> connectors = new ArrayList<>();
       connectors.add("in-vm");
       server.deployBridge(new BridgeConfiguration().setName(BRIDGE).setQueueName(QUEUE.toString()).setForwardingAddress(ADDRESS.toString()).setStaticConnectors(connectors));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
index bf67e07..97ee500 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration;
 import org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory;
@@ -36,7 +37,6 @@ import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.config.BridgeConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory;
 import org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory;
 import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
@@ -120,15 +120,15 @@ public class BridgeWithDiscoveryGroupStartTest extends ActiveMQTestBase {
          bridgeConfigs.add(bridgeConfiguration);
          server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
 
-         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration().setAddress(testAddress).setName(queueName0);
-         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<>();
+         QueueConfiguration queueConfig0 = new QueueConfiguration(queueName0).setAddress(testAddress);
+         List<QueueConfiguration> queueConfigs0 = new ArrayList<>();
          queueConfigs0.add(queueConfig0);
-         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+         server0.getConfiguration().setQueueConfigs(queueConfigs0);
 
-         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration().setAddress(forwardAddress).setName(queueName1);
-         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<>();
+         QueueConfiguration queueConfig1 = new QueueConfiguration(queueName1).setAddress(forwardAddress);
+         List<QueueConfiguration> queueConfigs1 = new ArrayList<>();
          queueConfigs1.add(queueConfig1);
-         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+         server1.getConfiguration().setQueueConfigs(queueConfigs1);
 
          server1.start();
          server0.start();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/crossprotocol/ProtocolsMessageLoadBalancingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/crossprotocol/ProtocolsMessageLoadBalancingTest.java
index c6624de..3213953 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/crossprotocol/ProtocolsMessageLoadBalancingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/crossprotocol/ProtocolsMessageLoadBalancingTest.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import java.util.Collection;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -100,8 +101,9 @@ public class ProtocolsMessageLoadBalancingTest extends ClusterTestBase {
    }
 
    private void createQueue(SimpleString queueName) throws Exception {
-      servers[0].createQueue(queueName, RoutingType.ANYCAST, queueName, (SimpleString) null, (SimpleString) null, true, false, false, false, false, -1, false, false, false, true);
-      servers[1].createQueue(queueName, RoutingType.ANYCAST, queueName, (SimpleString) null, (SimpleString) null, true, false, false, false, false, -1, false, false, false, true);
+      QueueConfiguration queueConfiguration = new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST);
+      servers[0].createQueue(queueConfiguration);
+      servers[1].createQueue(queueConfiguration);
    }
 
    protected boolean isNetty() {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ClusterTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ClusterTestBase.java
index 32d5d29..02adf2b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ClusterTestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ClusterTestBase.java
@@ -39,6 +39,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration;
 import org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory;
@@ -541,7 +542,7 @@ public abstract class ClusterTestBase extends ActiveMQTestBase {
 
       log.info("Creating " + queueName + " , address " + address + " on " + servers[node]);
 
-      session.createQueue(address, routingType, queueName, filterString, durable);
+      session.createQueue(new QueueConfiguration(queueName).setAddress(address).setRoutingType(routingType).setFilterString(filterString).setDurable(durable));
 
       session.close();
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ExpireWhileLoadBalanceTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ExpireWhileLoadBalanceTest.java
index 059d776..5c50026 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ExpireWhileLoadBalanceTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/ExpireWhileLoadBalanceTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.activemq.artemis.tests.integration.cluster.distribution;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -75,7 +76,7 @@ public class ExpireWhileLoadBalanceTest extends ClusterTestBase {
 
       for (int i = 0; i <= 2; i++) {
          createQueue(i, "queues.testaddress", "queue0", null, true);
-         getServer(i).createQueue(expiryQueue, RoutingType.ANYCAST, expiryQueue, null, true, false);
+         getServer(i).createQueue(new QueueConfiguration(expiryQueue).setRoutingType(RoutingType.ANYCAST));
          getServer(i).getAddressSettingsRepository().addMatch("#", as);
 
       }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/TemporaryQueueClusterTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/TemporaryQueueClusterTest.java
index 3f4c113..ffc9b06 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/TemporaryQueueClusterTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/TemporaryQueueClusterTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.distribution;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -57,7 +58,7 @@ public class TemporaryQueueClusterTest extends ClusterTestBase {
       String tempQueue = "tempqueue";
       // create temp queue on node #0
       ClientSession session = sfs[0].createSession(false, true, true);
-      session.createTemporaryQueue(tempAddress, tempQueue);
+      session.createQueue(new QueueConfiguration(tempQueue).setAddress(tempAddress).setDurable(false).setTemporary(true));
       ClientConsumer consumer = session.createConsumer(tempQueue);
 
       // check the binding is created on node #1
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AsynchronousFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AsynchronousFailoverTest.java
index 82b6286..3ae5b64 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AsynchronousFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AsynchronousFailoverTest.java
@@ -28,6 +28,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQTransactionOutcomeUnknownExc
 import org.apache.activemq.artemis.api.core.ActiveMQTransactionRolledBackException;
 import org.apache.activemq.artemis.api.core.ActiveMQUnBlockedException;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -147,7 +148,7 @@ public class AsynchronousFailoverTest extends FailoverTestBase {
 
                ClientSession createSession = sf.createSession(true, true);
 
-               createSession.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, (SimpleString) null, true);
+               createSession.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS).setAddress(FailoverTestBase.ADDRESS));
 
                RemotingConnection conn = ((ClientSessionInternal) createSession).getConnection();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AutomaticColocatedQuorumVoteTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AutomaticColocatedQuorumVoteTest.java
index 0f792b5..7ea9317 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AutomaticColocatedQuorumVoteTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/AutomaticColocatedQuorumVoteTest.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -31,7 +32,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.client.impl.Topology;
 import org.apache.activemq.artemis.core.client.impl.TopologyMemberImpl;
 import org.apache.activemq.artemis.core.config.Configuration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.ScaleDownConfiguration;
 import org.apache.activemq.artemis.core.config.ha.ColocatedPolicyConfiguration;
 import org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration;
@@ -281,7 +281,7 @@ public class AutomaticColocatedQuorumVoteTest extends ActiveMQTestBase {
                                           TransportConfiguration liveConnector,
                                           TransportConfiguration liveAcceptor,
                                           TransportConfiguration... otherLiveNodes) throws Exception {
-      Configuration configuration = createDefaultInVMConfig().clearAcceptorConfigurations().addAcceptorConfiguration(liveAcceptor).addConnectorConfiguration(liveConnector.getName(), liveConnector).setJournalDirectory(getJournalDir() + identity).setBindingsDirectory(getBindingsDir() + identity).setLargeMessagesDirectory(getLargeMessagesDir() + identity).setPagingDirectory(getPageDir() + identity).addQueueConfiguration(new CoreQueueConfiguration().setAddress("testQueue").setName("testQueue"));
+      Configuration configuration = createDefaultInVMConfig().clearAcceptorConfigurations().addAcceptorConfiguration(liveAcceptor).addConnectorConfiguration(liveConnector.getName(), liveConnector).setJournalDirectory(getJournalDir() + identity).setBindingsDirectory(getBindingsDir() + identity).setLargeMessagesDirectory(getLargeMessagesDir() + identity).setPagingDirectory(getPageDir() + identity).addQueueConfiguration(new QueueConfiguration("testQueue"));
 
       List<String> transportConfigurationList = new ArrayList<>();
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncJournalTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncJournalTest.java
index aae8427..336ea9b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncJournalTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncJournalTest.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Pair;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -46,7 +47,6 @@ import org.apache.activemq.artemis.core.paging.PagingStore;
 import org.apache.activemq.artemis.core.persistence.impl.journal.DescribeJournal;
 import org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager;
 import org.apache.activemq.artemis.core.server.Queue;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.files.FileMoveManager;
 import org.apache.activemq.artemis.tests.integration.cluster.util.BackupSyncDelay;
 import org.apache.activemq.artemis.tests.integration.cluster.util.TestableServer;
@@ -364,7 +364,7 @@ public class BackupSyncJournalTest extends FailoverTestBase {
 
    protected void createProducerSendSomeMessages() throws ActiveMQException {
       session = addClientSession(sessionFactory.createSession(true, true));
-      session.createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
       if (producer != null)
          producer.close();
       producer = addClientProducer(session.createProducer(ADDRESS));
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java
index f90af32..6599a1a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -110,7 +111,7 @@ public class BackupSyncLargeMessageTest extends BackupSyncJournalTest {
    @Test
    public void testBackupStartsWhenLiveIsReceivingLargeMessage() throws Exception {
       final ClientSession session = addClientSession(sessionFactory.createSession(true, true));
-      session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
       final ClientMessage message = session.createMessage(true);
       final int largeMessageSize = 1000 * MIN_LARGE_MESSAGE;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackAutoTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackAutoTest.java
index 6f66d86..4840b02 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackAutoTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackAutoTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.cluster.failover;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -272,7 +273,7 @@ public class FailBackAutoTest extends FailoverTestBase {
       ClientSession session = sf.createSession(false, true, true);
 
       if (createQueue) {
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
       }
 
       ClientProducer producer = session.createProducer(ADDRESS);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackManualTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackManualTest.java
index b74af0d..629876c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackManualTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailBackManualTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -128,7 +129,7 @@ public class FailBackManualTest extends FailoverTestBase {
       ClientSession session = sf.createSession(false, true, true);
 
       if (createQueue) {
-         session.createQueue(ADDRESS, ADDRESS, null, false);
+         session.createQueue(new QueueConfiguration(ADDRESS).setDurable(false));
       }
 
       ClientProducer producer = session.createProducer(ADDRESS);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverListenerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverListenerTest.java
index 0eb8e2e..259deeb 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverListenerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverListenerTest.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -210,7 +211,7 @@ public class FailoverListenerTest extends FailoverTestBase {
       ClientSession session = sf.createSession(false, true, true);
 
       if (createQueue) {
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
       }
 
       ClientProducer producer = session.createProducer(ADDRESS);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverOnFlowControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverOnFlowControlTest.java
index f7d6d56..cc2d1db 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverOnFlowControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverOnFlowControlTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -78,7 +79,7 @@ public class FailoverOnFlowControlTest extends FailoverTestBase {
       ClientSession session = sf.createSession(true, true);
       sessionList.add(session);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
index a6af13b..0944620 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
@@ -36,6 +36,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQTransactionOutcomeUnknownExc
 import org.apache.activemq.artemis.api.core.ActiveMQTransactionRolledBackException;
 import org.apache.activemq.artemis.api.core.Interceptor;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -48,7 +49,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.api.core.client.SessionFailureListener;
 import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl;
 import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryInternal;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.cluster.ha.BackupPolicy;
 import org.apache.activemq.artemis.core.server.cluster.ha.HAPolicy;
 import org.apache.activemq.artemis.core.server.cluster.ha.ReplicaPolicy;
@@ -122,7 +122,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf1, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -189,7 +189,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf1, true, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -259,7 +259,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf1, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -354,7 +354,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf1, true, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final CountDownLatch connectionFailed = new CountDownLatch(1);
 
@@ -422,7 +422,7 @@ public class FailoverTest extends FailoverTestBase {
       ClientSessionFactoryInternal sf1 = (ClientSessionFactoryInternal) createSessionFactory(locator);
       final ClientSession session = createSession(sf1, false, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final CountDownLatch connectionFailed = new CountDownLatch(1);
 
@@ -501,7 +501,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf1, true, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -552,7 +552,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -597,7 +597,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -630,7 +630,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -687,7 +687,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       //crash 1
       crash();
@@ -1019,7 +1019,7 @@ public class FailoverTest extends FailoverTestBase {
    protected ClientSession createSessionAndQueue() throws Exception {
       ClientSession session = createSession(sf, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
       return session;
    }
 
@@ -1035,7 +1035,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1307,7 +1307,7 @@ public class FailoverTest extends FailoverTestBase {
 
       Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes());
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1343,7 +1343,7 @@ public class FailoverTest extends FailoverTestBase {
 
       Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes());
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1380,7 +1380,7 @@ public class FailoverTest extends FailoverTestBase {
 
       Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes());
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1422,7 +1422,7 @@ public class FailoverTest extends FailoverTestBase {
 
       Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes());
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1459,7 +1459,7 @@ public class FailoverTest extends FailoverTestBase {
 
       Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes());
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1692,7 +1692,7 @@ public class FailoverTest extends FailoverTestBase {
          for (int j = 0; j < numConsumersPerSession; j++) {
             SimpleString queueName = new SimpleString("queue" + i + "-" + j);
 
-            session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, queueName, null, true);
+            session.createQueue(new QueueConfiguration(queueName).setAddress(FailoverTestBase.ADDRESS));
 
             ClientConsumer consumer = session.createConsumer(queueName);
 
@@ -1732,7 +1732,7 @@ public class FailoverTest extends FailoverTestBase {
       createSessionFactory();
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1762,7 +1762,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1841,7 +1841,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true, 0);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1893,11 +1893,7 @@ public class FailoverTest extends FailoverTestBase {
 
       ClientSession session = createSession(sf, true, true, 0);
 
-      if (temporary) {
-         session.createTemporaryQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null);
-      } else {
-         session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, durable);
-      }
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS).setDurable(durable && !temporary).setTemporary(temporary));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1924,7 +1920,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf, true, true, 0);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -1978,7 +1974,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
@@ -2109,7 +2105,7 @@ public class FailoverTest extends FailoverTestBase {
 
       final ClientSession session = createSession(sf, false, false);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
       sendMessages(session, producer, NUM_MESSAGES);
@@ -2376,7 +2372,7 @@ public class FailoverTest extends FailoverTestBase {
       ClientSession session = createSession(sf1, false, true, true);
 
       if (createQueue) {
-         session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, false);
+         session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS).setDurable(false));
       }
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverWithDivertTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverWithDivertTest.java
index 943bb9d..82fd207 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverWithDivertTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverWithDivertTest.java
@@ -16,7 +16,12 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -28,16 +33,11 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryInternal;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.DivertConfiguration;
 import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 public class FailoverWithDivertTest extends FailoverTestBase {
 
    private static final String DIVERT_ADDRESS = "jms.queue.testQueue";
@@ -78,10 +78,7 @@ public class FailoverWithDivertTest extends FailoverTestBase {
       CoreAddressConfiguration addrCfg = new CoreAddressConfiguration();
       addrCfg.setName(address);
       addrCfg.addRoutingType(RoutingType.ANYCAST);
-      CoreQueueConfiguration qConfig = new CoreQueueConfiguration();
-      qConfig.setName(name);
-      qConfig.setAddress(address);
-      addrCfg.addQueueConfiguration(qConfig);
+      addrCfg.addQueueConfiguration(new QueueConfiguration(name).setAddress(address));
       addrConfigs.add(addrCfg);
    }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveCrashOnBackupSyncTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveCrashOnBackupSyncTest.java
index c788700..426aea6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveCrashOnBackupSyncTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveCrashOnBackupSyncTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -154,7 +155,7 @@ public class LiveCrashOnBackupSyncTest extends ActiveMQTestBase {
       locator.setConnectionTTL(60_000L);
       final ClientSessionFactory csf = locator.createSessionFactory();
       ClientSession session = csf.createSession();
-      session.createQueue("LiveCrashTestQueue", RoutingType.ANYCAST, "LiveCrashTestQueue", true);
+      session.createQueue(new QueueConfiguration("LiveCrashTestQueue").setRoutingType(RoutingType.ANYCAST));
       ClientProducer producer = session.createProducer("LiveCrashTestQueue");
       ClientMessage msgs = session.createMessage(true);
       msgs.getBodyBuffer().writeBytes(buffer);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
index f73785e..961eac8 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
@@ -20,6 +20,7 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -118,7 +119,7 @@ public class LiveToLiveFailoverTest extends FailoverTest {
          sf2 = (ClientSessionFactoryInternal) locator.createSessionFactory(backupServer.getServer().getNodeID().toString());
 
          ClientSession session2 = createSession(sf2, false, false);
-         session2.createQueue(ADDRESS, ADDRESS, null, true);
+         session2.createQueue(new QueueConfiguration(ADDRESS));
          addSessionFactory(sf2);
       }
 
@@ -146,7 +147,7 @@ public class LiveToLiveFailoverTest extends FailoverTest {
          sf2 = (ClientSessionFactoryInternal) locator.createSessionFactory(backupServer.getServer().getNodeID().toString());
 
          ClientSession session2 = createSession(sf2, false, false);
-         session2.createQueue(ADDRESS, ADDRESS, null, true);
+         session2.createQueue(new QueueConfiguration(ADDRESS));
          addSessionFactory(sf2);
       }
       return sf;
@@ -172,7 +173,7 @@ public class LiveToLiveFailoverTest extends FailoverTest {
          sf2 = (ClientSessionFactoryInternal) locator.createSessionFactory(backupServer.getServer().getNodeID().toString());
          addSessionFactory(sf2);
          ClientSession session2 = createSession(sf2, false, false);
-         session2.createQueue(ADDRESS, ADDRESS, null, true);
+         session2.createQueue(new QueueConfiguration(ADDRESS));
       }
    }
 
@@ -190,7 +191,7 @@ public class LiveToLiveFailoverTest extends FailoverTest {
 
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
@@ -227,7 +228,7 @@ public class LiveToLiveFailoverTest extends FailoverTest {
 
       ClientSession session = createSession(sf);
 
-      //session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      //session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/MultipleBackupsFailoverTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/MultipleBackupsFailoverTestBase.java
index b8f50f2..4e0362a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/MultipleBackupsFailoverTestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/MultipleBackupsFailoverTestBase.java
@@ -20,6 +20,7 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -81,7 +82,7 @@ public abstract class MultipleBackupsFailoverTestBase extends ActiveMQTestBase {
       ClientSession session = sf.createSession(false, true, true);
 
       if (createQueue) {
-         session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, false);
+         session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS).setDurable(false));
       }
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyFailoverTest.java
index 88549db..0173f9d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyFailoverTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -175,7 +176,7 @@ public class NettyFailoverTest extends FailoverTest {
 
       ClientSession session = createSession(sf, true, true, 0);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyReplicationStopTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyReplicationStopTest.java
index 64343e3..88678c5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyReplicationStopTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NettyReplicationStopTest.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -96,7 +97,7 @@ public class NettyReplicationStopTest extends FailoverTestBase {
 
       ClientSession session = sf.createSession(true, true);
 
-      session.createQueue(ADDRESS, ADDRESS, null, true);
+      session.createQueue(new QueueConfiguration(ADDRESS));
 
       ClientProducer producer = session.createProducer(ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkFailureFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkFailureFailoverTest.java
index 8f9f6dc..b86e329 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkFailureFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkFailureFailoverTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -219,7 +220,7 @@ public class NetworkFailureFailoverTest extends FailoverTestBase {
 
       ClientSession sessionProducer = createSession(sfProducer, true, true, 0);
 
-      sessionProducer.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      sessionProducer.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = sessionProducer.createProducer(FailoverTestBase.ADDRESS);
 
@@ -351,7 +352,7 @@ public class NetworkFailureFailoverTest extends FailoverTestBase {
 
       ClientSession sessionProducer = createSession(sfProducer, true, true, 0);
 
-      sessionProducer.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      sessionProducer.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       ClientProducer producer = sessionProducer.createProducer(FailoverTestBase.ADDRESS);
 
@@ -633,7 +634,7 @@ public class NetworkFailureFailoverTest extends FailoverTestBase {
 
       final ClientSession sessionProducer = createSession(sfProducer, true, true, 0);
 
-      sessionProducer.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+      sessionProducer.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
       final ClientProducer producer = sessionProducer.createProducer(FailoverTestBase.ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkIsolationTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkIsolationTest.java
index 6daa546..95db530 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkIsolationTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/NetworkIsolationTest.java
@@ -20,6 +20,7 @@ package org.apache.activemq.artemis.tests.integration.cluster.failover;
 import java.net.InetAddress;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
@@ -108,7 +109,7 @@ public class NetworkIsolationTest extends FailoverTestBase {
 
          ClientSession session = createSession(sf, false, true, true);
 
-         session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS));
 
          Assert.assertFalse(backupServer.getServer().getNetworkHealthCheck().check());
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/PagingFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/PagingFailoverTest.java
index abbc5d0..07a8d38 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/PagingFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/PagingFailoverTest.java
@@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
 import java.util.HashMap;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -91,7 +92,7 @@ public class PagingFailoverTest extends FailoverTestBase {
       sf = createSessionFactoryAndWaitForTopology(locator, 2);
       session = addClientSession(sf.createSession(!transacted, !transacted, 0));
 
-      session.createQueue(PagingFailoverTest.ADDRESS, PagingFailoverTest.ADDRESS, true);
+      session.createQueue(new QueueConfiguration(PagingFailoverTest.ADDRESS));
 
       ClientProducer prod = session.createProducer(PagingFailoverTest.ADDRESS);
 
@@ -167,7 +168,7 @@ public class PagingFailoverTest extends FailoverTestBase {
       ClientSessionFactoryInternal sf = createSessionFactoryAndWaitForTopology(locator, 2);
       session = sf.createSession(false, false, 0);
 
-      session.createQueue(PagingFailoverTest.ADDRESS, PagingFailoverTest.ADDRESS, true);
+      session.createQueue(new QueueConfiguration(PagingFailoverTest.ADDRESS));
 
       ClientProducer prod = session.createProducer(PagingFailoverTest.ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicaTimeoutTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicaTimeoutTest.java
index df3e2b8..91bbd20 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicaTimeoutTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicaTimeoutTest.java
@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -167,7 +168,7 @@ public class ReplicaTimeoutTest extends ActiveMQTestBase {
 
             ClientSession session = createSession(sf, true, true);
 
-            session.createQueue(ADDRESS, ADDRESS, null, true);
+            session.createQueue(new QueueConfiguration(ADDRESS));
 
             crash(liveServer, backupServer, session);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedDistributionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedDistributionTest.java
index acbca91..f76ca16 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedDistributionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedDistributionTest.java
@@ -20,6 +20,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -200,8 +201,8 @@ public class ReplicatedDistributionTest extends ClusterTestBase {
       sessionOne = sfs[1].createSession(true, true);
       sessionThree = sfs[3].createSession(false, false);
 
-      sessionOne.createQueue(ReplicatedDistributionTest.ADDRESS, ReplicatedDistributionTest.ADDRESS, true);
-      sessionThree.createQueue(ReplicatedDistributionTest.ADDRESS, ReplicatedDistributionTest.ADDRESS, true);
+      sessionOne.createQueue(new QueueConfiguration(ReplicatedDistributionTest.ADDRESS));
+      sessionThree.createQueue(new QueueConfiguration(ReplicatedDistributionTest.ADDRESS));
 
       consThree = sessionThree.createConsumer(ReplicatedDistributionTest.ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedFailoverTest.java
index f7dffe1..cea8706 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedFailoverTest.java
@@ -25,6 +25,7 @@ import java.util.concurrent.TimeUnit;
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
 import com.sun.net.httpserver.HttpServer;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.component.WebServerComponent;
 import org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration;
@@ -88,7 +89,7 @@ public class ReplicatedFailoverTest extends FailoverTest {
 
          ClientSession session = createSession(sf, true, true);
 
-         session.createQueue(ADDRESS, ADDRESS, null, true);
+         session.createQueue(new QueueConfiguration(ADDRESS));
 
          crash(session);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedMultipleServerFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedMultipleServerFailoverTest.java
index 383b371..82777a7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedMultipleServerFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedMultipleServerFailoverTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
 import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import org.apache.activemq.artemis.api.core.client.ServerLocator;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.tests.integration.cluster.util.TestableServer;
 import org.junit.Test;
 
@@ -67,7 +67,7 @@ public class ReplicatedMultipleServerFailoverTest extends MultipleServerFailover
          ClientSession[] sessions = new ClientSession[liveServers.size()];
          for (int i = 0; i < factories.length; i++) {
             sessions[i] = createSession(factories[i], true, true);
-            sessions[i].createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, null, true);
+            sessions[i].createQueue(new QueueConfiguration(ADDRESS));
          }
 
          //make sure bindings are ready before sending messages
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedPagedFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedPagedFailoverTest.java
index 0797590..7f72217 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedPagedFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/ReplicatedPagedFailoverTest.java
@@ -18,7 +18,7 @@ package org.apache.activemq.artemis.tests.integration.cluster.failover;
 
 import java.util.HashMap;
 
-import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
@@ -70,7 +70,7 @@ public class ReplicatedPagedFailoverTest extends ReplicatedFailoverTest {
       createSessionFactory();
       ClientSession session = createSession(sf, true, true);
 
-      session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(FailoverTestBase.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/MultiThreadRandomReattachTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/MultiThreadRandomReattachTestBase.java
index bbf753c..8299f2c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/MultiThreadRandomReattachTestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/MultiThreadRandomReattachTestBase.java
@@ -24,6 +24,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -251,7 +252,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
       ClientSession session = addClientSession(sf.createSession(false, true, true));
 
-      session.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+      session.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(MultiThreadRandomReattachTestBase.ADDRESS);
 
@@ -307,7 +308,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
          sessConsume.start();
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -383,7 +384,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
          ClientSession sessConsume = createAutoCommitSession(sf);
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -467,7 +468,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
          sessConsume.start();
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -566,7 +567,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
          ClientSession sessConsume = sf.createSession(false, false, false);
          sessConsume.addMetaData("data", RandomUtil.randomString());
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -695,7 +696,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
          sessConsume.start();
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -750,7 +751,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
          ClientSession sessConsume = sf.createSession(false, true, true);
          sessConsume.addMetaData("data", RandomUtil.randomString());
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -811,7 +812,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
 
          sessConsume.start();
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -882,7 +883,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
          ClientSession sessConsume = sf.createSession(false, false, false);
          sessConsume.addMetaData("data", RandomUtil.randomString());
 
-         sessConsume.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, subName, (SimpleString) null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -942,7 +943,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
       ClientSession sessCreate = sf.createSession(false, true, true);
       sessCreate.addMetaData("data", RandomUtil.randomString());
 
-      sessCreate.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false);
+      sessCreate.createQueue(new QueueConfiguration(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
       sess.addMetaData("data", RandomUtil.randomString());
@@ -973,7 +974,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
       ClientSession sessCreate = sf.createSession(false, true, true);
       sessCreate.addMetaData("data", RandomUtil.randomString());
 
-      sessCreate.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false);
+      sessCreate.createQueue(new QueueConfiguration(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
       sess.addMetaData("data", RandomUtil.randomString());
@@ -1004,7 +1005,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
       ClientSession s = sf.createSession(false, false, false);
       s.addMetaData("data", RandomUtil.randomString());
 
-      s.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false);
+      s.createQueue(new QueueConfiguration(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       final int numConsumers = 100;
 
@@ -1037,7 +1038,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
    protected void doTestN(final ClientSessionFactory sf, final int threadNum) throws Exception {
       ClientSession sessCreate = sf.createSession(false, true, true);
 
-      sessCreate.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false);
+      sessCreate.createQueue(new QueueConfiguration(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
       sess.addMetaData("data", RandomUtil.randomString());
@@ -1077,7 +1078,7 @@ public abstract class MultiThreadRandomReattachTestBase extends MultiThreadReatt
    protected void doTestO(final ClientSessionFactory sf, final int threadNum) throws Exception {
       ClientSession sessCreate = sf.createSession(false, true, true);
 
-      sessCreate.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false);
+      sessCreate.createQueue(new QueueConfiguration(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())).setAddress(MultiThreadRandomReattachTestBase.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java
index e8ba417..b820311 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/OrderReattachTest.java
@@ -23,6 +23,7 @@ import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -34,7 +35,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.core.client.impl.ClientSessionInternal;
 import org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.jms.client.ActiveMQTextMessage;
 import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
@@ -160,7 +160,7 @@ public class OrderReattachTest extends ActiveMQTestBase {
 
          ClientSession sessConsume = sf.createSession(false, true, true);
 
-         sessConsume.createQueue(ADDRESS, RoutingType.MULTICAST, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java
index 286a7bb..38f3fcb 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/RandomReattachTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -243,7 +244,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          sessConsume.start();
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -343,7 +344,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          ClientSession sessConsume = sf.createSession(false, true, true);
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -445,7 +446,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          sessConsume.start();
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -583,7 +584,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          ClientSession sessConsume = sf.createSession(false, false, false);
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -722,7 +723,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          sessConsume.start();
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -796,7 +797,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          ClientSession sessConsume = sf.createSession(false, true, true);
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -882,7 +883,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          sessConsume.start();
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -992,7 +993,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
 
          ClientSession sessConsume = sf.createSession(false, false, false);
 
-         sessConsume.createQueue(RandomReattachTest.ADDRESS, subName, null, false);
+         sessConsume.createQueue(new QueueConfiguration(subName).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
          ClientConsumer consumer = sessConsume.createConsumer(subName);
 
@@ -1094,7 +1095,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
    protected void doTestI(final ClientSessionFactory sf) throws Exception {
       ClientSession sessCreate = sf.createSession(false, true, true);
 
-      sessCreate.createQueue(RandomReattachTest.ADDRESS, RandomReattachTest.ADDRESS, null, false);
+      sessCreate.createQueue(new QueueConfiguration(RandomReattachTest.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
 
@@ -1123,7 +1124,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
    protected void doTestJ(final ClientSessionFactory sf) throws Exception {
       ClientSession sessCreate = sf.createSession(false, true, true);
 
-      sessCreate.createQueue(RandomReattachTest.ADDRESS, RandomReattachTest.ADDRESS, null, false);
+      sessCreate.createQueue(new QueueConfiguration(RandomReattachTest.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
 
@@ -1152,7 +1153,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
    protected void doTestK(final ClientSessionFactory sf) throws Exception {
       ClientSession s = sf.createSession(false, false, false);
 
-      s.createQueue(RandomReattachTest.ADDRESS, RandomReattachTest.ADDRESS, null, false);
+      s.createQueue(new QueueConfiguration(RandomReattachTest.ADDRESS).setDurable(false));
 
       final int numConsumers = 100;
 
@@ -1180,7 +1181,7 @@ public class RandomReattachTest extends ActiveMQTestBase {
    protected void doTestN(final ClientSessionFactory sf) throws Exception {
       ClientSession sessCreate = sf.createSession(false, true, true);
 
-      sessCreate.createQueue(RandomReattachTest.ADDRESS, new SimpleString(RandomReattachTest.ADDRESS.toString()), null, false);
+      sessCreate.createQueue(new QueueConfiguration(new SimpleString(RandomReattachTest.ADDRESS.toString())).setAddress(RandomReattachTest.ADDRESS).setDurable(false));
 
       ClientSession sess = sf.createSession(false, true, true);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
index a20bf74..03e1efc 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
@@ -26,6 +26,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException;
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
 import org.apache.activemq.artemis.api.core.Interceptor;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -74,7 +75,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       final int numIterations = 10;
 
@@ -165,7 +166,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -201,7 +202,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -303,7 +304,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       session2.addFailureListener(listener);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -384,7 +385,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -657,7 +658,7 @@ public class ReattachTest extends ActiveMQTestBase {
       t.start();
 
       for (int i = 0; i < 10; i++) {
-         session.createQueue("address", RoutingType.ANYCAST, "queue" + i);
+         session.createQueue(new QueueConfiguration("queue" + i).setAddress("address").setRoutingType(RoutingType.ANYCAST));
       }
 
       //
@@ -698,7 +699,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -757,7 +758,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -836,7 +837,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
@@ -905,7 +906,7 @@ public class ReattachTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(ReattachTest.ADDRESS, ReattachTest.ADDRESS, null, false);
+      session.createQueue(new QueueConfiguration(ReattachTest.ADDRESS).setDurable(false));
 
       ClientProducer producer = session.createProducer(ReattachTest.ADDRESS);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/topology/TopologyClusterTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/topology/TopologyClusterTestBase.java
index b2453d8..337b5aa 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/topology/TopologyClusterTestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/topology/TopologyClusterTestBase.java
@@ -26,6 +26,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.ActiveMQObjectClosedException;
 import org.apache.activemq.artemis.api.core.ActiveMQUnBlockedException;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientProducer;
 import org.apache.activemq.artemis.api.core.client.ClientSession;
@@ -35,7 +36,6 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.api.core.client.TopologyMember;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.core.server.cluster.ClusterConnection;
 import org.apache.activemq.artemis.core.server.cluster.ClusterManager;
 import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger;
@@ -151,7 +151,7 @@ public abstract class TopologyClusterTestBase extends ClusterTestBase {
    protected ClientSession checkSessionOrReconnect(ClientSession session, ServerLocator locator) throws Exception {
       try {
          String rand = RandomUtil.randomString();
-         session.createQueue(rand, RoutingType.MULTICAST, rand);
+         session.createQueue(new QueueConfiguration(rand));
          session.deleteQueue(rand);
          return session;
       } catch (ActiveMQObjectClosedException oce) {
@@ -361,7 +361,7 @@ public abstract class TopologyClusterTestBase extends ClusterTestBase {
       ServerLocator locator = createNonHALocator(isNetty());
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(config.getClusterUser(), ActiveMQTestBase.CLUSTER_PASSWORD, false, true, true, false, 1);
-      session.createQueue(address, address, true);
+      session.createQueue(new QueueConfiguration(address));
       ClientProducer producer = session.createProducer(address);
       sendMessages(session, producer, 100);
       ClientConsumer consumer = session.createConsumer(address);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCoreTest.java
index 08b6c81..45b5aa3 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCoreTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCoreTest.java
@@ -23,6 +23,7 @@ import javax.jms.Session;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient;
@@ -64,7 +65,7 @@ public class AMQPToJMSCoreTest extends ActiveMQTestBase {
                                                                         .setDeadLetterAddress(new SimpleString("ActiveMQ.DLQ")));
       serverConfig.setSecurityEnabled(false);
       coreQueue = new SimpleString(queueName);
-      server.createQueue(coreQueue, RoutingType.ANYCAST, coreQueue, null, false, false);
+      server.createQueue(new QueueConfiguration(coreQueue).setRoutingType(RoutingType.ANYCAST).setDurable(false));
    }
 
    @Override
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java
index 4dc2dfa..9782cd1 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.ActiveMQXAConnectionFactory;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -75,7 +76,7 @@ public class AMQPToOpenwireTest extends ActiveMQTestBase {
       serverConfig.getAddressesSettings().put("#", new AddressSettings().setAutoCreateQueues(false).setAutoCreateAddresses(false).setDeadLetterAddress(new SimpleString("ActiveMQ.DLQ")));
       serverConfig.setSecurityEnabled(false);
       coreQueue = new SimpleString(queueName);
-      server.createQueue(coreQueue, RoutingType.ANYCAST, coreQueue, null, false, false);
+      server.createQueue(new QueueConfiguration(coreQueue).setRoutingType(RoutingType.ANYCAST).setDurable(false));
       qpidfactory = new JmsConnectionFactory("amqp://localhost:61616");
    }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToStompTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToStompTest.java
index 739750e..4106f85 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToStompTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToStompTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.crossprotocol;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -58,7 +59,7 @@ public class AMQPToStompTest extends ActiveMQTestBase {
                                                                         .setDeadLetterAddress(new SimpleString("ActiveMQ.DLQ")));
       serverConfig.setSecurityEnabled(false);
       coreQueue = new SimpleString(queueName);
-      server.createQueue(coreQueue, RoutingType.ANYCAST, coreQueue, null, false, false);
+      server.createQueue(new QueueConfiguration(coreQueue).setRoutingType(RoutingType.ANYCAST).setDurable(false));
    }
 
    @Override
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/MessageIDMultiProtocolTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/MessageIDMultiProtocolTest.java
index e652f79..f5275c7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/MessageIDMultiProtocolTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/MessageIDMultiProtocolTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.activemq.artemis.tests.integration.crossprotocol;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.tests.integration.openwire.OpenWireTestBase;
@@ -79,7 +80,7 @@ public class MessageIDMultiProtocolTest extends OpenWireTestBase {
    public void setupQueue() throws Exception {
       Wait.assertTrue(server::isStarted);
       Wait.assertTrue(server::isActive);
-      this.server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false, -1, false, true);
+      this.server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
    }
 
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenWireToAMQPTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenWireToAMQPTest.java
index a078eb5..394de4c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenWireToAMQPTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenWireToAMQPTest.java
@@ -27,6 +27,7 @@ import javax.jms.Session;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.ActiveMQXAConnectionFactory;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -61,7 +62,7 @@ public class OpenWireToAMQPTest extends ActiveMQTestBase {
       serverConfig.setSecurityEnabled(false);
       server.start();
       coreQueue = new SimpleString(queueName);
-      server.createQueue(coreQueue, RoutingType.ANYCAST, coreQueue, null, false, false);
+      server.createQueue(new QueueConfiguration(coreQueue).setRoutingType(RoutingType.ANYCAST).setDurable(false));
       qpidfactory = new JmsConnectionFactory("amqp://localhost:61616");
    }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenwireAmqpResenderTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenwireAmqpResenderTest.java
index beeaad5..2439ec9 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenwireAmqpResenderTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/OpenwireAmqpResenderTest.java
@@ -25,6 +25,7 @@ import javax.jms.Queue;
 import javax.jms.Session;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
@@ -62,11 +63,9 @@ public class OpenwireAmqpResenderTest extends ActiveMQTestBase {
       serverConfig.setSecurityEnabled(false);
       server.start();
 
-      SimpleString coreQueueZero = new SimpleString(QUEUE_ZERO_NAME);
-      server.createQueue(coreQueueZero, RoutingType.ANYCAST, coreQueueZero, null, false, false);
+      server.createQueue(new QueueConfiguration(QUEUE_ZERO_NAME).setRoutingType(RoutingType.ANYCAST).setDurable(false));
 
-      SimpleString coreQueueOne = new SimpleString(QUEUE_ONE_NAME);
-      server.createQueue(coreQueueOne, RoutingType.ANYCAST, coreQueueOne, null, false, false);
+      server.createQueue(new QueueConfiguration(QUEUE_ONE_NAME).setRoutingType(RoutingType.ANYCAST).setDurable(false));
    }
 
    @Override
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyMultiProtocolTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyMultiProtocolTest.java
index d3efc68..6ca7b96 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyMultiProtocolTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyMultiProtocolTest.java
@@ -32,6 +32,7 @@ import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -88,8 +89,8 @@ public class RequestReplyMultiProtocolTest extends OpenWireTestBase {
    public void setupQueue() throws Exception {
       Wait.assertTrue(server::isStarted);
       Wait.assertTrue(server::isActive);
-      this.server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false, -1, false, true);
-      this.server.createQueue(replyQueue, RoutingType.ANYCAST, replyQueue, null, true, false, -1, false, true);
+      this.server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
+      this.server.createQueue(new QueueConfiguration(replyQueue).setRoutingType(RoutingType.ANYCAST));
       AddressInfo info = new AddressInfo(topicName, RoutingType.MULTICAST);
       this.server.addAddressInfo(info);
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyNonJMSTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyNonJMSTest.java
index a523bd2..96e4d6b 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyNonJMSTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/RequestReplyNonJMSTest.java
@@ -28,6 +28,7 @@ import java.net.URI;
 import java.util.Arrays;
 import java.util.UUID;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
@@ -79,8 +80,8 @@ public class RequestReplyNonJMSTest extends OpenWireTestBase {
    public void setupQueue() throws Exception {
       Wait.assertTrue(server::isStarted);
       Wait.assertTrue(server::isActive);
-      this.server.createQueue(queueName, RoutingType.ANYCAST, queueName, null, true, false, -1, false, true);
-      this.server.createQueue(replyQueue, RoutingType.ANYCAST, replyQueue, null, true, false, -1, false, true);
+      this.server.createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
+      this.server.createQueue(new QueueConfiguration(replyQueue).setRoutingType(RoutingType.ANYCAST));
       AddressInfo info = new AddressInfo(topicName, RoutingType.MULTICAST);
       this.server.addAddressInfo(info);
    }
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/DivertTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/DivertTest.java
index f851872..ad75c08 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/DivertTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/DivertTest.java
@@ -32,6 +32,7 @@ import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
 import org.apache.activemq.artemis.api.core.Message;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -122,9 +123,9 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName2 = new SimpleString("queue2");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -205,11 +206,11 @@ public class DivertTest extends ActiveMQTestBase {
 
          ClientSession session = sf.createSession(false, true, true);
 
-         session.createQueue(new SimpleString(testAddress), RoutingType.ANYCAST, queueName1, null, true);
+         session.createQueue(new QueueConfiguration(queueName1).setAddress(testAddress).setRoutingType(RoutingType.ANYCAST));
 
-         session.createQueue(new SimpleString(testForConvert), RoutingType.ANYCAST, SimpleString.toSimpleString(testForConvert), null, true);
+         session.createQueue(new QueueConfiguration(SimpleString.toSimpleString(testForConvert)).setAddress(testForConvert).setRoutingType(RoutingType.ANYCAST));
 
-         session.createQueue(new SimpleString(forwardAddress), RoutingType.ANYCAST, queueName2, null, true);
+         session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress).setRoutingType(RoutingType.ANYCAST));
       }
 
       ConnectionFactory coreCF = CFUtil.createConnectionFactory("CORE", "tcp://localhost:61616");
@@ -280,9 +281,9 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName2 = new SimpleString("queue2");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.ANYCAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setRoutingType(RoutingType.ANYCAST).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -355,9 +356,9 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName2 = new SimpleString("queue2");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.ANYCAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setRoutingType(RoutingType.ANYCAST).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -420,11 +421,11 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName2 = new SimpleString("queue2");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.MULTICAST, queueName1, null, true);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, true);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress));
 
-      session.createQueue(new SimpleString(expiryAddress), RoutingType.MULTICAST, new SimpleString(expiryAddress), null, true);
+      session.createQueue(new QueueConfiguration(expiryAddress));
 
       session.start();
 
@@ -525,13 +526,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(testAddress).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -627,7 +628,7 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName1 = new SimpleString("queue1");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setDurable(false));
 
       session.start();
 
@@ -687,11 +688,11 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName2, null, false);
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName3, null, false);
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(testAddress).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(testAddress).setDurable(false));
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -773,13 +774,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -888,13 +889,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -992,13 +993,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -1090,13 +1091,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -1236,13 +1237,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -1361,13 +1362,13 @@ public class DivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), RoutingType.MULTICAST, queueName1, null, false);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress2), RoutingType.MULTICAST, queueName2, null, false);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2).setDurable(false));
 
-      session.createQueue(new SimpleString(forwardAddress3), RoutingType.MULTICAST, queueName3, null, false);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3).setDurable(false));
 
-      session.createQueue(new SimpleString(testAddress), RoutingType.MULTICAST, queueName4, null, false);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress).setDurable(false));
 
       session.start();
 
@@ -1449,7 +1450,7 @@ public class DivertTest extends ActiveMQTestBase {
       ActiveMQServer server = addServer(new ActiveMQServerImpl(createBasicConfig(), null, null, null, serviceRegistry));
       server.start();
       server.waitForActivation(100, TimeUnit.MILLISECONDS);
-      server.createQueue(ADDRESS, RoutingType.MULTICAST, SimpleString.toSimpleString("myQueue"), null, false, false);
+      server.createQueue(new QueueConfiguration("myQueue").setAddress(ADDRESS).setDurable(false));
       server.deployDivert(new DivertConfiguration().setName(DIVERT).setAddress(ADDRESS.toString()).setForwardingAddress(ADDRESS.toString()));
       Collection<Binding> bindings = server.getPostOffice().getBindingsForAddress(ADDRESS).getBindings();
       Divert divert = null;
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/PersistentDivertTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/PersistentDivertTest.java
index 3848930..f132ab9 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/PersistentDivertTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/PersistentDivertTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.divert;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
@@ -81,13 +82,13 @@ public class PersistentDivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), queueName1, null, true);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1));
 
-      session.createQueue(new SimpleString(forwardAddress2), queueName2, null, true);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2));
 
-      session.createQueue(new SimpleString(forwardAddress3), queueName3, null, true);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3));
 
-      session.createQueue(new SimpleString(testAddress), queueName4, null, true);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress));
 
       session.start();
 
@@ -236,13 +237,13 @@ public class PersistentDivertTest extends ActiveMQTestBase {
 
       final SimpleString queueName4 = new SimpleString("queue4");
 
-      session.createQueue(new SimpleString(forwardAddress1), queueName1, null, true);
+      session.createQueue(new QueueConfiguration(queueName1).setAddress(forwardAddress1));
 
-      session.createQueue(new SimpleString(forwardAddress2), queueName2, null, true);
+      session.createQueue(new QueueConfiguration(queueName2).setAddress(forwardAddress2));
 
-      session.createQueue(new SimpleString(forwardAddress3), queueName3, null, true);
+      session.createQueue(new QueueConfiguration(queueName3).setAddress(forwardAddress3));
 
-      session.createQueue(new SimpleString(testAddress), queueName4, null, true);
+      session.createQueue(new QueueConfiguration(queueName4).setAddress(testAddress));
 
       ClientProducer producer = session.createProducer(new SimpleString(testAddress));
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/ReplicationWithDivertTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/ReplicationWithDivertTest.java
index dc179f9..400c822 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/ReplicationWithDivertTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/divert/ReplicationWithDivertTest.java
@@ -25,14 +25,14 @@ import javax.jms.Session;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
+import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.FailoverEventListener;
 import org.apache.activemq.artemis.api.core.client.FailoverEventType;
 import org.apache.activemq.artemis.core.config.Configuration;
-import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
 import org.apache.activemq.artemis.core.config.DivertConfiguration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnection;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
@@ -99,14 +99,14 @@ public class ReplicationWithDivertTest extends ActiveMQTestBase {
       backupConfig = createDefaultInVMConfig().setBindingsDirectory(getBindingsDir(0, true)).
          setJournalDirectory(getJournalDir(0, true)).setPagingDirectory(getPageDir(0, true)).
          setLargeMessagesDirectory(getLargeMessagesDir(0, true));
-      backupConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(SOURCE_QUEUE).setName(SOURCE_QUEUE).setRoutingType(RoutingType.ANYCAST));
-      backupConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE).setRoutingType(RoutingType.ANYCAST));
+      backupConfig.addQueueConfiguration(new QueueConfiguration(SOURCE_QUEUE).setRoutingType(RoutingType.ANYCAST));
+      backupConfig.addQueueConfiguration(new QueueConfiguration(TARGET_QUEUE).setRoutingType(RoutingType.ANYCAST));
 
       DivertConfiguration divertConfiguration = new DivertConfiguration().setName("Test").setAddress(SOURCE_QUEUE).setForwardingAddress(TARGET_QUEUE).setRoutingName("Test");
 
       liveConfig = createDefaultInVMConfig();
-      liveConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(SOURCE_QUEUE).setName(SOURCE_QUEUE).setDurable(true).setRoutingType(RoutingType.ANYCAST));
-      liveConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE).setDurable(true).setRoutingType(RoutingType.ANYCAST));
+      liveConfig.addQueueConfiguration(new QueueConfiguration(SOURCE_QUEUE).setRoutingType(RoutingType.ANYCAST));
+      liveConfig.addQueueConfiguration(new QueueConfiguration(TARGET_QUEUE).setRoutingType(RoutingType.ANYCAST));
       liveConfig.addDivertConfiguration(divertConfiguration);
 
       backupConfig.addDivertConfiguration(divertConfiguration);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedAddressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedAddressTest.java
index bc87661..9bb6059 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedAddressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedAddressTest.java
@@ -524,7 +524,7 @@ public class FederatedAddressTest extends FederatedTestBase {
 
       //Set queue up on all three brokers
 //      for (int i = 0; i < 3; i++) {
-//         getServer(i).createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), null, true, false);
+//         getServer(i).createQueue(new QueueConfiguration(queueName).setRoutingType(RoutingType.ANYCAST));
 //      }
 
       //Connect broker 0 (consumer will be here at end of chain) to broker 1
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java
index 1cb6f19..0cc4995 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java
@@ -16,17 +16,17 @@
  */
 package org.apache.activemq.artemis.tests.integration.federation;
 
-import java.util.ArrayList;
-import java.util.List;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.ActiveMQServers;
-import org.apache.activemq.artemis.core.server.impl.AddressInfo;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.junit.Before;
 
@@ -65,8 +65,7 @@ public class FederatedTestBase extends ActiveMQTestBase {
    protected void createSimpleQueue(ActiveMQServer server, String queueName) throws Exception {
       SimpleString simpleStringQueueName = SimpleString.toSimpleString(queueName);
       try {
-         server.addAddressInfo(new AddressInfo(simpleStringQueueName, RoutingType.ANYCAST));
-         server.createQueue(simpleStringQueueName, RoutingType.ANYCAST, simpleStringQueueName, null, true, false);
+         server.createQueue(new QueueConfiguration(simpleStringQueueName).setRoutingType(RoutingType.ANYCAST).setAutoCreateAddress(true));
       } catch (Exception ignored) {
       }
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/http/CoreClientOverHttpTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/http/CoreClientOverHttpTest.java
index 7393498..bdcf1c5 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/http/CoreClientOverHttpTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/http/CoreClientOverHttpTest.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.tests.integration.http;
 import java.util.HashMap;
 import java.util.Random;
 
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
@@ -64,7 +65,7 @@ public class CoreClientOverHttpTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -98,7 +99,7 @@ public class CoreClientOverHttpTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -113,7 +114,7 @@ public class CoreClientOverHttpTest extends ActiveMQTestBase {
       ClientSessionFactory sf = createSessionFactory(locator);
       ClientSession session = sf.createSession(false, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/interceptors/InterceptorTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/interceptors/InterceptorTest.java
index eff1615..c283a7e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/interceptors/InterceptorTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/interceptors/InterceptorTest.java
@@ -30,6 +30,7 @@ import org.apache.activemq.artemis.api.core.ActiveMQException;
 import org.apache.activemq.artemis.api.core.ActiveMQExceptionType;
 import org.apache.activemq.artemis.api.core.Interceptor;
 import org.apache.activemq.artemis.api.core.Message;
+import org.apache.activemq.artemis.api.core.QueueConfiguration;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.client.ClientConsumer;
 import org.apache.activemq.artemis.api.core.client.ClientMessage;
@@ -397,7 +398,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -464,9 +465,9 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession sessionAnotherUser = sf.createSession("an", "other", false, false, false, false, 0);
 
-      session.createQueue(QUEUE, QUEUE, null, true);
+      session.createQueue(new QueueConfiguration(QUEUE));
 
-      sessionAnotherUser.createQueue(QUEUE, ANOTHER_QUEUE, null, true);
+      sessionAnotherUser.createQueue(new QueueConfiguration(ANOTHER_QUEUE).setAddress(QUEUE));
 
       ClientProducer prod = session.createProducer(QUEUE);
 
@@ -517,7 +518,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession sessionAnotherUser = sf.createSession("an", "other", false, false, false, false, 0);
 
-      session.createQueue(QUEUE, QUEUE, null, true);
+      session.createQueue(new QueueConfiguration(QUEUE));
 
       ClientProducer prod = session.createProducer(QUEUE);
 
@@ -564,7 +565,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -597,7 +598,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -650,7 +651,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
 
-      session.createQueue(QUEUE, QUEUE, null, false);
+      session.createQueue(new QueueConfiguration(QUEUE).setDurable(false));
 
       ClientProducer producer = session.createProducer(QUEUE);
 
@@ -703,7 +704,7 @@ public class InterceptorTest extends ActiveMQTestBase {
 
       ClientSession session = sf.createSession(false, true, true, true);
... 8115 lines suppressed ...