stapfen 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWZmOWJmNmUzNmU2MDA1MmUzZDJhOGM5ZmRlMDMwOGZjMmU5YWM4MA==
5
- data.tar.gz: !binary |-
6
- NGM4ODgxMTUwMjFhZTQyYTE3ZjgxODgzOThlMDYzYjcxN2JjMGUyMg==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- ZTU4OTgyZmFkY2EyZTAwYmEyNDQxMWI3NjhkOTNiNTA0MGIwOWM2ZDM5NzY3
10
- NTQ4ZDVlYTAxYWM1YWJjOTQxYzIwNWI1Zjk4OGFjN2ZlN2QwMTAxZGEzYzMz
11
- M2YwNDdiMWQwODkzMmEyOWMwM2M3OTQyMDVkNzEyNDY1NDZjOWE=
12
- data.tar.gz: !binary |-
13
- NjNhOTRiNjcwMWY4YjRkNThhOWJkYzM4ZTZmZDAzNTA5NjQ4YmQzOGEzYjJl
14
- YmJiMGE4MDZmMGJjMmQ1MDYyNDVlODA2ZDQxZWIwMzVmOWE1YTA4ZTMxYmY4
15
- NDg0OTc0ZjlmZmU2ZGM5MjAwNjhlYzFhYTM1NTk1ZmNiZDM2YzU=
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 19bdf4344cf49d95cee8597de1902b9a814a1b90
4
+ data.tar.gz: 06ad77a4f72ea1cce8269e92a19ce2cf6872474b
5
+ SHA512:
6
+ metadata.gz: 09b0dfd450a6e4387250b0d0c4b49734891ea5f07db900b7cdb33412b731352b5cd0a192663b898e383030c2938710f29238716b0b793d181adbed35157155aa
7
+ data.tar.gz: 79104895c26a380204fe1cddbe0304e255e87d522ada0c1c38fe7dad16457b10d9bec4bdb82cd44b55f21bd21ecc09cba1ec8b8abc2287cf2a23663f23ed10b3
data/examples/simple.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
2
2
  require 'stapfen'
3
+ require ENV['activemq_jar'] if ENV['USE_JMS']
3
4
 
4
5
 
5
6
  class Worker < Stapfen::Worker
@@ -13,19 +14,31 @@ class Worker < Stapfen::Worker
13
14
  :passcode => 'guest',
14
15
  :ssl => false
15
16
  }
16
- ]}
17
+ ],
18
+ :factory => 'org.apache.activemq.ActiveMQConnectionFactory'}
17
19
  end
18
20
 
19
- consume 'jms.queue.test' do |message|
20
- puts "received: #{message}"
21
- end
21
+ use_jms! if ENV['USE_JMS']
22
+
23
+ if ENV['USE_JMS']
24
+ consume '/queue/jms.queue.test',
25
+ :max_redeliveries => 3,
26
+ :dead_letter_queue => '/queue/jms.queue.test/dlq' do |message|
27
+ puts "received: #{message}"
22
28
 
23
- consume 'jms.topic.foo', {:ack => 'client'} do |message|
24
- main_thread do
25
- client.acknowledge(message)
29
+ # False here forces an unreceive
30
+ return false
31
+ end
32
+ else # use stomp
33
+ consume '/queue/test',
34
+ :max_redeliveries => 3,
35
+ :dead_letter_queue => '/queue/test/dlq' do |message|
36
+ puts "received: #{message}"
37
+
38
+ # False here forces an unreceive
39
+ return false
26
40
  end
27
41
  end
28
42
  end
29
43
 
30
-
31
44
  Worker.run!
@@ -103,20 +103,14 @@ module Stapfen
103
103
  def unreceive(message, unreceive_headers)
104
104
  return if unreceive_headers[:max_redeliveries].nil? && unreceive_headers[:max_redeliveries].nil?
105
105
 
106
- headers = message.headers
107
- retry_count = headers.delete('retry_count').to_i || 0
108
- retry_count += 1
109
- headers['retry_count'] = retry_count
110
-
111
- destination = headers.delete('destination')
106
+ destination = message.destination.to_s.sub('queue://','/queue/').sub('topic://','/topic')
107
+ retry_count = message.getStringProperty('retry_count').to_i || 0
108
+ retry_count +=1
112
109
 
113
110
  if unreceive_headers[:max_redeliveries] && (retry_count <= unreceive_headers[:max_redeliveries])
114
- self.publish(destination, message.body, headers)
111
+ self.publish(destination, message.data, {'retry_count' => retry_count.to_s})
115
112
  elsif unreceive_headers[:dead_letter_queue] # Done retrying, send to DLQ
116
- headers['original_destination'] = destination
117
- headers.delete('retry_count')
118
-
119
- self.publish(unreceive_headers[:dead_letter_queue], message.body, headers)
113
+ self.publish(unreceive_headers[:dead_letter_queue], message.data, {:original_destination => destination})
120
114
  end
121
115
  end
122
116
  end
@@ -1,3 +1,3 @@
1
1
  module Stapfen
2
- VERSION = '2.1.0'
2
+ VERSION = '2.1.1'
3
3
  end
@@ -17,7 +17,7 @@ if RUBY_PLATFORM == 'java'
17
17
 
18
18
  describe '#unreceive' do
19
19
  let(:body) { 'Some body in string form' }
20
- let(:message) { double('Message', :headers => msg_headers.merge('destination' => orig_destination), :body => body) }
20
+ let(:message) { double('Message', :destination => orig_destination, :data => body, :getStringProperty => nil) }
21
21
  let(:max_redeliveries) { 2 }
