You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/12/22 17:59:47 UTC

svn commit: r1775689 [3/4] - in /qpid/java/trunk: bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/ bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/upgrade/ bdbstore/systests/src/test/java/org/apache/qpid/server/sto...

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java Thu Dec 22 17:59:46 2016
@@ -30,6 +30,7 @@ import java.util.UUID;
 import java.util.concurrent.ScheduledFuture;
 
 import org.apache.qpid.server.logging.EventLoggerProvider;
+import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Connection;
@@ -256,6 +257,9 @@ public interface QueueManagingVirtualHos
 
     Queue<?> getAttainedQueue(UUID id);
 
+    Queue<?> getAttainedQueue(String name);
+
+
     String getLocalAddress(String routingAddress);
 
     <T extends ConfiguredObject<?>> T getAttainedChildFromAddress(Class<T> childClass,
@@ -267,6 +271,8 @@ public interface QueueManagingVirtualHos
     void setTargetSize(long targetSize);
     long getTotalQueueDepthBytes();
 
+    MessageDestination getSystemDestination(String name);
+
     interface Transaction
     {
         void dequeue(QueueEntry entry);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java Thu Dec 22 17:59:46 2016
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.exchange;
 
 import static org.mockito.Matchers.anySet;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -142,6 +143,8 @@ public class FanoutExchangeTest extends
     private Queue<?> mockQueue()
     {
         Queue queue = mock(Queue.class);
+        String name = UUID.randomUUID().toString();
+        when(queue.getName()).thenReturn(name);
         when(queue.getVirtualHost()).thenReturn(_virtualHost);
         when(queue.getCategoryClass()).thenReturn(Queue.class);
         when(queue.getModel()).thenReturn(BrokerModel.getInstance());
@@ -149,6 +152,7 @@ public class FanoutExchangeTest extends
         when(queue.getTaskExecutor()).thenReturn(taskExecutor);
         when(queue.getChildExecutor()).thenReturn(taskExecutor);
         when(queue.getParent(VirtualHost.class)).thenReturn(_virtualHost);
+        when(_virtualHost.getAttainedQueue(eq(name))).thenReturn(queue);
         return queue;
     }
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java Thu Dec 22 17:59:46 2016
@@ -27,15 +27,12 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 
 import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.server.binding.BindingImpl;
 import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.message.AMQMessageHeader;
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
@@ -189,9 +186,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testDefault_2()
@@ -201,9 +198,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("A", "Value of A");
         matchHeaders.setString("B", "Value of B");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testDefault_3()
@@ -212,9 +209,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Altered value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertFalse(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertFalse(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAll_1()
@@ -224,9 +221,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAll_2()
@@ -237,9 +234,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertFalse(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertFalse(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAll_3()
@@ -251,9 +248,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("A", "Value of A");
         matchHeaders.setString("B", "Value of B");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAll_4()
@@ -266,9 +263,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("B", "Value of B");
         matchHeaders.setString("C", "Value of C");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAll_5()
@@ -281,9 +278,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("B", "Altered value of B");
         matchHeaders.setString("C", "Value of C");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertFalse(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertFalse(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_1()
@@ -293,9 +290,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_2()
@@ -306,9 +303,9 @@ public class HeadersBindingTest extends
 
         matchHeaders.setString("A", "Value of A");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_3()
@@ -320,9 +317,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("A", "Value of A");
         matchHeaders.setString("B", "Value of B");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_4()
@@ -335,9 +332,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("B", "Value of B");
         matchHeaders.setString("C", "Value of C");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_5()
@@ -350,9 +347,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("B", "Altered value of B");
         matchHeaders.setString("C", "Value of C");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertTrue(new HeadersBinding(b).matches(matchHeaders));
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertTrue(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
     public void testAny_6()
@@ -365,27 +362,9 @@ public class HeadersBindingTest extends
         matchHeaders.setString("B", "Altered value of B");
         matchHeaders.setString("C", "Value of C");
 
-        BindingImpl b =
-                createBinding(UUID.randomUUID(), getQueueName(), _queue, _exchange, bindHeaders);
-        assertFalse(new HeadersBinding(b).matches(matchHeaders));
-    }
-
-    public static BindingImpl createBinding(UUID id,
-                                            final String bindingKey,
-                                            final Queue<?> queue,
-                                            final Exchange<?> exchange,
-                                            final Map<String, Object> arguments)
-    {
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Binding.NAME, bindingKey);
-        if(arguments != null)
-        {
-            attributes.put(Binding.ARGUMENTS, arguments);
-        }
-        attributes.put(Binding.ID, id);
-        BindingImpl binding = new BindingImpl(attributes, queue, exchange);
-        binding.open();
-        return binding;
+        AbstractExchange.BindingIdentifier b =
+                new AbstractExchange.BindingIdentifier(getQueueName(), _queue);
+        assertFalse(new HeadersBinding(b, bindHeaders).matches(matchHeaders));
     }
 
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java Thu Dec 22 17:59:46 2016
@@ -158,6 +158,7 @@ public class HeadersExchangeTest extends
     private Queue<?> create(String name)
     {
         Queue q = mock(Queue.class);
+        when(q.getName()).thenReturn(name);
         when(q.toString()).thenReturn(name);
         when(q.getVirtualHost()).thenReturn(_virtualHost);
         when(q.getParent(VirtualHost.class)).thenReturn(_virtualHost);
@@ -167,6 +168,7 @@ public class HeadersExchangeTest extends
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(q.getTaskExecutor()).thenReturn(taskExecutor);
         when(q.getChildExecutor()).thenReturn(taskExecutor);
+        when(_virtualHost.getAttainedQueue(name)).thenReturn(q);
         return q;
     }
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java Thu Dec 22 17:59:46 2016
@@ -29,17 +29,14 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import org.junit.Assert;
 
 import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.server.binding.BindingImpl;
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
@@ -97,8 +94,7 @@ public class TopicExchangeTest extends Q
     public void testNoRoute() throws Exception
     {
         Queue<?> queue = createQueue("a*#b");
-        createBinding(UUID.randomUUID(), "a.*.#.b", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.*.#.b", null, false);
 
         routeMessage("a.b", 0l);
 
@@ -108,8 +104,7 @@ public class TopicExchangeTest extends Q
     public void testDirectMatch() throws Exception
     {
         Queue<?> queue = createQueue("ab");
-        createBinding(UUID.randomUUID(), "a.b", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.b", null, false);
 
         routeMessage("a.b",0l);
 
@@ -130,8 +125,7 @@ public class TopicExchangeTest extends Q
     public void testStarMatch() throws Exception
     {
         Queue<?> queue = createQueue("a*");
-        createBinding(UUID.randomUUID(), "a.*", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.*", null, false);
 
         routeMessage("a.b",0l);
 
@@ -161,8 +155,7 @@ public class TopicExchangeTest extends Q
     public void testHashMatch() throws Exception
     {
         Queue<?> queue = createQueue("a#");
-        createBinding(UUID.randomUUID(), "a.#", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.#", null, false);
 
         routeMessage("a.b.c",0l);
 
@@ -212,7 +205,7 @@ public class TopicExchangeTest extends Q
     public void testMidHash() throws Exception
     {
         Queue<?> queue = createQueue("a");
-        createBinding(UUID.randomUUID(), "a.*.#.b", queue, _exchange, null);
+        _exchange.bind(queue.getName(), "a.*.#.b", null, false);
 
         routeMessage("a.c.d.b",0l);
 
@@ -237,8 +230,7 @@ public class TopicExchangeTest extends Q
     public void testMatchAfterHash() throws Exception
     {
         Queue<?> queue = createQueue("a#");
-        createBinding(UUID.randomUUID(), "a.*.#.b.c", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.*.#.b.c", null, false);
 
         int queueCount = routeMessage("a.c.b.b",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -277,11 +269,7 @@ public class TopicExchangeTest extends Q
     public void testHashAfterHash() throws Exception
     {
         Queue<?> queue = createQueue("a#");
-        createBinding(UUID.randomUUID(),
-                      "a.*.#.b.c.#.d",
-                      queue,
-                      _exchange,
-                      null);
+        _exchange.bind(queue.getName(), "a.*.#.b.c.#.d", null, false);
 
         int queueCount = routeMessage("a.c.b.b.c",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -302,7 +290,7 @@ public class TopicExchangeTest extends Q
     public void testHashHash() throws Exception
     {
         Queue<?> queue = createQueue("a#");
-        createBinding(UUID.randomUUID(), "a.#.*.#.d", queue, _exchange, null);
+        _exchange.bind(queue.getName(), "a.#.*.#.d", null, false);
 
         int queueCount = routeMessage("a.c.b.b.c",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -323,7 +311,7 @@ public class TopicExchangeTest extends Q
     public void testSubMatchFails() throws Exception
     {
         Queue<?> queue = createQueue("a");
-        createBinding(UUID.randomUUID(), "a.b.c.d", queue, _exchange, null);
+        _exchange.bind(queue.getName(), "a.b.c.d", null, false);
 
         int queueCount = routeMessage("a.b.c",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -335,8 +323,7 @@ public class TopicExchangeTest extends Q
     public void testMoreRouting() throws Exception
     {
         Queue<?> queue = createQueue("a");
-       createBinding(UUID.randomUUID(), "a.b", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.b", null, false);
 
         int queueCount = routeMessage("a.b.c",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -348,8 +335,7 @@ public class TopicExchangeTest extends Q
     public void testMoreQueue() throws Exception
     {
         Queue<?> queue = createQueue("a");
-        createBinding(UUID.randomUUID(), "a.b", queue, _exchange, null);
-
+        _exchange.bind(queue.getName(), "a.b", null, false);
 
         int queueCount = routeMessage("a",0l);
         Assert.assertEquals("Message should not route to any queues", 0, queueCount);
@@ -364,7 +350,7 @@ public class TopicExchangeTest extends Q
         final String bindingKey = "bindingKey";
 
         Map<String, Object> bindArgs = Collections.<String, Object>singletonMap(JMS_SELECTOR.toString(), "arg > 5");
-        createBinding(UUID.randomUUID(), bindingKey, queue, _exchange, bindArgs);
+        _exchange.bind(queue.getName(), bindingKey, bindArgs, false);
 
         ServerMessage matchMsg1 = mock(ServerMessage.class);
         AMQMessageHeader msgHeader1 = createMessageHeader(Collections.<String, Object>singletonMap("arg", 6));
@@ -398,7 +384,7 @@ public class TopicExchangeTest extends Q
         final String bindingKey = "a";
 
         Map<String, Object> originalArgs = Collections.<String, Object>singletonMap(JMS_SELECTOR.toString(), "arg > 5");
-        createBinding(UUID.randomUUID(), bindingKey, queue, _exchange, originalArgs);
+        _exchange.bind(queue.getName(), bindingKey, originalArgs, false);
 
         AMQMessageHeader mgsHeader1 = createMessageHeader(Collections.<String, Object>singletonMap("arg", 6));
         ServerMessage msg1 = mock(ServerMessage.class);
@@ -436,7 +422,7 @@ public class TopicExchangeTest extends Q
         Queue<?> queue = createQueue("queue1");
         final String bindingKey = "a";
 
-        BindingImpl binding = createBinding(UUID.randomUUID(), bindingKey, queue, _exchange, null);
+        _exchange.bind(queue.getName(), bindingKey, null, false);
 
         ServerMessage msg1 = mock(ServerMessage.class);
 
@@ -466,25 +452,6 @@ public class TopicExchangeTest extends Q
         _exchange.delete();
     }
 
-    private BindingImpl createBinding(UUID id,
-                                      String bindingKey,
-                                      Queue<?> queue,
-                                      Exchange<?> exchange,
-                                      Map<String, Object> arguments)
-    {
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Binding.NAME, bindingKey);
-        if(arguments != null)
-        {
-            attributes.put(Binding.ARGUMENTS, arguments);
-        }
-        attributes.put(Binding.ID, id);
-
-        BindingImpl binding = (BindingImpl) _vhost.getObjectFactory().create(Binding.class, attributes, queue, exchange);
-        binding.open();
-        return binding;
-    }
-
     private int routeMessage(String routingKey, long messageNumber)
     {
         ServerMessage message = mock(ServerMessage.class);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java Thu Dec 22 17:59:46 2016
@@ -154,11 +154,9 @@ abstract class AbstractQueueTestBase ext
                     _exchange.isBound(_routingKey,_queue));
         assertEquals("Exchange binding count", 1,
                      _queue.getBindings().size());
-        final Binding<?> firstBinding = _queue.getBindings().iterator().next();
-        assertEquals("Wrong exchange bound", _routingKey,
+        final Binding firstBinding = _queue.getBindings().iterator().next();
+        assertEquals("Wrong binding key", _routingKey,
                      firstBinding.getBindingKey());
-        assertEquals("Wrong exchange bound", _exchange,
-                     firstBinding.getExchange());
 
         _exchange.deleteBinding(_routingKey, _queue);
         assertFalse("Routing key was still bound",

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java Thu Dec 22 17:59:46 2016
@@ -41,11 +41,9 @@ import org.mockito.invocation.Invocation
 import org.mockito.stubbing.Answer;
 
 import org.apache.qpid.common.AMQPFilterTypes;
-import org.apache.qpid.server.binding.BindingImpl;
 import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -193,33 +191,6 @@ public abstract class AbstractDurableCon
         verify(_handler, never()).handle(any(ConfiguredObjectRecord.class));
     }
 
-    public void testBindQueue() throws Exception
-    {
-        Exchange<?> exchange = createTestExchange();
-        Queue<?> queue = createTestQueue(QUEUE_NAME, "queueOwner", false, null);
-        BindingImpl binding = createBinding(UUIDGenerator.generateRandomUUID(), ROUTING_KEY, queue,
-                                            exchange, _bindingArgs);
-        _configStore.create(exchange.asObjectRecord());
-        _configStore.create(queue.asObjectRecord());
-        _configStore.create(binding.asObjectRecord());
-
-        reopenStore();
-        _configStore.openConfigurationStore(_handler);
-
-        Map<String,Object> map = new HashMap<String, Object>();
-        map.put(Binding.NAME, ROUTING_KEY);
-        map.put(Binding.ARGUMENTS,_bindingArgs);
-        map.put(Binding.DURABLE,true);
-        map.put(Binding.TYPE, Binding.class.getSimpleName());
-
-        Map<String,UUID> parents = new HashMap<String, UUID>();
-
-        parents.put(Exchange.class.getSimpleName(), exchange.getId());
-        parents.put(Queue.class.getSimpleName(), queue.getId());
-
-        verify(_handler).handle(matchesRecord(binding.getId(), BINDING, map, parents));
-    }
-
 
     private ConfiguredObjectRecord matchesRecord(UUID id,
                                                  String type,
@@ -287,23 +258,6 @@ public abstract class AbstractDurableCon
         }
     }
 
-    public void testUnbindQueue() throws Exception
-    {
-        Exchange<?> exchange = createTestExchange();
-        _configStore.create(exchange.asObjectRecord());
-
-        Queue<?> queue = createTestQueue(QUEUE_NAME, "queueOwner", false, null);
-        BindingImpl binding = createBinding(UUIDGenerator.generateRandomUUID(), ROUTING_KEY, queue,
-                                            exchange, _bindingArgs);
-        _configStore.create(binding.asObjectRecord());
-
-        _configStore.remove(binding.asObjectRecord());
-        reopenStore();
-
-        verify(_handler, never()).handle(matchesRecord(ANY_UUID, BINDING,
-                                                                         ANY_MAP));
-    }
-
     public void testCreateQueueAMQQueue() throws Exception
     {
         Queue<?> queue = createTestQueue(getName(), getName() + "Owner", true, null);
@@ -554,21 +508,4 @@ public abstract class AbstractDurableCon
             _configStore.closeConfigurationStore();
         }
     }
-
-    private static BindingImpl createBinding(UUID id,
-                                             final String bindingKey,
-                                             final Queue<?> queue,
-                                             final Exchange<?> exchange,
-                                             final Map<String, Object> arguments)
-    {
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Binding.NAME, bindingKey);
-        if(arguments != null)
-        {
-            attributes.put(Binding.ARGUMENTS, arguments);
-        }
-        attributes.put(Binding.ID, id);
-        return new BindingImpl(attributes, queue, exchange);
-    }
-
 }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java Thu Dec 22 17:59:46 2016
@@ -399,9 +399,6 @@ public class JsonFileConfigStoreTest ext
 
         final UUID exchangeId = new UUID(0, 2);
 
-        final UUID bindingId = new UUID(0, 3);
-        final UUID binding2Id = new UUID(1, 3);
-
         Map<String, UUID> parents = getRootAsParentMap();
         Map<String, Object> queueAttr = Collections.<String, Object>singletonMap(ConfiguredObject.NAME, "queue");
         final ConfiguredObjectRecordImpl queueRecord =
@@ -421,33 +418,12 @@ public class JsonFileConfigStoreTest ext
                                                exchangeAttr,
                                                parents);
         _store.create(exchangeRecord);
-        Map<String,UUID> bindingParents = new HashMap();
-        bindingParents.put("Exchange", exchangeRecord.getId());
-        bindingParents.put("Queue", queueRecord.getId());
-        Map<String, Object> bindingAttr = Collections.<String, Object>singletonMap(ConfiguredObject.NAME, "binding");
-        final ConfiguredObjectRecordImpl bindingRecord =
-                new ConfiguredObjectRecordImpl(bindingId, "Binding",
-                                               bindingAttr,
-                                               bindingParents);
-
-
-        Map<String,UUID> binding2Parents = new HashMap();
-        binding2Parents.put("Exchange", exchangeRecord.getId());
-        binding2Parents.put("Queue", queue2Record.getId());
-        Map<String, Object> binding2Attr = Collections.<String, Object>singletonMap(ConfiguredObject.NAME, "binding2");
-        final ConfiguredObjectRecordImpl binding2Record =
-                new ConfiguredObjectRecordImpl(binding2Id, "Binding",
-                                               binding2Attr,
-                                               binding2Parents);
-        _store.update(true, bindingRecord, binding2Record);
         _store.closeConfigurationStore();
         _store.init(_parent);
         _store.openConfigurationStore(_handler);
         verify(_handler).handle(matchesRecord(queueId, "Queue", queueAttr));
         verify(_handler).handle(matchesRecord(queue2Id, "Queue", queue2Attr));
         verify(_handler).handle(matchesRecord(exchangeId, "Exchange", exchangeAttr));
-        verify(_handler).handle(matchesRecord(bindingId, "Binding", bindingAttr));
-        verify(_handler).handle(matchesRecord(binding2Id, "Binding", binding2Attr));
         _store.closeConfigurationStore();
 
     }

Modified: qpid/java/trunk/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapter.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapter.java (original)
+++ qpid/java/trunk/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapter.java Thu Dec 22 17:59:46 2016
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.server.security.access.config;
 
+import static org.apache.qpid.server.security.access.config.LegacyOperation.BIND;
+import static org.apache.qpid.server.security.access.config.LegacyOperation.UNBIND;
 import static org.apache.qpid.server.security.access.config.ObjectType.EXCHANGE;
 import static org.apache.qpid.server.security.access.config.ObjectType.METHOD;
 import static org.apache.qpid.server.security.access.config.ObjectType.QUEUE;
@@ -41,6 +43,7 @@ import org.apache.qpid.server.queue.Queu
 import org.apache.qpid.server.security.Result;
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 class LegacyAccessControlAdapter
 {
@@ -214,21 +217,8 @@ class LegacyAccessControlAdapter
         String objectName = configuredObject.getName();
         Class<? extends ConfiguredObject> configuredObjectType = configuredObject.getCategoryClass();
         ObjectProperties properties = new ObjectProperties(objectName);
-        if (configuredObject instanceof Binding)
-        {
-            Exchange<?> exchange = (Exchange<?>)((Binding)configuredObject).getParent(Exchange.class);
-            Queue<?> queue = (Queue<?>)((Binding)configuredObject).getParent(Queue.class);
-            properties.setName((String)exchange.getAttribute(Exchange.NAME));
-            properties.put(ObjectProperties.Property.QUEUE_NAME, (String)queue.getAttribute(Queue.NAME));
-            properties.put(ObjectProperties.Property.ROUTING_KEY, objectName);
-            properties.put(ObjectProperties.Property.VIRTUALHOST_NAME, (String)queue.getParent(VirtualHost.class).getAttribute(VirtualHost.NAME));
 
-            // The temporary attribute (inherited from the binding's queue) seems to exist to allow the user to
-            // express rules about the binding of temporary queues (whose names cannot be predicted).
-            properties.put(ObjectProperties.Property.TEMPORARY, queue.getAttribute(Queue.LIFETIME_POLICY) != LifetimePolicy.PERMANENT);
-            properties.put(ObjectProperties.Property.DURABLE, (Boolean)queue.getAttribute(Queue.DURABLE));
-        }
-        else if (configuredObject instanceof Queue)
+        if (configuredObject instanceof Queue)
         {
             setQueueProperties((Queue)configuredObject, properties);
         }
@@ -294,12 +284,7 @@ class LegacyAccessControlAdapter
     {
         if (operation == LegacyOperation.CREATE || operation == LegacyOperation.UPDATE)
         {
-            if (Binding.class.isAssignableFrom(category))
-            {
-                // CREATE BINDING is transformed into BIND EXCHANGE rule
-                return LegacyOperation.BIND;
-            }
-            else if (Consumer.class.isAssignableFrom(category))
+            if (Consumer.class.isAssignableFrom(category))
             {
                 // CREATE CONSUMER is transformed into CONSUME QUEUE rule
                 return LegacyOperation.CONSUME;
@@ -317,12 +302,7 @@ class LegacyAccessControlAdapter
         }
         else if (operation == LegacyOperation.DELETE)
         {
-            if (Binding.class.isAssignableFrom(category))
-            {
-                // DELETE BINDING is transformed into UNBIND EXCHANGE rule
-                return LegacyOperation.UNBIND;
-            }
-            else if (isBrokerType(category))
+            if (isBrokerType(category))
             {
                 // DELETE broker child is transformed into CONFIGURE BROKER rule
                 return LegacyOperation.CONFIGURE;
@@ -488,10 +468,53 @@ class LegacyAccessControlAdapter
                 authorise(LegacyOperation.UPDATE, configuredObject);
             }
         }
+        else if (categoryClass == Exchange.class)
+        {
+            if ("bind".equals(methodName))
+            {
+                final ObjectProperties properties = createArgsForExchangeBind(arguments, configuredObject);
+                return _accessControl.authorise(BIND, EXCHANGE, properties);
+            }
+            else if ("unbind".equals(methodName))
+            {
+                final ObjectProperties properties = createArgsForExchangeBind(arguments, configuredObject);
+                return _accessControl.authorise(UNBIND, EXCHANGE, properties);
+            }
+
+        }
         return Result.ALLOWED;
 
     }
 
+    private ObjectProperties createArgsForExchangeBind(final Map<String, Object> arguments,
+                                           final PermissionedObject configuredObject)
+    {
+        ObjectProperties properties = new ObjectProperties();
+        Exchange<?> exchange = (Exchange<?>) configuredObject;
+        final QueueManagingVirtualHost virtualhost = exchange.getVirtualHost();
+
+        properties.setName(exchange.getName());
+        final String destination = (String) arguments.get("destination");
+        properties.put(ObjectProperties.Property.QUEUE_NAME, destination);
+        properties.put(ObjectProperties.Property.ROUTING_KEY, (String)arguments.get("bindingKey"));
+        properties.put(ObjectProperties.Property.VIRTUALHOST_NAME, virtualhost.getName());
+
+        MessageDestination dest = virtualhost.getAttainedMessageDestination(destination);
+        if (dest != null)
+        {
+            // The temporary attribute (inherited from the binding's queue) seems to exist to allow the user to
+            // express rules about the binding of temporary queues (whose names cannot be predicted).
+            if (dest instanceof ConfiguredObject)
+            {
+                ConfiguredObject queue = (ConfiguredObject) dest;
+                properties.put(ObjectProperties.Property.TEMPORARY, queue.getLifetimePolicy() != LifetimePolicy.PERMANENT);
+            }
+            properties.put(ObjectProperties.Property.DURABLE, dest.isDurable());
+
+        }
+        return properties;
+    }
+
 
     Result authorise(final Operation operation,
                      final PermissionedObject configuredObject,

Modified: qpid/java/trunk/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapterTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapterTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapterTest.java (original)
+++ qpid/java/trunk/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/LegacyAccessControlAdapterTest.java Thu Dec 22 17:59:46 2016
@@ -107,47 +107,6 @@ public class LegacyAccessControlAdapterT
         assertBrokerChildCreateAuthorization(accessControlProvider);
     }
 
-    public void testAuthoriseCreateBinding()
-    {
-        VirtualHost vh = getMockVirtualHost();
-
-        Exchange exchange = mock(Exchange.class);
-        when(exchange.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(exchange.getAttribute(Exchange.NAME)).thenReturn(TEST_EXCHANGE);
-        when(exchange.getName()).thenReturn(TEST_EXCHANGE);
-        when(exchange.getCategoryClass()).thenReturn(Exchange.class);
-        when(exchange.getParent(VirtualHost.class)).thenReturn(vh);
-        when(exchange.getModel()).thenReturn(BrokerModel.getInstance());
-
-        Queue queue = mock(Queue.class);
-        when(queue.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(queue.getAttribute(Queue.NAME)).thenReturn(TEST_QUEUE);
-        when(queue.getName()).thenReturn(TEST_QUEUE);
-        when(queue.getAttribute(Queue.DURABLE)).thenReturn(true);
-        when(queue.getAttribute(Queue.LIFETIME_POLICY)).thenReturn(LifetimePolicy.PERMANENT);
-        when(queue.getCategoryClass()).thenReturn(Queue.class);
-        when(queue.getParent(VirtualHost.class)).thenReturn(vh);
-
-        ObjectProperties properties = new ObjectProperties();
-        properties.put(ObjectProperties.Property.NAME, TEST_EXCHANGE);
-        properties.put(ObjectProperties.Property.VIRTUALHOST_NAME, TEST_VIRTUAL_HOST);
-        properties.put(ObjectProperties.Property.QUEUE_NAME, TEST_QUEUE);
-        properties.put(ObjectProperties.Property.ROUTING_KEY, "bindingKey");
-        properties.put(ObjectProperties.Property.TEMPORARY, false);
-        properties.put(ObjectProperties.Property.DURABLE, true);
-
-        Binding binding = mock(Binding.class);
-        when(binding.getParent(Exchange.class)).thenReturn(exchange);
-        when(binding.getParent(Queue.class)).thenReturn(queue);
-        when(binding.getAttribute(Binding.NAME)).thenReturn("bindingKey");
-        when(binding.getName()).thenReturn("bindingKey");
-
-        when(binding.getCategoryClass()).thenReturn(Binding.class);
-
-        assertCreateAuthorization(binding, LegacyOperation.BIND, ObjectType.EXCHANGE, properties, exchange, queue);
-    }
-
-
     public void testAuthoriseCreateConsumer()
     {
         Queue queue = mock(Queue.class);
@@ -165,7 +124,6 @@ public class LegacyAccessControlAdapterT
         QueueConsumer consumer = mock(QueueConsumer.class);
         when(consumer.getAttribute(QueueConsumer.NAME)).thenReturn("1");
         when(consumer.getParent(Queue.class)).thenReturn(queue);
-        when(consumer.getParent(Session.class)).thenReturn(session);
         when(consumer.getCategoryClass()).thenReturn(Consumer.class);
 
         ObjectProperties properties = new ObjectProperties();
@@ -216,40 +174,6 @@ public class LegacyAccessControlAdapterT
         assertDeleteAuthorization(mock, LegacyOperation.DELETE, ObjectType.VIRTUALHOST, properties, vhn);
     }
 
-    public void testAuthoriseDeleteBinding()
-    {
-        Exchange exchange = mock(Exchange.class);
-        when(exchange.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(exchange.getName()).thenReturn(TEST_EXCHANGE);
-        when(exchange.getAttribute(Exchange.NAME)).thenReturn(TEST_EXCHANGE);
-        when(exchange.getCategoryClass()).thenReturn(Exchange.class);
-
-        Queue queue = mock(Queue.class);
-        when(queue.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(queue.getName()).thenReturn(TEST_QUEUE);
-        when(queue.getAttribute(Queue.NAME)).thenReturn(TEST_QUEUE);
-        when(queue.getAttribute(Queue.DURABLE)).thenReturn(true);
-        when(queue.getAttribute(Queue.LIFETIME_POLICY)).thenReturn(LifetimePolicy.PERMANENT);
-        when(queue.getCategoryClass()).thenReturn(Queue.class);
-
-        Binding binding = mock(Binding.class);
-        when(binding.getParent(Exchange.class)).thenReturn(exchange);
-        when(binding.getParent(Queue.class)).thenReturn(queue);
-        when(binding.getName()).thenReturn("bindingKey");
-        when(binding.getCategoryClass()).thenReturn(Binding.class);
-
-        ObjectProperties properties = new ObjectProperties();
-        properties.put(ObjectProperties.Property.NAME, TEST_EXCHANGE);
-        properties.put(ObjectProperties.Property.VIRTUALHOST_NAME, TEST_VIRTUAL_HOST);
-        properties.put(ObjectProperties.Property.QUEUE_NAME, TEST_QUEUE);
-        properties.put(ObjectProperties.Property.ROUTING_KEY, "bindingKey");
-        properties.put(ObjectProperties.Property.TEMPORARY, false);
-        properties.put(ObjectProperties.Property.DURABLE, true);
-
-        assertDeleteAuthorization(binding, LegacyOperation.UNBIND, ObjectType.EXCHANGE, properties, exchange, queue);
-    }
-
-
     public void testAuthoriseDeleteKeyStore()
     {
         KeyStore mock = mock(KeyStore.class);
@@ -409,40 +333,6 @@ public class LegacyAccessControlAdapterT
         assertDeleteAuthorization(exchange, LegacyOperation.DELETE, ObjectType.EXCHANGE, expectedProperties, vh);
     }
 
-    public void testAuthoriseUnbind()
-    {
-        Exchange exchange = mock(Exchange.class);
-        when(exchange.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(exchange.getName()).thenReturn(TEST_EXCHANGE);
-        when(exchange.getAttribute(Exchange.NAME)).thenReturn(TEST_EXCHANGE);
-        when(exchange.getCategoryClass()).thenReturn(Exchange.class);
-
-        Queue queue = mock(Queue.class);
-        when(queue.getParent(VirtualHost.class)).thenReturn(_virtualHost);
-        when(queue.getName()).thenReturn(TEST_QUEUE);
-        when(queue.getAttribute(Queue.NAME)).thenReturn(TEST_QUEUE);
-        when(queue.getAttribute(Queue.DURABLE)).thenReturn(true);
-        when(queue.getAttribute(Queue.LIFETIME_POLICY)).thenReturn(LifetimePolicy.PERMANENT);
-        when(queue.getCategoryClass()).thenReturn(Queue.class);
-
-        Binding binding = mock(Binding.class);
-        when(binding.getParent(Exchange.class)).thenReturn(exchange);
-        when(binding.getParent(Queue.class)).thenReturn(queue);
-        when(binding.getName()).thenReturn("bindingKey");
-        when(binding.getAttribute(Binding.NAME)).thenReturn("bindingKey");
-        when(binding.getCategoryClass()).thenReturn(Binding.class);
-
-        ObjectProperties properties = new ObjectProperties();
-        properties.put(ObjectProperties.Property.NAME, TEST_EXCHANGE);
-        properties.put(ObjectProperties.Property.VIRTUALHOST_NAME, TEST_VIRTUAL_HOST);
-        properties.put(ObjectProperties.Property.QUEUE_NAME, TEST_QUEUE);
-        properties.put(ObjectProperties.Property.ROUTING_KEY, "bindingKey");
-        properties.put(ObjectProperties.Property.TEMPORARY, false);
-        properties.put(ObjectProperties.Property.DURABLE, true);
-
-        assertDeleteAuthorization(binding, LegacyOperation.UNBIND, ObjectType.EXCHANGE, properties, exchange, queue);
-    }
-
     public void testAuthoriseCreateVirtualHostNode()
     {
         VirtualHostNode vhn = getMockVirtualHostNode();

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java Thu Dec 22 17:59:46 2016
@@ -22,7 +22,6 @@ package org.apache.qpid.server.protocol.
 
 import java.security.AccessControlException;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -46,7 +45,6 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.message.MessageInstanceConsumer;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.ExclusivityPolicy;
@@ -221,6 +219,8 @@ public class SendingLink_1_0 implements
                 }
                 else
                 {
+                    // TODO - check the configuration of the existing durable subscription queue, and modify if necessary
+                    /*
                     Collection<? extends Binding<?>> bindings = queue.getBindings();
                     List<Binding<?>> bindingsToRemove = new ArrayList<>();
                     for(Binding<?> existingBinding : bindings)
@@ -234,6 +234,7 @@ public class SendingLink_1_0 implements
                     {
                         existingBinding.delete();
                     }
+                    */
                 }
 
 

Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java Thu Dec 22 17:59:46 2016
@@ -44,6 +44,7 @@ import org.apache.qpid.server.connection
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageInstance;
+import org.apache.qpid.server.message.MessageSender;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Broker;
@@ -368,6 +369,24 @@ public class ManagementAddressSpace impl
                 return destination.send(message, routingAddress, instanceProperties, txn, postEnqueueAction);
             }
         }
+
+        @Override
+        public boolean isDurable()
+        {
+            return true;
+        }
+
+        @Override
+        public void linkAdded(final MessageSender sender, final String linkName)
+        {
+
+        }
+
+        @Override
+        public void linkRemoved(final MessageSender sender, final String linkName)
+        {
+
+        }
     }
 
     private class NonDurableLinkRegistry implements LinkRegistry

Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java Thu Dec 22 17:59:46 2016
@@ -62,6 +62,7 @@ import org.apache.qpid.server.message.In
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.MessageInstanceConsumer;
+import org.apache.qpid.server.message.MessageSender;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.message.internal.InternalMessage;
@@ -374,6 +375,24 @@ class ManagementNode implements MessageS
         }
     }
 
+    @Override
+    public boolean isDurable()
+    {
+        return true;
+    }
+
+    @Override
+    public void linkAdded(final MessageSender sender, final String linkName)
+    {
+
+    }
+
+    @Override
+    public void linkRemoved(final MessageSender sender, final String linkName)
+    {
+
+    }
+
     private synchronized void enqueue(InternalMessage message,
                                       InstanceProperties properties,
                                       Action<? super MessageInstance> postEnqueueAction)

Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java Thu Dec 22 17:59:46 2016
@@ -31,6 +31,7 @@ import org.apache.qpid.server.message.In
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.MessageInstanceConsumer;
+import org.apache.qpid.server.message.MessageSender;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.message.internal.InternalMessage;
 import org.apache.qpid.server.model.NamedAddressSpace;
@@ -151,6 +152,24 @@ class ManagementNodeConsumer<T extends C
     }
 
     @Override
+    public boolean isDurable()
+    {
+        return false;
+    }
+
+    @Override
+    public void linkAdded(final MessageSender sender, final String linkName)
+    {
+
+    }
+
+    @Override
+    public void linkRemoved(final MessageSender sender, final String linkName)
+    {
+
+    }
+
+    @Override
     public T getTarget()
     {
         return _target;

Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ProxyMessageSource.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ProxyMessageSource.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ProxyMessageSource.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ProxyMessageSource.java Thu Dec 22 17:59:46 2016
@@ -45,6 +45,7 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.MessageInstanceConsumer;
+import org.apache.qpid.server.message.MessageSender;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -102,6 +103,24 @@ public class ProxyMessageSource implemen
     }
 
     @Override
+    public boolean isDurable()
+    {
+        return false;
+    }
+
+    @Override
+    public void linkAdded(final MessageSender sender, final String linkName)
+    {
+
+    }
+
+    @Override
+    public void linkRemoved(final MessageSender sender, final String linkName)
+    {
+
+    }
+
+    @Override
     public UUID getId()
     {
         return _id;

Modified: qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java (original)
+++ qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java Thu Dec 22 17:59:46 2016
@@ -32,7 +32,6 @@ import javax.jms.JMSException;
 
 import junit.framework.TestCase;
 
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -367,33 +366,6 @@ public class Asserts
                                 "messagesIn");
     }
 
-    public static void assertBinding(String bindingName, String queueName, String exchange, Map<String, Object> binding)
-    {
-        assertNotNull("Binding map should not be null", binding);
-        assertAttributesPresent(binding,
-                                BrokerModel.getInstance().getTypeRegistry().getAttributeNames(Binding.class),
-                                Binding.STATE,
-                                Binding.ARGUMENTS,
-                                ConfiguredObject.TYPE,
-                                ConfiguredObject.CREATED_BY,
-                                ConfiguredObject.CREATED_TIME,
-                                ConfiguredObject.LAST_UPDATED_BY,
-                                ConfiguredObject.LAST_UPDATED_TIME,
-                                ConfiguredObject.DESCRIPTION,
-                                ConfiguredObject.CONTEXT,
-                                ConfiguredObject.DESIRED_STATE);
-
-        assertEquals("Unexpected binding attribute " + Binding.NAME, bindingName, binding.get(Binding.NAME));
-        assertEquals("Unexpected binding attribute " + Binding.QUEUE, queueName, binding.get(Binding.QUEUE));
-        assertEquals("Unexpected binding attribute " + Binding.EXCHANGE, exchange, binding.get(Binding.EXCHANGE));
-        assertEquals("Unexpected binding attribute " + Binding.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
-                     binding.get(Binding.LIFETIME_POLICY));
-    }
-
-    public static void assertBinding(String queueName, String exchange, Map<String, Object> binding)
-    {
-        assertBinding(queueName, queueName, exchange, binding);
-    }
 
     public static void assertActualAndDesiredState(final String expectedDesiredState,
                                              final String expectedActualState,

Modified: qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java (original)
+++ qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java Thu Dec 22 17:59:46 2016
@@ -53,7 +53,6 @@ import org.junit.Assert;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.SystemConfig;
 import org.apache.qpid.ssl.SSLContextFactory;
@@ -636,18 +635,17 @@ public class RestTestHelper
         for (int i = 0; i < EXPECTED_QUEUES.length; i++)
         {
             String queueName = EXPECTED_QUEUES[i];
-            Map<String, Object> queueData = new HashMap<String, Object>();
+            Map<String, Object> queueData = new HashMap<>();
             queueData.put(Queue.NAME, queueName);
             queueData.put(Queue.DURABLE, Boolean.FALSE);
             int responseCode = submitRequest("queue/test/test/" + queueName, "PUT", queueData);
             Assert.assertEquals("Unexpected response code creating queue" + queueName, 201, responseCode);
 
-            Map<String, Object> bindingData = new HashMap<String, Object>();
-            bindingData.put(Binding.NAME, queueName);
-            bindingData.put(Binding.QUEUE, queueName);
-            bindingData.put(Binding.EXCHANGE, "amq.direct");
-            responseCode = submitRequest("binding/test/test/amq.direct/" + queueName + "/" + queueName, "PUT", queueData);
-            Assert.assertEquals("Unexpected response code binding queue " + queueName, 201, responseCode);
+            Map<String, Object> bindingData = new HashMap<>();
+            bindingData.put("bindingKey", queueName);
+            bindingData.put("destination", queueName);
+            responseCode = submitRequest("exchange/test/test/amq.direct/bind", "POST", bindingData);
+            Assert.assertEquals("Unexpected response code binding queue " + queueName, 200, responseCode);
         }
     }
 

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java Thu Dec 22 17:59:46 2016
@@ -514,11 +514,11 @@ public class VirtualHostMessageStoreTest
      * @param bindings     the set of bindings to validate
      * @param useSelectors if set, check the binding has a JMS_SELECTOR argument and the correct value for it
      */
-    private void validateBindingProperties(Collection<? extends Binding<?>> bindings, boolean useSelectors)
+    private void validateBindingProperties(Collection<? extends Binding> bindings, boolean useSelectors)
     {
         assertEquals("Each queue should only be bound once.", 1, bindings.size());
 
-        Binding<?> binding = bindings.iterator().next();
+        Binding binding = bindings.iterator().next();
 
         if (useSelectors)
         {

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java Thu Dec 22 17:59:46 2016
@@ -37,6 +37,7 @@ import javax.jms.JMSException;
 import javax.jms.MapMessage;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
+import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 import javax.naming.NamingException;
@@ -46,7 +47,6 @@ import com.google.common.collect.Maps;
 
 import org.apache.qpid.client.AMQConnectionFactory;
 import org.apache.qpid.client.AMQConnectionURL;
-import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.jms.ConnectionURL;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.Port;
@@ -133,10 +133,10 @@ public class MessageCompressionTest exte
         String messageText = createMessageText();
         Connection senderConnection = getConnection(senderCompresses);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session senderSession = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(senderSession);
 
-        publishMessage(senderConnection, messageText);
+        publishMessage(senderConnection, messageText, testQueue);
 
         // get the number of bytes received at the broker on the connection
         List<Map<String, Object>> connectionRestOutput = _restTestHelper.getJsonAsList("/api/latest/connection");
@@ -196,12 +196,12 @@ public class MessageCompressionTest exte
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
 
-        publishMessage(senderConnection, messageText);
+        publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueueName;
+        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -225,12 +225,12 @@ public class MessageCompressionTest exte
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
 
-        publishMessage(senderConnection, messageText);
+        publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueueName;
+        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -253,12 +253,12 @@ public class MessageCompressionTest exte
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
 
-        publishMessage(senderConnection, messageText);
+        publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueueName;
+        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -291,13 +291,13 @@ public class MessageCompressionTest exte
 
         Connection senderConnection = getConnection(true);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
 
         Map<String, Object> mapToSend = createMapToSend();
-        publishMapMessage(senderConnection, mapToSend);
+        publishMapMessage(senderConnection, mapToSend, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueueName;
+        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -318,13 +318,14 @@ public class MessageCompressionTest exte
 
         Connection senderConnection = getConnection(true);
         String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
-        String testQueueName = getTestQueueName();
-        createAndBindQueue(virtualPath, testQueueName);
+        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Queue testQueue = createTestQueue(session);
 
         Map<String, Object> mapToSend = createMapToSend();
-        publishMapMessage(senderConnection, mapToSend);
+        publishMapMessage(senderConnection, mapToSend, testQueue);
+
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueueName;
+        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -379,12 +380,14 @@ public class MessageCompressionTest exte
         return content;
     }
 
-    private void publishMapMessage(final Connection senderConnection, final Map<String, Object> mapData)
+    private void publishMapMessage(final Connection senderConnection,
+                                   final Map<String, Object> mapData,
+                                   final Queue testQueue)
             throws JMSException, org.apache.qpid.QpidException
     {
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
 
-        MessageProducer producer = session.createProducer(getTestQueue());
+        MessageProducer producer = session.createProducer(testQueue);
         MapMessage sentMessage = session.createMapMessage();
         sentMessage.setStringProperty("bar", "foo");
         for(Map.Entry<String,Object> entry: mapData.entrySet())
@@ -406,39 +409,20 @@ public class MessageCompressionTest exte
         }
 
         producer.send(sentMessage);
-        ((AMQSession) session).sync();
+        session.commit();
     }
 
-    private void publishMessage(final Connection senderConnection, final String messageText)
+    private void publishMessage(final Connection senderConnection, final String messageText, final Queue testQueue)
             throws JMSException, org.apache.qpid.QpidException
     {
-        Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session session = senderConnection.createSession(true, Session.SESSION_TRANSACTED);
 
-        MessageProducer producer = session.createProducer(getTestQueue());
+        MessageProducer producer = session.createProducer(testQueue);
         TextMessage sentMessage = session.createTextMessage(messageText);
         sentMessage.setStringProperty("bar", "foo");
 
         producer.send(sentMessage);
-        ((AMQSession) session).sync();
-    }
-
-    private void createAndBindQueue(final String virtualPath, final String testQueueName) throws IOException
-    {
-        // create the queue using REST and bind it
-        assertEquals(201,
-                     _restTestHelper.submitRequest("/api/latest/queue"
-                                                   + virtualPath
-                                                   + virtualPath
-                                                   + "/"
-                                                   + testQueueName, "PUT", Collections.<String, Object>emptyMap()));
-        assertEquals(201,
-                     _restTestHelper.submitRequest("/api/latest/binding"
-                                                   + virtualPath
-                                                   + virtualPath
-                                                   + "/amq.direct/"
-                                                   + testQueueName
-                                                   + "/"
-                                                   + testQueueName, "PUT", Collections.<String, Object>emptyMap()));
+        session.commit();
     }
 
     private String createMessageText()

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java Thu Dec 22 17:59:46 2016
@@ -668,120 +668,4 @@ public class AmqpManagementTest extends
         assertEquals("The response code did not indicate not implemented", 501, responseMessage.getIntProperty("statusCode"));
     }
 
-    // create a binding
-    public void testCreateBindingOnVhostManagement() throws Exception
-    {
-        setupVirtualHostManagementConnection();
-        String exchangeName = getTestName() + "_Exchange";
-        String queueName = getTestName() + "_Queue";
-        String exchangePath = exchangeName;
-        String queuePath = queueName;
-
-        doTestCreateBinding(exchangeName, queueName, exchangePath, queuePath);
-
-    }
-
-    public void testCreateBindingOnBrokerManagement() throws Exception
-    {
-        setupBrokerManagementConnection();
-        String exchangeName = getTestName() + "_Exchange";
-        String queueName = getTestName() + "_Queue";
-        String exchangePath = "test/test/"+exchangeName;
-        String queuePath = "test/test/"+exchangeName;
-
-        doTestCreateBinding(exchangeName, queueName, exchangePath, queuePath);
-
-    }
-
-    private void doTestCreateBinding(final String exchangeName,
-                                     final String queueName,
-                                     final String exchangePath,
-                                     final String queuePath) throws JMSException
-    {
-        MapMessage message = _session.createMapMessage();
-
-        message.setStringProperty("type", "org.apache.qpid.Queue");
-        message.setStringProperty("operation", "CREATE");
-        message.setString("name", queueName);
-        message.setString("object-path", queuePath);
-        message.setJMSReplyTo(_replyAddress);
-        _producer.send(message);
-
-        Message responseMessage = _consumer.receive(getReceiveTimeout());
-        assertNotNull("A response message was not sent", responseMessage);
-        assertTrue("The response message does not have a status code",
-                   Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
-        assertEquals("The response code did not indicate success", 201, responseMessage.getIntProperty("statusCode"));
-
-        message = _session.createMapMessage();
-
-        message.setStringProperty("type", "org.apache.qpid.FanoutExchange");
-        message.setStringProperty("operation", "CREATE");
-        message.setString("name", exchangeName);
-        message.setString("object-path", exchangePath);
-
-        message.setJMSReplyTo(_replyAddress);
-        _producer.send(message);
-
-        responseMessage = _consumer.receive(getReceiveTimeout());
-        assertNotNull("A response message was not sent", responseMessage);
-        assertTrue("The response message does not have a status code",
-                   Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
-        assertEquals("The response code did not indicate success", 201, responseMessage.getIntProperty("statusCode"));
-
-        message = _session.createMapMessage();
-
-        message.setStringProperty("type", "org.apache.qpid.Binding");
-        message.setStringProperty("operation", "CREATE");
-        message.setString("name",  "binding1");
-        message.setString("object-path", exchangePath + "/" + queueName + "/binding1");
-
-        message.setJMSReplyTo(_replyAddress);
-        _producer.send(message);
-
-        responseMessage = _consumer.receive(getReceiveTimeout());
-        assertNotNull("A response message was not sent", responseMessage);
-        assertTrue("The response message does not have a status code",
-                   Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
-        assertEquals("The response code did not indicate success", 201, responseMessage.getIntProperty("statusCode"));
-
-        // use an operation to bind
-        message = _session.createMapMessage();
-
-        message.setStringProperty("type", "org.apache.qpid.Exchange");
-        message.setStringProperty("operation", "bind");
-        message.setStringProperty("index", "object-path");
-        message.setStringProperty("key", exchangePath);
-        message.setStringProperty("bindingKey",  "binding2");
-        message.setStringProperty("queue", queueName);
-
-        message.setJMSReplyTo(_replyAddress);
-        _producer.send(message);
-
-        responseMessage = _consumer.receive(getReceiveTimeout());
-        assertNotNull("A response message was not sent", responseMessage);
-        assertTrue("The response message does not have a status code",
-                   Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
-        assertEquals("The response code did not indicate success", 200, responseMessage.getIntProperty("statusCode"));
-
-        // read the new binding
-        message = _session.createMapMessage();
-
-        message.setStringProperty("type", "org.apache.qpid.Binding");
-        message.setStringProperty("operation", "READ");
-        message.setStringProperty("index",  "object-path");
-        message.setStringProperty("key", exchangePath + "/" + queueName + "/binding2");
-
-        message.setJMSReplyTo(_replyAddress);
-        _producer.send(message);
-
-        responseMessage = _consumer.receive(getReceiveTimeout());
-        assertNotNull("A response message was not sent", responseMessage);
-        assertTrue("The response message does not have a status code",
-                   Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
-        assertEquals("The response code did not indicate success", 200, responseMessage.getIntProperty("statusCode"));
-    }
-
-
-
 }

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java Thu Dec 22 17:59:46 2016
@@ -20,11 +20,11 @@
  */
 package org.apache.qpid.systest.rest;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.Exchange;
 
 public class ExchangeRestTest extends QpidRestTestCase
@@ -107,12 +107,12 @@ public class ExchangeRestTest extends Qp
 
     private void assertBindings(Map<String, Object> exchange)
     {
-        @SuppressWarnings("unchecked")
         List<Map<String, Object>> bindings = (List<Map<String, Object>>) exchange.get("bindings");
-        for (String queueName : RestTestHelper.EXPECTED_QUEUES)
+        assertEquals(RestTestHelper.EXPECTED_QUEUES.length, bindings.size());
+        for (Map<String, Object> binding : bindings)
         {
-            Map<String, Object> binding = getRestTestHelper().find(Binding.NAME, queueName, bindings);
-            Asserts.assertBinding(queueName, (String) exchange.get(Exchange.NAME), binding);
+            String destination = (String) binding.get("destination");
+            assertTrue(Arrays.asList(RestTestHelper.EXPECTED_QUEUES).contains(destination));
         }
     }
 

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java Thu Dec 22 17:59:46 2016
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.systest.rest;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,7 +31,6 @@ import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 
-import org.apache.qpid.server.model.Binding;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Consumer;
@@ -42,7 +40,6 @@ import org.apache.qpid.server.model.Queu
 public class QueueRestTest extends QpidRestTestCase
 {
     private static final String QUEUE_ATTRIBUTE_CONSUMERS = "consumers";
-    private static final String QUEUE_ATTRIBUTE_BINDINGS = "bindings";
 
     /**
      * Message number to publish into queue
@@ -86,19 +83,6 @@ public class QueueRestTest extends QpidR
         {
             Map<String, Object> queueDetails = getRestTestHelper().find(Queue.NAME, name, queues);
             Asserts.assertQueue(name, "standard", queueDetails);
-
-            if(!isBroker10())
-            {
-                @SuppressWarnings("unchecked")
-                List<Map<String, Object>> bindings =
-                        (List<Map<String, Object>>) queueDetails.get(QUEUE_ATTRIBUTE_BINDINGS);
-                assertNotNull("Queue bindings are not found", bindings);
-                assertEquals("Unexpected number of bindings", 1, bindings.size());
-
-                Map<String, Object> directExchangeBinding =
-                        getRestTestHelper().find(Binding.EXCHANGE, "amq.direct", bindings);
-                Asserts.assertBinding(name, "amq.direct", directExchangeBinding);
-            }
         }
     }
 
@@ -109,21 +93,6 @@ public class QueueRestTest extends QpidR
         Asserts.assertQueue(queueName, "standard", queueDetails);
         assertStatistics(queueDetails);
 
-        // For 1.0 we won't have bound the queue to an exchange
-        if(!isBroker10())
-        {
-            @SuppressWarnings("unchecked")
-            List<Map<String, Object>> bindings = (List<Map<String, Object>>) queueDetails.get(QUEUE_ATTRIBUTE_BINDINGS);
-
-            assertNotNull("Queue bindings are not found", bindings);
-            assertEquals("Unexpected number of bindings", isBroker10() ? 0 : 1, bindings.size());
-            if (!isBroker10())
-            {
-                Map<String, Object> directExchangeBinding =
-                        getRestTestHelper().find(Binding.EXCHANGE, "amq.direct", bindings);
-                Asserts.assertBinding(queueName, "amq.direct", directExchangeBinding);
-            }
-        }
         @SuppressWarnings("unchecked")
         List<Map<String, Object>> consumers = (List<Map<String, Object>>) queueDetails.get(QUEUE_ATTRIBUTE_CONSUMERS);
         assertNotNull("Queue consumers are not found", consumers);
@@ -169,48 +138,6 @@ public class QueueRestTest extends QpidR
         assertEquals("Unexpected " + Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, 50000, queueData.get(Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES) );
     }
 
-    public void testPutCreateBinding() throws Exception
-    {
-        String queueName = getTestQueueName();
-        String bindingName = queueName + 2;
-        String[] exchanges = { "amq.direct", "amq.fanout", "amq.topic", "amq.match" };
-
-        for (int i = 0; i < exchanges.length; i++)
-        {
-            createBinding(bindingName, exchanges[i], queueName);
-        }
-
-        Map<String, Object> queueDetails = getRestTestHelper().getJsonAsSingletonList("queue/test/test/" + queueName);
-        Asserts.assertQueue(queueName, "standard", queueDetails);
-
-        @SuppressWarnings("unchecked")
-        List<Map<String, Object>> bindings = (List<Map<String, Object>>) queueDetails.get(QUEUE_ATTRIBUTE_BINDINGS);
-        assertNotNull("Queue bindings are not found", bindings);
-        assertEquals("Unexpected number of bindings", exchanges.length + (isBroker10() ? 0 : 1), bindings.size());
-
-        Map<String, Object> searchAttributes = new HashMap<String, Object>();
-        searchAttributes.put(Binding.NAME, bindingName);
-
-        for (int i = 0; i < exchanges.length; i++)
-        {
-            searchAttributes.put(Binding.EXCHANGE, exchanges[i]);
-            Map<String, Object> binding = getRestTestHelper().find(searchAttributes, bindings);
-            Asserts.assertBinding(bindingName, queueName, exchanges[i], binding);
-        }
-    }
-
-    private void createBinding(String bindingName, String exchangeName, String queueName) throws IOException
-    {
-        Map<String, Object> bindingData = new HashMap<String, Object>();
-        bindingData.put(Binding.NAME, bindingName);
-        bindingData.put(Binding.EXCHANGE, exchangeName);
-        bindingData.put(Binding.QUEUE, queueName);
-
-        String url = "binding/test/test/" + getRestTestHelper().encodeAsUTF(exchangeName) + "/" + queueName + "/" + bindingName;
-        int responseCode = getRestTestHelper().submitRequest(url, "PUT", bindingData);
-        assertEquals("Unexpected response code", 201, responseCode);
-    }
-
     private void assertConsumer(Map<String, Object> consumer)
     {
         assertNotNull("Consumer map should not be null", consumer);

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java?rev=1775689&r1=1775688&r2=1775689&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java Thu Dec 22 17:59:46 2016
@@ -77,14 +77,6 @@ public class StructureRestTest extends Q
             Map<String, Object> queue = getRestTestHelper().find("name", queueName, queues);
             assertNotNull(hostName + " queue " + queueName + " is not found ", queue);
             assertNode(queue, queueName);
-
-            @SuppressWarnings("unchecked")
-            List<Map<String, Object>> bindings = (List<Map<String, Object>>) queue.get("bindings");
-            assertNotNull(hostName + " queue " + queueName + " bindings are not found ", queues);
-            for (Map<String, Object> binding : bindings)
-            {
-                assertNode(binding, queueName);
-            }
         }
 
         @SuppressWarnings("unchecked")
@@ -95,19 +87,6 @@ public class StructureRestTest extends Q
             Map<String, Object> exchange = getRestTestHelper().find("name", exchangeName, exchanges);
             assertNotNull("Exchange " + exchangeName + " is not found ", exchange);
             assertNode(exchange, exchangeName);
-            if (ExchangeDefaults.DIRECT_EXCHANGE_NAME.equalsIgnoreCase(exchangeName) ||
-                ExchangeDefaults.DEFAULT_EXCHANGE_NAME.equalsIgnoreCase(exchangeName))
-            {
-                @SuppressWarnings("unchecked")
-                List<Map<String, Object>> bindings = (List<Map<String, Object>>) exchange.get("bindings");
-                assertNotNull(hostName + " exchange " + exchangeName + " bindings are not found ", bindings);
-                for (String queueName : RestTestHelper.EXPECTED_QUEUES)
-                {
-                    Map<String, Object> binding = getRestTestHelper().find("name", queueName, bindings);
-                    assertNotNull(hostName + " exchange " + exchangeName + " binding  " + queueName + " is not found", binding);
-                    assertNode(binding, queueName);
-                }
-            }
         }
 
         String httpPortName = TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org