torquebox-messaging 2.1.2-java → 2.2.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/gem_hook.rb CHANGED
@@ -28,7 +28,7 @@ require 'torquebox/messaging/session'
28
28
 
29
29
  require 'torquebox/messaging/message'
30
30
  require 'torquebox/messaging/json_message'
31
- require 'torquebox/messaging/clojure_message'
31
+ require 'torquebox/messaging/edn_message'
32
32
  require 'torquebox/messaging/text_message'
33
33
  require 'torquebox/messaging/marshal_base64_message'
34
34
  require 'torquebox/messaging/marshal_message'
Binary file
@@ -1,14 +1,14 @@
1
1
  module TorqueboxMessaging
2
- VERSION = '2.1.2'
3
- MAVEN_VERSION = '2.1.2'
2
+ VERSION = '2.2.0'
3
+ MAVEN_VERSION = '2.2.0'
4
4
  end
5
5
  begin
6
6
  require 'java'
7
7
  require File.dirname(__FILE__) + '/torquebox-messaging.jar'
8
8
  require File.dirname(__FILE__) + '/jboss-jms-api_1.1_spec-1.0.1.Final.jar'
9
9
  require File.dirname(__FILE__) + '/jboss-transaction-api_1.1_spec-1.0.1.Final.jar'
10
- require File.dirname(__FILE__) + '/hornetq-core-2.2.18.Final.jar'
11
- require File.dirname(__FILE__) + '/hornetq-jms-2.2.18.Final.jar'
10
+ require File.dirname(__FILE__) + '/hornetq-core-2.2.21.Final.jar'
11
+ require File.dirname(__FILE__) + '/hornetq-jms-2.2.21.Final.jar'
12
12
  require File.dirname(__FILE__) + '/netty-3.2.6.Final.jar'
13
13
  rescue LoadError
14
14
  puts 'JAR-based gems require JRuby to load. Please visit www.jruby.org.'
@@ -20,6 +20,7 @@ require 'torquebox/messaging/future'
20
20
  require 'torquebox/messaging/task'
21
21
  require 'torquebox/messaging/future_status'
22
22
  require 'torquebox/injectors'
23
+ require 'torquebox/logger'
23
24
 
24
25
  module TorqueBox
25
26
  module Messaging
@@ -64,22 +65,31 @@ module TorqueBox
64
65
  if !@__backgroundable_methods[method]
65
66
  @__backgroundable_methods[method] ||= { }
66
67
  @__backgroundable_methods[method][:options] = options
67
- if Util.instance_methods_include?(self, method) ||
68
- Util.private_instance_methods_include?(self, method)
68
+ if Util.singleton_methods_include?(self, method) ||
69
+ Util.instance_methods_include?(self, method)
69
70
  __enable_backgrounding(method)
70
71
  end
71
72
  end
72
73
  end
73
74
  end
74
75
 
76
+ # Allows you to background any method that has not been marked
77
+ # as a backgrounded method via {ClassMethods#always_background}.
78
+ # @param [Hash] options that are passed through to
79
+ # {TorqueBox::Messaging::Destination#publish}
80
+ # @return [Future]
81
+ def background(options = { })
82
+ BackgroundProxy.new(self, options)
83
+ end
84
+
75
85
  def method_added(method)
76
86
  super
77
- method = method.to_s
78
- if @__backgroundable_methods &&
79
- @__backgroundable_methods[method] &&
80
- !@__backgroundable_methods[method][:backgrounding]
81
- __enable_backgrounding(method)
82
- end
87
+ __method_added(method)
88
+ end
89
+
90
+ def singleton_method_added(method)
91
+ super
92
+ __method_added(method)
83
93
  end
84
94
 
85
95
  def __enable_backgroundable_newrelic_tracing(method)
@@ -102,28 +112,57 @@ module TorqueBox
102
112
  end
103
113
 
104
114
  private
115
+
116
+ def __method_added(method)
117
+ method = method.to_s
118
+ if @__backgroundable_methods &&
119
+ @__backgroundable_methods[method] &&
120
+ !@__backgroundable_methods[method][:backgrounding]
121
+ __enable_backgrounding(method)
122
+ end
123
+ end
124
+
105
125
  def __enable_backgrounding(method)
