stompserver_ng 1.0.6

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.
Files changed (72) hide show
  1. data/History.txt +159 -0
  2. data/Manifest.txt +71 -0
  3. data/README.txt +172 -0
  4. data/Rakefile +38 -0
  5. data/STATUS +5 -0
  6. data/bin/stompserver_ng +63 -0
  7. data/client/README.txt +1 -0
  8. data/client/both.rb +25 -0
  9. data/client/consume.rb +14 -0
  10. data/client/send.rb +17 -0
  11. data/config/stompserver_ng.conf +11 -0
  12. data/etc/19xcompat/notes.txt +223 -0
  13. data/etc/arutils/README-activerecord.txt +78 -0
  14. data/etc/arutils/cre_mysql.rb +34 -0
  15. data/etc/arutils/cre_postgres.rb +33 -0
  16. data/etc/arutils/cre_sqlite3.rb +28 -0
  17. data/etc/arutils/mysql_boot.sql +12 -0
  18. data/etc/arutils/postgres_boot.sql +14 -0
  19. data/etc/database.mysql.yml +9 -0
  20. data/etc/database.postgres.yml +9 -0
  21. data/etc/passwd.example +3 -0
  22. data/etc/ppqinfo.rb +15 -0
  23. data/etc/runserver.sh +17 -0
  24. data/etc/stompserver_ng +50 -0
  25. data/etc/stompserver_ng.conf +13 -0
  26. data/lib/stomp_server_ng.rb +471 -0
  27. data/lib/stomp_server_ng/protocols/http.rb +128 -0
  28. data/lib/stomp_server_ng/protocols/stomp.rb +407 -0
  29. data/lib/stomp_server_ng/qmonitor.rb +58 -0
  30. data/lib/stomp_server_ng/queue.rb +248 -0
  31. data/lib/stomp_server_ng/queue/activerecord_queue.rb +118 -0
  32. data/lib/stomp_server_ng/queue/ar_message.rb +21 -0
  33. data/lib/stomp_server_ng/queue/ar_reconnect.rb +18 -0
  34. data/lib/stomp_server_ng/queue/dbm_queue.rb +72 -0
  35. data/lib/stomp_server_ng/queue/file_queue.rb +56 -0
  36. data/lib/stomp_server_ng/queue/memory_queue.rb +64 -0
  37. data/lib/stomp_server_ng/queue_manager.rb +302 -0
  38. data/lib/stomp_server_ng/stomp_auth.rb +26 -0
  39. data/lib/stomp_server_ng/stomp_frame.rb +32 -0
  40. data/lib/stomp_server_ng/stomp_frame_recognizer.rb +77 -0
  41. data/lib/stomp_server_ng/stomp_id.rb +32 -0
  42. data/lib/stomp_server_ng/stomp_user.rb +17 -0
  43. data/lib/stomp_server_ng/test_server.rb +21 -0
  44. data/lib/stomp_server_ng/topic_manager.rb +46 -0
  45. data/setup.rb +1585 -0
  46. data/stompserver_ng.gemspec +136 -0
  47. data/test/devserver/props.yaml +5 -0
  48. data/test/devserver/runserver.sh +16 -0
  49. data/test/devserver/stompserver_ng.dbm.conf +12 -0
  50. data/test/devserver/stompserver_ng.file.conf +12 -0
  51. data/test/devserver/stompserver_ng.memory.conf +12 -0
  52. data/test/noserver/mocklogger.rb +12 -0
  53. data/test/noserver/test_queue_manager.rb +134 -0
  54. data/test/noserver/test_stomp_frame.rb +138 -0
  55. data/test/noserver/test_topic_manager.rb +79 -0
  56. data/test/noserver/ts_all_no_server.rb +12 -0
  57. data/test/props.yaml +5 -0
  58. data/test/runalltests.sh +14 -0
  59. data/test/runtest.sh +4 -0
  60. data/test/test_0000_base.rb +107 -0
  61. data/test/test_0001_conn.rb +47 -0
  62. data/test/test_0002_conn_sr.rb +94 -0
  63. data/test/test_0006_client.rb +41 -0
  64. data/test/test_0011_send_recv.rb +74 -0
  65. data/test/test_0015_ack_conn.rb +78 -0
  66. data/test/test_0017_ack_client.rb +78 -0
  67. data/test/test_0019_ack_no_ack.rb +145 -0
  68. data/test/test_0022_ack_noack_conn.rb +123 -0
  69. data/test/test_0030_subscr_id.rb +44 -0
  70. data/test/test_0040_receipt_conn.rb +87 -0
  71. data/test/ts_all_server.rb +10 -0
  72. metadata +196 -0
