======================================================================= * 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. 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. AMQP Provider source code is available at: svn co https://svn.apache.org/repos/asf/activemq/activemq-dotnet/Apache.NMS.AMQP/trunk Apache.NMS.AMQP Notes and development history are recorded in: https://issues.apache.org/jira/browse/AMQNET-454 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 x86 Compiled with Visual Studio 2008 * .NET 4.0 x86 Compiled with Visual Studio 2010 Each of these kits is built for the 32-bit x86 platform using Release configurations. A typical kit holds: * The Apache Qpid interop library org.apache.qpid.messaging.dll * Apache Qpid/Proton library files qpid-proton.dll qpidclient.dll qpidcommon.dll qpidmessaging.dll qpidtypes.dll * Boost library files boost_chrono-vc100-mt-1_47.dll boost_date_time-vc100-mt-1_47.dll boost_program_options-vc100-mt-1_47.dll boost_system-vc100-mt-1_47.dll boost_thread-vc100-mt-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 for the x86 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"; IConnectionFactory factory = new NMSConnectionFactory(connecturi, clientID, options); Notes: * AMQP protocol version 0-10 is selected by 'options["protocol"] = "amqp0-10"'. * 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 Next Steps * Include wiki pages describing the provider in http://activemq.apache.org/nms/ 6.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