106
- privatize = Util.private_instance_methods_include?(self, method)
107
- protect = Util.protected_instance_methods_include?(self, method) unless privatize
126
+ singleton_method = Util.singleton_methods_include?(self, method)
127
+ singleton = (class << self; self; end)
128
+
129
+ if singleton_method
130
+
131
+ TorqueBox::Logger.new( self ).
132
+ warn("always_background called for :#{method}, but :#{method} " +
133
+ "exists as both a class and instance method. Only the " +
134
+ "class method will be backgrounded.") if Util.instance_methods_include?(self, method)
135
+
136
+ privatize = Util.private_singleton_methods_include?(self, method)
137
+ protect = Util.protected_singleton_methods_include?(self, method) unless privatize
138
+ else
139
+ privatize = Util.private_instance_methods_include?(self, method)
140
+ protect = Util.protected_instance_methods_include?(self, method) unless privatize
141
+ end
142
+
108
143
  async_method = "__async_#{method}"
109
144
  sync_method = "__sync_#{method}"
110
145
 
111
146
  @__backgroundable_methods[method][:backgrounding] = true
112
147
  options = @__backgroundable_methods[method][:options]
113
- class_eval do
114
148
 
149
+ (singleton_method ? singleton : self).class_eval do
115
150
  define_method async_method do |*args|
116
151
  Util.publish_message(self, sync_method, args, options)
117
152
  end
118
-
119
- alias_method sync_method, method
120
- alias_method method, async_method
121
-
122
- if privatize || protect
123
- send((privatize ? :private : :protected), method, sync_method, async_method)
124
- end
125
-
126
153
  end
154
+
155
+ code = singleton_method ? "class << self" : ""
156
+ code << %Q{
157
+ alias_method :#{sync_method}, :#{method}
158
+ alias_method :#{method}, :#{async_method}
159
+ }
160
+ code << %Q{
161
+ #{privatize ? "private" : "protected"} :#{method}, :#{sync_method}, :#{async_method}
162
+ } if privatize || protect
163
+ code << "end" if singleton_method
164
+
165
+ class_eval code
127
166
  ensure
128
167
  @__backgroundable_methods[method][:backgrounding] = nil
129
168
  end
@@ -163,8 +202,22 @@ module TorqueBox
163
202
  raise RuntimeError.new("The Backgroundable queue is not available. Did you disable it by setting its concurrency to 0?")
164
203
  end
165
204
 
205
+ def singleton_methods_include?(klass, method)
206
+ methods_include?(klass.singleton_methods, method) ||
207
+ private_singleton_methods_include?(klass, method)
208
+ end
209
+
210
+ def private_singleton_methods_include?(klass, method)
211
+ methods_include?(klass.private_methods, method)
212
+ end
213
+
214
+ def protected_singleton_methods_include?(klass, method)
215
+ methods_include?(klass.protected_methods, method)
216
+ end
217
+
166
218
  def instance_methods_include?(klass, method)
167
- methods_include?(klass.instance_methods, method)
219
+ methods_include?(klass.instance_methods, method) ||
220
+ private_instance_methods_include?(klass, method)
168
221
  end
169
222
 
170
223
  def private_instance_methods_include?(klass, method)
@@ -1,7 +1,8 @@
1
- # A message processor that echos any messages sent to it back to
2
- # another queue specified by the response_queue configuration option
1
+ # @api private
3
2
  module Torquebox
4
3
  module Messaging
4
+ # A message processor that echos any messages sent to it back to
5
+ # another queue specified by the response_queue configuration option
5
6
  class EchoProcessor < TorqueBox::Messaging::MessageProcessor
6
7
 
7
8
  def initialize(options={})
@@ -15,23 +15,23 @@
15
15
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
16
16
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
17
17
 
18
- require 'clj'
18
+ require 'edn'
19
19
 
20
20
  module TorqueBox
21
21
  module Messaging
22
- class ClojureMessage < Message
23
- ENCODING = :clojure
22
+ class EdnMessage < Message
23
+ ENCODING = :edn
24
24
  JMS_TYPE = :text
25
25
 
26
26
  def encode(message)
27
- @jms_message.text = Clojure.dump(message)
27
+ @jms_message.text = message.to_edn
28
28
  end
29
29
 
30
30
  def decode
31
- Clojure.parse(@jms_message.text) unless @jms_message.text.nil?
31
+ EDN.read(@jms_message.text) unless @jms_message.text.nil?
32
32
  end
