Re: New refactored STOMP implementation.

2006-07-04 Thread Nathan Mittler

Hiram,
BTW, did you run the activemq-cpp cpp-unit tests against the broker with the
new stomp transport?  I took a look at your code and it looks like you still
have the request-id/response-id headers in there, so it should work fine.
Looks a lot simpler - easier to find your way around.

Nate

On 7/4/06, James Strachan  [EMAIL PROTECTED] wrote:


It all looks good to me. Given we've already hit AMQ-793 recently...

http://issues.apache.org/activemq/browse/AMQ-793

due to the flow control issues in the stomp implementation under load,
I'd say lets get rid of the old version and go with the new.

On 7/2/06, Hiram Chirino [EMAIL PROTECTED] wrote:
 Howdy STOMP developers,

 Just wantted to let you know that I spent the day doing some major
 refactoring to the STOMP server side protocol implementation in
ActiveMQ.
 The previous implementation did all the work inside a WireFormat
layer.  The
 poll model that it imposed made some things difficult to do and made the

 code just ugly.

 I refactored it so that StompWireFormat takes the STOMP frames and
produces
 StompCommand objects which are like a 1:1 mapping (Perhaps I should
rename
 that to StompFrame).  Then the stomp transport factory sets up the
 TcpTransport to be filtered by a StompTransportFilter which converts the
 StompCommand/Protocol into the ActiveMQ commands and Protocol.  Since
the
 Transport is more event based and is also aware of the transport
lifecycle,
 it should let us continue to extend and add more features to the STOMP
 protocol easier.

 I implemented this in a new package so that we can easily switch back to
the
 old implementation if needed.  Out of the box we are now using the new
 implementation.  But I'd like to get some feed back to see if it
introduced
 any new bugs or if it fixed any old bugs.  If all goes well, I'll get
rid of
 the old version soon.

 --
 Regards,
 Hiram

 Blog: http://hiramchirino.com




--

James
---
http://radio.weblogs.com/0112098/



New refactored STOMP implementation.

2006-07-01 Thread Hiram Chirino

Howdy STOMP developers,

Just wantted to let you know that I spent the day doing some major
refactoring to the STOMP server side protocol implementation in ActiveMQ.
The previous implementation did all the work inside a WireFormat layer.  The
poll model that it imposed made some things difficult to do and made the
code just ugly.

I refactored it so that StompWireFormat takes the STOMP frames and produces
StompCommand objects which are like a 1:1 mapping (Perhaps I should rename
that to StompFrame).  Then the stomp transport factory sets up the
TcpTransport to be filtered by a StompTransportFilter which converts the
StompCommand/Protocol into the ActiveMQ commands and Protocol.  Since the
Transport is more event based and is also aware of the transport lifecycle,
it should let us continue to extend and add more features to the STOMP
protocol easier.

I implemented this in a new package so that we can easily switch back to the
old implementation if needed.  Out of the box we are now using the new
implementation.  But I'd like to get some feed back to see if it introduced
any new bugs or if it fixed any old bugs.  If all goes well, I'll get rid of
the old version soon.

--
Regards,
Hiram

Blog: http://hiramchirino.com