-
Notifications
You must be signed in to change notification settings - Fork 2
/
Changes
189 lines (127 loc) · 6.47 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
{{$NEXT}}
[BUG FIXES]
* Update the documentation about the Crixa::Queue->consume() "no_ack"
parameter to reflect that true means auto acknowledgment and false means
the consumer must acknowledge messages. Previously the documentation stated
the opposite.
0.13 2015-06-02
[BUG FIXES]
* Crixa now allows the message delivery_tag to be any non-negative integer
type as long as that type stringifies correctly.
0.12 2015-04-22
[BUG FIXES]
* The latest Net::AMQP::RabbitMQ release made the message delivery_tag a
Math::UInt64 object, which broke Crixa. Fixed by Ran Eilam.
0.11 2015-01-19
[ENHANCEMENTS]
* Implemented Crixa::Queue->consume(), a blocking API for waiting until
messages are received. Unlike the wait_for_message() method, this method
does not use a busy loop. Internally, it uses the poll() system call, so
it should be much kinder on your CPU.
* Added a Crixa::Message->consumer_tag() attribute. This will be set for
messages received via the new Crixa::Queue->consume() API.
[CHANGES]
* Crixa::Message->message_count() is no longer set for all messages, since
messages received via consume() have no message count.
[BUG FIXES]
* The docs said that the queue "auto_delete" parameter defaulted to false,
but it was actually defaulting to true. This was largely irrelevant given
that there past releases had no support for the consume()/recv() interface
in Crixa::Queue, but if you made a queue with Crixa and then used the
underlying mq object to call consume(), this would've been a problem.
0.10 2014-11-17
[BACKWARDS INCOMPATIBILITIES]
* Renamed the Crixa->connected method to Crixa->is_connected. This matches
what Net::AMQP::RabbitMQ calls the method. For Test::RabbitMQ we call its
connected method internally.
0.09 2014-11-13
[ENHANCEMENTS]
* Added a Crixa->connected method.
* Added an "mq" parameter for the Crixa->connect method that makes it easy
to mock the underlying RabbitMQ connection using Test::Net::RabbitMQ. Also
added some docs on mocking.
[BACKWARDS INCOMPATIBILITIES]
* The entirely undocumented Crixa::Engine::API role and the accompanying
Crixa::Engine::RabbitMQ class has been removed. This was a layer between
the Crixa object and the underlying RabbitMQ connection object (like
Net::AMQP::RabbitMQ) that was intended to support async operations in the
future. However, async operations can be done more simply by calling the
various non-blocking message receiving methods in an async callback.
0.08 2014-11-12
[BUG FIXES]
* Almost none of the Crixa classes were made immutable, which makes them a
lot slower to construct. This is particularly bad for the Crixa::Message
class.
0.07 2014-10-25
[ENHANCEMENTS]
* Added a Crixa::Queue->message_count method.
0.06 2014-10-01
[BACKWARDS INCOMPATIBILITIES]
* Switched from using Net::RabbitMQ to Net::AMQP::RabbitMQ. The former no
longer passes its tests with recent versions of RabbitMQ.
* The Crixa class no longer has a ->channels method and it no longer stores
channels internally. Instead, you call $crixa->new_channel whenever you
want a new channel.
* The Crixa class no longer has ->queue or ->exchange methods. This was
convenient, but made the handling of channels really confusing. Instead,
you should create a channel and use that to create queues and exchanges.
* Removed the Crixa::Channel->publish method. Use Crixa::Exchange objects to
publish messages instead. If you really want to publish without an
exchange name, you can create an exchange object with an empty string as
its name.
* Removed the Crixa::Queue->publish method. This really doesn't make sense,
since you can't publish to queues. This method would only have worked with
certain configurations, and it would have been easy to create an
exchange/queue combination where calling Crixa::Queue->publish sent the
message to an entirely different queue.
* The Crixa::Exchange->queue method's "bindings" parameter has been renamed
to "routing_keys". This is a better match for how these things are
described in the RabbitMQ docs.
* Messages are now objects. See the Crixa::Message documentation for details.
[ENHANCEMENTS]
* Added complete documentation for every class. The docs try to explain
RabbitMQ concepts wherever appropriate.
* Added a Crixa::Exchange->delete method.
* Added a Crixa::Queue->delete method.
* Added a Crixa::Queue->bind method.
* All the settings that can be passed to the constructor for Exchange &
Queue objects are now available as object attributes. This includes things
like "durable", "auto_delete", etc.
0.05 2014-04-08
* fix more pod warnings (Chris Prather)
* Fixed PodWeaver warnings, fixed Dist::Zilla problem with Changes file
(Torsten Raudssus)
* Adding support for port (Torsten Raudssus)
0.04 2012-06-08
* fix a typo that Pod::Coverage caught just before release! (Chris Prather)
* add docs and an IO-Async example (Chris Prather)
* remove the channel calls we do not need anymore (Chris Prather)
* break out fetching the message from the queue (Chris Prather)
* add exchange() method to Crixa.pm that allows us to hide the channel
entirely if we want (Chris Prather)
* default queue bindings to an empty arrayref (Chris Prather)
* move fix a missing reference maker (Chris Prather)
* add the `$channel->ack()` to the callback. (Chris Prather)
0.03 2012-04-10
* we just need to exclude ^perl5 (Chris Prather)
* Refactor the RabbitMQ Role into a Class (Chris Prather)
* update dist.ini to generate Changes (Chris Prather)
0.02 2012-04-03
* exclude stuff that we accidentally released in 0.01 (Chris Prather)
* move to the Git NextVersion plugin (Chris Prather)
0.01 2012-04-03
* add Crixa-* to gitignore (Chris Prather)
* add gitignore (Chris Prather)
* rename CRIXA_HOST to RABBITMQ_HOST in live tests (Chris Prather)
* clean up a little cruft (Chris Prather)
* make live tests *more* optional (Chris Prather)
* add some simple tests (Chris Prather)
* add some more pod stubs and some test stubs (Chris Prather)
* add inital pod (Chris Prather)
* kill podweaver (Chris Prather)
* fix a small potential bug (Chris Prather)
* finish adding the examples from RabbitMQ (Chris Prather)
* sweeping updates as we port the RabbitMQ examples over (Chris Prather)
* add README.md (Chris Prather)
* initial draft (Chris Prather)
* initial commit (Chris Prather)