stompserver_ng 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +159 -0
- data/Manifest.txt +71 -0
- data/README.txt +172 -0
- data/Rakefile +38 -0
- data/STATUS +5 -0
- data/bin/stompserver_ng +63 -0
- data/client/README.txt +1 -0
- data/client/both.rb +25 -0
- data/client/consume.rb +14 -0
- data/client/send.rb +17 -0
- data/config/stompserver_ng.conf +11 -0
- data/etc/19xcompat/notes.txt +223 -0
- data/etc/arutils/README-activerecord.txt +78 -0
- data/etc/arutils/cre_mysql.rb +34 -0
- data/etc/arutils/cre_postgres.rb +33 -0
- data/etc/arutils/cre_sqlite3.rb +28 -0
- data/etc/arutils/mysql_boot.sql +12 -0
- data/etc/arutils/postgres_boot.sql +14 -0
- data/etc/database.mysql.yml +9 -0
- data/etc/database.postgres.yml +9 -0
- data/etc/passwd.example +3 -0
- data/etc/ppqinfo.rb +15 -0
- data/etc/runserver.sh +17 -0
- data/etc/stompserver_ng +50 -0
- data/etc/stompserver_ng.conf +13 -0
- data/lib/stomp_server_ng.rb +471 -0
- data/lib/stomp_server_ng/protocols/http.rb +128 -0
- data/lib/stomp_server_ng/protocols/stomp.rb +407 -0
- data/lib/stomp_server_ng/qmonitor.rb +58 -0
- data/lib/stomp_server_ng/queue.rb +248 -0
- data/lib/stomp_server_ng/queue/activerecord_queue.rb +118 -0
- data/lib/stomp_server_ng/queue/ar_message.rb +21 -0
- data/lib/stomp_server_ng/queue/ar_reconnect.rb +18 -0
- data/lib/stomp_server_ng/queue/dbm_queue.rb +72 -0
- data/lib/stomp_server_ng/queue/file_queue.rb +56 -0
- data/lib/stomp_server_ng/queue/memory_queue.rb +64 -0
- data/lib/stomp_server_ng/queue_manager.rb +302 -0
- data/lib/stomp_server_ng/stomp_auth.rb +26 -0
- data/lib/stomp_server_ng/stomp_frame.rb +32 -0
- data/lib/stomp_server_ng/stomp_frame_recognizer.rb +77 -0
- data/lib/stomp_server_ng/stomp_id.rb +32 -0
- data/lib/stomp_server_ng/stomp_user.rb +17 -0
- data/lib/stomp_server_ng/test_server.rb +21 -0
- data/lib/stomp_server_ng/topic_manager.rb +46 -0
- data/setup.rb +1585 -0
- data/stompserver_ng.gemspec +136 -0
- data/test/devserver/props.yaml +5 -0
- data/test/devserver/runserver.sh +16 -0
- data/test/devserver/stompserver_ng.dbm.conf +12 -0
- data/test/devserver/stompserver_ng.file.conf +12 -0
- data/test/devserver/stompserver_ng.memory.conf +12 -0
- data/test/noserver/mocklogger.rb +12 -0
- data/test/noserver/test_queue_manager.rb +134 -0
- data/test/noserver/test_stomp_frame.rb +138 -0
- data/test/noserver/test_topic_manager.rb +79 -0
- data/test/noserver/ts_all_no_server.rb +12 -0
- data/test/props.yaml +5 -0
- data/test/runalltests.sh +14 -0
- data/test/runtest.sh +4 -0
- data/test/test_0000_base.rb +107 -0
- data/test/test_0001_conn.rb +47 -0
- data/test/test_0002_conn_sr.rb +94 -0
- data/test/test_0006_client.rb +41 -0
- data/test/test_0011_send_recv.rb +74 -0
- data/test/test_0015_ack_conn.rb +78 -0
- data/test/test_0017_ack_client.rb +78 -0
- data/test/test_0019_ack_no_ack.rb +145 -0
- data/test/test_0022_ack_noack_conn.rb +123 -0
- data/test/test_0030_subscr_id.rb +44 -0
- data/test/test_0040_receipt_conn.rb +87 -0
- data/test/ts_all_server.rb +10 -0
- metadata +196 -0
data/bin/stompserver_ng
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'etc'
|
4
|
+
require 'yaml'
|
5
|
+
require 'daemons/daemonize'
|
6
|
+
require 'stomp_server_ng'
|
7
|
+
require 'optparse'
|
8
|
+
require 'logger'
|
9
|
+
|
10
|
+
$STOMP_SERVER = true
|
11
|
+
|
12
|
+
$HTTP_ENABLE = false
|
13
|
+
if $HTTP_ENABLE
|
14
|
+
require 'mongrel'
|
15
|
+
require 'stomp_server/protocols/http'
|
16
|
+
end
|
17
|
+
#
|
18
|
+
# Use epoll if available.
|
19
|
+
#
|
20
|
+
EventMachine::epoll
|
21
|
+
#
|
22
|
+
# Run.
|
23
|
+
#
|
24
|
+
EventMachine::run do
|
25
|
+
|
26
|
+
## Get the configuration and initialize the stomp engine
|
27
|
+
config = StompServer::Configurator.new
|
28
|
+
stomp = StompServer::Run.new(config.opts)
|
29
|
+
stomp.start
|
30
|
+
|
31
|
+
log = Logger.new(STDOUT)
|
32
|
+
log.level = Logger::DEBUG
|
33
|
+
|
34
|
+
# Might want to uncomment this if you are sending large files
|
35
|
+
#EventMachine::add_periodic_timer 10, proc {GC.start}
|
36
|
+
|
37
|
+
log.debug "Client authorization enabled" if config.opts[:auth]
|
38
|
+
|
39
|
+
## Start protocol handlers
|
40
|
+
|
41
|
+
log.debug "Stomp protocol handler starting on #{config.opts[:host]} port #{config.opts[:port]}"
|
42
|
+
EventMachine.start_server(config.opts[:host],
|
43
|
+
config.opts[:port],
|
44
|
+
StompServer::Protocols::Stomp,
|
45
|
+
stomp.auth_required, # *args: arg[0]
|
46
|
+
stomp.queue_manager, # *args: arg[1]
|
47
|
+
stomp.topic_manager, # *args: arg[2]
|
48
|
+
stomp.stompauth, # *args: arg[3]
|
49
|
+
config.opts # Options hash
|
50
|
+
)
|
51
|
+
|
52
|
+
# TODO: any http testing and protocol handler changes required.
|
53
|
+
if $HTTP_ENABLE
|
54
|
+
log.debug "Http protocol handler starting on #{config.opts[:host]} port 8080"
|
55
|
+
EventMachine.start_server(config.opts[:host], 8080, StompServer::Protocols::Http) {|s| s.instance_eval {
|
56
|
+
@@auth_required=stomp.auth_required
|
57
|
+
@@queue_manager=stomp.queue_manager
|
58
|
+
@@topic_manager=stomp.topic_manager
|
59
|
+
@@stompauth = stomp.stompauth
|
60
|
+
}
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
data/client/README.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Samples of how to use the ruby stomp client with stompserver
|
data/client/both.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'stomp'
|
3
|
+
client = Stomp::Client.open "login", "passcode", "localhost", 61613
|
4
|
+
|
5
|
+
client.subscribe("/queue/client2", {
|
6
|
+
"persistent" => true,
|
7
|
+
"ack" => 'client',
|
8
|
+
"client-id" => "rubyClient",
|
9
|
+
} ) do |message|
|
10
|
+
puts "Got Reply: #{message.headers['message-id']} - #{message.body} on #{message.headers['destination']}"
|
11
|
+
end
|
12
|
+
|
13
|
+
for i in 1..5 do
|
14
|
+
m = "Go Sox #{i}!"
|
15
|
+
puts m
|
16
|
+
client.send("/queue/client2", m, {
|
17
|
+
"persistent" => true,
|
18
|
+
"priority" => 4,
|
19
|
+
"reply-to" => "/queue/client2",
|
20
|
+
}
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
gets
|
25
|
+
client.close
|
data/client/consume.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'stomp'
|
3
|
+
client = Stomp::Client.open "login", "passcode", "localhost", 61613
|
4
|
+
|
5
|
+
client.subscribe("/queue/test", {
|
6
|
+
"persistent" => true,
|
7
|
+
"client-id" => "rubyClient",
|
8
|
+
} ) do |message|
|
9
|
+
puts "Got Reply: ID=#{message.headers['message-id']} BODY=#{message.body} on #{message.headers['destination']}"
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
gets
|
14
|
+
client.close
|
data/client/send.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'stomp'
|
3
|
+
client = Stomp::Client.open "login", "passcode", "localhost", 61613
|
4
|
+
|
5
|
+
# sending 5 messages at once
|
6
|
+
for i in 1..5 do
|
7
|
+
m = "Go Sox #{i}!"
|
8
|
+
puts m
|
9
|
+
client.send("/queue/test", m, {
|
10
|
+
"persistent" => true,
|
11
|
+
"client-id" => "Client1",
|
12
|
+
"reply-to" => "/queue/test",
|
13
|
+
}
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
client.close
|
@@ -0,0 +1,223 @@
|
|
1
|
+
#
|
2
|
+
# == Ruby 1.9.x Testing Activities Log
|
3
|
+
#
|
4
|
+
# The reader should absorb this sequentially. The text is a rough
|
5
|
+
# chronological depiction of events for these activities.
|
6
|
+
#
|
7
|
+
# === Assumptions
|
8
|
+
#
|
9
|
+
# * $PH=project_home_directory
|
10
|
+
# * Commands are issued from the project home directory
|
11
|
+
# * No attempt is made to support 'tesly' functionality
|
12
|
+
#
|
13
|
+
# === Server Start
|
14
|
+
#
|
15
|
+
# * Modify $PH/test/runserver.sh as required
|
16
|
+
# * ./test/runserver.sh
|
17
|
+
#
|
18
|
+
# === Verify/Deny Existing Tests Functionality
|
19
|
+
#
|
20
|
+
# Verify/deny that the existing tests run. These are:
|
21
|
+
#
|
22
|
+
# ==== $PH/test/test_queue_manager.rb
|
23
|
+
#
|
24
|
+
# To execute use one of these commands:
|
25
|
+
#
|
26
|
+
# * ./test/runtest.sh test/test_queue_manager.rb
|
27
|
+
# * ruby -I $(pwd)/lib test/test_queue_manager.rb
|
28
|
+
#
|
29
|
+
# ==== $PH/test/test_stomp_frame.rb
|
30
|
+
#
|
31
|
+
# To execute use one of these commands:
|
32
|
+
#
|
33
|
+
# * ./test/runtest.sh test/test_stomp_frame.rb
|
34
|
+
# * ruby -I $(pwd)/lib test/test_stomp_frame.rb
|
35
|
+
#
|
36
|
+
# ==== $PH/test/test_topic_manager.rb
|
37
|
+
#
|
38
|
+
# To execute use one of these commands:
|
39
|
+
#
|
40
|
+
# * ./test/runtest.sh test/test_topic_manager.rb
|
41
|
+
# * ruby -I $(pwd)/lib test/test_topic_manager.rb
|
42
|
+
#
|
43
|
+
# ==== Results
|
44
|
+
#
|
45
|
+
# Note: first verify that these actually run under
|
46
|
+
# ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]. They do.
|
47
|
+
#
|
48
|
+
# All three of these tests encountered errors with
|
49
|
+
# ruby 1.9.1p243 (2009-07-16 revision 24175) [i486-linux].
|
50
|
+
#
|
51
|
+
# * test_queue_manager.rb
|
52
|
+
# ** TypeError: can't convert Fixnum into String
|
53
|
+
# ** lib/stomp_server/stomp_frame.rb:13:in `include?'
|
54
|
+
# * test_stomp_frame.rb
|
55
|
+
# ** TypeError: type mismatch: Fixnum given
|
56
|
+
# ** lib/stomp_server/stomp_frame.rb:54:in `index'
|
57
|
+
# * test_topic_manager.rb
|
58
|
+
# ** test_sendmsg(TestTopics):
|
59
|
+
# ** ArgumentError: wrong number of arguments (0 for 1)
|
60
|
+
#
|
61
|
+
# ==== Fixes
|
62
|
+
#
|
63
|
+
# <b>test_queue_manager</b>
|
64
|
+
#
|
65
|
+
# * Added logging to the test
|
66
|
+
# * Changes to stomp_frame.rb to properly compare single characters or locate single characters in a string.
|
67
|
+
#
|
68
|
+
# <b>test_stomp_frame</b>
|
69
|
+
#
|
70
|
+
# * Added logging to the test
|
71
|
+
# * Changes to stomp_frame.rb to properly compare single characters or locate single characters in a string.
|
72
|
+
#
|
73
|
+
# <b>test_topic_manager</b>
|
74
|
+
#
|
75
|
+
# * Added logging to the test
|
76
|
+
# * Remove unused and unrequired method parameter
|
77
|
+
#
|
78
|
+
# -----
|
79
|
+
#
|
80
|
+
# During the attempt to add robust logging to the server code, it was
|
81
|
+
# eventaully recognized that:
|
82
|
+
#
|
83
|
+
# * the existing tests do not even require a stompserver to be running
|
84
|
+
# * some experimental but sound logging code then broke even existing tests with ruby 1.8
|
85
|
+
#
|
86
|
+
# Why the breakage? Because the existing tests do not use a running server,
|
87
|
+
# instead including portions of server code.
|
88
|
+
#
|
89
|
+
# This leads to the following sections.
|
90
|
+
#
|
91
|
+
# == Logging Using Standard Ruby 'logger'
|
92
|
+
#
|
93
|
+
# Initial attempts to implement this across the framework broke horribly.
|
94
|
+
# Additionally, even the existing tests failed under ruby 1.8.
|
95
|
+
#
|
96
|
+
# The initial goal of this phase was to execute the existing tests with:
|
97
|
+
#
|
98
|
+
# * Initial changes to the framework required for adding logging.
|
99
|
+
# * Successful test execution under ruby 1.8.
|
100
|
+
#
|
101
|
+
# This phase of changes was eventually completed.
|
102
|
+
#
|
103
|
+
# == Existing Tests and Ruby Version Compatability Summary
|
104
|
+
#
|
105
|
+
# After the work described briefly above, the existing tests function on:
|
106
|
+
#
|
107
|
+
# * ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
|
108
|
+
# * ruby 1.9.0 (2008-10-04 revision 19669) [i486-linux]
|
109
|
+
# * ruby 1.9.1p243 (2009-07-16 revision 24175) [i486-linux]
|
110
|
+
#
|
111
|
+
# Again, note that these tests do _not_ use a running stompserver, but
|
112
|
+
# use mock objects to drive the testing.
|
113
|
+
#
|
114
|
+
# == Further Testing
|
115
|
+
#
|
116
|
+
# This section describes further testing of the stompserver framework.
|
117
|
+
#
|
118
|
+
# The requirements for running the tests described here are:
|
119
|
+
#
|
120
|
+
# * a running instance of a stompserver
|
121
|
+
# * the server host and port match those specified in <b>props.yaml</b>
|
122
|
+
#
|
123
|
+
# === Connect and Disconnect Processing
|
124
|
+
#
|
125
|
+
# Run the following test:
|
126
|
+
#
|
127
|
+
# * ruby test/test_0001_conn.rb
|
128
|
+
#
|
129
|
+
# === Connect and Disconnect With Send and Receive
|
130
|
+
#
|
131
|
+
# Run the following test:
|
132
|
+
#
|
133
|
+
# * ruby test/test_0002_conn_sr.rb
|
134
|
+
#
|
135
|
+
# === Stomp Client Creation
|
136
|
+
#
|
137
|
+
# Run the following test:
|
138
|
+
#
|
139
|
+
# * ruby test/test_0006_client.rb
|
140
|
+
#
|
141
|
+
# === Basic Send / Receive Test
|
142
|
+
#
|
143
|
+
# Run the following test:
|
144
|
+
#
|
145
|
+
# * ruby test/test_0011_send_recv.rb
|
146
|
+
#
|
147
|
+
# === Informal Client Testing
|
148
|
+
#
|
149
|
+
# Informal testing using the code at git://github.com/gmallard/stomp-demo.git
|
150
|
+
# indicate that the server basically functions using ruby 1.9.1.
|
151
|
+
#
|
152
|
+
# == Gem Build
|
153
|
+
#
|
154
|
+
# The gem build process now works, after fixing the _Rakefile_ properly.
|
155
|
+
#
|
156
|
+
# The _stompserver.gemspec_ file has been updated to use Hoe::spec rather
|
157
|
+
# than Hoe::new, per deprecation warnings.
|
158
|
+
#
|
159
|
+
# To generate a new gemspec file use:
|
160
|
+
#
|
161
|
+
# * rake debug_gem > stompserver.gemspec
|
162
|
+
#
|
163
|
+
# To generate the gem use:
|
164
|
+
#
|
165
|
+
# * rake gem
|
166
|
+
#
|
167
|
+
# === Gem Todo List
|
168
|
+
#
|
169
|
+
# Installs on all local ruby versions is complete, with VERSION
|
170
|
+
# 0.9.9.2009.12.21.00.
|
171
|
+
#
|
172
|
+
# == More Test Information
|
173
|
+
#
|
174
|
+
# === Tests Which Require a Server
|
175
|
+
#
|
176
|
+
# * ruby test/ts_all_server.rb
|
177
|
+
#
|
178
|
+
# === Tests Which No Not Require a Server
|
179
|
+
#
|
180
|
+
# When running these tests it is <b>important</b> to use the
|
181
|
+
# '-I $(pwd)/lib' ruby parameter. This insures that local code
|
182
|
+
# only will be used for the tests.
|
183
|
+
#
|
184
|
+
# * ruby -I $(pwd)/lib test/ts_all_no_server.rb
|
185
|
+
#
|
186
|
+
# == Todo List
|
187
|
+
#
|
188
|
+
# * More unit tests (in progress)
|
189
|
+
# * More documentation (in progress)
|
190
|
+
# * Build gem (see above) :DONE
|
191
|
+
# * Install gem (see above) :DONE
|
192
|
+
# * Full testing using 1.9.0 :DONE
|
193
|
+
# * Full regression testing using 1.8.7 :DONE
|
194
|
+
# * Everyting with the HTTP protocol handler.
|
195
|
+
#
|
196
|
+
# == Required Gems
|
197
|
+
#
|
198
|
+
# Required gems are:
|
199
|
+
#
|
200
|
+
# * ["daemons", ">= 1.0.10"]
|
201
|
+
# * ["eventmachine", ">= 0.12.10"]
|
202
|
+
# * ["hoe", ">= 2.3.2"]
|
203
|
+
# * ["uuid", ">= 2.1.0"]
|
204
|
+
#
|
205
|
+
# == Version 0.9.9.2010.01.01.00
|
206
|
+
#
|
207
|
+
# * Some fixes for 'ack' => 'client' processing. The first step down this road.
|
208
|
+
# * Tests for same. Tests are intermittently unstable due to previously unseen problems.
|
209
|
+
# * Some fixes around session ID cache handling.
|
210
|
+
# * Cleaner creation of the .pid file at startup.
|
211
|
+
# * Sample sysvinit boot scripts - very primitive.
|
212
|
+
#
|
213
|
+
# == Version 0.9.9.2010.01.02.00
|
214
|
+
#
|
215
|
+
# * Fix server crashes when no ACK received.
|
216
|
+
# * Tests for same.
|
217
|
+
# * Handle SIGTERM.
|
218
|
+
#
|
219
|
+
# == Future Updates
|
220
|
+
#
|
221
|
+
# For updates after the previous version see the History.txt file.
|
222
|
+
#
|
223
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
|
2
|
+
= Activerecord Notes
|
3
|
+
|
4
|
+
== Current Support
|
5
|
+
|
6
|
+
Support is provided activerecord messages stores using:
|
7
|
+
|
8
|
+
* sqlite3
|
9
|
+
* mysql
|
10
|
+
* postgresql
|
11
|
+
|
12
|
+
== Using An Activerecord Message Store
|
13
|
+
|
14
|
+
In order to use activerecord, you _must_ preinitialize:
|
15
|
+
|
16
|
+
* a data base
|
17
|
+
* a data base user
|
18
|
+
* a table named 'ar_messages'
|
19
|
+
|
20
|
+
Samples are provided with the stompserver_ng installation.
|
21
|
+
|
22
|
+
See:
|
23
|
+
|
24
|
+
* this document
|
25
|
+
* etc/arutils/mysql_boot.sql
|
26
|
+
* etc/arutils/postgres_boot.sql
|
27
|
+
* etc/arutils/cre_sqlite3.rb
|
28
|
+
* etc/arutils/cre_mysql.rb
|
29
|
+
* etc/arutils/cre_postgres.rb
|
30
|
+
|
31
|
+
To use either mysql or postgres, you must supply a user coded connection
|
32
|
+
definition in a yaml file. This file has the same format as db definitions
|
33
|
+
in Rails projects.
|
34
|
+
|
35
|
+
You can specify activerecord use by either:
|
36
|
+
|
37
|
+
* the main stompserver_ng configuration file
|
38
|
+
* :queue: activerecord
|
39
|
+
* command line option when stompserver_ng starts
|
40
|
+
* -q activerecord
|
41
|
+
* --queuetype=activerecord
|
42
|
+
|
43
|
+
== Default Activerecord Environment
|
44
|
+
|
45
|
+
If an activerecord message store is specified by configuration, and no
|
46
|
+
overriding connection parameters are specified, the default implementation
|
47
|
+
is sqlite3. (Note: even in this case, the data base must be predefined and
|
48
|
+
initialized.)
|
49
|
+
|
50
|
+
The default sqlite3 data base must:
|
51
|
+
|
52
|
+
* exist in the runtime 'etc' directory
|
53
|
+
* be named 'stompserver_development'
|
54
|
+
|
55
|
+
== Overriding Connection Parameters
|
56
|
+
|
57
|
+
Override connection parameters in order to use a data base other than
|
58
|
+
the default.
|
59
|
+
|
60
|
+
You can override activerecord connection parameters by either:
|
61
|
+
|
62
|
+
* the main stompserver_ng configuration file
|
63
|
+
* :dbyml: some/directory/mydb.yml
|
64
|
+
* command line option when stompserver_ng starts
|
65
|
+
* -y some/directory/mydb.yml
|
66
|
+
* --dbyml=some/directory/mydb.yml
|
67
|
+
|
68
|
+
== Activerecord Support
|
69
|
+
|
70
|
+
stompserver_ng has been tested with:
|
71
|
+
|
72
|
+
* sqlite3
|
73
|
+
* mysql
|
74
|
+
* postgresql
|
75
|
+
|
76
|
+
Support for other database systems used by activerecord is left as an
|
77
|
+
exercise for the reader.
|
78
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'rubygems' if RUBY_VERSION =~ /1.8/
|
2
|
+
require 'active_record'
|
3
|
+
#
|
4
|
+
# = cre_mysql - create a mysql data base for use by stompserver_ng
|
5
|
+
#
|
6
|
+
# For now, the db parameters are hard coded. Change as required.
|
7
|
+
#
|
8
|
+
db_params = {
|
9
|
+
'adapter' => 'mysql',
|
10
|
+
'encoding' => 'utf8',
|
11
|
+
'database' => 'ssng_dev',
|
12
|
+
'pool' => 5,
|
13
|
+
'username' => 'ssng',
|
14
|
+
'password' => 'xxxxxxxx',
|
15
|
+
'host' => 'localhost',
|
16
|
+
'port' => 3306
|
17
|
+
|
18
|
+
}
|
19
|
+
#
|
20
|
+
# Connect.
|
21
|
+
#
|
22
|
+
ActiveRecord::Base.establish_connection(db_params)
|
23
|
+
puts "mysql Connection complete."
|
24
|
+
#
|
25
|
+
# Define the ar_messages table.
|
26
|
+
#
|
27
|
+
ActiveRecord::Schema.define do
|
28
|
+
create_table 'ar_messages' do |t|
|
29
|
+
t.column 'stomp_id', :string, :null => false
|
30
|
+
t.column 'frame', :text, :null => false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
puts "mysql table create complete."
|
34
|
+
|