Revision history for Net-Async-AMQP
0.009 2014-12-01 14:41:04+00:00 Europe/London
No new features.
Bugs fixed:
* No longer attempts to call ->frame_method on heartbeat frames
0.008 2014-08-30 00:33:42+01:00 Europe/London
New features:
* Debugging uses ->debug_printf() everywhere, and is controlled by the
standard IO_ASYNC_DEBUG env var
* Basic server implementation, still not usable but clients can at least
connect now
* All channel frames are now handled by the relevant ::Channel instance,
should provide slightly better performance and less chance for things
to go out of sync
Bugs fixed:
* Expect publish ACK even when we get a NO_ROUTE response
* Explicit string type enforced on all queue/exchange/routing key/ctag
fields, to allow numeric-looking values - a precaution against issues like
https://rt.cpan.org/Ticket/Display.html?id=81733
* Avoid excessive warnings in global destruction when the
Net::Async::AMQP::ConnectionManager objects go out of scope.
0.007 2014-08-27 03:27:09+01:00 Europe/London
No new features.
Bugs fixed:
* Channel traffic is independent. As such, the global pending frame handling
was broken: instead, we now track pending frames on a per-channel basis.
* Cancelling a ->listen request between the Consume.Start and Consume.Ok frames
meant that you'd end up with an active listener - we now explicitly cancel this
listener when the Consume.Ok frame turns up.
* Connection manager now applies the managed channel to queue objects
* Unnecessary extra connections were being opened, this has been fixed.
0.006 2014-08-25 18:01:14+01:00 Europe/London
No new features.
Bugs fixed:
* Handle channel close correctly
* Pass type information from messages - previously we were using the 'type' header
instead.
0.005 2014-08-18 05:11:08+01:00 Europe/London
No new featues.
Tests fixed:
* Don't try to connect to a 'default' AMQP server,
skip if env vars were not provided
0.004 2014-08-17 18:40:45+01:00 Europe/London
API CHANGES:
* The Net::Async::AMQP class is now an IO::Async::Notifier, to bring it in line with
other IO::Aync code. One side effect of this change is that events are now raised through
a message bus rather than directly on the Net::Async::AMQP instance itself.
Existing code will need to change this:
my $amqp = Net::Async::AMQP->new(loop => $loop);
to this:
$loop->add->(my $amqp = Net::Async::AMQP->new);
and this:
$amqp->subscribe_to_event(...);
to this:
$amqp->bus->subscribe_to_event(...);
New features:
* Connection manager for automatically connecting and assigning channels
* Some loadtesting scripts, for performance+stability testing on the server
implementation (not available yet, should be in the next release)
Bugs fixed:
* If we establish TCP connection but fail to negotiate auth with server,
previously this would leave the connection future unresolved. It will now
fail with a message indicating that the remote closed the connection.
* Net::AMQP was generating an invalid initial connection header
(AMQP\x01\x01$major$minor rather than AMQP\x00$major$minor$rev as the
AMQP 0.9.1 spec seems to require), we now generate our own header.
RabbitMQ seems happy with either.
0.003 2014-02-27 07:56:25+00:00 Europe/London
Bugs fixed:
* Connection close sends a real connection close, rather than a channel close request
0.002 2014-02-27 07:10:14+00:00 Europe/London
New features:
* Support parameters when declaring queues (passive, durable, exclusive)
0.001 2014-01-05 04:52:26 Europe/London
Initial CPAN release