Author: rgodfrey
Date: Mon Nov 28 09:28:56 2016
New Revision: 1771691

URL: http://svn.apache.org/viewvc?rev=1771691&view=rev
Log:
QPID-7546 : Enable InvalidDestinationTest

Modified:
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ExchangeDestination.java
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/NodeReceivingDestination.java
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Open.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java
    qpid/java/trunk/test-profiles/Java10Excludes
    qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_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/AMQPConnection_1_0.java?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
 Mon Nov 28 09:28:56 2016
@@ -153,12 +153,15 @@ public class AMQPConnection_1_0 extends
                     (byte) 0
             };
 
+    private static final Symbol ANONYMOUS_RELAY = 
Symbol.valueOf("ANONYMOUS-RELAY");
+
     private FrameWriter _frameWriter;
     private ProtocolHandler _frameHandler;
     private volatile boolean _transportBlockedForWriting;
     private volatile SubjectAuthenticationResult 
_successfulAuthenticationResult;
     private boolean _blocking;
     private final Object _blockingLock = new Object();
+    private List<Symbol> _offeredCapabilities;
 
     private enum FrameReceivingState
     {
@@ -259,6 +262,10 @@ public class AMQPConnection_1_0 extends
 
         setProperties(serverProperties);
 
+        List<Symbol> offeredCapabilities = new ArrayList<>();
+        offeredCapabilities.add(ANONYMOUS_RELAY);
+        setOfferedCapabilities(offeredCapabilities);
+
         setRemoteAddress(network.getRemoteAddress());
 
         setDesiredIdleTimeout(1000L * broker.getConnection_heartBeatDelay());
@@ -880,6 +887,12 @@ public class AMQPConnection_1_0 extends
         _properties = properties;
     }
 
+    public void setOfferedCapabilities(final List<Symbol> offeredCapabilities)
+    {
+        _offeredCapabilities = offeredCapabilities;
+    }
+
+
     private void setClosedForOutput(final boolean closed)
     {
         _closedForOutput = closed;
@@ -1549,6 +1562,13 @@ public class AMQPConnection_1_0 extends
         // TODO - should we try to set the hostname based on the connection 
information?
         // open.setHostname();
         open.setIdleTimeOut(UnsignedInteger.valueOf(_desiredIdleTimeout));
+
+        // set the offered capabilities
+        if(_offeredCapabilities != null && !_offeredCapabilities.isEmpty())
+        {
+            open.setOfferedCapabilities(_offeredCapabilities.toArray(new 
Symbol[_offeredCapabilities.size()]));
+        }
+
         if (_properties != null)
         {
             open.setProperties(_properties);

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ExchangeDestination.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/ExchangeDestination.java?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ExchangeDestination.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ExchangeDestination.java
 Mon Nov 28 09:28:56 2016
@@ -34,6 +34,8 @@ import org.apache.qpid.server.protocol.v
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Rejected;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusDurability;
 import 
org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusExpiryPolicy;
+import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.security.SecurityToken;
 import org.apache.qpid.server.txn.ServerTransaction;
 
@@ -103,7 +105,15 @@ public class ExchangeDestination impleme
                                       null);
 
 
-        return enqueues == 0 && !_discardUnroutable ? REJECTED : ACCEPTED;
+        return enqueues == 0 && !_discardUnroutable ? 
createdRejectedOutcome(getRoutingAddress(message)) : ACCEPTED;
+    }
+
+    private Outcome createdRejectedOutcome(final String routingAddress)
+    {
+        Rejected rejected = new Rejected();
+        final Error notFoundError = new Error(AmqpError.NOT_FOUND, "Unknown 
destination '"+routingAddress+'"');
+        rejected.setError(notFoundError);
+        return rejected;
     }
 
     @Override

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/NodeReceivingDestination.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/NodeReceivingDestination.java?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/NodeReceivingDestination.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/NodeReceivingDestination.java
 Mon Nov 28 09:28:56 2016
@@ -32,6 +32,8 @@ import org.apache.qpid.server.protocol.v
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Rejected;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusDurability;
 import 
org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusExpiryPolicy;
+import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.security.SecurityToken;
 import org.apache.qpid.server.txn.ServerTransaction;
 
@@ -98,7 +100,16 @@ public class NodeReceivingDestination im
         int enqueues = _destination.send(message, routingAddress, 
instanceProperties, txn, null);
 
 
-        return enqueues == 0 && !_discardUnroutable ? REJECTED : ACCEPTED;
+        return enqueues == 0 && !_discardUnroutable ? 
createdRejectedOutcome(message) : ACCEPTED;
+    }
+
+    private Outcome createdRejectedOutcome(final Message_1_0 message)
+    {
+        String routingAddress = getRoutingAddress(message);
+        Rejected rejected = new Rejected();
+        final Error notFoundError = new Error(AmqpError.NOT_FOUND, "Unknown 
destination '" + routingAddress + '"');
+        rejected.setError(notFoundError);
+        return rejected;
     }
 
     @Override
@@ -135,6 +146,11 @@ public class NodeReceivingDestination im
             {
                 routingAddress = 
messageHeader.getTo().substring(1+_destination.getName().length());
             }
+            else if (messageHeader.getTo() != null
+                     && (_destination.getName() == null || 
_destination.getName().trim().equals("")))
+            {
+                routingAddress = messageHeader.getTo();
+            }
             else
             {
                 routingAddress = "";

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Open.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/type/transport/Open.java?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Open.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Open.java
 Mon Nov 28 09:28:56 2016
@@ -116,7 +116,7 @@ public class Open
         return _outgoingLocales;
     }
 
-    public void setOutgoingLocales(Symbol[] outgoingLocales)
+    public void setOutgoingLocales(Symbol... outgoingLocales)
     {
         _outgoingLocales = outgoingLocales;
     }
@@ -126,7 +126,7 @@ public class Open
         return _incomingLocales;
     }
 