33
33
  end
34
34
 
35
- Message.register_encoding( ClojureMessage )
35
+ Message.register_encoding( EdnMessage )
36
36
  end
37
37
  end
@@ -1,6 +1,7 @@
1
1
  require 'torquebox/messaging/backgroundable'
2
+ require 'pp'
2
3
 
3
- class MyTestModel
4
+ class InstanceMethodTestModel
4
5
  include TorqueBox::Messaging::Backgroundable
5
6
 
6
7
  def an_async_action(arg1, arg2)
@@ -15,45 +16,137 @@ class MyTestModel
15
16
  def redefine_me; end
16
17
  end
17
18
 
19
+ class ClassMethodTestModel
20
+ include TorqueBox::Messaging::Backgroundable
21
+
22
+ def self.an_async_action(arg1, arg2)
23
+ a_sync_action
24
+ end
25
+ always_background :an_async_action
26
+
27
+ def self.a_sync_action; end
28
+ def self.foo; end
29
+ def self.bar; end
30
+ def self.optioned; end
31
+ def self.redefine_me; end
32
+
33
+ def foo; end
34
+
35
+ class << self
36
+ def singleton_class
37
+ self
38
+ end
39
+ end
40
+ end
41
+
18
42
  describe TorqueBox::Messaging::Backgroundable do
19
43
  before(:all) do
20
44
  @util = TorqueBox::Messaging::Backgroundable::Util
21
45
  end
22
46
 
23
47
  describe "always_background" do
24
- it "should be able to handle mutliple methods" do
25
- MyTestModel.always_background :foo, :bar
26
- @util.instance_methods_include?(MyTestModel, '__async_foo').should be_true
27
- @util.instance_methods_include?(MyTestModel, '__async_bar').should be_true
28
- end
48
+ context "for instance methods" do
49
+ it "should be able to handle multiple methods" do
50
+ InstanceMethodTestModel.always_background :foo, :bar
51
+ @util.instance_methods_include?(InstanceMethodTestModel, '__async_foo').should be_true
52
+ @util.instance_methods_include?(InstanceMethodTestModel, '__async_bar').should be_true
53
+ end
29
54
 
30
- it "should handle methods that are defined after the always_background call" do
31
- MyTestModel.always_background :baz
32
- @util.instance_methods_include?(MyTestModel, '__async_baz').should_not be_true
33
- MyTestModel.class_eval('def baz;end')
34
- @util.instance_methods_include?(MyTestModel, '__async_baz').should be_true
35
- end
55
+ it "should handle methods that are defined after the always_background call" do
56
+ InstanceMethodTestModel.always_background :baz
57
+ @util.instance_methods_include?(InstanceMethodTestModel, '__async_baz').should_not be_true
58
+ InstanceMethodTestModel.class_eval('def baz;end')
59
+ @util.instance_methods_include?(InstanceMethodTestModel, '__async_baz').should be_true
60
+ end
36
61
 
37
- it "should handle methods that are redefined after the always_background call" do
38
- MyTestModel.always_background :redefine_me
39
- MyTestModel.class_eval('def redefine_me; :xyz; end')
40
- MyTestModel.new.__sync_redefine_me.should == :xyz
41
- end
42
-
43
- it "should work for private methods, maintaining visibility" do
44
- MyTestModel.class_eval('private; def no_peeking;end')
45
- MyTestModel.always_background :no_peeking
46
- @util.private_instance_methods_include?(MyTestModel, 'no_peeking').should be_true
47
- @util.private_instance_methods_include?(MyTestModel, '__async_no_peeking').should be_true
48
- @util.private_instance_methods_include?(MyTestModel, '__sync_no_peeking').should be_true
62
+ it "should handle methods that are redefined after the always_background call" do
63
+ InstanceMethodTestModel.always_background :redefine_me
64
+ InstanceMethodTestModel.class_eval('def redefine_me; :xyz; end')
65
+ InstanceMethodTestModel.new.__sync_redefine_me.should == :xyz
66
+ end
67
+
68
+ it "should work for private methods, maintaining visibility" do
69
+ InstanceMethodTestModel.class_eval('private; def no_peeking;end')
70
+ InstanceMethodTestModel.always_background :no_peeking
71
+ @util.private_instance_methods_include?(InstanceMethodTestModel, 'no_peeking').should be_true
72
+ @util.private_instance_methods_include?(InstanceMethodTestModel, '__async_no_peeking').should be_true
73
+ @util.private_instance_methods_include?(InstanceMethodTestModel, '__sync_no_peeking').should be_true
74
+ end
75
+
76
+ it "should work for protected methods, maintaining visibility" do
77
+ InstanceMethodTestModel.class_eval('protected; def some_peeking;end')
78
+ InstanceMethodTestModel.always_background :some_peeking
79
+ @util.protected_instance_methods_include?(InstanceMethodTestModel, 'some_peeking').should be_true
80
+ @util.protected_instance_methods_include?(InstanceMethodTestModel, '__async_some_peeking').should be_true
81
+ @util.protected_instance_methods_include?(InstanceMethodTestModel, '__sync_some_peeking').should be_true
82
+ end
49
83
  end
