Fix broken JMS and JORAM tests
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/13783768 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/13783768 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/13783768 Branch: refs/heads/ARTEMIS-780 Commit: 13783768aa040e77de31c2c9cfb147b871bf3abb Parents: 4e9cda3 Author: jbertram <[email protected]> Authored: Tue Nov 29 13:04:14 2016 -0600 Committer: jbertram <[email protected]> Committed: Tue Nov 29 13:04:14 2016 -0600 ---------------------------------------------------------------------- .../artemis/jms/client/ActiveMQSession.java | 2 +- .../impl/ActiveMQServerControlImpl.java | 2 +- .../core/persistence/QueueBindingInfo.java | 4 +++ .../journal/AbstractJournalStorageManager.java | 2 +- .../codec/PersistentQueueBindingEncoding.java | 29 +++++++++++++++++--- .../core/postoffice/impl/LocalQueueBinding.java | 2 +- .../core/postoffice/impl/PostOfficeImpl.java | 4 --- .../artemis/core/server/QueueConfig.java | 2 +- .../core/server/impl/ActiveMQServerImpl.java | 3 +- .../server/impl/PostOfficeJournalLoader.java | 4 ++- .../ActiveMQServerControlUsingCoreTest.java | 2 +- .../activemq/artemis/jms/tests/QueueTest.java | 2 +- .../jms/tests/message/MessageHeaderTest.java | 2 +- .../activemq/artemis/common/AbstractAdmin.java | 3 +- 14 files changed, 43 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java ---------------------------------------------------------------------- diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java index fe2a1a0..d0c9592 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java @@ -820,7 +820,7 @@ public class ActiveMQSession implements QueueSession, TopicSession { SimpleString simpleAddress = queue.getSimpleAddress(); - session.createTemporaryQueue(simpleAddress, simpleAddress); + session.createTemporaryQueue(simpleAddress, RoutingType.ANYCAST, simpleAddress); connection.addTemporaryQueue(simpleAddress); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java index 1e2ac0d..e6c32c8 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java @@ -564,7 +564,7 @@ public class ActiveMQServerControlImpl extends AbstractControl implements Active @Override public void createAddress(@Parameter(name = "name", desc = "The name of the address") String name, - @Parameter(name = "deliveryMode", desc = "The delivery modes enabled for this address'") Object[] routingTypes) throws Exception { + @Parameter(name = "routingType", desc = "The delivery modes enabled for this address'") Object[] routingTypes) throws Exception { checkStarted(); clearIO(); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/QueueBindingInfo.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/QueueBindingInfo.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/QueueBindingInfo.java index 3a0c240..29f4277 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/QueueBindingInfo.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/QueueBindingInfo.java @@ -53,4 +53,8 @@ public interface QueueBindingInfo { boolean isDeleteOnNoConsumers(); void setDeleteOnNoConsumers(boolean deleteOnNoConsumers); + + byte getRoutingType(); + + void setRoutingType(byte routingType); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/AbstractJournalStorageManager.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/AbstractJournalStorageManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/AbstractJournalStorageManager.java index 8f44642..f8c9859 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/AbstractJournalStorageManager.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/AbstractJournalStorageManager.java @@ -1221,7 +1221,7 @@ public abstract class AbstractJournalStorageManager implements StorageManager { SimpleString filterString = filter == null ? null : filter.getFilterString(); - PersistentQueueBindingEncoding bindingEncoding = new PersistentQueueBindingEncoding(queue.getName(), binding.getAddress(), filterString, queue.getUser(), queue.isAutoCreated(), queue.getMaxConsumers(), queue.isDeleteOnNoConsumers()); + PersistentQueueBindingEncoding bindingEncoding = new PersistentQueueBindingEncoding(queue.getName(), binding.getAddress(), filterString, queue.getUser(), queue.isAutoCreated(), queue.getMaxConsumers(), queue.isDeleteOnNoConsumers(), queue.getRoutingType().getType()); readLock(); try { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentQueueBindingEncoding.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentQueueBindingEncoding.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentQueueBindingEncoding.java index 88bc1cf..36a0ae6 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentQueueBindingEncoding.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentQueueBindingEncoding.java @@ -19,6 +19,7 @@ package org.apache.activemq.artemis.core.persistence.impl.journal.codec; import java.util.LinkedList; import java.util.List; +import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration; import org.apache.activemq.artemis.api.core.ActiveMQBuffer; import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.journal.EncodingSupport; @@ -45,6 +46,8 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin public boolean deleteOnNoConsumers; + public byte routingType; + public PersistentQueueBindingEncoding() { } @@ -65,6 +68,8 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin maxConsumers + ", deleteOnNoConsumers=" + deleteOnNoConsumers + + ", routingType=" + + routingType + "]"; } @@ -74,7 +79,8 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin final SimpleString user, final boolean autoCreated, final int maxConsumers, - final boolean deleteOnNoConsumers) { + final boolean deleteOnNoConsumers, + final byte routingType) { this.name = name; this.address = address; this.filterString = filterString; @@ -82,6 +88,7 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin this.autoCreated = autoCreated; this.maxConsumers = maxConsumers; this.deleteOnNoConsumers = deleteOnNoConsumers; + this.routingType = routingType; } @Override @@ -157,6 +164,16 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin } @Override + public byte getRoutingType() { + return routingType; + } + + @Override + public void setRoutingType(byte routingType) { + this.routingType = routingType; + } + + @Override public void decode(final ActiveMQBuffer buffer) { name = buffer.readSimpleString(); address = buffer.readSimpleString(); @@ -180,9 +197,11 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin if (buffer.readableBytes() > 0) { maxConsumers = buffer.readInt(); deleteOnNoConsumers = buffer.readBoolean(); + routingType = buffer.readByte(); } else { - maxConsumers = -1; - deleteOnNoConsumers = false; + maxConsumers = ActiveMQDefaultConfiguration.getDefaultMaxQueueConsumers(); + deleteOnNoConsumers = ActiveMQDefaultConfiguration.getDefaultDeleteQueueOnNoConsumers(); + routingType = ActiveMQDefaultConfiguration.getDefaultRoutingType().getType(); } } @@ -195,6 +214,7 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin buffer.writeBoolean(autoCreated); buffer.writeInt(maxConsumers); buffer.writeBoolean(deleteOnNoConsumers); + buffer.writeByte(routingType); } @Override @@ -203,7 +223,8 @@ public class PersistentQueueBindingEncoding implements EncodingSupport, QueueBin SimpleString.sizeofNullableString(filterString) + DataConstants.SIZE_BOOLEAN + SimpleString.sizeofNullableString(createMetadata()) + DataConstants.SIZE_INT + - DataConstants.SIZE_BOOLEAN; + DataConstants.SIZE_BOOLEAN + + DataConstants.SIZE_BYTE; } private SimpleString createMetadata() { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java index d02f0f0..fb025af 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/LocalQueueBinding.java @@ -132,7 +132,7 @@ public class LocalQueueBinding implements QueueBinding { private boolean isMatchRoutingType(ServerMessage message) { if (message.containsProperty(MessageInternal.HDR_ROUTING_TYPE)) { - return message.getByteProperty(MessageInternal.HDR_ROUTING_TYPE) == queue.getRoutingType().getType(); + return message.getByteProperty(MessageInternal.HDR_ROUTING_TYPE).equals(queue.getRoutingType().getType()); } return true; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java index 2fc3409..e060542 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java @@ -664,10 +664,6 @@ public class PostOfficeImpl implements PostOffice, NotificationListener, Binding SimpleString address = message.getAddress(); - if (address.toString().equals("testQueue")) { - System.out.println("f"); - } - setPagingStore(message); AtomicBoolean startedTX = new AtomicBoolean(false); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/QueueConfig.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/QueueConfig.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/QueueConfig.java index 3435ca0..6e0d5af 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/QueueConfig.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/QueueConfig.java @@ -126,7 +126,7 @@ public final class QueueConfig { return this; } - public Builder deliveryMode(RoutingType routingType) { + public Builder routingType(RoutingType routingType) { this.routingType = routingType; return this; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java index 8546fc2..d6b1be4 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java @@ -1587,7 +1587,6 @@ public class ActiveMQServerImpl implements ActiveMQServer { final boolean deleteOnNoConsumers, final boolean autoCreateAddress) throws Exception { - // TODO: fix logging here as this could be for a topic or queue ActiveMQServerLogger.LOGGER.deployQueue(queueName); return createQueue(address, queueName, routingType, filterString, null, durable, temporary, true, false, autoCreated, maxConsumers, deleteOnNoConsumers, autoCreateAddress); @@ -2413,7 +2412,7 @@ public class ActiveMQServerImpl implements ActiveMQServer { } } - final QueueConfig queueConfig = queueConfigBuilder.filter(filter).pagingManager(pagingManager).user(user).durable(durable).temporary(temporary).autoCreated(autoCreated).deliveryMode(routingType).maxConsumers(maxConsumers).deleteOnNoConsumers(deleteOnNoConsumers).build(); + final QueueConfig queueConfig = queueConfigBuilder.filter(filter).pagingManager(pagingManager).user(user).durable(durable).temporary(temporary).autoCreated(autoCreated).routingType(routingType).maxConsumers(maxConsumers).deleteOnNoConsumers(deleteOnNoConsumers).build(); final Queue queue = queueFactory.createQueueWith(queueConfig); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java index 20ef545..f52b5cc 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java @@ -56,6 +56,7 @@ import org.apache.activemq.artemis.core.server.NodeManager; import org.apache.activemq.artemis.core.server.Queue; import org.apache.activemq.artemis.core.server.QueueConfig; import org.apache.activemq.artemis.core.server.QueueFactory; +import org.apache.activemq.artemis.core.server.RoutingType; import org.apache.activemq.artemis.core.server.ServerMessage; import org.apache.activemq.artemis.core.server.group.GroupingHandler; import org.apache.activemq.artemis.core.server.group.impl.GroupBinding; @@ -149,7 +150,8 @@ public class PostOfficeJournalLoader implements JournalLoader { .temporary(false) .autoCreated(queueBindingInfo.isAutoCreated()) .deleteOnNoConsumers(queueBindingInfo.isDeleteOnNoConsumers()) - .maxConsumers(queueBindingInfo.getMaxConsumers()); + .maxConsumers(queueBindingInfo.getMaxConsumers()) + .routingType(RoutingType.getType(queueBindingInfo.getRoutingType())); final Queue queue = queueFactory.createQueueWith(queueConfigBuilder.build()); queue.setConsumersRefCount(new AutoCreatedQueueManagerImpl(((PostOfficeImpl)postOffice).getServer(), queueBindingInfo.getQueueName())); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java index 193c58c..5e02ff8 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java @@ -566,7 +566,7 @@ public class ActiveMQServerControlUsingCoreTest extends ActiveMQServerControlTes @Override public void createAddress(@Parameter(name = "name", desc = "The name of the address") String name, - @Parameter(name = "deliveryMode", desc = "The delivery modes enabled for this address'") Object[] routingTypes) throws Exception { + @Parameter(name = "routingType", desc = "The delivery modes enabled for this address'") Object[] routingTypes) throws Exception { } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/QueueTest.java ---------------------------------------------------------------------- diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/QueueTest.java b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/QueueTest.java index f47dfb6..3f9e548 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/QueueTest.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/QueueTest.java @@ -47,7 +47,7 @@ public class QueueTest extends JMSTestCase { conn.start(); p.send(s.createTextMessage("payload")); - TextMessage m = (TextMessage) c.receive(); + TextMessage m = (TextMessage) c.receive(5000); ProxyAssertSupport.assertEquals("payload", m.getText()); } finally { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/message/MessageHeaderTest.java ---------------------------------------------------------------------- diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/message/MessageHeaderTest.java b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/message/MessageHeaderTest.java index 90b4d3e..71bc8a1 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/message/MessageHeaderTest.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/message/MessageHeaderTest.java @@ -275,7 +275,7 @@ public class MessageHeaderTest extends MessageHeaderTestBase { propNames.add(propName); } - ProxyAssertSupport.assertEquals(9, propNames.size()); + ProxyAssertSupport.assertTrue(propNames.size() >= 9); ProxyAssertSupport.assertTrue(propNames.contains("myBool")); ProxyAssertSupport.assertTrue(propNames.contains("myByte")); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13783768/tests/joram-tests/src/test/java/org/apache/activemq/artemis/common/AbstractAdmin.java ---------------------------------------------------------------------- diff --git a/tests/joram-tests/src/test/java/org/apache/activemq/artemis/common/AbstractAdmin.java b/tests/joram-tests/src/test/java/org/apache/activemq/artemis/common/AbstractAdmin.java index 8ea7828..2ada3be 100644 --- a/tests/joram-tests/src/test/java/org/apache/activemq/artemis/common/AbstractAdmin.java +++ b/tests/joram-tests/src/test/java/org/apache/activemq/artemis/common/AbstractAdmin.java @@ -34,6 +34,7 @@ import org.apache.activemq.artemis.api.core.client.ServerLocator; import org.apache.activemq.artemis.api.core.management.ManagementHelper; import org.apache.activemq.artemis.api.core.management.ResourceNames; import org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory; +import org.apache.activemq.artemis.core.server.RoutingType; import org.apache.activemq.artemis.tests.util.SpawnedVMSupport; import org.objectweb.jtests.jms.admin.Admin; @@ -119,7 +120,7 @@ public class AbstractAdmin implements Admin { public void createQueue(final String name) { Boolean result; try { - invokeSyncOperation(ResourceNames.BROKER, "createQueue", name, name); + invokeSyncOperation(ResourceNames.BROKER, "createQueue", name, RoutingType.ANYCAST.toString(), name, null, true, ActiveMQDefaultConfiguration.getDefaultMaxQueueConsumers(), ActiveMQDefaultConfiguration.getDefaultDeleteQueueOnNoConsumers(), true); } catch (Exception e) { throw new IllegalStateException(e); }
