=======================================================================
 * 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


Reply via email to