50
84
 
51
- it "should work for protected methods, maintaining visibility" do
52
- MyTestModel.class_eval('protected; def some_peeking;end')
53
- MyTestModel.always_background :some_peeking
54
- @util.protected_instance_methods_include?(MyTestModel, 'some_peeking').should be_true
55
- @util.protected_instance_methods_include?(MyTestModel, '__async_some_peeking').should be_true
56
- @util.protected_instance_methods_include?(MyTestModel, '__sync_some_peeking').should be_true
85
+ context "for class methods" do
86
+ it "should work when called after the method is defined" do
87
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_an_async_action').should be_true
88
+ end
89
+
90
+ it "should be able to handle multiple methods" do
91
+ ClassMethodTestModel.always_background :foo, :bar
92
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_foo').should be_true
93
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_bar').should be_true
94
+ end
95
+
96
+ it "class methods should win a tie" do
97
+ ClassMethodTestModel.always_background :foo
98
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_foo').should be_true
99
+ @util.instance_methods_include?(ClassMethodTestModel, '__async_foo').should_not be_true
100
+ end
101
+
102
+ it "should handle methods that are defined after the always_background call" do
103
+ ClassMethodTestModel.always_background :baz
104
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_baz').should_not be_true
105
+ ClassMethodTestModel.class_eval('def self.baz;end')
106
+ @util.singleton_methods_include?(ClassMethodTestModel, '__async_baz').should be_true
107
+ end
108
+
109
+ it "should handle methods that are redefined after the always_background call" do
110
+ ClassMethodTestModel.always_background :redefine_me
111
+ ClassMethodTestModel.class_eval('def self.redefine_me; :xyz; end')
112
+ ClassMethodTestModel.__sync_redefine_me.should == :xyz
113
+ end
114
+
115
+ it "should work for private methods, maintaining visibility" do
116
+ ClassMethodTestModel.class_eval do
117
+ class << self
118
+ private
119
+ def no_peeking;end
120
+ end
121
+ end
122
+
123
+ ClassMethodTestModel.always_background :no_peeking
124
+
125
+ @util.private_singleton_methods_include?(ClassMethodTestModel,
126
+ 'no_peeking').should be_true
127
+ @util.private_singleton_methods_include?(ClassMethodTestModel,
128
+ '__async_no_peeking').should be_true
129
+ @util.private_singleton_methods_include?(ClassMethodTestModel,
130
+ '__sync_no_peeking').should be_true
131
+ end
132
+
133
+ it "should work for protected methods, maintaining visibility" do
134
+ ClassMethodTestModel.class_eval do
135
+ class << self
136
+ protected
137
+ def some_peeking;end
138
+ end
139
+ end
140
+
141
+ ClassMethodTestModel.always_background :some_peeking
142
+
143
+ @util.protected_singleton_methods_include?(ClassMethodTestModel,
144
+ 'some_peeking').should be_true
145
+ @util.protected_singleton_methods_include?(ClassMethodTestModel,
146
+ '__async_some_peeking').should be_true
147
+ @util.protected_singleton_methods_include?(ClassMethodTestModel,
148
+ '__sync_some_peeking').should be_true
149
+ end
57
150
  end
58
151
 
59
152
  end
@@ -68,16 +161,16 @@ describe TorqueBox::Messaging::Backgroundable do
68
161
 
69
162
  it "should put a message on the queue" do
70
163
  @queue.should_receive(:publish)
71
- MyTestModel.new.an_async_action(nil, nil)
164
+ InstanceMethodTestModel.new.an_async_action(nil, nil)
72
165
  end
