activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mittler, Nathan" <nathan.mitt...@sensis.com>
Subject New c++ client for stomp
Date Mon, 03 Jul 2006 12:26:20 GMT
I have just submitted a new C++ stomp client to the activemq SVN at
https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-cpp/
 
This serves as a full blown replacement for CMS, which didn't fully
implementation of the protocol.
 
Some of the features this includes are:
1) stomp protocol (requies AMQ 4.0.1 or later for the added
request/response ids)
2) JMS 1.1-like API - consumers, producers, etc. - closely follows what
was done in the .NET client.
3) support for topics and queues (so far as they are supported by
stomp).
4) A pluggable architecture - facilitates having swappable protocols
(can use openwire or stomp without changing code)
5) meta-url syntax similar to the other libraries to support passing in
options on the url string.
6) complete suite of cpp-unit tests
7) integration-level tests (requires a broker)
8) Maven 2 build (uses Mojo native plugin)
9) Support for selectors
10) Support for durable subscriptions
11) Support for transactions
 
*****BUILDING******
 
So far, we've only built on linux and windows  - so feedback would be
much appreciated from you Mac and Solaris users :)
 
We have a couple ways of building: Maven 2 and makefiles.  See the
readme.txt at the root for details.
 
The Maven build uses the Mojo Native Plugin, which has some limitations
that we'll eventually need to get past.  For one, there seems to be
linking issues on Solaris, because it's passing in a -o option to AR,
which causes heartburn.  Other than that, we've had Maven sucessfully
building on linux/gcc and windows/msvc-2005.
 
*****EXAMPLES*****
The usage is pretty similar to CMS.  Check out the integration tests
(essentially unit tests that require an activemq broker running) at
https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-cpp/s
rc/test-integration/ for examples of how to get up and running with
activemq-cpp.
 
****TODO*****
1) Merge in the openwire-cpp client as a connector in activemq-cpp.
User's will be able to choose which connector they use in the URI syntax
(similar to the way transports are configured in ActiveMQ).
2) Eliminate the makefiles and have everything building through Maven
3) Complete the Logging API
4) Add "how to" docs on the wiki
5) investigate the 999 (1000) messages bug with transactions - seems to
be at the broker (not sure)
6) investigate why durable subscriptions aren't working
7) test with Hiram's latest stomp transport changes.
 
****KNOWN ISSUES*****
1) Durable subscriptions don't seem to be working.  The documentation
reads that they are on by default, but reconnecting a client with the
same client id doesn't seem to do the trick.
2) After committing a transaction, the consumer seems to stop getting
messages after around 999/1000 messages.  We think this is a bug at the
broker, but more investigation is needed.
3) The Maven build doesn't work on Solaris - a "-o" is being passed into
the archiver, which is unsupported.
 
 
For all the tasks that CMS did, activemq-cpp should do just as well and
is much better tested, so I would encourage those using CMS to make the
switch.
 
The next big step is to merge in the openwire-cpp code so that
activemq-cpp is a one-stop-shop for all ActiveMQ protocols from C++.
 
BTW - many thanks to Tim Bish for cranking out a lot of the code!
 
Regards,
Nate
 
 
 

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message