22
22
  let(:dlq) { '/queue/some_queue/dlq' }
23
23
  let(:unreceive_headers) do
@@ -25,16 +25,9 @@ if RUBY_PLATFORM == 'java'
25
25
  end
26
26
  let(:orig_destination) { '/queue/some_queue' }
27
27
 
28
- # Just to make sure we preserve any headers we don't explicitly get rid of
29
- let(:orig_headers) do
30
- { 'key1' => 'value1' }
31
- end
32
-
33
-
34
28
  subject(:unreceive!) { client.unreceive(message, unreceive_headers) }
35
29
 
36
30
  context 'with no unreceive[:max_redeliveries] or unreceive[:dead_letter_queue]' do
37
- let(:msg_headers) { orig_headers }
38
31
  let(:unreceive_headers) { Hash.new }
39
32
 
40
33
  it 'should not resend the message' do
@@ -45,13 +38,15 @@ if RUBY_PLATFORM == 'java'
45
38
  end
46
39
 
47
40
  context 'On a message with no retry_count in the headers' do
48
- let(:msg_headers) { orig_headers }
41
+ before :each do
42
+ message.stub(:getStringProperty).with('retry_count').and_return(nil)
43
+ end
49
44
 
50
45
  it 'should publish it to the same destination with a retry_count of 1' do
51
46
  client.should_receive(:publish) do |dest, the_body, the_headers|
52
47
  expect(dest).to eql orig_destination
53
48
  expect(the_body).to eql body
54
- expect(the_headers).to eql msg_headers.merge({'retry_count' => 1})
49
+ expect(the_headers).to eql({'retry_count' => '1'})
55
50
  end
56
51
 
57
52
  unreceive!
@@ -59,7 +54,10 @@ if RUBY_PLATFORM == 'java'
59
54
  end
60
55
 
61
56
  context 'On a message with a retry_count in the headers' do
62
- let(:msg_headers) { orig_headers.merge('retry_count' => retry_count) }
57
+ before :each do
58
+ message.stub(:getStringProperty).with('retry_count').and_return(retry_count)
59
+ end
60
+
63
61
 
64
62
  context 'that is less than max_redeliveries' do
65
63
  let(:retry_count) { max_redeliveries - 1 }
@@ -70,7 +68,7 @@ if RUBY_PLATFORM == 'java'
70
68
  expect(the_body).to eql body
71
69
 
72
70
 
73
- expect(the_headers).to eql msg_headers.merge({'retry_count' => retry_count + 1})
71
+ expect(the_headers).to eql({'retry_count' => (retry_count + 1).to_s})
74
72
  end
75
73
 
76
74
  unreceive!
@@ -86,11 +84,7 @@ if RUBY_PLATFORM == 'java'
86
84
  expect(the_body).to eql body
87
85
  expect(dest).to eql dlq
88
86
 
89
- # Headers should eql msg_headers except for retry count,
90
- # and original_destination
91
- msg_headers.delete('retry_count')
92
- msg_headers['original_destination'] = orig_destination
93
- expect(the_headers).to eql msg_headers
87
+ expect(the_headers).to eql({:original_destination => orig_destination})
94
88
  end
95
89
 
96
90
  unreceive!
@@ -105,11 +99,7 @@ if RUBY_PLATFORM == 'java'
105
99
  expect(the_body).to eql body
106
100
  expect(dest).to eql dlq
107
101
 
108
- # Headers should eql msg_headers except for retry count,
109
- # and original_destination
110
- msg_headers.delete('retry_count')
111
- msg_headers['original_destination'] = orig_destination
112
- expect(the_headers).to eql msg_headers
102
+ expect(the_headers).to eql({:original_destination => orig_destination})
113
103
  end
114
104
 
115
105
  unreceive!
metadata CHANGED
@@ -1,22 +1,27 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stapfen
3
- version: !ruby/object:Gem::Version
4
- version: 2.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.1
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - R. Tyler Croy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-22 00:00:00.000000000 Z
11
+
12
+ date: 2014-01-28 00:00:00 Z
12
13
  dependencies: []
14
+
13
15
  description: A simple gem for writing good basic STOMP workers
14
- email:
16
+ email:
15
17
  - rtyler.croy@lookout.com
16
18
  executables: []
19
+
17
20
  extensions: []
21
+
18
22
  extra_rdoc_files: []
19
- files:
23
+
24
+ files:
20
25
  - .gitignore
21
26
  - CHANGES.md
22
27
  - Gemfile
@@ -42,30 +47,33 @@ files:
42
47
  - spec/spec_helper.rb
43
48
  - spec/worker_spec.rb
44
49
  - stapfen.gemspec
45
- homepage: ''
50
+ homepage: ""
46
51
  licenses: []
52
+
47
53
  metadata: {}
54
+
48
55
  post_install_message:
49
56
  rdoc_options: []
50
- require_paths:
57
+
58
+ require_paths:
51
59
  - lib
52
- required_ruby_version: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
57
- required_rubygems_version: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - &id001
63
+ - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - *id001
62
69
  requirements: []
70
+
63
71
  rubyforge_project:
64
- rubygems_version: 2.1.10
72
+ rubygems_version: 2.2.1
65
73
  signing_key:
66
74
  specification_version: 4
67
75
  summary: A simple gem for writing good basic STOMP workers
68
- test_files:
76
+ test_files:
69
77
  - spec/client/jms_spec.rb
70
78
  - spec/client/stomp_spec.rb
71
79
  - spec/client_spec.rb