73
166
 
74
167
  it "should return a future" do
75
- result = MyTestModel.new.an_async_action(nil, nil)
168
+ result = InstanceMethodTestModel.new.an_async_action(nil, nil)
76
169
  result.is_a?(TorqueBox::Messaging::Future).should be_true
77
170
  end
78
-
171
+
79
172
  it "should include the proper options in the message" do
80
- object = MyTestModel.new
173
+ object = InstanceMethodTestModel.new
81
174
  @queue.should_receive(:publish).with({
82
175
  :receiver => object,
83
176
  :future_id => '1234',
@@ -86,70 +179,120 @@ describe TorqueBox::Messaging::Backgroundable do
86
179
  :args => [:a, :b]
87
180
  },
88
181
  anything)
89
- object.an_async_action(:a, :b)
182
+ object.an_async_action(:a, :b)
90
183
  end
91
-
184
+
92
185
  it "should not call the action immediately" do
93
- object = MyTestModel.new
186
+ object = InstanceMethodTestModel.new
94
187
  object.should_not_receive(:a_sync_action)
95
188
  object.an_async_action(nil, nil)
96
189
  end
97
190
 
98
191
  it "should pass through the options" do
99
- MyTestModel.always_background :optioned, :priority => :low
192
+ InstanceMethodTestModel.always_background :optioned, :priority => :low
100
193
  @queue.should_receive(:publish).with(anything, hash_including(:priority => :low))
101
- MyTestModel.new.optioned
194
+ InstanceMethodTestModel.new.optioned
102
195
  end
103
196
 
104
197
  end
105
198
 
106
199
  describe 'background' do
107
- before(:each) do
108
- @queue = mock('queue')
109
- @queue.stub(:publish)
110
- TorqueBox::Messaging::Queue.stub(:new).and_return(@queue)
111
- @object = MyTestModel.new
112
- end
200
+ context "for instance methods" do
201
+ before(:each) do
202
+ @queue = mock('queue')
203
+ @queue.stub(:publish)
204
+ TorqueBox::Messaging::Queue.stub(:new).and_return(@queue)
205
+ @object = InstanceMethodTestModel.new
206
+ end
113
207
 
114
- it "should queue any method called on it" do
115
- @queue.should_receive(:publish).with(hash_including(:method => :foo),
116
- anything)
117
- @object.background.foo
118
- end
208
+ it "should queue any method called on it" do
209
+ @queue.should_receive(:publish).with(hash_including(:method => :foo),
210
+ anything)
211
+ @object.background.foo
212
+ end
119
213
 
120
- it "should queue the receiver" do
121
- @queue.should_receive(:publish).with(hash_including(:receiver => @object), anything)
122
- @object.background.foo
123
- end
214
+ it "should queue the receiver" do
215
+ @queue.should_receive(:publish).with(hash_including(:receiver => @object), anything)
216
+ @object.background.foo
217
+ end
124
218
 
125
- it "should queue the args" do
126
- @queue.should_receive(:publish).with(hash_including(:args => [1,2]), anything)
127
- @object.background.foo(1,2)
128
- end
219
+ it "should queue the args" do
220
+ @queue.should_receive(:publish).with(hash_including(:args => [1,2]), anything)
221
+ @object.background.foo(1,2)
222
+ end
129
223
 
130
- it "should raise when given a block" do
131
- lambda {
132
- @object.background.foo { }
133
- }.should raise_error(ArgumentError)
134
- end
224
+ it "should raise when given a block" do
225
+ lambda {
226
+ @object.background.foo { }
227
+ }.should raise_error(ArgumentError)
228
+ end
135
229
 
136
- it "should handle missing methods" do
137
- @object.should_receive(:method_missing)
138
- @object.background.no_method
139
- end
230
+ it "should handle missing methods" do
231
+ @object.should_receive(:method_missing)
232
+ @object.background.no_method
233
+ end
140
234
 
141
- it "should pass through any options" do
142
- @queue.should_receive(:publish).with(anything,
143
- hash_including(:ttl => 1))
144
- @object.background(:ttl => 1).foo
145
- end
235
+ it "should pass through any options" do
236
+ @queue.should_receive(:publish).with(anything,
237
+ hash_including(:ttl => 1))
238
+ @object.background(:ttl => 1).foo
239
+ end
240
+
241
+ it "should always use the :marshal encoding" do
242
+ @queue.should_receive(:publish).with(anything,
243
+ hash_including(:encoding => :marshal))
244
+ @object.background.foo
245
+ end
146
246
 
