Return-Path: Delivered-To: apmail-geronimo-activemq-dev-archive@www.apache.org Received: (qmail 93206 invoked from network); 3 Jul 2006 12:26:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 Jul 2006 12:26:59 -0000 Received: (qmail 5114 invoked by uid 500); 3 Jul 2006 12:26:59 -0000 Delivered-To: apmail-geronimo-activemq-dev-archive@geronimo.apache.org Received: (qmail 4852 invoked by uid 500); 3 Jul 2006 12:26:58 -0000 Mailing-List: contact activemq-dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-dev@geronimo.apache.org Received: (qmail 4833 invoked by uid 99); 3 Jul 2006 12:26:58 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Jul 2006 05:26:58 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [199.105.164.5] (HELO smtpmail2.sensis.com) (199.105.164.5) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Jul 2006 05:26:56 -0700 Received: from dimstar2.ats.sensis.com ([172.21.1.6]) by smtpmail2.sensis.com with esmtp (Exim 4.50) id 1FxNVa-0000pN-Gw; Mon, 03 Jul 2006 08:26:34 -0400 Received: from corpatsmail1.ats.sensis.com ([172.21.1.88] helo=corpatsmail1.corp.sensis.com) by dimstar2.ats.sensis.com with esmtp (Exim 4.50) id 1FxNVM-0003oy-VS; Mon, 03 Jul 2006 08:26:21 -0400 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C69E9B.E3E5DF3A" Subject: New c++ client for stomp Date: Mon, 3 Jul 2006 08:26:20 -0400 Message-ID: <7743F17344E95A4CA78A3E53A7AF496B5C2F43@corpatsmail1.corp.sensis.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: New c++ client for stomp Thread-Index: Acaem+PgOafJ/0HDQTGRZFwR/uk3sg== From: "Mittler, Nathan" To: , X-Sensis-MailScanner-Information: Scanned at Sensis Corporation by MailScanner X-Sensis-MailScanner: Found to be clean X-Sensis-MailScanner-SpamCheck: not spam (whitelisted), SpamAssassin (score=-1.799, required 5, autolearn=not spam, ALL_TRUSTED -1.80, HTML_MESSAGE 0.00) X-Sensis-MailScanner-From: nathan.mittler@sensis.com X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------_=_NextPart_001_01C69E9B.E3E5DF3A Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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/ =20 This serves as a full blown replacement for CMS, which didn't fully implementation of the protocol. =20 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 =20 *****BUILDING****** =20 So far, we've only built on linux and windows - so feedback would be much appreciated from you Mac and Solaris users :) =20 We have a couple ways of building: Maven 2 and makefiles. See the readme.txt at the root for details. =20 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. =20 *****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. =20 ****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. =20 ****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. =20 =20 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. =20 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++. =20 BTW - many thanks to Tim Bish for cranking out a lot of the code! =20 Regards, Nate =20 =20 =20 ------_=_NextPart_001_01C69E9B.E3E5DF3A--