Author: chug
Date: Wed Dec  1 19:54:13 2010
New Revision: 1041141

URL: http://svn.apache.org/viewvc?rev=1041141&view=rev
Log:
Bring QPID .NET Binding examples more in line with cpp examples.
1. Return 0/1 from main to indicate success/failure, where possible.
2. Call sender's session.Sync() after transmitting messages and not waiting for 
responses.
3. Add third arg connectionOptions as used in cpp examples.

Modified:
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs
    
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs
 Wed Dec  1 19:54:13 2010
@@ -31,7 +31,7 @@ namespace CSharpDirect
         // Receive 10 messages from localhost:5672, amq.direct/key
         // Messages are assumed to be printable strings.
         //
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             String host = "localhost:5672";
             String addr = "amq.direct/key";
@@ -66,12 +66,14 @@ namespace CSharpDirect
                         Console.WriteLine("Rcvd msg {0} : {1}", i, 
msg2.GetContent());
                     }
                     connection.Close();
+                    return 0;
                 }
             } catch (Exception e) {
                 Console.WriteLine("Exception {0}.", e);
                 if (null != connection)
                     connection.Close();
             }
+            return 1;
         }
     }
 }
\ No newline at end of file

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs
 Wed Dec  1 19:54:13 2010
@@ -31,7 +31,7 @@ namespace csharp.direct.sender
         // Send 10 messages from localhost:5672, amq.direct/key
         // Messages are assumed to be printable strings.
         //
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             String host = "localhost:5672";
             String addr = "amq.direct/key";