147
- it "should always use the :marshal encoding" do
148
- @queue.should_receive(:publish).with(anything,
149
- hash_including(:encoding => :marshal))
150
- @object.background.foo
151
247
  end
152
248
 
249
+ context "for class methods" do
250
+ before(:each) do
251
+ @queue = mock('queue')
252
+ @queue.stub(:publish)
253
+ TorqueBox::Messaging::Queue.stub(:new).and_return(@queue)
254
+ @object = ClassMethodTestModel
255
+ end
256
+
257
+ it "should queue any method called on it" do
258
+ @queue.should_receive(:publish).with(hash_including(:method => :foo),
259
+ anything)
260
+ @object.background.foo
261
+ end
262
+
263
+ it "should queue the receiver" do
264
+ @queue.should_receive(:publish).with(hash_including(:receiver => @object), anything)
265
+ @object.background.foo
266
+ end
267
+
268
+ it "should queue the args" do
269
+ @queue.should_receive(:publish).with(hash_including(:args => [1,2]), anything)
270
+ @object.background.foo(1,2)
271
+ end
272
+
273
+ it "should raise when given a block" do
274
+ lambda {
275
+ @object.background.foo { }
276
+ }.should raise_error(ArgumentError)
277
+ end
278
+
279
+ it "should handle missing methods" do
280
+ @object.should_receive(:method_missing)
281
+ @object.background.no_method
282
+ end
283
+
284
+ it "should pass through any options" do
285
+ @queue.should_receive(:publish).with(anything,
286
+ hash_including(:ttl => 1))
287
+ @object.background(:ttl => 1).foo
288
+ end
289
+
290
+ it "should always use the :marshal encoding" do
291
+ @queue.should_receive(:publish).with(anything,
292
+ hash_including(:encoding => :marshal))
293
+ @object.background.foo
294
+ end
295
+ end
153
296
  end
154
-
297
+
155
298
  end
metadata CHANGED
@@ -1,170 +1,191 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: torquebox-messaging
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 2.1.2
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 2.2.0
6
6
  platform: java
7
- authors:
8
- - The TorqueBox Team
9
- autorequire:
7
+ authors:
8
+ - The TorqueBox Team
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-09-24 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: torquebox-core
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - "="
22
- - !ruby/object:Gem::Version
23
- version: 2.1.2
24
- type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: torquebox-transactions
28
- prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - "="
33
- - !ruby/object:Gem::Version
34
- version: 2.1.2
35
- type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: clj
39
- prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - "="
44
- - !ruby/object:Gem::Version
45
- version: 0.0.5.6
46
- type: :runtime
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: rspec
50
- prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - "="
55
- - !ruby/object:Gem::Version
56
- version: 2.7.0
57
- type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: newrelic_rpm
61
- prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - "="
66
- - !ruby/object:Gem::Version
67
- version: 3.3.2
68
- type: :development
69
- version_requirements: *id005
70
- description: ""
71
- email:
72
- - torquebox-dev@torquebox.org
12
+ date: 2012-12-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: torquebox-core
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '='
19
+ - !ruby/object:Gem::Version
20
+ version: 2.2.0
21
+ none: false
22
+ requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.0
27
+ none: false
28
+ prerelease: false
29
+ type: :runtime
30
+ - !ruby/object:Gem::Dependency
31
+ name: torquebox-transactions
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - '='
35
+ - !ruby/object:Gem::Version
36
+ version: 2.2.0
37
+ none: false
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '='
41
+ - !ruby/object:Gem::Version
42
+ version: 2.2.0
43
+ none: false
44
+ prerelease: false
45
+ type: :runtime
46
+ - !ruby/object:Gem::Dependency
47
+ name: edn
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '='
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
53
+ none: false
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '='
57
+ - !ruby/object:Gem::Version
58
+ version: 1.0.0
59
+ none: false
60
+ prerelease: false
61
+ type: :runtime
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.7.0
69
+ none: false
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '='
73
+ - !ruby/object:Gem::Version
74
+ version: 2.7.0
75
+ none: false
76
+ prerelease: false
77
+ type: :development
78
+ - !ruby/object:Gem::Dependency
79
+ name: newrelic_rpm
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - '='
83
+ - !ruby/object:Gem::Version
84
+ version: 3.3.2
85
+ none: false
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '='
89
+ - !ruby/object:Gem::Version
90
+ version: 3.3.2
91
+ none: false
92
+ prerelease: false
93
+ type: :development
94
+ description: ''
95
+ email:
96
+ - torquebox-dev@torquebox.org
73
97
  executables: []
