stompserver_ng 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: