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]