@@ -0,0 +1,87 @@
1
+ require 'rubygems'
2
+ require 'stomp'
3
+ #
4
+ require 'test/unit'
5
+ $:.unshift File.dirname(__FILE__)
6
+ require 'test_0000_base'
7
+ #
8
+ # Test the most basic use of receipts.
9
+ #
10
+ class Test_0040_Receipt_Conn < Test_0000_Base
11
+
12
+ # Setup.
13
+ # * Queue name
14
+ # * Message
15
+ # * Receipt ID
16
+ # * RECEIPT Command
17
+ def setup
18
+ super
19
+ @queuename = "/queue/receipt/" + name()
20
+ @test_message = "Abracadabra!"
21
+ @receipt_id = "zztop-" + name()
22
+ @recpt_command = "RECEIPT"
23
+ @msg_command = "MESSAGE"
24
+ end
25
+
26
+ # Teardown.
27
+ def teardown
28
+ end
29
+
30
+ # Send Get Receipt.
31
+ # * Put a message on a queue
32
+ # * Disconnect and reconnect
33
+ # * Subscribe with receipt requested
34
+ # * Receive the message and the receipt
35
+ # * Insure all received information is correct
36
+ #
37
+ # Note: Some servers can vary the order in which the RECEIPT frame and
38
+ # MESSAGE frame are emitted. ActiveMQ e.g. exhibits this behavior.
39
+ #
40
+ # Sometimes:
41
+ #
42
+ # * RECEIPT frame is first
43
+ # * MESSAGE frame is second
44
+ #
45
+ # and other times the order is reversed.
46
+ #
47
+ # Further, this behavior is in line with the stomp specification, which
48
+ # does not indicate _when_ a receipt will be sent: only that it _will_
49
+ # be sent.
50
+ #
51
+ def test_0010_send_get_receipt
52
+ # Put something on the queue
53
+ open_conn()
54
+ assert_nothing_raised() {
55
+ @conn.publish(@queuename, @test_message)
56
+ }
57
+ disconnect_conn()
58
+ # Now get it with a receipt requested.
59
+ open_conn()
60
+ msg_01 = msg_02 = nil
61
+ assert_nothing_raised() {
62
+ connection_subscribe(@queuename, "receipt" => @receipt_id)
63
+ msg_01 = @conn.receive
64
+ msg_02 = @conn.receive
65
+ }
66
+ disconnect_conn()
67
+ #
68
+ assert_not_nil(msg_01, "message 1 should be present")
69
+ assert_not_nil(msg_02, "message 2 should be present")
70
+ #
71
+ recpt = msg = nil
72
+ case msg_01.command
73
+ when @recpt_command
74
+ recpt, msg = msg_01, msg_02
75
+ when @msg_command
76
+ msg, recpt = msg_01, msg_02
77
+ else
78
+ fail "Invalid frame: #{msg_01.command}"
79
+ end
80
+ #
81
+ assert_equal(@receipt_id, recpt.headers['receipt-id'],
82
+ "receipt ID should match")
83
+ assert_equal(recpt.body, '', "receipt body should be empty")
84
+ assert_equal(@test_message, msg.body, "receive should be what is sent")
85
+ end
86
+ end # of class
87
+
@@ -0,0 +1,10 @@
1
+ #
2
+ # Run all tests which require a server instance to be up.
3
+ #
4
+ here=File.dirname(__FILE__)
5
+ Dir.glob("#{here}/test_0*.rb").each do |file|
6
+ next if file =~ /_0000_/
7
+ puts "Will require unit test file: #{file}"
8
+ require file
9
+ end
10
+
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stompserver_ng
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.6
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Patrick Hurley
9
+ - Lionel Bouton
10
+ - snacktime
11
+ - gyver
12
+ - Mike Mangino
13
+ - robl
14
+ - gmallard
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+ date: 2011-04-21 00:00:00.000000000 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: daemons
22
+ requirement: !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: 1.0.10
28
+ type: :runtime
29
+ prerelease: false
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 1.0.10
36
+ - !ruby/object:Gem::Dependency
37
+ name: eventmachine
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 0.12.10
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: 0.12.10
52
+ - !ruby/object:Gem::Dependency
53
+ name: uuid
54
+ requirement: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: 2.1.0
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: 2.1.0
68
+ description: STOMP Next Generation Ruby server.
69
+ email:
70
+ - phurley-blocked@rubyforge.org
71
+ - lionel-dev@bouton.name
72
+ - snacktime@somewhere.com
73
+ - gyver@somewhere.com
74
+ - mmangino-blocked@rubyforge.org
75
+ - robl@monkeyhelper.com
76
+ - allard.guy.m@gmail.com
77
+ executables:
78
+ - stompserver_ng
79
+ extensions: []
80
+ extra_rdoc_files:
81
+ - README.txt
82
+ files:
83
+ - History.txt
84
+ - Manifest.txt
85
+ - README.txt
86
+ - Rakefile
87
+ - STATUS
88
+ - bin/stompserver_ng
89
+ - client/README.txt
90
+ - client/both.rb
91
+ - client/consume.rb
92
+ - client/send.rb
93
+ - config/stompserver_ng.conf
94
+ - etc/19xcompat/notes.txt
95
+ - etc/arutils/README-activerecord.txt
96
+ - etc/arutils/cre_mysql.rb
97
+ - etc/arutils/cre_postgres.rb
98
+ - etc/arutils/cre_sqlite3.rb
99
+ - etc/arutils/mysql_boot.sql
100
+ - etc/arutils/postgres_boot.sql
101
+ - etc/database.mysql.yml
102
+ - etc/database.postgres.yml
103
+ - etc/passwd.example
104
+ - etc/ppqinfo.rb
105
+ - etc/runserver.sh
106
+ - etc/stompserver_ng
107
+ - etc/stompserver_ng.conf
108
+ - lib/stomp_server_ng.rb
109
+ - lib/stomp_server_ng/protocols/http.rb
110
+ - lib/stomp_server_ng/protocols/stomp.rb
111
+ - lib/stomp_server_ng/qmonitor.rb
112
+ - lib/stomp_server_ng/queue.rb
113
+ - lib/stomp_server_ng/queue/activerecord_queue.rb
114
+ - lib/stomp_server_ng/queue/ar_message.rb
115
+ - lib/stomp_server_ng/queue/ar_reconnect.rb
116
+ - lib/stomp_server_ng/queue/dbm_queue.rb
117
+ - lib/stomp_server_ng/queue/file_queue.rb
118
+ - lib/stomp_server_ng/queue/memory_queue.rb
119
+ - lib/stomp_server_ng/queue_manager.rb
120
+ - lib/stomp_server_ng/stomp_auth.rb
121
+ - lib/stomp_server_ng/stomp_frame.rb
122
+ - lib/stomp_server_ng/stomp_frame_recognizer.rb
123
+ - lib/stomp_server_ng/stomp_id.rb
124
+ - lib/stomp_server_ng/stomp_user.rb
125
+ - lib/stomp_server_ng/test_server.rb
126
+ - lib/stomp_server_ng/topic_manager.rb
127
+ - setup.rb
128
+ - stompserver_ng.gemspec
129
+ - test/devserver/props.yaml
130
+ - test/devserver/runserver.sh
131
+ - test/devserver/stompserver_ng.dbm.conf
132
+ - test/devserver/stompserver_ng.file.conf
133
+ - test/devserver/stompserver_ng.memory.conf
134
+ - test/noserver/mocklogger.rb
135
+ - test/noserver/test_queue_manager.rb
136
+ - test/noserver/test_stomp_frame.rb
137
+ - test/noserver/test_topic_manager.rb
138
+ - test/noserver/ts_all_no_server.rb
139
+ - test/props.yaml
140
+ - test/runalltests.sh
141
+ - test/runtest.sh
142
+ - test/test_0000_base.rb
143
+ - test/test_0001_conn.rb
144
+ - test/test_0002_conn_sr.rb
145
+ - test/test_0006_client.rb
146
+ - test/test_0011_send_recv.rb
147
+ - test/test_0015_ack_conn.rb
148
+ - test/test_0017_ack_client.rb
149
+ - test/test_0019_ack_no_ack.rb
150
+ - test/test_0022_ack_noack_conn.rb
151
+ - test/test_0030_subscr_id.rb
152
+ - test/test_0040_receipt_conn.rb
153
+ - test/ts_all_server.rb
154
+ homepage: http://github.com/gmallard/stompserver_ng
155
+ licenses: []
156
+ post_install_message:
157
+ rdoc_options: []
158
+ require_paths:
159
+ - lib
160
+ required_ruby_version: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ requirements: []
173
+ rubyforge_project:
174
+ rubygems_version: 1.8.25
175
+ signing_key:
176
+ specification_version: 3
177
+ summary: A very light messaging server, next generation
178
+ test_files:
179
+ - test/noserver/mocklogger.rb
180
+ - test/noserver/test_queue_manager.rb
181
+ - test/noserver/test_stomp_frame.rb
182
+ - test/noserver/test_topic_manager.rb
183
+ - test/noserver/ts_all_no_server.rb
184
+ - test/test_0000_base.rb
185
+ - test/test_0001_conn.rb
186
+ - test/test_0002_conn_sr.rb
187
+ - test/test_0006_client.rb
188
+ - test/test_0011_send_recv.rb
189
+ - test/test_0015_ack_conn.rb
190
+ - test/test_0017_ack_client.rb
191
+ - test/test_0019_ack_no_ack.rb
192
+ - test/test_0022_ack_noack_conn.rb
193
+ - test/test_0030_subscr_id.rb
194
+ - test/test_0040_receipt_conn.rb
195
+ - test/ts_all_server.rb
196
+ has_rdoc: