diff options
Diffstat (limited to 'java/broker/src/test/java/org/apache/qpid')
20 files changed, 470 insertions, 291 deletions
diff --git a/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java b/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java index 89b825b270..e478f0f1f3 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java @@ -20,20 +20,11 @@ */ package org.apache.qpid.server.configuration; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Collections; - import junit.framework.TestCase; - import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; + import org.apache.qpid.server.protocol.AMQProtocolEngine; import org.apache.qpid.server.protocol.AMQProtocolSession; import org.apache.qpid.server.registry.ApplicationRegistry; @@ -42,6 +33,14 @@ import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; import org.apache.qpid.transport.TestNetworkDriver; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + public class ServerConfigurationTest extends TestCase { @@ -51,7 +50,7 @@ public class ServerConfigurationTest extends TestCase public void setUp() { //Highlight that this test will cause a new AR to be created - ApplicationRegistry.getInstance(); +// ApplicationRegistry.getInstance(); _config = new XMLConfiguration(); } @@ -60,7 +59,7 @@ public class ServerConfigurationTest extends TestCase public void tearDown() throws Exception { //Correctly Close the AR we created - ApplicationRegistry.remove(); +// ApplicationRegistry.remove(); } public void testSetJMXManagementPort() throws ConfigurationException @@ -765,21 +764,28 @@ public class ServerConfigurationTest extends TestCase // Load config ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile); - ApplicationRegistry.initialise(reg, 1); + try + { + ApplicationRegistry.initialise(reg, 1); - // Test config - VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); - VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); + // Test config + VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); + VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); - TestNetworkDriver testDriver = new TestNetworkDriver(); - testDriver.setRemoteAddress("127.0.0.1"); + TestNetworkDriver testDriver = new TestNetworkDriver(); + testDriver.setRemoteAddress("127.0.0.1"); - AMQProtocolEngine session = new AMQProtocolEngine(virtualHostRegistry, testDriver); - assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + AMQProtocolEngine session = new AMQProtocolEngine(virtualHostRegistry, testDriver); + assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); - testDriver.setRemoteAddress("127.1.2.3"); - session = new AMQProtocolEngine(virtualHostRegistry, testDriver); - assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); + testDriver.setRemoteAddress("127.1.2.3"); + session = new AMQProtocolEngine(virtualHostRegistry, testDriver); + assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); + } + finally + { + ApplicationRegistry.remove(1); + } } public void testCombinedConfigurationFirewall() throws Exception @@ -839,48 +845,61 @@ public class ServerConfigurationTest extends TestCase // Load config ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile); - ApplicationRegistry.initialise(reg, 1); + try + { + ApplicationRegistry.initialise(reg, 1); - // Test config - VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); - VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); + // Test config + VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); + VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); - TestNetworkDriver testDriver = new TestNetworkDriver(); - testDriver.setRemoteAddress("127.0.0.1"); + TestNetworkDriver testDriver = new TestNetworkDriver(); + testDriver.setRemoteAddress("127.0.0.1"); - AMQProtocolEngine session = new AMQProtocolEngine(virtualHostRegistry, testDriver); - session.setNetworkDriver(testDriver); - assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + AMQProtocolEngine session = new AMQProtocolEngine(virtualHostRegistry, testDriver); + session.setNetworkDriver(testDriver); + assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + } + finally + { + ApplicationRegistry.remove(1); + } } - + public void testConfigurationFirewallReload() throws Exception { // Write out config File mainFile = File.createTempFile(getClass().getName(), null); - mainFile.deleteOnExit(); + mainFile.deleteOnExit(); writeConfigFile(mainFile, false); // Load config ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile); - ApplicationRegistry.initialise(reg, 1); - - // Test config - TestNetworkDriver testDriver = new TestNetworkDriver(); - testDriver.setRemoteAddress("127.0.0.1"); - VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); - VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); - AMQProtocolSession session = new AMQProtocolEngine(virtualHostRegistry, testDriver); - - assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); - - // Switch to deny the connection - writeConfigFile(mainFile, true); - - reg.getConfiguration().reparseConfigFileSecuritySections(); - - assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); + try + { + ApplicationRegistry.initialise(reg, 1); + + // Test config + TestNetworkDriver testDriver = new TestNetworkDriver(); + testDriver.setRemoteAddress("127.0.0.1"); + VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); + VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); + AMQProtocolSession session = new AMQProtocolEngine(virtualHostRegistry, testDriver); + + assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + // Switch to deny the connection + writeConfigFile(mainFile, true); + + reg.getConfiguration().reparseConfigFileSecuritySections(); + + assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); + } + finally + { + ApplicationRegistry.remove(1); + } } private void writeConfigFile(File mainFile, boolean allow) throws IOException { @@ -974,45 +993,52 @@ public class ServerConfigurationTest extends TestCase // Load config ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile); - ApplicationRegistry.initialise(reg, 1); + try + { + ApplicationRegistry.initialise(reg, 1); - // Test config - TestNetworkDriver testDriver = new TestNetworkDriver(); - testDriver.setRemoteAddress("127.0.0.1"); - VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); - VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); - AMQProtocolSession session = new AMQProtocolEngine(virtualHostRegistry, testDriver); - assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + // Test config + TestNetworkDriver testDriver = new TestNetworkDriver(); + testDriver.setRemoteAddress("127.0.0.1"); + VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry(); + VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test"); + AMQProtocolSession session = new AMQProtocolEngine(virtualHostRegistry, testDriver); + assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); - RandomAccessFile fileBRandom = new RandomAccessFile(fileB, "rw"); - fileBRandom.setLength(0); - fileBRandom.seek(0); - fileBRandom.close(); + RandomAccessFile fileBRandom = new RandomAccessFile(fileB, "rw"); + fileBRandom.setLength(0); + fileBRandom.seek(0); + fileBRandom.close(); - out = new FileWriter(fileB); - out.write("<firewall>\n"); - out.write("\t<rule access=\"allow\" network=\"127.0.0.1\"/>"); - out.write("</firewall>\n"); - out.close(); + out = new FileWriter(fileB); + out.write("<firewall>\n"); + out.write("\t<rule access=\"allow\" network=\"127.0.0.1\"/>"); + out.write("</firewall>\n"); + out.close(); - reg.getConfiguration().reparseConfigFileSecuritySections(); + reg.getConfiguration().reparseConfigFileSecuritySections(); - assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); + assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost)); - fileBRandom = new RandomAccessFile(fileB, "rw"); - fileBRandom.setLength(0); - fileBRandom.seek(0); - fileBRandom.close(); + fileBRandom = new RandomAccessFile(fileB, "rw"); + fileBRandom.setLength(0); + fileBRandom.seek(0); + fileBRandom.close(); - out = new FileWriter(fileB); - out.write("<firewall>\n"); - out.write("\t<rule access=\"deny\" network=\"127.0.0.1\"/>"); - out.write("</firewall>\n"); - out.close(); + out = new FileWriter(fileB); + out.write("<firewall>\n"); + out.write("\t<rule access=\"deny\" network=\"127.0.0.1\"/>"); + out.write("</firewall>\n"); + out.close(); - reg.getConfiguration().reparseConfigFileSecuritySections(); + reg.getConfiguration().reparseConfigFileSecuritySections(); - assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost)); + } + finally + { + ApplicationRegistry.remove(1); + } } public void testnewParserOutputVsOldParserOutput() throws ConfigurationException @@ -1038,11 +1064,18 @@ public class ServerConfigurationTest extends TestCase File configFile = new File(System.getProperty("QPID_HOME")+"/etc/config.xml"); assertTrue(configFile.exists()); - ApplicationRegistry.initialise(new ConfigurationFileApplicationRegistry(configFile), REGISTRY); + try + { + ApplicationRegistry.initialise(new ConfigurationFileApplicationRegistry(configFile), REGISTRY); - VirtualHostRegistry virtualHostRegistry = ApplicationRegistry.getInstance(REGISTRY).getVirtualHostRegistry(); + VirtualHostRegistry virtualHostRegistry = ApplicationRegistry.getInstance(REGISTRY).getVirtualHostRegistry(); - assertEquals("Incorrect virtualhost count", 3 , virtualHostRegistry.getVirtualHosts().size()); + assertEquals("Incorrect virtualhost count", 3 , virtualHostRegistry.getVirtualHosts().size()); + } + finally + { + ApplicationRegistry.remove(REGISTRY); + } } diff --git a/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java b/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java index b65020395c..683343aa14 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java @@ -22,12 +22,12 @@ package org.apache.qpid.server.configuration; import junit.framework.TestCase; import org.apache.commons.configuration.XMLConfiguration; + import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.queue.AMQPriorityQueue; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.virtualhost.VirtualHost; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class VirtualHostConfigurationTest extends TestCase { @@ -39,8 +39,6 @@ public class VirtualHostConfigurationTest extends TestCase protected void setUp() throws Exception { super.setUp(); - //Highlight that this test will cause a new AR to be created - ApplicationRegistry.getInstance(); // Fill config file with stuff configXml = new XMLConfiguration(); configXml.setRootElementName("virtualhosts"); @@ -49,39 +47,37 @@ public class VirtualHostConfigurationTest extends TestCase public void tearDown() throws Exception { - //Correctly close the AR we created - ApplicationRegistry.remove(); - super.tearDown(); } public void testQueuePriority() throws Exception { + configXml.addProperty("virtualhost.testQueuePriority.name", "testQueuePriority"); // Set up queue with 5 priorities - configXml.addProperty("virtualhost.test.queues(-1).queue(-1).name(-1)", + configXml.addProperty("virtualhost.testQueuePriority.queues(-1).queue(-1).name(-1)", "atest"); - configXml.addProperty("virtualhost.test.queues.queue.atest(-1).exchange", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.atest(-1).exchange", "amq.direct"); - configXml.addProperty("virtualhost.test.queues.queue.atest.priorities", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.atest.priorities", "5"); // Set up queue with JMS style priorities - configXml.addProperty("virtualhost.test.queues(-1).queue(-1).name(-1)", + configXml.addProperty("virtualhost.testQueuePriority.queues(-1).queue(-1).name(-1)", "ptest"); - configXml.addProperty("virtualhost.test.queues.queue.ptest(-1).exchange", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.ptest(-1).exchange", "amq.direct"); - configXml.addProperty("virtualhost.test.queues.queue.ptest.priority", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.ptest.priority", "true"); // Set up queue with no priorities - configXml.addProperty("virtualhost.test.queues(-1).queue(-1).name(-1)", + configXml.addProperty("virtualhost.testQueuePriority.queues(-1).queue(-1).name(-1)", "ntest"); - configXml.addProperty("virtualhost.test.queues.queue.ntest(-1).exchange", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.ntest(-1).exchange", "amq.direct"); - configXml.addProperty("virtualhost.test.queues.queue.ntest.priority", + configXml.addProperty("virtualhost.testQueuePriority.queues.queue.ntest.priority", "false"); - VirtualHost vhost = new VirtualHostImpl(new VirtualHostConfiguration("test", configXml.subset("virtualhost.test"))); + VirtualHost vhost = ApplicationRegistry.getInstance().createVirtualHost(new VirtualHostConfiguration("testQueuePriority", configXml.subset("virtualhost.testQueuePriority"))); // Check that atest was a priority queue with 5 priorities AMQQueue atest = vhost.getQueueRegistry().getQueue(new AMQShortString("atest")); @@ -96,25 +92,29 @@ public class VirtualHostConfigurationTest extends TestCase // Check that ntest wasn't a priority queue AMQQueue ntest = vhost.getQueueRegistry().getQueue(new AMQShortString("ntest")); assertFalse(ntest instanceof AMQPriorityQueue); + + ApplicationRegistry.remove(); + } public void testQueueAlerts() throws Exception { + configXml.addProperty("virtualhost.testQueueAlerts.name", "testQueueAlerts"); // Set up queue with 5 priorities - configXml.addProperty("virtualhost.test.queues.exchange", "amq.topic"); - configXml.addProperty("virtualhost.test.queues.maximumQueueDepth", "1"); - configXml.addProperty("virtualhost.test.queues.maximumMessageSize", "2"); - configXml.addProperty("virtualhost.test.queues.maximumMessageAge", "3"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.exchange", "amq.topic"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.maximumQueueDepth", "1"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.maximumMessageSize", "2"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.maximumMessageAge", "3"); - configXml.addProperty("virtualhost.test.queues(-1).queue(1).name(1)", "atest"); - configXml.addProperty("virtualhost.test.queues.queue.atest(-1).exchange", "amq.direct"); - configXml.addProperty("virtualhost.test.queues.queue.atest(-1).maximumQueueDepth", "4"); - configXml.addProperty("virtualhost.test.queues.queue.atest(-1).maximumMessageSize", "5"); - configXml.addProperty("virtualhost.test.queues.queue.atest(-1).maximumMessageAge", "6"); + configXml.addProperty("virtualhost.testQueueAlerts.queues(-1).queue(1).name(1)", "atest"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.queue.atest(-1).exchange", "amq.direct"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.queue.atest(-1).maximumQueueDepth", "4"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.queue.atest(-1).maximumMessageSize", "5"); + configXml.addProperty("virtualhost.testQueueAlerts.queues.queue.atest(-1).maximumMessageAge", "6"); - configXml.addProperty("virtualhost.test.queues(-1).queue(-1).name(-1)", "btest"); + configXml.addProperty("virtualhost.testQueueAlerts.queues(-1).queue(-1).name(-1)", "btest"); - VirtualHost vhost = new VirtualHostImpl(new VirtualHostConfiguration("test", configXml.subset("virtualhost.test"))); + VirtualHost vhost = ApplicationRegistry.getInstance().createVirtualHost(new VirtualHostConfiguration("testQueueAlerts", configXml.subset("virtualhost.testQueueAlerts"))); // Check specifically configured values AMQQueue aTest = vhost.getQueueRegistry().getQueue(new AMQShortString("atest")); @@ -128,6 +128,9 @@ public class VirtualHostConfigurationTest extends TestCase assertEquals(2, bTest.getMaximumMessageSize()); assertEquals(3, bTest.getMaximumMessageAge()); + ApplicationRegistry.remove(); + + } } diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java index e26b5b048c..06d5d80ac1 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java @@ -21,23 +21,41 @@ package org.apache.qpid.server.exchange; import junit.framework.TestCase; +import org.apache.log4j.Logger; + import org.apache.qpid.AMQException; -import org.apache.qpid.framing.*; +import org.apache.qpid.framing.AMQShortString; +import org.apache.qpid.framing.BasicContentHeaderProperties; +import org.apache.qpid.framing.ContentBody; +import org.apache.qpid.framing.ContentHeaderBody; +import org.apache.qpid.framing.FieldTable; +import org.apache.qpid.framing.FieldTableFactory; import org.apache.qpid.framing.abstraction.MessagePublishInfo; -import org.apache.qpid.server.queue.*; +import org.apache.qpid.server.binding.BindingFactory; +import org.apache.qpid.server.message.AMQMessage; +import org.apache.qpid.server.message.AMQMessageHeader; +import org.apache.qpid.server.message.MessageMetaData; +import org.apache.qpid.server.message.ServerMessage; +import org.apache.qpid.server.protocol.AMQProtocolSession; +import org.apache.qpid.server.queue.AMQQueue; +import org.apache.qpid.server.queue.BaseQueue; +import org.apache.qpid.server.queue.IncomingMessage; +import org.apache.qpid.server.queue.MockStoredMessage; +import org.apache.qpid.server.queue.QueueEntry; +import org.apache.qpid.server.queue.SimpleAMQQueue; import org.apache.qpid.server.registry.ApplicationRegistry; -import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.store.MemoryMessageStore; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.StoredMessage; -import org.apache.qpid.server.message.ServerMessage; -import org.apache.qpid.server.message.AMQMessageHeader; -import org.apache.qpid.server.message.AMQMessage; -import org.apache.qpid.server.message.MessageMetaData; import org.apache.qpid.server.subscription.Subscription; -import org.apache.qpid.server.protocol.AMQProtocolSession; -import org.apache.log4j.Logger; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.concurrent.atomic.AtomicLong; public class AbstractHeadersExchangeTestBase extends TestCase @@ -47,11 +65,24 @@ public class AbstractHeadersExchangeTestBase extends TestCase private final HeadersExchange exchange = new HeadersExchange(); protected final Set<TestQueue> queues = new HashSet<TestQueue>(); + + /** * Not used in this test, just there to stub out the routing calls */ private MessageStore _store = new MemoryMessageStore(); + + BindingFactory bindingFactory = new BindingFactory(new DurableConfigurationStore.Source() + { + + public DurableConfigurationStore getDurableConfigurationStore() + { + return _store; + } + }, + exchange); + private int count; public void testDoNothing() @@ -93,7 +124,7 @@ public class AbstractHeadersExchangeTestBase extends TestCase m.route(exchange); if(m.getIncomingMessage().allContentReceived()) { - for(AMQQueue q : m.getIncomingMessage().getDestinationQueues()) + for(BaseQueue q : m.getIncomingMessage().getDestinationQueues()) { q.enqueue(m); } @@ -241,15 +272,17 @@ public class AbstractHeadersExchangeTestBase extends TestCase public String toString() { - return getName().toString(); + return getNameShortString().toString(); } public TestQueue(AMQShortString name) throws AMQException { - super(name, false, new AMQShortString("test"), true, ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test")); + super(name, false, new AMQShortString("test"), true, ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test"),Collections.EMPTY_MAP); ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test").getQueueRegistry().registerQueue(this); } + + /** * We override this method so that the default behaviour, which attempts to use a delivery manager, is * not invoked. It is unnecessary since for this test we only care to know whether the message was @@ -258,10 +291,10 @@ public class AbstractHeadersExchangeTestBase extends TestCase * @throws AMQException */ @Override - public QueueEntry enqueue(ServerMessage msg) throws AMQException + public void enqueue(ServerMessage msg, PostEnqueueAction action) throws AMQException { messages.add( new HeadersExchangeTest.Message((AMQMessage) msg)); - return new QueueEntry() + final QueueEntry queueEntry = new QueueEntry() { public AMQQueue getQueue() @@ -289,6 +322,11 @@ public class AbstractHeadersExchangeTestBase extends TestCase return false; //To change body of implemented methods use File | Settings | File Templates. } + public boolean isAvailable() + { + return false; //To change body of implemented methods use File | Settings | File Templates. + } + public boolean isAcquired() { return false; //To change body of implemented methods use File | Settings | File Templates. @@ -439,6 +477,12 @@ public class AbstractHeadersExchangeTestBase extends TestCase return 0; //To change body of implemented methods use File | Settings | File Templates. } }; + + if(action != null) + { + action.onEnqueue(queueEntry); + } + } boolean isInQueue(Message msg) diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java index 016f7eacbe..b26c71a524 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java @@ -29,7 +29,6 @@ import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.IApplicationRegistry; import org.apache.qpid.server.management.ManagedObject; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; @@ -58,8 +57,8 @@ public class ExchangeMBeanTest extends TestCase ManagedObject managedObj = exchange.getManagedObject(); ManagedExchange mbean = (ManagedExchange)managedObj; - mbean.createNewBinding(_queue.getName().toString(), "binding1"); - mbean.createNewBinding(_queue.getName().toString(), "binding2"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "binding1"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "binding2"); TabularData data = mbean.bindings(); ArrayList<Object> list = new ArrayList<Object>(data.values()); @@ -85,8 +84,8 @@ public class ExchangeMBeanTest extends TestCase ManagedObject managedObj = exchange.getManagedObject(); ManagedExchange mbean = (ManagedExchange)managedObj; - mbean.createNewBinding(_queue.getName().toString(), "binding1"); - mbean.createNewBinding(_queue.getName().toString(), "binding2"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "binding1"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "binding2"); TabularData data = mbean.bindings(); ArrayList<Object> list = new ArrayList<Object>(data.values()); @@ -112,8 +111,8 @@ public class ExchangeMBeanTest extends TestCase ManagedObject managedObj = exchange.getManagedObject(); ManagedExchange mbean = (ManagedExchange)managedObj; - mbean.createNewBinding(_queue.getName().toString(), "key1=binding1,key2=binding2"); - mbean.createNewBinding(_queue.getName().toString(), "key3=binding3"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "key1=binding1,key2=binding2"); + mbean.createNewBinding(_queue.getNameShortString().toString(), "key3=binding3"); TabularData data = mbean.bindings(); ArrayList<Object> list = new ArrayList<Object>(data.values()); diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java index dc47951548..1e56a32383 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java @@ -83,6 +83,16 @@ public class HeadersBindingTest extends TestCase return null; } + public String getReplyToExchange() + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public String getReplyToRoutingKey() + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + public Object getHeader(String name) { return _headers.get(name); diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java index 9d7a323b6d..daa0377e0a 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java @@ -67,11 +67,8 @@ public class TopicExchangeTest extends TestCase _exchange.registerQueue(new AMQShortString("a.*.#.b"), queue, null); - MessagePublishInfo info = new PublishInfo(new AMQShortString("a.b")); - - IncomingMessage message = new IncomingMessage(info); - - message.enqueue(_exchange.route(message)); + IncomingMessage message = createMessage("a.b"); + routeMessage(message); Assert.assertEquals(0, queue.getMessageCount()); } @@ -357,7 +354,7 @@ public class TopicExchangeTest extends TestCase message.enqueue(_exchange.route(message)); AMQMessage msg = new AMQMessage(message.getStoredMessage()); - for(AMQQueue q : message.getDestinationQueues()) + for(BaseQueue q : message.getDestinationQueues()) { q.enqueue(msg); } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java index 072f671fec..174576b473 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java @@ -37,8 +37,8 @@ public class ExchangeMessagesTest extends AbstractTestMessages getVirtualHostRegistry().getVirtualHost("test"). getExchangeRegistry().getDefaultExchange(); - String type = exchange.getType().toString(); - String name = exchange.getName().toString(); + String type = exchange.getTypeShortString().toString(); + String name = exchange.getNameShortString().toString(); _logMessage = ExchangeMessages.EXH_CREATED(type, name, false); List<Object> log = performLog(); @@ -55,8 +55,8 @@ public class ExchangeMessagesTest extends AbstractTestMessages getVirtualHostRegistry().getVirtualHost("test"). getExchangeRegistry().getDefaultExchange(); - String type = exchange.getType().toString(); - String name = exchange.getName().toString(); + String type = exchange.getTypeShortString().toString(); + String name = exchange.getNameShortString().toString(); _logMessage = ExchangeMessages.EXH_CREATED(type, name, true); List<Object> log = performLog(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java index 905d63ea09..4d75a899be 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java @@ -50,7 +50,7 @@ import java.util.List; * validate this class then performs a log statement with logging enabled and * logging disabled. * - * The resulting log file is then validated. + * The resulting log file is then validated. * */ public abstract class AbstractTestLogSubject extends TestCase @@ -177,7 +177,7 @@ public abstract class AbstractTestLogSubject extends TestCase assertNotNull("Queue not found:" + message, queueSlice); assertEquals("Queue name not correct", - queue.getName().toString(), queueSlice); + queue.getNameShortString().toString(), queueSlice); } /** @@ -199,10 +199,10 @@ public abstract class AbstractTestLogSubject extends TestCase exchangeParts.length); assertEquals("Exchange type not correct", - exchange.getType().toString(), exchangeParts[0]); + exchange.getTypeShortString().toString(), exchangeParts[0]); assertEquals("Exchange name not correct", - exchange.getName().toString(), exchangeParts[1]); + exchange.getNameShortString().toString(), exchangeParts[1]); } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java index 6319238841..279628501c 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java @@ -50,7 +50,7 @@ public class BindingLogSubjectTest extends AbstractTestLogSubject _queue = new MockAMQQueue("BindingLogSubjectTest"); ((MockAMQQueue) _queue).setVirtualHost(_testVhost); - _subject = new BindingLogSubject(_routingKey, _exchange, _queue); + _subject = new BindingLogSubject(String.valueOf(_routingKey), _exchange, _queue); } /** diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java index 4e5ba0213a..ea89d026ff 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java @@ -302,7 +302,7 @@ public class AMQQueueMBeanTest extends TestCase }); AMQMessage m = new AMQMessage(msg.getStoredMessage()); - for(AMQQueue q : msg.getDestinationQueues()) + for(BaseQueue q : msg.getDestinationQueues()) { q.enqueue(m); } @@ -463,7 +463,7 @@ public class AMQQueueMBeanTest extends TestCase MESSAGE_SIZE))); AMQMessage m = new AMQMessage(currentMessage.getStoredMessage()); - for(AMQQueue q : currentMessage.getDestinationQueues()) + for(BaseQueue q : currentMessage.getDestinationQueues()) { q.enqueue(m); } diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java index a487b160e1..10a828d07c 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java @@ -22,7 +22,7 @@ package org.apache.qpid.server.queue; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; -import org.apache.qpid.server.configuration.QueueConfiguration; +import org.apache.qpid.server.configuration.*; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.subscription.Subscription; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -30,12 +30,14 @@ import org.apache.qpid.server.management.ManagedObject; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.security.PrincipalHolder; import org.apache.qpid.server.AMQChannel; +import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.txn.ServerTransaction; import org.apache.qpid.AMQException; import java.util.List; import java.util.Set; import java.util.Map; +import java.util.UUID; public class MockAMQQueue implements AMQQueue { @@ -58,17 +60,107 @@ public class MockAMQQueue implements AMQQueue } public void setDeleteOnNoConsumers(boolean b) - { + { + } + + public void addBinding(final Binding binding) + { + + } + + public void removeBinding(final Binding binding) + { + + } + + public List<Binding> getBindings() + { + return null; + } + + public int getBindingCount() + { + return 0; + } + + public ConfigStore getConfigStore() + { + return getVirtualHost().getConfigStore(); + } + + public long getMessageDequeueCount() + { + return 0; + } + + public long getTotalEnqueueSize() + { + return 0; } - public AMQShortString getName() + public long getTotalDequeueSize() + { + return 0; + } + + public int getBindingCountHigh() + { + return 0; + } + + public long getPersistentByteEnqueues() + { + return 0; + } + + public long getPersistentByteDequeues() + { + return 0; + } + + public long getPersistentMsgEnqueues() + { + return 0; + } + + public long getPersistentMsgDequeues() + { + return 0; + } + + public void purge(final long request) + { + + } + + public long getCreateTime() + { + return 0; + } + + public AMQShortString getNameShortString() { return _name; } public void setNoLocal(boolean b) { - + + } + + public UUID getId() + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public QueueConfigType getConfigType() + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public ConfiguredObject getParent() + { + return null; //To change body of implemented methods use File | Settings | File Templates. } public boolean isDurable() @@ -96,6 +188,11 @@ public class MockAMQQueue implements AMQQueue return _virtualhost; } + public String getName() + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + public void bind(Exchange exchange, AMQShortString routingKey, FieldTable arguments) throws AMQException { //To change body of implemented methods use File | Settings | File Templates. @@ -106,10 +203,6 @@ public class MockAMQQueue implements AMQQueue //To change body of implemented methods use File | Settings | File Templates. } - public List<ExchangeBinding> getExchangeBindings() - { - return null; //To change body of implemented methods use File | Settings | File Templates. - } public void registerSubscription(Subscription subscription, boolean exclusive) throws AMQException { @@ -131,6 +224,11 @@ public class MockAMQQueue implements AMQQueue return 0; //To change body of implemented methods use File | Settings | File Templates. } + public boolean hasExclusiveSubscriber() + { + return false; + } + public boolean isUnused() { return false; //To change body of implemented methods use File | Settings | File Templates. @@ -176,11 +274,15 @@ public class MockAMQQueue implements AMQQueue return 0; //To change body of implemented methods use File | Settings | File Templates. } - public QueueEntry enqueue(ServerMessage message) throws AMQException + public void enqueue(ServerMessage message) throws AMQException + { + } + + public void enqueue(ServerMessage message, PostEnqueueAction action) throws AMQException { - return null; //To change body of implemented methods use File | Settings | File Templates. } + public void requeue(QueueEntry entry) { //To change body of implemented methods use File | Settings | File Templates. @@ -206,6 +308,11 @@ public class MockAMQQueue implements AMQQueue //To change body of implemented methods use File | Settings | File Templates. } + public void removeQueueDeleteTask(final Task task) + { + //To change body of implemented methods use File | Settings | File Templates. + } + public List<QueueEntry> getMessagesOnTheQueue() { return null; //To change body of implemented methods use File | Settings | File Templates. diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java b/java/broker/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java index 3f74cb973b..8b894c9629 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java @@ -85,6 +85,11 @@ public class MockQueueEntry implements QueueEntry return false; } + public boolean isAvailable() + { + return false; + } + public Subscription getDeliveredSubscription() { return null; diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java index 408893870b..2abeb7ed30 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java @@ -21,12 +21,9 @@ package org.apache.qpid.server.queue; */ -import java.util.ArrayList; -import java.util.List; - import junit.framework.TestCase; - import org.apache.commons.configuration.PropertiesConfiguration; + import org.apache.qpid.AMQException; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.BasicContentHeaderProperties; @@ -35,17 +32,21 @@ import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.abstraction.MessagePublishInfo; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.exchange.DirectExchange; +import org.apache.qpid.server.message.AMQMessage; +import org.apache.qpid.server.message.MessageMetaData; import org.apache.qpid.server.registry.ApplicationRegistry; -import org.apache.qpid.server.store.TestableMemoryMessageStore; import org.apache.qpid.server.store.StoredMessage; +import org.apache.qpid.server.store.TestableMemoryMessageStore; import org.apache.qpid.server.subscription.MockSubscription; import org.apache.qpid.server.subscription.Subscription; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; -import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.txn.AutoCommitTransaction; import org.apache.qpid.server.txn.ServerTransaction; -import org.apache.qpid.server.message.AMQMessage; -import org.apache.qpid.server.message.MessageMetaData; +import org.apache.qpid.server.virtualhost.VirtualHost; +import org.apache.qpid.server.virtualhost.VirtualHostImpl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; public class SimpleAMQQueueTest extends TestCase { @@ -124,7 +125,7 @@ public class SimpleAMQQueueTest extends TestCase } try { - _queue = new SimpleAMQQueue(_qname, false, _owner, false, null); + _queue = new SimpleAMQQueue(_qname, false, _owner, false, null,Collections.EMPTY_MAP); assertNull("Queue was created", _queue); } catch (IllegalArgumentException e) @@ -145,31 +146,23 @@ public class SimpleAMQQueueTest extends TestCase public void testBinding() { - try - { - _queue.bind(_exchange, _routingKey, null); - assertTrue("Routing key was not bound", - _exchange.getBindings().containsKey(_routingKey)); - assertEquals("Queue was not bound to key", - _exchange.getBindings().get(_routingKey).get(0), - _queue); - assertEquals("Exchange binding count", 1, - _queue.getExchangeBindings().size()); - assertEquals("Wrong exchange bound", _routingKey, - _queue.getExchangeBindings().get(0).getRoutingKey()); - assertEquals("Wrong exchange bound", _exchange, - _queue.getExchangeBindings().get(0).getExchange()); - - _queue.unBind(_exchange, _routingKey, null); - assertFalse("Routing key was still bound", - _exchange.getBindings().containsKey(_routingKey)); - assertNull("Routing key was not empty", - _exchange.getBindings().get(_routingKey)); - } - catch (AMQException e) - { - assertNull("Unexpected exception", e); - } + _virtualHost.getBindingFactory().addBinding(String.valueOf(_routingKey), _queue, _exchange, Collections.EMPTY_MAP); + + assertTrue("Routing key was not bound", + _exchange.isBound(_routingKey)); + assertTrue("Queue was not bound to key", + _exchange.isBound(_routingKey,_queue)); + assertEquals("Exchange binding count", 1, + _queue.getBindings().size()); + assertEquals("Wrong exchange bound", String.valueOf(_routingKey), + _queue.getBindings().get(0).getBindingKey()); + assertEquals("Wrong exchange bound", _exchange, + _queue.getBindings().get(0).getExchange()); + + _virtualHost.getBindingFactory().removeBinding(String.valueOf(_routingKey), _queue, _exchange, Collections.EMPTY_MAP); + assertFalse("Routing key was still bound", + _exchange.isBound(_routingKey)); + } public void testSubscription() throws AMQException @@ -258,7 +251,7 @@ public class SimpleAMQQueueTest extends TestCase public void testAutoDeleteQueue() throws Exception { _queue.stop(); - _queue = new SimpleAMQQueue(_qname, false, null, true, _virtualHost); + _queue = new SimpleAMQQueue(_qname, false, null, true, _virtualHost, Collections.EMPTY_MAP); _queue.setDeleteOnNoConsumers(true); _queue.registerSubscription(_subscription, false); AMQMessage message = createMessage(new Long(25)); @@ -409,7 +402,7 @@ public class SimpleAMQQueueTest extends TestCase ((BasicContentHeaderProperties) contentHeaderBody.properties).setDeliveryMode((byte) 2); msg.setContentHeaderBody(contentHeaderBody); - final ArrayList<AMQQueue> qs = new ArrayList<AMQQueue>(); + final ArrayList<BaseQueue> qs = new ArrayList<BaseQueue>(); // Send persistent message diff --git a/java/broker/src/test/java/org/apache/qpid/server/registry/ApplicationRegistryShutdownTest.java b/java/broker/src/test/java/org/apache/qpid/server/registry/ApplicationRegistryShutdownTest.java index 4c8ff01be0..cadde1288b 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/registry/ApplicationRegistryShutdownTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/registry/ApplicationRegistryShutdownTest.java @@ -50,7 +50,7 @@ public class ApplicationRegistryShutdownTest extends TestCase @Override public void tearDown() throws Exception { - // Correctly Close the AR we created + // Correctly Close the AR we created ApplicationRegistry.remove(); } @@ -58,22 +58,15 @@ public class ApplicationRegistryShutdownTest extends TestCase /** * QPID-1399 : Ensure that the Authentiction manager unregisters any SASL providers created during * ApplicationRegistry initialisation. - * + * */ - public void testAuthenticationMangerCleansUp() + public void testAuthenticationMangerCleansUp() throws Exception { // Get default providers Provider[] defaultProviders = Security.getProviders(); // Register new providers - try - { - _registry.initialise(ApplicationRegistry.DEFAULT_INSTANCE); - } - catch (Exception e) - { - fail(e.getMessage()); - } + ApplicationRegistry.initialise(_registry, ApplicationRegistry.DEFAULT_INSTANCE); // Get the providers after initialisation Provider[] providersAfterInitialisation = Security.getProviders(); @@ -103,16 +96,9 @@ public class ApplicationRegistryShutdownTest extends TestCase assertTrue("No new SASL mechanisms added by initialisation.", additions.size() != 0 ); //Close the registry which will perform the close the AuthenticationManager - try - { - _registry.close(); - } - catch (Exception e) - { - fail(e.getMessage()); - } + _registry.close(); - //Validate that the SASL plugins have been removed. + //Validate that the SASL plugFins have been removed. Provider[] providersAfterClose = Security.getProviders(); assertTrue("No providers unregistered", providersAfterInitialisation.length > providersAfterClose.length); diff --git a/java/broker/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java b/java/broker/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java index 73e9dac775..df466380b9 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java @@ -23,19 +23,16 @@ package org.apache.qpid.server.security.access; import junit.framework.TestCase; -import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.amqp_0_9.ExchangeDeclareBodyImpl; import org.apache.qpid.framing.amqp_8_0.QueueBindBodyImpl; -import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.exchange.DirectExchange; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.AMQQueueFactory; +import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.security.access.ACLPlugin.AuthzResult; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.server.virtualhost.VirtualHost; -import org.apache.qpid.server.registry.ApplicationRegistry; public class PrincipalPermissionsTest extends TestCase { @@ -74,8 +71,7 @@ public class PrincipalPermissionsTest extends TestCase _perms = new PrincipalPermissions(_user); try { - PropertiesConfiguration env = new PropertiesConfiguration(); - _virtualHost = new VirtualHostImpl(new VirtualHostConfiguration("test", env)); + _virtualHost = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test"); _exchange = DirectExchange.TYPE.newInstance(_virtualHost, _exchangeName, _durable, _ticket, _autoDelete); _queue = AMQQueueFactory.createAMQQueueImpl(_queueName, false, _owner , false, _virtualHost, _arguments); _temporaryQueue = AMQQueueFactory.createAMQQueueImpl(_tempQueueName, false, _owner , true, _virtualHost, _arguments); @@ -106,7 +102,7 @@ public class PrincipalPermissionsTest extends TestCase { QueueBindBodyImpl bind = new QueueBindBodyImpl(_ticket, _queueName, _exchangeName, _routingKey, _nowait, _arguments); Object[] args = new Object[]{bind, _exchange, _queue, _routingKey}; - + assertEquals(AuthzResult.DENIED, _perms.authorise(Permission.BIND, args)); _perms.grant(Permission.BIND, (Object[]) null); assertEquals(AuthzResult.ALLOWED, _perms.authorise(Permission.BIND, args)); @@ -116,7 +112,7 @@ public class PrincipalPermissionsTest extends TestCase { Object[] grantArgs = new Object[]{_temporary , _queueName, _exchangeName, _routingKey}; Object[] authArgs = new Object[]{_autoDelete, _queueName}; - + assertEquals(AuthzResult.DENIED, _perms.authorise(Permission.CREATEQUEUE, authArgs)); _perms.grant(Permission.CREATEQUEUE, grantArgs); assertEquals(AuthzResult.ALLOWED, _perms.authorise(Permission.CREATEQUEUE, authArgs)); @@ -157,12 +153,12 @@ public class PrincipalPermissionsTest extends TestCase _perms.grant(Permission.CONSUME, grantArgs); assertEquals(AuthzResult.ALLOWED, _perms.authorise(Permission.CONSUME, authArgs)); } - + public void testPublish() { Object[] authArgs = new Object[]{_exchange, _routingKey}; - Object[] grantArgs = new Object[]{_exchange.getName(), _routingKey}; - + Object[] grantArgs = new Object[]{_exchange.getNameShortString(), _routingKey}; + assertEquals(AuthzResult.DENIED, _perms.authorise(Permission.PUBLISH, authArgs)); _perms.grant(Permission.PUBLISH, grantArgs); assertEquals(AuthzResult.ALLOWED, _perms.authorise(Permission.PUBLISH, authArgs)); @@ -171,28 +167,28 @@ public class PrincipalPermissionsTest extends TestCase public void testVhostAccess() { //Tests that granting a user Virtualhost level access allows all authorisation requests - //where previously they would be denied - + //where previously they would be denied + //QPID-2133 createExchange rights currently allow all exchange creation unless rights for creating some //specific exchanges are granted. Grant a specific exchange creation to cause all others to be denied. Object[] createArgsCreateExchange = new Object[]{new AMQShortString("madeup"), _exchangeType}; Object[] authArgsCreateExchange = new Object[]{_exchangeName,_exchangeType}; assertEquals("Exchange creation was not allowed", AuthzResult.ALLOWED, _perms.authorise(Permission.CREATEEXCHANGE, authArgsCreateExchange)); _perms.grant(Permission.CREATEEXCHANGE, createArgsCreateExchange); - - Object[] authArgsPublish = new Object[]{_exchange, _routingKey}; + + Object[] authArgsPublish = new Object[]{_exchange, _routingKey}; Object[] authArgsConsume = new Object[]{_queue}; Object[] authArgsCreateQueue = new Object[]{_autoDelete, _queueName}; QueueBindBodyImpl bind = new QueueBindBodyImpl(_ticket, _queueName, _exchangeName, _routingKey, _nowait, _arguments); Object[] authArgsBind = new Object[]{bind, _exchange, _queue, _routingKey}; - + assertEquals("Exchange creation was not denied", AuthzResult.DENIED, _perms.authorise(Permission.CREATEEXCHANGE, authArgsCreateExchange)); assertEquals("Publish was not denied", AuthzResult.DENIED, _perms.authorise(Permission.PUBLISH, authArgsPublish)); assertEquals("Consume creation was not denied", AuthzResult.DENIED, _perms.authorise(Permission.CONSUME, authArgsConsume)); assertEquals("Queue creation was not denied", AuthzResult.DENIED, _perms.authorise(Permission.CREATEQUEUE, authArgsCreateQueue)); //BIND pre-grant authorise check disabled due to QPID-1597 //assertEquals("Binding creation was not denied", AuthzResult.DENIED, _perms.authorise(Permission.BIND, authArgsBind)); - + _perms.grant(Permission.ACCESS); assertEquals("Exchange creation was not allowed", AuthzResult.ALLOWED, _perms.authorise(Permission.CREATEEXCHANGE, authArgsCreateExchange)); diff --git a/java/broker/src/test/java/org/apache/qpid/server/security/access/QueueDenier.java b/java/broker/src/test/java/org/apache/qpid/server/security/access/QueueDenier.java index 5b76bf7532..3f9c776aa2 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/security/access/QueueDenier.java +++ b/java/broker/src/test/java/org/apache/qpid/server/security/access/QueueDenier.java @@ -49,7 +49,7 @@ public class QueueDenier extends AllowAll @Override public AuthzResult authoriseDelete(PrincipalHolder session, AMQQueue queue) { - if (!(queue.getName().toString().equals(_queueName))) + if (!(queue.getNameShortString().toString().equals(_queueName))) { return AuthzResult.ALLOWED; } diff --git a/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java b/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java index e011301f06..2427e28e70 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java @@ -21,33 +21,39 @@ package org.apache.qpid.server.store; import junit.framework.TestCase; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.qpid.AMQException; +import org.apache.qpid.common.AMQPFilterTypes; +import org.apache.qpid.framing.AMQShortString; +import org.apache.qpid.framing.BasicContentHeaderProperties; +import org.apache.qpid.framing.ContentHeaderBody; +import org.apache.qpid.framing.FieldTable; +import org.apache.qpid.framing.abstraction.MessagePublishInfo; +import org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl; +import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.exchange.DirectExchange; import org.apache.qpid.server.exchange.Exchange; +import org.apache.qpid.server.exchange.ExchangeRegistry; import org.apache.qpid.server.exchange.ExchangeType; import org.apache.qpid.server.exchange.TopicExchange; -import org.apache.qpid.server.exchange.ExchangeRegistry; -import org.apache.qpid.server.virtualhost.VirtualHost; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; -import org.apache.qpid.server.queue.*; -import org.apache.qpid.server.txn.ServerTransaction; -import org.apache.qpid.server.txn.AutoCommitTransaction; -import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.message.AMQMessage; import org.apache.qpid.server.message.MessageMetaData; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.FieldTable; -import org.apache.qpid.framing.ContentHeaderBody; -import org.apache.qpid.framing.BasicContentHeaderProperties; -import org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl; -import org.apache.qpid.framing.abstraction.MessagePublishInfo; -import org.apache.qpid.AMQException; -import org.apache.qpid.common.AMQPFilterTypes; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.qpid.server.queue.AMQPriorityQueue; +import org.apache.qpid.server.queue.AMQQueue; +import org.apache.qpid.server.queue.AMQQueueFactory; +import org.apache.qpid.server.queue.BaseQueue; +import org.apache.qpid.server.queue.IncomingMessage; +import org.apache.qpid.server.queue.QueueRegistry; +import org.apache.qpid.server.queue.SimpleAMQQueue; +import org.apache.qpid.server.registry.ApplicationRegistry; +import org.apache.qpid.server.txn.AutoCommitTransaction; +import org.apache.qpid.server.txn.ServerTransaction; +import org.apache.qpid.server.virtualhost.VirtualHost; import java.io.File; import java.util.List; @@ -99,8 +105,7 @@ public class MessageStoreTest extends TestCase try { - _virtualHost = new VirtualHostImpl(new VirtualHostConfiguration(getClass().getName(), configuration)); - ApplicationRegistry.getInstance().getVirtualHostRegistry().registerVirtualHost(_virtualHost); + _virtualHost = ApplicationRegistry.getInstance().createVirtualHost(new VirtualHostConfiguration(getClass().getName(), configuration)); } catch (Exception e) { @@ -244,10 +249,10 @@ public class MessageStoreTest extends TestCase { QueueRegistry queueRegistry = _virtualHost.getQueueRegistry(); - validateBindingProperties(queueRegistry.getQueue(durablePriorityQueueName).getExchangeBindings(), false); - validateBindingProperties(queueRegistry.getQueue(durablePriorityTopicQueueName).getExchangeBindings(), true); - validateBindingProperties(queueRegistry.getQueue(durableQueueName).getExchangeBindings(), false); - validateBindingProperties(queueRegistry.getQueue(durableTopicQueueName).getExchangeBindings(), true); + validateBindingProperties(queueRegistry.getQueue(durablePriorityQueueName).getBindings(), false); + validateBindingProperties(queueRegistry.getQueue(durablePriorityTopicQueueName).getBindings(), true); + validateBindingProperties(queueRegistry.getQueue(durableQueueName).getBindings(), false); + validateBindingProperties(queueRegistry.getQueue(durableTopicQueueName).getBindings(), true); } /** @@ -256,16 +261,16 @@ public class MessageStoreTest extends TestCase * @param bindings the set of bindings to validate * @param useSelectors if set validate that the binding has a JMS_SELECTOR argument */ - private void validateBindingProperties(List<ExchangeBinding> bindings, boolean useSelectors) + private void validateBindingProperties(List<Binding> bindings, boolean useSelectors) { assertEquals("Each queue should only be bound once.", 1, bindings.size()); - ExchangeBinding binding = bindings.get(0); + Binding binding = bindings.get(0); if (useSelectors) { assertTrue("Binding does not contain a Selector argument.", - binding.getArguments().containsKey(AMQPFilterTypes.JMS_SELECTOR.getValue())); + binding.getArguments().containsKey(AMQPFilterTypes.JMS_SELECTOR.toString())); } } @@ -376,7 +381,7 @@ public class MessageStoreTest extends TestCase { // TODO Deliver to queues ServerTransaction trans = new AutoCommitTransaction(_virtualHost.getMessageStore()); - final List<AMQQueue> destinationQueues = currentMessage.getDestinationQueues(); + final List<? extends BaseQueue> destinationQueues = currentMessage.getDestinationQueues(); trans.enqueue(currentMessage.getDestinationQueues(), currentMessage, new ServerTransaction.Action() { public void postCommit() { @@ -384,9 +389,9 @@ public class MessageStoreTest extends TestCase { AMQMessage message = new AMQMessage(currentMessage.getStoredMessage()); - for(AMQQueue queue : destinationQueues) + for(BaseQueue queue : destinationQueues) { - QueueEntry entry = queue.enqueue(message); + queue.enqueue(message); } } catch (AMQException e) @@ -525,14 +530,7 @@ public class MessageStoreTest extends TestCase protected void bindQueueToExchange(Exchange exchange, AMQShortString routingKey, AMQQueue queue, boolean useSelector, FieldTable queueArguments) { - try - { - exchange.registerQueue(queueName, queue, queueArguments); - } - catch (AMQException e) - { - fail(e.getMessage()); - } + FieldTable bindArguments = null; @@ -544,9 +542,9 @@ public class MessageStoreTest extends TestCase try { - queue.bind(exchange, routingKey, bindArguments); + _virtualHost.getBindingFactory().addBinding(String.valueOf(routingKey), queue, exchange, FieldTable.convertToMap(bindArguments)); } - catch (AMQException e) + catch (Exception e) { fail(e.getMessage()); } @@ -609,7 +607,7 @@ public class MessageStoreTest extends TestCase public AMQShortString getExchange() { - return _exchange.getName(); + return _exchange.getNameShortString(); } public void setExchange(AMQShortString exchange) diff --git a/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java b/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java index 906c769f9c..85412cf74e 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java @@ -74,7 +74,7 @@ public class InternalBrokerBaseCase extends TestCase Exchange defaultExchange = _virtualHost.getExchangeRegistry().getDefaultExchange(); - _queue.bind(defaultExchange, QUEUE_NAME, null); + _virtualHost.getBindingFactory().addBinding(QUEUE_NAME.toString(), _queue, defaultExchange, null); _session = new InternalTestProtocolSession(_virtualHost); CurrentActor.set(_session.getLogActor()); diff --git a/java/broker/src/test/java/org/apache/qpid/server/util/NullApplicationRegistry.java b/java/broker/src/test/java/org/apache/qpid/server/util/NullApplicationRegistry.java index 3d37412376..d927bbe732 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/util/NullApplicationRegistry.java +++ b/java/broker/src/test/java/org/apache/qpid/server/util/NullApplicationRegistry.java @@ -22,12 +22,14 @@ package org.apache.qpid.server.util; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; + +import org.apache.qpid.qmf.QMFService; import org.apache.qpid.server.configuration.ServerConfiguration; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.logging.RootMessageLoggerImpl; +import org.apache.qpid.server.logging.actors.BrokerActor; import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.logging.actors.TestLogActor; -import org.apache.qpid.server.logging.actors.BrokerActor; import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger; import org.apache.qpid.server.management.NoopManagedObjectRegistry; import org.apache.qpid.server.plugins.PluginManager; @@ -36,14 +38,13 @@ import org.apache.qpid.server.security.access.ACLManager; import org.apache.qpid.server.security.access.plugins.AllowAll; import org.apache.qpid.server.security.auth.database.PropertiesPrincipalDatabaseManager; import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticationManager; -import org.apache.qpid.server.virtualhost.VirtualHostRegistry; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.server.virtualhost.VirtualHost; +import org.apache.qpid.server.virtualhost.VirtualHostRegistry; import java.util.Arrays; import java.util.Collection; -import java.util.Properties; import java.util.NoSuchElementException; +import java.util.Properties; public class NullApplicationRegistry extends ApplicationRegistry { @@ -75,10 +76,11 @@ public class NullApplicationRegistry extends ApplicationRegistry _managedObjectRegistry = new NoopManagedObjectRegistry(); _virtualHostRegistry = new VirtualHostRegistry(this); + _qmfService = new QMFService(getConfigStore(),this); + PropertiesConfiguration vhostProps = new PropertiesConfiguration(); VirtualHostConfiguration hostConfig = new VirtualHostConfiguration("test", vhostProps); - VirtualHost dummyHost = new VirtualHostImpl(hostConfig); - _virtualHostRegistry.registerVirtualHost(dummyHost); + VirtualHost dummyHost = ApplicationRegistry.getInstance().createVirtualHost(hostConfig); _virtualHostRegistry.setDefaultVirtualHostName("test"); _pluginManager = new PluginManager(""); _startup = new Exception("NAR"); @@ -99,6 +101,7 @@ public class NullApplicationRegistry extends ApplicationRegistry try { super.close(); + _qmfService.close(); } finally { diff --git a/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java b/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java index bb338458f1..b5bbfde514 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java +++ b/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java @@ -22,10 +22,16 @@ package org.apache.qpid.server.util; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; + +import org.apache.qpid.qmf.QMFService; import org.apache.qpid.server.configuration.ServerConfiguration; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.exchange.ExchangeFactory; import org.apache.qpid.server.exchange.ExchangeRegistry; +import org.apache.qpid.server.logging.RootMessageLoggerImpl; +import org.apache.qpid.server.logging.actors.CurrentActor; +import org.apache.qpid.server.logging.actors.TestLogActor; +import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger; import org.apache.qpid.server.management.NoopManagedObjectRegistry; import org.apache.qpid.server.queue.QueueRegistry; import org.apache.qpid.server.registry.ApplicationRegistry; @@ -35,17 +41,13 @@ import org.apache.qpid.server.security.auth.database.PropertiesPrincipalDatabase import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticationManager; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.TestableMemoryMessageStore; -import org.apache.qpid.server.virtualhost.VirtualHostRegistry; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.server.virtualhost.VirtualHost; -import org.apache.qpid.server.logging.RootMessageLoggerImpl; -import org.apache.qpid.server.logging.actors.CurrentActor; -import org.apache.qpid.server.logging.actors.TestLogActor; -import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger; +import org.apache.qpid.server.virtualhost.VirtualHostImpl; +import org.apache.qpid.server.virtualhost.VirtualHostRegistry; +import java.util.Arrays; import java.util.Collection; import java.util.Properties; -import java.util.Arrays; public class TestApplicationRegistry extends ApplicationRegistry { @@ -97,6 +99,8 @@ public class TestApplicationRegistry extends ApplicationRegistry _messageStore = new TestableMemoryMessageStore(); _virtualHostRegistry = new VirtualHostRegistry(this); + _qmfService = new QMFService(getConfigStore(),this); + PropertiesConfiguration vhostProps = new PropertiesConfiguration(); VirtualHostConfiguration hostConfig = new VirtualHostConfiguration("test", vhostProps); @@ -147,6 +151,7 @@ public class TestApplicationRegistry extends ApplicationRegistry try { super.close(); + _qmfService.close(); } finally { |