You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2016/09/07 21:27:39 UTC
activemq git commit: Add a test case for anonymous sender links using
simple test client.
Repository: activemq
Updated Branches:
refs/heads/master ee271afe9 -> 0050f22b9
Add a test case for anonymous sender links using simple test client.
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/0050f22b
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/0050f22b
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/0050f22b
Branch: refs/heads/master
Commit: 0050f22b97aaf15446c482c6dd229500ab0e2eba
Parents: ee271af
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Sep 7 17:27:31 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Sep 7 17:27:31 2016 -0400
----------------------------------------------------------------------
.../transport/amqp/client/AmqpMessage.java | 25 +++++++
.../transport/amqp/client/AmqpSession.java | 11 +++
.../amqp/interop/AmqpAnonymousSenderTest.java | 71 ++++++++++++++++++++
3 files changed, 107 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/0050f22b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpMessage.java
----------------------------------------------------------------------
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpMessage.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpMessage.java
index b954e04..99f4cfb 100644
--- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpMessage.java
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpMessage.java
@@ -173,6 +173,31 @@ public class AmqpMessage {
//----- Convenience methods for constructing outbound messages -----------//
/**
+ * Sets the address which is applied to the AMQP message To field in the message properties
+ *
+ * @param address
+ * The address that should be applied in the Message To field.
+ */
+ public void setAddress(String address) {
+ checkReadOnly();
+ lazyCreateProperties();
+ getWrappedMessage().setAddress(address);
+ }
+
+ /**
+ * Return the set address that was set in the Message To field.
+ *
+ * @return the set address String form or null if not set.
+ */
+ public String getAddress() {
+ if (message.getProperties() == null) {
+ return null;
+ }
+
+ return message.getProperties().getTo();
+ }
+
+ /**
* Sets the MessageId property on an outbound message using the provided String
*
* @param messageId
http://git-wip-us.apache.org/repos/asf/activemq/blob/0050f22b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
----------------------------------------------------------------------
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
index 6ed7861..ae99f65 100644
--- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
@@ -54,6 +54,17 @@ public class AmqpSession extends AmqpAbstractResource<Session> {
}
/**
+ * Create an anonymous sender.
+ *
+ * @return a newly created sender that is ready for use.
+ *
+ * @throws Exception if an error occurs while creating the sender.
+ */
+ public AmqpSender createSender() throws Exception {
+ return createSender(null, false);
+ }
+
+ /**
* Create a sender instance using the given address
*
* @param address
http://git-wip-us.apache.org/repos/asf/activemq/blob/0050f22b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
----------------------------------------------------------------------
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
new file mode 100644
index 0000000..f7c4356
--- /dev/null
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.transport.amqp.interop;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.activemq.transport.amqp.client.AmqpClient;
+import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
+import org.apache.activemq.transport.amqp.client.AmqpConnection;
+import org.apache.activemq.transport.amqp.client.AmqpMessage;
+import org.apache.activemq.transport.amqp.client.AmqpReceiver;
+import org.apache.activemq.transport.amqp.client.AmqpSender;
+import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.junit.Test;
+
+/**
+ * Test for support of Anonymous sender links.
+ */
+public class AmqpAnonymousSenderTest extends AmqpClientTestSupport {
+
+ @Test(timeout = 60000)
+ public void testSendMessageOnAnonymousRelayLinkUsingMessageTo() throws Exception {
+
+ AmqpClient client = createAmqpClient();
+ AmqpConnection connection = client.connect();
+ AmqpSession session = connection.createSession();
+
+ AmqpSender sender = session.createSender();
+
+ assertEquals(1, getProxyToBroker().getDynamicDestinationProducers().length);
+
+ AmqpMessage message = new AmqpMessage();
+
+ message.setAddress("queue://" + getTestName());
+ message.setMessageId("msg" + 1);
+ message.setMessageAnnotation("serialNo", 1);
+ message.setText("Test-Message");
+
+ sender.send(message);
+ sender.close();
+
+ LOG.info("Attempting to read message with receiver");
+ AmqpReceiver receiver = session.createReceiver("queue://" + getTestName());
+ receiver.flow(1);
+ AmqpMessage received = receiver.receive(10, TimeUnit.SECONDS);
+ assertNotNull("Should have read message", received);
+ assertEquals("msg1", received.getMessageId());
+ received.accept();
+
+ receiver.close();
+
+ connection.close();
+ }
+}