74
-
75
98
  extensions: []
76
-
77
99
  extra_rdoc_files: []
78
-
79
- files:
80
- - licenses/lgpl-2.1.txt
81
- - lib/torquebox-messaging.jar
82
- - lib/torquebox-messaging.rb
83
- - lib/jboss-jms-api_1.1_spec-1.0.1.Final.jar
84
- - lib/jboss-transaction-api_1.1_spec-1.0.1.Final.jar
85
- - lib/hornetq-core-2.2.18.Final.jar
86
- - lib/hornetq-jms-2.2.18.Final.jar
87
- - lib/netty-3.2.6.Final.jar
88
- - lib/org.torquebox.messaging-client.rb
89
- - lib/gem_hook.rb
90
- - lib/torquebox/messaging.rb
91
- - lib/torquebox/messaging/clojure_message.rb
92
- - lib/torquebox/messaging/message_processor.rb
93
- - lib/torquebox/messaging/backgroundable.rb
94
- - lib/torquebox/messaging/xa_session.rb
95
- - lib/torquebox/messaging/backgroundable_processor.rb
96
- - lib/torquebox/messaging/session.rb
97
- - lib/torquebox/messaging/marshal_base64_message.rb
98
- - lib/torquebox/messaging/const_missing.rb
99
- - lib/torquebox/messaging/topic.rb
100
- - lib/torquebox/messaging/connection_factory.rb
101
- - lib/torquebox/messaging/datamapper_marshaling.rb
102
- - lib/torquebox/messaging/future_status.rb
103
- - lib/torquebox/messaging/future_responder.rb
104
- - lib/torquebox/messaging/marshal_message.rb
105
- - lib/torquebox/messaging/message.rb
106
- - lib/torquebox/messaging/xa_connection.rb
107
- - lib/torquebox/messaging/echo_processor.rb
108
- - lib/torquebox/messaging/connection.rb
109
- - lib/torquebox/messaging/task.rb
110
- - lib/torquebox/messaging/queue.rb
111
- - lib/torquebox/messaging/core.rb
112
- - lib/torquebox/messaging/future.rb
113
- - lib/torquebox/messaging/text_message.rb
114
- - lib/torquebox/messaging/xa_connection_factory.rb
115
- - lib/torquebox/messaging/json_message.rb
116
- - lib/torquebox/messaging/destination.rb
117
- - lib/torquebox/messaging/processor_middleware/with_transaction.rb
118
- - lib/torquebox/messaging/processor_middleware/default_middleware.rb
119
- - lib/torquebox/messaging/processor_middleware/chain.rb
120
- - lib/torquebox/messaging/ext/javax_jms_queue_browser.rb
121
- - spec/message_spec.rb
122
- - spec/default_middleware_spec.rb
123
- - spec/task_spec.rb
124
- - spec/message_processor_spec.rb
125
- - spec/future_spec.rb
126
- - spec/chain_spec.rb
127
- - spec/future_responder_spec.rb
128
- - spec/backgroundable_spec.rb
129
- - spec/destination_spec.rb
130
- - spec/json_message_spec.rb
131
- - spec/datamapper_marshaling_spec.rb
100
+ files:
101
+ - licenses/lgpl-2.1.txt
102
+ - lib/torquebox-messaging.jar
103
+ - lib/torquebox-messaging.rb
104
+ - lib/jboss-jms-api_1.1_spec-1.0.1.Final.jar
105
+ - lib/jboss-transaction-api_1.1_spec-1.0.1.Final.jar
106
+ - lib/hornetq-core-2.2.21.Final.jar
107
+ - lib/hornetq-jms-2.2.21.Final.jar
108
+ - lib/netty-3.2.6.Final.jar
109
+ - lib/gem_hook.rb
110
+ - lib/org.torquebox.messaging-client.rb
111
+ - lib/torquebox/messaging.rb
112
+ - lib/torquebox/messaging/session.rb
113
+ - lib/torquebox/messaging/connection.rb
114
+ - lib/torquebox/messaging/datamapper_marshaling.rb
115
+ - lib/torquebox/messaging/backgroundable.rb
116
+ - lib/torquebox/messaging/marshal_message.rb
117
+ - lib/torquebox/messaging/echo_processor.rb
118
+ - lib/torquebox/messaging/xa_connection_factory.rb
119
+ - lib/torquebox/messaging/message_processor.rb
120
+ - lib/torquebox/messaging/json_message.rb
121
+ - lib/torquebox/messaging/xa_session.rb
122
+ - lib/torquebox/messaging/message.rb
123
+ - lib/torquebox/messaging/edn_message.rb
124
+ - lib/torquebox/messaging/task.rb
125
+ - lib/torquebox/messaging/connection_factory.rb
126
+ - lib/torquebox/messaging/marshal_base64_message.rb
127
+ - lib/torquebox/messaging/queue.rb
128
+ - lib/torquebox/messaging/xa_connection.rb
129
+ - lib/torquebox/messaging/backgroundable_processor.rb
130
+ - lib/torquebox/messaging/future.rb
131
+ - lib/torquebox/messaging/future_status.rb
132
+ - lib/torquebox/messaging/text_message.rb
133
+ - lib/torquebox/messaging/const_missing.rb
134
+ - lib/torquebox/messaging/destination.rb
135
+ - lib/torquebox/messaging/topic.rb
136
+ - lib/torquebox/messaging/future_responder.rb
137
+ - lib/torquebox/messaging/core.rb
138
+ - lib/torquebox/messaging/ext/javax_jms_queue_browser.rb
139
+ - lib/torquebox/messaging/processor_middleware/with_transaction.rb
140
+ - lib/torquebox/messaging/processor_middleware/chain.rb
141
+ - lib/torquebox/messaging/processor_middleware/default_middleware.rb
142
+ - spec/task_spec.rb
143
+ - spec/backgroundable_spec.rb
144
+ - spec/future_spec.rb
145
+ - spec/default_middleware_spec.rb
146
+ - spec/destination_spec.rb
147
+ - spec/message_spec.rb
148
+ - spec/message_processor_spec.rb
149
+ - spec/chain_spec.rb
150
+ - spec/json_message_spec.rb
151
+ - spec/future_responder_spec.rb
152
+ - spec/datamapper_marshaling_spec.rb
132
153
  homepage: http://torquebox.org/
133
- licenses:
134
- - lgpl
135
- post_install_message:
154
+ licenses:
155
+ - lgpl
156
+ post_install_message:
136
157
  rdoc_options: []
137
-
138
- require_paths:
139
- - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
158
+ require_paths:
159
+ - lib
160
+ required_ruby_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: !binary |-
165
+ MA==
141
166
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: "0"
146
- required_rubygems_version: !ruby/object:Gem::Requirement
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: !binary |-
172
+ MA==
147
173
  none: false
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: "0"
152
174
  requirements: []
153
-
154
- rubyforge_project:
175
+ rubyforge_project:
155
176
  rubygems_version: 1.8.24
156
- signing_key:
177
+ signing_key:
157
178
  specification_version: 3
158
179
  summary: TorqueBox Messaging Client
159
- test_files:
160
- - spec/message_spec.rb
161
- - spec/default_middleware_spec.rb
162
- - spec/task_spec.rb
163
- - spec/message_processor_spec.rb
164
- - spec/future_spec.rb
165
- - spec/chain_spec.rb
166
- - spec/future_responder_spec.rb
167
- - spec/backgroundable_spec.rb
168
- - spec/destination_spec.rb
169
- - spec/json_message_spec.rb
170
- - spec/datamapper_marshaling_spec.rb
180
+ test_files:
181
+ - spec/task_spec.rb
182
+ - spec/backgroundable_spec.rb
183
+ - spec/future_spec.rb
184
+ - spec/default_middleware_spec.rb
185
+ - spec/destination_spec.rb
186
+ - spec/message_spec.rb
187
+ - spec/message_processor_spec.rb
188
+ - spec/chain_spec.rb
189
+ - spec/json_message_spec.rb
190
+ - spec/future_responder_spec.rb
191
+ - spec/datamapper_marshaling_spec.rb