| ======================================================================= |
| * Apache.NMS.AMQP : Apache NMS for AMQP Client Library |
| * Initial Release Notes |
| ======================================================================= |
| |
| 1.0 Welcome |
| |
| Welcome to Apache NMS AMQP! This NMS Provider will connect to the AMQP |
| messaging protocol. Versions Amqp1.0 and Amqp0.10 are supported. NMS |
| applications using this provider may communicate with Amqp Brokers |
| such as Apache ActiveMQ and Apache Qpid qpidd, and messaging |
| infrastructure such as Apache Qpid Dispatch Router. |
| |
| 2.0 Implementation Overview |
| |
| The AMQP Provider leverages the interop binding "Apache Qpid |
| .NET Binding for C++ Messaging". The .NET Binding is an interop layer |
| that connects .NET programs to the Qpid native C++ protocol engine |
| libraries. |
| |
| The general architecture is: |
| |
| +----------------------------+ |
| | NMS Application | |
| | | |
| +--------------+-------------+ |
| | |
| V |
| +----------------------------+ |
| | NMS AMQP Provider | |
| | Apache.NMS.AMQP.dll | |
| +--------------+-------------+ |
| | |
| managed V |
| (.NET) +-------------------------------+ |
| ::::::::::::::::::::::| Qpid Interop Binding |:::::::::::: |
| unmanaged | org.apache.qpid.messaging.dll | |
| (Native Win32/64) +-------------+-----------------+ |
| | |
| V |
| +----------------------------------+ |
| | Qpid C++ Messaging Libraries | |
| | qpid*.dll | |
| +--------+--------------+----------+ |
| | | |
| V | |
| +-----------------+ | |
| | Boost Libraries | | |
| +--------+--------+ | |
| | | |
| V V |
| +---------------------------------+ |
| | MSVC Runtime Libraries | |
| +---------------------------------+ |
| |
| |
| 3.0 Getting Started |
| |
| 3.1 Installing Apache Qpid vendor files |
| |
| In order to use the AMQP Provider your application must have the |
| Apache Qpid native and supporting libraries available on the path. |
| These files are installed automatically during the nant |
| installation of the Apache.Qpid vendor kit. |
| |
| 3.2 Selecting the correct Apache Qpid vendor files |
| |
| The Apache Qpid vendor files are shipped in two versions: |
| * .NET 2.0 Compiled with Visual Studio 2008 |
| * .NET 4.0 Compiled with Visual Studio 2010 |
| |
| Each of these kits is built for the 32-bit x86 platform in both Debug |
| and Release configurations. A typical kit holds: |
| * The Apache Qpid interop library |
| org.apache.qpid.messaging.dll |
| * Apache Qpid/Proton library files |
| qpid-protond.dll |
| qpidclientd.dll |
| qpidcommond.dll |
| qpidmessagingd.dll |
| qpidtypesd.dll |
| * Boost library files |
| boost_chrono-vc100-mt-gd-1_47.dll |
| boost_date_time-vc100-mt-gd-1_47.dll |
| boost_program_options-vc100-mt-gd-1_47.dll |
| boost_system-vc100-mt-gd-1_47.dll |
| boost_thread-vc100-mt-gd-1_47.dll |
| |
| 3.3 Building your Application |
| |
| A HelloWorld application is included in the Apache.NMS.AMQP |
| development tree to get users off to a quick start. |
| |
| This project selects: |
| Visual Studio : 2010 |
| Configuration : Debug |
| .NET Framework : 4.0 |
| Platform : AnyCPU |
| |
| HelloWorld builds and runs on both 32-bit x86 and 64-bit x64 systems |
| as long as the base project is built with the AnyCPU or the x64 |
| Platform. The Apache Qpid subsystem will not load under .NET projects |
| that specify the x64 Platform. |
| |
| 4.0 Using the Apache.NMS.AMQP Provider |
| |
| 4.1 Creating AMQP Connections |
| |
| Connections to AMQP brokers and endpoints are controlled by arguments |
| to the ConnectionFactory constructor. By default connections use |
| protocol "amqp1.0". |
| |
| Uri connecturi = new Uri("amqp:tcp:localhost:5672"); |
| string clientID = "abc"; |
| Hashtable options = new Hashtable(); |
| options["username"] = "guest"; |
| options["password"] = "secret"; |
| options["protocol"] = "amqp1.0"; // or "amqp0-10" |
| |
| IConnectionFactory factory = new |
| NMSConnectionFactory(connecturi, clientID, options); |
| |
| In this release connection options are passed through an option table |
| and not through the connect URI/URL. More information about connection |
| options is available at: |
| |
| http://qpid.apache.org/components/programming/book/connection-options.html |
| |
| 5.0 Future Considerations |
| |
| * 64-bit x64 Apache Qpid vendor kit |
| * Support for more robust object message formats |
| * Transactions and message durability |
| * Unit test/system tests |
| |
| |