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 2014/01/30 23:12:55 UTC

svn commit: r1562996 - /activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs

Author: tabish
Date: Thu Jan 30 22:12:54 2014
New Revision: 1562996

URL: http://svn.apache.org/r1562996
Log:
https://issues.apache.org/jira/browse/AMQNET-454

applied:
https://issues.apache.org/jira/secure/attachment/12626194/Apache.NMS.AMQP-fix-helloworld-13.patch

Modified:
    activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs

Modified: activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs?rev=1562996&r1=1562995&r2=1562996&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.AMQP/trunk/src/test/csharp/HelloWorld/HelloWorld.cs Thu Jan 30 22:12:54 2014
@@ -16,7 +16,6 @@
  */
 
 using System;
-using System.Diagnostics;
 using Apache.NMS;
 using Apache.NMS.Util;
 using Apache.NMS.Amqp;
@@ -25,64 +24,94 @@ namespace Apache.NMS.ActiveMQ.Test
 {
     public class TestMain
     {
-        public static void HelloWorld_amqpBroker_0_10Protocol(string[] args)
+        /// <summary>
+        /// AMQP Hello World
+        /// Using the AMQP protocol, send a message to a topic and retrieve that message again.
+        /// </summary>
+        /// <param name="uri">AMQP peer network address string. This string selects
+        /// the Apache.NMS.AMQP provider and further specifies the TCP address and port of the
+        /// peer AMQP entity.</param>
+        /// <param name="protocolVersion">Selects AMQP protocol version. Use 'amqp0-10' or 'amqp1.0'.
+        /// amqp1.0 is the default version if none is specified.</param>
+        /// <param name="topicAddress">The name of the topic through which the message is passed
+        /// in the AMQP peer.</param>
+        /// </summary>
+        public static void AMQP_HelloWorld(string uri, string protocolVersion, string topicAddress)
         {
-            // Connect to a qpid broker on localhost:5672
-            // Run HelloWorld using amqp0-10 protocol
+            // AMQP Hello World
             //
             // Notes:
-            //  * Run qpidd on localhost
+            //  * Run qpidd broker, activemq broker, or dispatch router on given uri.
             //  * Ensure the nmsprovider-amqp.config file exists 
             //    in the executable folder (build\net4-0\debug).
             //  * Ensure the unmanaged qpid*.dll and boost*.dll files from 
             //      .nant\library\local\org.apache.qpid\Apache.Qpid\<version>\net-4.0\debug
             //      are in project's Output Path (build\net-4.0\debug) so that they may be
             //      loaded by org.apache.qpid.messaging.dll.
+            try
+            {
+                Uri connecturi = new Uri(uri);
 
-            Uri connecturi = new Uri("amqp:localhost:5672");
-
-            IConnectionFactory factory = new NMSConnectionFactory(connecturi, "Bob", "reconnect-timeout:5", "protocol:amqp0-10");
+                Console.WriteLine("About to connect to " + connecturi);
 
-            using (IConnection connection = factory.CreateConnection())
-            using (ISession session = connection.CreateSession())
-            {
-                IDestination destination = SessionUtil.GetDestination(session, "amq.topic");
+                IConnectionFactory factory = 
+                    new NMSConnectionFactory(connecturi, "Bob", "protocol:" + protocolVersion);
 
-                // Create a consumer and producer
-                using (IMessageConsumer consumer = session.CreateConsumer(destination))
-                using (IMessageProducer producer = session.CreateProducer(destination))
+                using (IConnection connection = factory.CreateConnection())
+                using (ISession session = connection.CreateSession())
                 {
-                    // Start the connection so that messages will be processed.
-                    connection.Start();
+                    IDestination destination = SessionUtil.GetDestination(session, topicAddress);
 
-                    // Create and send a message
-                    ITextMessage request = session.CreateTextMessage("Hello World!");
-                    request.Properties["NMSXGroupID"] = "cheese";
-                    request.Properties["myHeader"] = "Cheddar";
-
-                    producer.Send(request);
-
-                    //// Consume a message
-                    ITextMessage message = consumer.Receive() as ITextMessage;
-                    if (message == null)
-                    {
-                        Console.WriteLine("No message received!");
-                    }
-                    else
+                    // Create a consumer and producer
+                    using (IMessageConsumer consumer = session.CreateConsumer(destination))
+                    using (IMessageProducer producer = session.CreateProducer(destination))
                     {
-                        // Expected output:
-                        //  Received message text: Hello World!
-                        //  Received message properties: {x-amqp-0-10.routing-key=, NMSXGroupID=cheese, myHeader=Cheddar}
-                        Console.WriteLine("Received message text: " + message.Text);
-                        Console.WriteLine("Received message properties: " + message.Properties.ToString());
+                        // Start the connection so that messages will be processed.
+                        connection.Start();
+
+                        // Create a text message
+                        ITextMessage request = session.CreateTextMessage("Hello World!");
+                        request.Properties["NMSXGroupID"] = "cheese";
+                        request.Properties["myHeader"] = "Cheddar";
+
+                        // For dispatch router 0.1 messages require a routing property
+                        request.Properties["x-amqp-to"] = topicAddress;
+
+                        // Send the message
+                        producer.Send(request);
+
+                        // Consume a message
+                        ITextMessage message = consumer.Receive() as ITextMessage;
+                        if (message == null)
+                        {
+                            Console.WriteLine("No message received!");
+                        }
+                        else
+                        {
+                            Console.WriteLine("Received message text: " + message.Text);
+                            Console.WriteLine("Received message properties: " + message.Properties.ToString());
+                        }
+                        connection.Stop();
                     }
-                    connection.Stop();
                 }
+            } catch (Exception e) {
+                Console.WriteLine("Exception {0}.", e);
             }
         }
+
+        
         public static void Main(string[] args)
         {
-            HelloWorld_amqpBroker_0_10Protocol(args);
+            string uriQpidd = "amqp:localhost:5672";
+            string uriActivemq = "amqp:localhost:5672";
+            string uriDispatch = "amqp:localhost:5672";
+
+            //AMQP_HelloWorld(uriQpidd, "amqp0-10", "amq.topic");
+            //AMQP_HelloWorld(uriQpidd, "amqp1.0", "amq.topic");
+
+            AMQP_HelloWorld(uriActivemq, "amqp1.0", "amq.topic");
+
+            //AMQP_HelloWorld(uriDispatch, "amqp1.0", "amq.topic");
         }
     }
 }
\ No newline at end of file