stapfen 2.1.0 → 2.1.1

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.
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