-    public void setIncomingLocales(Symbol[] incomingLocales)
+    public void setIncomingLocales(Symbol... incomingLocales)
     {
         _incomingLocales = incomingLocales;
     }
@@ -136,7 +136,7 @@ public class Open
         return _offeredCapabilities;
     }
 
-    public void setOfferedCapabilities(Symbol[] offeredCapabilities)
+    public void setOfferedCapabilities(Symbol... offeredCapabilities)
     {
         _offeredCapabilities = offeredCapabilities;
     }

Modified: 
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- 
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java
 (original)
+++ 
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java
 Mon Nov 28 09:28:56 2016
@@ -28,6 +28,7 @@ import javax.jms.InvalidDestinationExcep
 import javax.jms.JMSException;
 import javax.jms.MessageProducer;
 import javax.jms.Queue;
+import javax.jms.QueueConnection;
 import javax.jms.QueueSender;
 import javax.jms.QueueSession;
 import javax.jms.Session;
@@ -41,12 +42,12 @@ import org.apache.qpid.test.utils.QpidBr
 
 public class InvalidDestinationTest extends QpidBrokerTestCase
 {
-    private AMQConnection _connection;
+    private Connection _connection;
 
     protected void setUp() throws Exception
     {
         super.setUp();
-        _connection = (AMQConnection) getConnection("guest", "guest");
+        _connection = getConnection("guest", "guest");
     }
 
     protected void tearDown() throws Exception
@@ -55,16 +56,14 @@ public class InvalidDestinationTest exte
         super.tearDown();
     }
 
+
     public void testInvalidDestination() throws Exception
     {
-        QueueSession queueSession = _connection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
+        QueueSession queueSession = 
((QueueConnection)_connection).createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
 
         Queue invalidDestination = queueSession.createQueue("unknownQ");
 
-        Queue validDestination = queueSession.createQueue(getTestQueueName());
-
-        // This is the only easy way to create and bind a queue from the API 
:-(
-        queueSession.createConsumer(validDestination);
+        Queue validDestination = createTestQueue(queueSession);
         QueueSender sender;
         TextMessage msg= queueSession.createTextMessage("Hello");
 

Modified: qpid/java/trunk/test-profiles/Java10Excludes
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/test-profiles/Java10Excludes?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- qpid/java/trunk/test-profiles/Java10Excludes (original)
+++ qpid/java/trunk/test-profiles/Java10Excludes Mon Nov 28 09:28:56 2016
@@ -119,6 +119,9 @@ org.apache.qpid.test.client.failover.Fai
 // Tests explicit binding using the mechanisms of the 0-x client/protocol
 org.apache.qpid.server.queue.QueueBindTest#*
 
+// Tests for configuration options for the 0-x client
+org.apache.qpid.test.unit.basic.InvalidDestinationTest#testInvalidDestinationOnMessageProducer
+org.apache.qpid.test.unit.basic.InvalidDestinationTest#testInvalidDestinationOnMessageProducerURL
 
 
 

Modified: qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes?rev=1771691&r1=1771690&r2=1771691&view=diff
==============================================================================
--- qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes (original)
+++ qpid/java/trunk/test-profiles/Java10UninvestigatedTestsExcludes Mon Nov 28 
09:28:56 2016
@@ -58,7 +58,6 @@ org.apache.qpid.test.unit.client.connect
 org.apache.qpid.test.unit.client.connection.BrokerClosesClientConnectionTest#*
 org.apache.qpid.test.unit.client.channelclose.CloseWithBlockingReceiveTest#*
 org.apache.qpid.test.unit.basic.SessionStartTest#*
-org.apache.qpid.test.unit.basic.InvalidDestinationTest#*
 org.apache.qpid.test.unit.basic.close.CloseTest#*
 org.apache.qpid.test.client.queue.LVQTest#*
 org.apache.qpid.test.client.message.JMSDestinationTest#*



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to