@@ -65,13 +65,16 @@ namespace csharp.direct.sender
                         Message message = new Message(String.Format("Test 
Message {0}", i));
                         sender.Send(message);
                     }
+                    session.Sync();
                     connection.Close();
+                    return 0;
                 }
             } catch (Exception e) {
                 Console.WriteLine("Exception {0}.", e);
                 if (null != connection)
                     connection.Close();
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs
 Wed Dec  1 19:54:13 2010
@@ -24,13 +24,16 @@ using Org.Apache.Qpid.Messaging;
 
 namespace Org.Apache.Qpid.Messaging.Examples {
     class Client {
-        static void Main(string[] args) {
+        static int Main(string[] args) {
             String url = "amqp:tcp:127.0.0.1:5672";
+            String connectionOptions = "";
 
             if (args.Length > 0)
                 url = args[0];
+            if (args.Length > 1)
+                connectionOptions = args[1];
 
-            Connection connection = new Connection(url);
+            Connection connection = new Connection(url, connectionOptions);
             try
             {
                 connection.Open();
@@ -59,12 +62,14 @@ namespace Org.Apache.Qpid.Messaging.Exam
                     Console.WriteLine("{0} -> {1}", request.GetContent(), 
response.GetContent());
                 }
                 connection.Close();
+                return 0;
             }
             catch (Exception e)
             {
                 Console.WriteLine("Exception {0}.", e);
                 connection.Close();
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs
 Wed Dec  1 19:54:13 2010
@@ -27,7 +27,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
         //
         // Sample invocation: csharp.example.declare_queues.exe localhost:5672 
my-queue
         //
-        static void Main(string[] args) {
+        static int Main(string[] args) {
             string addr = "localhost:5672";
             string queue = "my-queue";
 
@@ -46,6 +46,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 Sender sender = session.CreateSender(queueName);
                 session.Close();
                 connection.Close();
+                return 0;
             }
             catch (Exception e)
             {
@@ -53,6 +54,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 if (null != connection)
                     connection.Close();
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs
 Wed Dec  1 19:54:13 2010
@@ -30,7 +30,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
         //
         // Sample invocation: csharp.example.drain.exe --broker localhost:5672 
--timeout 30 my-queue
         //
-        static void Main(string[] args) {
+        static int Main(string[] args) {
             Options options = new Options(args);
 
             Connection connection = null;
@@ -74,6 +74,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 receiver.Close();
                 session.Close();
                 connection.Close();
+                return 0;
             }
             catch (Exception e)
             {
@@ -81,6 +82,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 if (null != connection)
                     connection.Close();
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs
 Wed Dec  1 19:54:13 2010
@@ -24,14 +24,18 @@ using Org.Apache.Qpid.Messaging;
 
 namespace Org.Apache.Qpid.Messaging.Examples {
     class Server {
-        static void Main(string[] args) {
-            String url = "amqp:tcp:127.0.0.1:5672";
+        static int Main(string[] args) {
+            string url = "amqp:tcp:127.0.0.1:5672";
+            string connectionOptions = "";
 
             if (args.Length > 0)
                 url = args[0];
+            // address args[1] is not used in this example
+            if (args.Length > 2)
+                connectionOptions = args[2];
 
             try {
-                Connection connection = new Connection(url);
+                Connection connection = new Connection(url, connectionOptions);
                 connection.Open();
                 Session session = connection.CreateSession();
                 Receiver receiver = session.CreateReceiver("service_queue; 
{create: always}");
@@ -56,6 +60,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
             } catch (Exception e) {
                 Console.WriteLine("Exception {0}.", e);
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs
 Wed Dec  1 19:54:13 2010
@@ -63,13 +63,13 @@ namespace Org.Apache.Qpid.Messaging.Exam
             }
         }
 
-        static void Main(string[] args) {
+        static int Main(string[] args) {
             Options options = new Options(args);
 
             Connection connection = null;
             try
             {
-                connection = new Connection(options.Url);
+                connection = new Connection(options.Url, 
options.ConnectionOptions);
                 connection.Open();
                 Session session = connection.CreateSession();
                 Sender sender = session.CreateSender(options.Address);
@@ -107,11 +107,13 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 }
                 session.Sync();
                 connection.Close();
+                return 0;
             } catch (Exception e) {
                 Console.WriteLine("Exception {0}.", e);
                 if (null != connection)
                     connection.Close();
             }
+            return 1;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs
 Wed Dec  1 19:54:13 2010
@@ -186,18 +186,19 @@ namespace Org.Apache.Qpid.Messaging.Exam
         /// receive messages.
         /// </summary>
         /// <param name="args">Main program arguments</param>
-        public void TestProgram(string[] args)
+        public int TestProgram(string[] args)
         {
             string url = "amqp:tcp:localhost:5672";
             string addr = "amq.direct/map_example";
             int nSec = 30;
+            string connectionOptions = "";
 
             if (1 == args.Length)
             {
                 if (args[0].Equals("-h") || args[0].Equals("-H") || 
args[0].Equals("/?"))
                 {
                     usage(url, addr, nSec);
-                    return;
+                    return 1;
                 }
             }
 
@@ -207,11 +208,13 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 addr = args[1];
             if (args.Length > 2)
                 nSec = System.Convert.ToInt32(args[2]);
+            if (args.Length > 3)
+                connectionOptions = args[3];
 
             //
             // Create and open an AMQP connection to the broker URL
             //
-            Connection connection = new Connection(url);
+            Connection connection = new Connection(url, connectionOptions);
             connection.Open();
 
             //
@@ -258,6 +261,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
             //
             receiver.Close();
             connection.Close();
+            return 0;
         }
     }
 
@@ -268,13 +272,14 @@ namespace Org.Apache.Qpid.Messaging.Exam
         /// Main program
         /// </summary>
         /// <param name="args">Main prgram args</param>
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             // Invoke 'TestProgram' as non-static class.
             ReceiverProcess mainProc = new ReceiverProcess();
 
-            mainProc.TestProgram(args);
+            int result = mainProc.TestProgram(args);
 
+            return result;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs
 Wed Dec  1 19:54:13 2010
@@ -31,7 +31,7 @@ namespace Org.Apache.Qpid.Messaging.Exam
         //
         // usage
         //
-        static void usage(string url, string addr, UInt32 count)
+        static void usage(string url, string addr, UInt32 count, string 
connOpts)
         {
 
             Console.WriteLine("usage: {0} [url  [addr [count]]]",
@@ -43,29 +43,31 @@ namespace Org.Apache.Qpid.Messaging.Exam
             Console.WriteLine(" url = target address for 'new 
Connection(url)'");
             Console.WriteLine(" addr = address for 
'session.CreateReceiver(addr)'");
             Console.WriteLine(" count = number of messages to send");
+            Console.WriteLine(" connectionOptions = options list");
             Console.WriteLine();
             Console.WriteLine("Default values:");
-            Console.WriteLine("  {0} {1} {2} {3}",
+            Console.WriteLine("  {0} {1} {2} {3} {4}",
                 System.Diagnostics.Process.GetCurrentProcess().ProcessName,
-                url, addr, count);
+                url, addr, count, connOpts);
         }
 
         
         //
         // TestProgram
         //
-        public void TestProgram(string[] args)
+        public int TestProgram(string[] args)
         {
             string url = "amqp:tcp:localhost:5672";
             string addr = "amq.direct/map_example";
             UInt32 count = 1;
+            string connectionOptions = "";
 
             if (1 == args.Length)
             {
                 if (args[0].Equals("-h") || args[0].Equals("-H") || 
args[0].Equals("/?"))
                 {
-                    usage(url, addr, count);
-                    return;
+                    usage(url, addr, count, connectionOptions);
+                    return 1;
                 }
             }
 
@@ -75,12 +77,13 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 addr = args[1];
             if (args.Length > 2)
                 count = System.Convert.ToUInt32(args[2]);
-
+            if (args.Length > 3)
+                connectionOptions = args[3];
             
             //
             // Create and open an AMQP connection to the broker URL
             //
-            Connection connection = new Connection(url);
+            Connection connection = new Connection(url, connectionOptions);
             connection.Open();
 
             //
@@ -160,9 +163,16 @@ namespace Org.Apache.Qpid.Messaging.Exam
                 sender.Send(message, true);
 
             //
+            // Wait until broker receives all messages.
+            //
+            session.Sync();
+
+            //
             // Close the connection.
             //
             connection.Close();
+
+            return 0;
         }
     }
 
@@ -171,13 +181,14 @@ namespace Org.Apache.Qpid.Messaging.Exam
         //
         // Main
         //
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             // Invoke 'TestProgram' as non-static class.
             MapSender mainProc = new MapSender();
 
-            mainProc.TestProgram(args);
+            int result = mainProc.TestProgram(args);
 
+            return result;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs
 Wed Dec  1 19:54:13 2010
@@ -32,14 +32,18 @@ namespace Org.Apache.Qpid.Messaging.exam
         // Send an amqp/map message to amqp:tcp:localhost:5672 
amq.direct/map_example
         // The map message 
         //
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             string url = "amqp:tcp:localhost:5672";
             string address = "message_queue; {create: always}";
+            string connectionOptions = "";
+
             if (args.Length > 0)
                 url = args[0];
             if (args.Length > 1)
                 address = args[1];
+            if (args.Length > 2)
+                connectionOptions = args[3];
 
             //
             // Create and open an AMQP connection to the broker URL
@@ -76,6 +80,7 @@ namespace Org.Apache.Qpid.Messaging.exam
             //
             receiver.Close();
             connection.Close();
+            return 0;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs
 Wed Dec  1 19:54:13 2010
@@ -34,19 +34,23 @@ namespace Org.Apache.Qpid.Messaging.exam
         // The map message contains simple types, a nested amqp/map,
         // an ampq/list, and specific instances of each supported type.
         //
-        static void Main(string[] args)
+        static int Main(string[] args)
         {
             string url = "amqp:tcp:localhost:5672";
             string address = "message_queue; {create: always}";
+            string connectionOptions = "";
+
             if (args.Length > 0)
                 url = args[0];
             if (args.Length > 1)
                 address = args[1];
+            if (args.Length > 2)
+                connectionOptions = args[2];
 
             //
             // Create and open an AMQP connection to the broker URL
             //
-            Connection connection = new Connection(url);
+            Connection connection = new Connection(url, connectionOptions);
             connection.Open();
 
             //
@@ -128,9 +132,15 @@ namespace Org.Apache.Qpid.Messaging.exam
             sender.Send(message, true);
 
             //
+            // Wait until broker receives all messages.
+            //
+            session.Sync();
+
+            //
             // Close the connection.
             //
             connection.Close();
+            return 0;
         }
     }
 }

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb?rev=1041141&r1=1041140&r2=1041141&view=diff
==============================================================================
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb
 Wed Dec  1 19:54:13 2010
@@ -24,14 +24,16 @@ Imports Org.Apache.Qpid.Messaging
 Namespace Org.Apache.Qpid.Messaging.Examples
     Module Module1
         Class Client
-            Public Shared Sub Main(ByVal args() As String)
+            Public Shared Function Main(ByVal args() As String) As Integer
                 Dim url As String = "amqp:tcp:127.0.0.1:5672"
+                Dim connectionOptions As String = ""
 
                 If args.Length > 0 Then url = args(0)
+                If args.Length > 1 Then connectionOptions = args(1)
 
                 Dim connection As Connection
                 Try
-                    connection = New Connection(url)
+                    connection = New Connection(url, connectionOptions)
                     connection.Open()
 
                     Dim session As Session = connection.CreateSession()
@@ -58,12 +60,13 @@ Namespace Org.Apache.Qpid.Messaging.Exam
                         Console.WriteLine("{0} -> {1}", request.GetContent(), 
response.GetContent())
                     Next i
                     connection.Close()
-
+                    Main = 0
                 Catch e As Exception
                     Console.WriteLine("Exception {0}.", e)
                     connection.Close()
+                    Main = 1
                 End Try
-            End Sub
+            End Function
         End Class
     End Module
 End Namespace



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to