For anyone interested in a Windows port of the qpid amqp 1.0, I have a
Visual Studio 10 snapshot available on my github webpage.
I hope to add Jiras for patches so that my Visual Studio port can be
considered for inclusion in the current QPID codebase.
In the meantime, I placed my Visual Studio port of the qpid project on my
github website.
https://github.com/MaryDHinton/qpid/tree/qpidWinSnap
You can download a zip file by selecting the ZIP button on the Webpage.
To compile and run this code you will also need to download, compile, and
run the Snapshot code of the proton Windows port.
It is located at:
https://github.com/MaryDHinton/qpid-proton/tree/protonWinSnap
Both projects are set up for Visual Studio 10 and debug mode.
============== Proton ===============
To see the Windows port running for proton, use this branch
https://github.com/MaryDHinton/qpid-proton/tree/protonWinSnap
To compile and run this code, all you should need to do is:
Select the zip button on the page above and extract the code.
Select the proton.sln file in the proton-c folder and open it in Visual
Studio 2010.
Compile the qpid-proton and proton projects.
Go to the Debug folder and run proton (the debug version is the only mode
set up, the release will have to be set up).
I set up an environment variable for the proton after building the proton
dll, then added this environment variable to the qpid project in the C/C++
properties page (Additional Include Directories).
Set the environment variable
PROTON_INCLUDE --- to your environment. Mine is set to:
C:\proton\protonWinSnap\qpid-proton\proton-c\include;C:\proton\protonWinSnap
\qpid-proton\proton-c
I also have the path to proton executable set in my environment path
c:\qpid\qpid\proton\proton-c\Debug
After the proton dll and proton executable are compiled, you can run proton
in server and client mode.
Server
Open up a dialog box and change to the proton path and run
proton
client
Open up a second dialog box and change to the proton path and run
proton -c 127.0.0.1
You should be able to see messages passed between a proton client and
server.
============ QPID AMQP 1.0 ===============
For QPID, I used Boost 1.51.0.
I have a solution file (qpid-cpp-Snap.sln) for the qpid port that includes
only the projects to compile, run, and test the qpid amqp 1.0 for Visual
Studio.
projects included:
amqp
amqpc
hello_world
qpid-client-test
qpidbroker
qpidclient
qpidcommon
qpidd
qpidmessaqing
qpidtypes
You may need to check the Properties for the 10 projects in this solution
and make sure the paths are correct on your pc.
For example:
Configuration Properties
OutputDirectory
C/C++
General
Additional Include Directories
Output Files
Program Database File Name
Linker
General
Additional Library Directories
Input
Additional Dependencies
Debugging
Generate Program Database File
Advanced
Import Library
I used the path C:\qpidWin to put the extracted files from the zip.
After building both the proton Windows port and the QPID port for the server
and client, the amqp 1.0 can be loaded in the server with the following
command
from the path where your dlls and executables are located. The path setup in
this solution is:
c:\qpidWin\Debug
server
qpidd --load-module amqpd --auth no
Response
c:\qpidWin\qpidWinSnap\qpid\qpid\cpp\output\Debug>qpidd
--load-module amqpd --auth no
2012-12-17 14:53:24 [Broker] notice SASL
disabled: No Authentication Performed
2012-12-17 14:53:32 [Network] notice
Listening on TCP/TCP6 port 5672
5672
2012-12-17 14:53:32 [Broker] notice Broker
running
2012-12-17 14:55:30 [Security] warning SASL:
No Authentication Performed
2012-12-17 14:56:11 [Security] warning SASL:
No Authentication Performed
2012-12-17 15:02:51 [Broker] notice Shut
down
clients
set the environment variable
QPID_LOAD_MODULE to amqpcd
hello_world client
hello_world
qpid-client-test client
qpid-client-test --verbose
Response
c:\qpidWin\qpidWinSnap\qpid\qpid\cpp\output\Debug>qpid-client-test --verbose
Opened connection.
Opened session.
Declared exchange.
Declared queue.
Bound queue to exchange.
Published message: abcdefghijklmnop...
Received the exepected message.
Closed session.
Closed connection.
If you are using Norton's antivirus, you may have to disable checking for
the Suspicious.Cloud.7.F signature.
Thanks,
Mary Hinton