stomp 1.4.4 → 1.4.5

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 (74) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +96 -100
  4. data/examples/EXAMPLES.md +251 -0
  5. data/examples/amqdurasub.rb +14 -17
  6. data/examples/artemis/cliwaiter_not_reliable.rb +12 -5
  7. data/examples/artemis/{cliwaiter_reliable.rb → cliwaiter_reliable_hb.rb} +24 -23
  8. data/examples/client_conndisc.rb +66 -0
  9. data/examples/client_putget.rb +94 -0
  10. data/examples/conn_conndisc.rb +102 -0
  11. data/examples/conn_putget.rb +124 -0
  12. data/examples/contrib.sh +2 -3
  13. data/examples/contributors.rb +26 -14
  14. data/examples/examplogger.rb +1 -1
  15. data/examples/{consumer.rb → historical/consumer.rb} +0 -0
  16. data/examples/{publisher.rb → historical/publisher.rb} +0 -0
  17. data/examples/{topic_consumer.rb → historical/topic_consumer.rb} +0 -0
  18. data/examples/{topic_publisher.rb → historical/topic_publisher.rb} +0 -0
  19. data/examples/logexamp.rb +23 -14
  20. data/examples/putget_file.rb +79 -0
  21. data/examples/{putget11_rh1.rb → putget_rephdrs.rb} +16 -15
  22. data/examples/ssl/SSL.md +189 -0
  23. data/examples/{ssl_ctxoptions.rb → ssl/misc/ssl_ctxoptions.rb} +23 -14
  24. data/examples/ssl/misc/ssl_newparm.rb +53 -0
  25. data/examples/ssl/misc/ssl_ucx_default_ciphers.rb +54 -0
  26. data/examples/ssl/ssl_common.rb +96 -0
  27. data/examples/ssl/sslexall.sh +17 -0
  28. data/examples/{ssl_uc1.rb → ssl/uc1/ssl_uc1.rb} +15 -11
  29. data/examples/ssl/uc1/ssl_uc1_ciphers.rb +60 -0
  30. data/examples/{ssl_uc2.rb → ssl/uc2/ssl_uc2.rb} +17 -10
  31. data/examples/ssl/uc2/ssl_uc2_ciphers.rb +67 -0
  32. data/examples/{ssl_uc3.rb → ssl/uc3/ssl_uc3.rb} +15 -16
  33. data/examples/ssl/uc3/ssl_uc3_ciphers.rb +65 -0
  34. data/examples/{ssl_uc4.rb → ssl/uc4/ssl_uc4.rb} +15 -15
  35. data/examples/ssl/uc4/ssl_uc4_ciphers.rb +66 -0
  36. data/examples/stomp_common.rb +97 -0
  37. data/lib/connection/netio.rb +83 -37
  38. data/lib/connection/utf8.rb +0 -7
  39. data/lib/connection/utils.rb +4 -1
  40. data/lib/stomp/client.rb +5 -1
  41. data/lib/stomp/connection.rb +25 -15
  42. data/lib/stomp/constants.rb +109 -0
  43. data/lib/stomp/errors.rb +11 -0
  44. data/lib/stomp/sslparams.rb +3 -4
  45. data/lib/stomp/version.rb +2 -2
  46. data/stomp.gemspec +31 -37
  47. data/test/test_anonymous.rb +4 -0
  48. data/test/test_client.rb +2 -0
  49. data/test/test_connection.rb +4 -0
  50. data/test/test_connection1p.rb +2 -4
  51. data/test/test_helper.rb +11 -0
  52. metadata +30 -36
  53. data/examples/artemis/artlogger.rb +0 -41
  54. data/examples/client11_ex1.rb +0 -89
  55. data/examples/client11_putget1.rb +0 -71
  56. data/examples/conn11_ex1.rb +0 -112
  57. data/examples/conn11_ex2.rb +0 -87
  58. data/examples/conn11_hb1.rb +0 -57
  59. data/examples/consume_file.rb +0 -63
  60. data/examples/get11conn_ex1.rb +0 -117
  61. data/examples/get11conn_ex2.rb +0 -77
  62. data/examples/lflogger.rb +0 -316
  63. data/examples/logexamp_ssl.rb +0 -81
  64. data/examples/publish_file.rb +0 -76
  65. data/examples/publish_file_conn.rb +0 -75
  66. data/examples/put11conn_ex1.rb +0 -56
  67. data/examples/ssl_common.rb +0 -73
  68. data/examples/ssl_newparm.rb +0 -43
  69. data/examples/ssl_uc1_ciphers.rb +0 -53
  70. data/examples/ssl_uc2_ciphers.rb +0 -60
  71. data/examples/ssl_uc3_ciphers.rb +0 -64
  72. data/examples/ssl_uc4_ciphers.rb +0 -65
  73. data/examples/ssl_ucx_default_ciphers.rb +0 -41
  74. data/examples/stomp11_common.rb +0 -54
@@ -11,7 +11,7 @@ require 'logger' # use the standard Ruby logger .....
11
11
  # * on_connectfail: unsuccessful connect (will usually be retried)
12
12
  # * on_disconnect: successful disconnect
13
13
  #
14
- # * on_miscerr: on miscellaneous xmit/recv errors
14
+ # * on_miscerr: on miscellaneous transmit/receive errors
15
15
  #
16
16
  # * on_publish: publish called
17
17
  # * on_subscribe: subscribe called
@@ -5,13 +5,19 @@ require 'stomp'
5
5
  require 'logger' # for the 'local' logger
6
6
  #
7
7
  if Kernel.respond_to?(:require_relative)
8
+ require_relative("./stomp_common")
8
9
  require_relative("./examplogger")
9
10
  else
10
11
  $LOAD_PATH << File.dirname(__FILE__)
11
12
  require "examplogger"
13
+ require("stomp_common")
12
14
  end
15
+ include Stomp1xCommon
13
16
  #
14
- # == A STOMP::Connection program which uses the callback logging facility.
17
+ # == A program which demonstrates the callback logging facility.
18
+ #
19
+ # With appropriate specification of STOMP_PORT, this code should also
20
+ # demonstrate failover.
15
21
  #
16
22
  class LoggerExample
17
23
  # Initialize.
@@ -25,18 +31,20 @@ class LoggerExample
25
31
 
26
32
  # //////////////////////////////////////////////////////////////////////////////
27
33
  mylog = Slogger::new # The client provided STOMP callback logger
28
-
29
34
  # //////////////////////////////////////////////////////////////////////////////
30
35
  user = ENV['STOMP_USER'] ? ENV['STOMP_USER'] : 'guest'
31
36
  password = ENV['STOMP_PASSWORD'] ? ENV['STOMP_PASSWORD'] : 'guest'
32
37
  host = ENV['STOMP_HOST'] ? ENV['STOMP_HOST'] : 'localhost'
33
38
  port = ENV['STOMP_PORT'] ? ENV['STOMP_PORT'].to_i : 61613
39
+ so = usessl()
34
40
  # //////////////////////////////////////////////////////////////////////////////
35
41
  # A hash type connect *MUST* be used to enable callback logging.
36
42
  # //////////////////////////////////////////////////////////////////////////////
37
43
  hash = { :hosts => [
38
- {:login => user, :passcode => password, :host => 'noonehome', :port => 2525},
39
- {:login => user, :passcode => password, :host => host, :port => port},
44
+ {:login => user, :passcode => password, :host => 'noonehome', :port => 2525,
45
+ :ssl => so},
46
+ {:login => user, :passcode => password, :host => host, :port => port,
47
+ :ssl => so},
40
48
  ],
41
49
  :logger => mylog, # This enables callback logging!
42
50
  :max_reconnect_attempts => 5,
@@ -46,15 +54,17 @@ class LoggerExample
46
54
  # For a Connection:
47
55
  llog.debug "LE Connection processing starts"
48
56
  conn = Stomp::Connection.new(hash)
49
- conn.disconnect
57
+ conn.disconnect()
58
+
50
59
  # //////////////////////////////////////////////////////////////////////////////
51
60
  llog.debug "LE Connection processing complete"
52
61
 
53
62
  # //////////////////////////////////////////////////////////////////////////////
54
63
  # For a Client:
55
64
  llog.debug "LE Client processing starts"
56
- conn = Stomp::Client.new(hash)
57
- conn.close
65
+ client = Stomp::Client.new(hash)
66
+ client.close()
67
+
58
68
  # //////////////////////////////////////////////////////////////////////////////
59
69
  llog.debug "LE Client processing complete"
60
70
 
@@ -65,9 +75,10 @@ class LoggerExample
65
75
  #
66
76
  dest = "/queue/loggerq1"
67
77
  conn.publish dest, "a logger message"
68
- conn.subscribe dest
69
- msg = conn.receive
70
- conn.disconnect
78
+ conn.subscribe(dest)
79
+ msg = conn.receive()
80
+ conn.disconnect()
81
+
71
82
  # //////////////////////////////////////////////////////////////////////////////
72
83
  llog.debug "LE Connection Enhanced processing complete"
73
84
 
@@ -75,7 +86,5 @@ class LoggerExample
75
86
  llog.debug "LE Ending"
76
87
  end
77
88
  end
78
- e = LoggerExample.new
79
- e.run
80
-
81
-
89
+ e = LoggerExample.new()
90
+ e.run()
@@ -0,0 +1,79 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'rubygems'
4
+ require 'stomp'
5
+
6
+ if Kernel.respond_to?(:require_relative)
7
+ require_relative("./stomp_common")
8
+ else
9
+ $LOAD_PATH << File.dirname(__FILE__)
10
+ require "stomp_common"
11
+ end
12
+ include Stomp1xCommon
13
+ #
14
+ # Used primarily for testing performance when sending/receiving "large" messages.
15
+ # "large" => YMMV
16
+ #
17
+ class FilePutGet
18
+ # Initialize.
19
+ def initialize
20
+ @qname = dest()
21
+ end
22
+ # Run put part of example.
23
+ def doput()
24
+ puts
25
+ puts "pgf001 - put starts"
26
+ start_time = Time.now.to_f
27
+ fname = ARGV[0]
28
+ puts "pgf002: File Name: #{fname}"
29
+ file = open(fname, "r")
30
+ rs = Time.now.to_f
31
+ buff = file.read
32
+ re = Time.now.to_f
33
+ ppt = sprintf("%22.8f", re - rs)
34
+ puts "pgf003: File size: #{buff.respond_to?(:bytesize) ? buff.bytesize : buff.length} bytes"
35
+ puts "pgf004: File read time: #{ppt} seconds"
36
+ file.close
37
+ #
38
+ conn = get_connection()
39
+ puts "pgf005: Qname is: #{@qname}"
40
+ # Try to gracefully handle files that exceed broker size limits.
41
+ ph = {:presistent => true}
42
+ ph['suppress_content_length'] = 'yes' if suppresscl()
43
+ puts "pgf006: Headers are: #{ph.inspect}"
44
+ begin
45
+ conn.publish(@qname, buff, ph)
46
+ rescue
47
+ puts "pgf900: exception on publish: #{$!}"
48
+ raise
49
+ end
50
+ conn.disconnect()
51
+ end_time = Time.now.to_f
52
+ ppt = sprintf("%22.8f", end_time - start_time)
53
+ puts "pgf007: File publish time: #{ppt} seconds"
54
+ end
55
+ # Run get part of example.
56
+ def doget()
57
+ puts
58
+ puts "pgf101 - get starts"
59
+ start_time = Time.now.to_f
60
+ conn = get_connection()
61
+ uuid = conn.uuid() # uuid for Stomp::Connection is a public method
62
+ conn.subscribe(@qname, {'id' => uuid}) # Subscribe
63
+ msg = conn.receive()
64
+ puts "pgf102: Message Command: #{msg.command}"
65
+ puts "pgf103: Message Headers: #{msg.headers}"
66
+ body_length_bytes = msg.body.respond_to?(:bytesize) ? msg.body.bytesize : msg.body.length
67
+ puts "pgf104: Received: #{body_length_bytes} bytes"
68
+ #
69
+ end_time = Time.now.to_f
70
+ ppt = sprintf("%22.8f", end_time - start_time)
71
+ puts "pgf105: File receive time: #{ppt} seconds"
72
+ conn.disconnect()
73
+ end
74
+
75
+ end
76
+ #
77
+ e = FilePutGet.new()
78
+ e.doput()
79
+ e.doget()
@@ -5,21 +5,22 @@
5
5
  # Change this to suit your requirements.
6
6
  #
7
7
  if Kernel.respond_to?(:require_relative)
8
- require_relative("./stomp11_common")
8
+ require_relative("./stomp_common")
9
9
  else
10
10
  $LOAD_PATH << File.dirname(__FILE__)
11
- require "stomp11_common"
11
+ require "stomp_common"
12
12
  end
13
- include Stomp11Common
13
+ include Stomp1xCommon
14
14
  #
15
- # == Stomp 1.1 Send/Receive Example - Repeated Headers
15
+ # == Stomp 1.1+ Send/Receive Example - Repeated Headers
16
16
  #
17
- # Purpose: to demonstrate sending and receiving using Stomp 1.1, and an unusual
17
+ # Purpose: to demonstrate sending and receiving using Stomp 1.1+, and an unusual
18
18
  # aspect of the specification. What is demonstrated here is the use of
19
19
  # 'repeated headers'. Note that brokers MAY support repeated headers as
20
- # demonstrated, but are not required to provide this support. This example
21
- # should run against the Apollo broker. It will *not* currently run against
22
- # RabbitMQ. YMMV depending on your broker.
20
+ # demonstrated, but are not required to provide this support.
21
+ #
22
+ # This example should run against the Apollo broker. It will *not* currently run against
23
+ # ActiveMQ or RabbitMQ. YMMV depending on your broker.
23
24
  #
24
25
  # See: http://stomp.github.com/stomp-specification-1.1.html#Repeated_Header_Entries
25
26
  #
@@ -30,7 +31,8 @@ class RepeatedHeadersExample
30
31
  # Run example.
31
32
  def run
32
33
  conn = get_connection() # Use helper method to obtain a Stomp#connection
33
- raise "Unexpected protocol level" if conn.protocol != Stomp::SPL_11
34
+ raise "Unexpected protocol level" if conn.protocol == Stomp::SPL_10
35
+ puts "Repeated headers example, host: #{host()}, port: #{port()}"
34
36
  #
35
37
  # The gem supports repeated headers by allowing the 'value' part of a header
36
38
  # to be an Array instance.
@@ -42,7 +44,7 @@ class RepeatedHeadersExample
42
44
  # to hold the repeated values. This is presented the the calling client to
43
45
  # be processed per client requirements.
44
46
  #
45
- qname = "/queue/nodea.nodeb.nodec"
47
+ qname = dest()
46
48
  data = "message payload: #{Time.now.to_f}"
47
49
  key2_repeats = ["key2val3", "key2val2", "key2val1" ]
48
50
  headers = {"key1" => "value1", # A normal header
@@ -52,7 +54,7 @@ class RepeatedHeadersExample
52
54
  #
53
55
  # Ship it.
54
56
  #
55
- conn.publish qname, data , headers
57
+ conn.publish(qname, data , headers)
56
58
  puts "Sent data: #{data}"
57
59
  #
58
60
  # Receive phase.
@@ -84,10 +86,9 @@ class RepeatedHeadersExample
84
86
  #
85
87
  # And finally, disconnect.
86
88
  #
87
- conn.disconnect
89
+ conn.disconnect()
88
90
  end
89
91
  end
90
92
  #
91
- e = RepeatedHeadersExample.new
92
- e.run
93
-
93
+ e = RepeatedHeadersExample.new()
94
+ e.run()
@@ -0,0 +1,189 @@
1
+ # SSL Examples
2
+
3
+ This is to provide additional documentation regarding the gem's
4
+ SSL related examples.
5
+
6
+ This documentation is based on experiments with OpenSSL.
7
+
8
+
9
+ ## Environment Variables
10
+
11
+ You will likely need to use supported environment variables to
12
+ define SSL related data locations on your system. See example
13
+ ssl_common.rb for details of support of this functionality.
14
+
15
+ <table border="2" style="width:100%;border: 2px solid black;">
16
+ <tr>
17
+ <th style="border: 2px solid black;padding-left: 10px;" >
18
+ Environment Variable
19
+ </th>
20
+ <th style="border: 2px solid black;padding-left: 10px;" >
21
+ Description
22
+ </th>
23
+ </tr>
24
+ <!-- -->
25
+ <tr>
26
+ <td style="border: 2px solid black;padding-left: 10px;" >
27
+ CA_FLOC
28
+ </td>
29
+ <td style="border: 2px solid black;padding-left: 10px;" >
30
+ CA cert file location/directory.
31
+ </td>
32
+ </tr>
33
+ <!-- -->
34
+ <tr>
35
+ <td style="border: 2px solid black;padding-left: 10px;" >
36
+ CLI_FLOC
37
+ </td>
38
+ <td style="border: 2px solid black;padding-left: 10px;" >
39
+ Client cert file location/directory.
40
+ </td>
41
+ </tr>
42
+ <!-- -->
43
+ <tr>
44
+ <td style="border: 2px solid black;padding-left: 10px;" >
45
+ CLI_FILE
46
+ </td>
47
+ <td style="border: 2px solid black;padding-left: 10px;" >
48
+ Clent cert file name.
49
+ </td>
50
+ </tr>
51
+ <!-- -->
52
+ <tr>
53
+ <td style="border: 2px solid black;padding-left: 10px;" >
54
+ CLI_KEY
55
+ </td>
56
+ <td style="border: 2px solid black;padding-left: 10px;" >
57
+ Client private key file name. This file should not be
58
+ exposed to the outside world.
59
+ </td>
60
+ </tr>
61
+ <!-- -->
62
+ <tr>
63
+ <td style="border: 2px solid black;padding-left: 10px;" >
64
+ STOMP_HOST
65
+ </td>
66
+ <td style="border: 2px solid black;padding-left: 10px;" >
67
+ The host name of your SSL broker.
68
+ </td>
69
+ </tr>
70
+ <!-- -->
71
+ <tr>
72
+ <td style="border: 2px solid black;padding-left: 10px;" >
73
+ STOMP_PORT
74
+ </td>
75
+ <td style="border: 2px solid black;padding-left: 10px;" >
76
+ The the TCP port number used by your SSL broker.
77
+ </td>
78
+ </tr>
79
+ </table>
80
+
81
+ ## The Four Main SSL Use Cases
82
+
83
+ There are four main SSL use cases. Example code for each of these can be found
84
+ in the 'examples/uc?' subdirectories. Each individual use case is described below.
85
+
86
+ Each 'sxamples/uc?' subdirectory contains two example programs:
87
+
88
+ * A primary demonstration of the example
89
+ * A secondary demonstration of the example where client code overrides the
90
+ default list of ciphers that SSL considers.
91
+
92
+ Note that each use case has two subcases:
93
+
94
+ * Your broker does _not_ require client authentication
95
+ * Your broker _does_ require client authentication
96
+
97
+ ### Use Case 1 - No Authentification by broker or client
98
+
99
+ Subcase A - When your broker does _not_ require client authentication:
100
+
101
+
102
+ * Expect connection success.
103
+ * Expect a verify result of 20 becuase the client did not authenticate the
104
+ server's certificate.
105
+
106
+
107
+ Subcase B - When your broker _does_ require client authentication:
108
+
109
+ * Expect connection failure (broker must be sent a valid client certificate).
110
+
111
+ ### Use Case 2 - No Authentification by broker, authentification by client
112
+
113
+ Subcase A - When your broker does _not_ require client authentication:
114
+
115
+ * Expect connection success
116
+ * Expect a verify result of 0 becuase the client did authenticate the
117
+ server's certificate.
118
+
119
+ Subcase B - When your broker _does_ require client authentication:
120
+
121
+ * Expect connection failure (broker must be sent a valid client certificate).
122
+
123
+ ### Use Case 3 - Authentification by broker, no authentification by broker
124
+
125
+ Subcase A - When your broker does _not_ require client authentication:
126
+
127
+ * Expect connection success
128
+ * Expect a verify result of 20 becuase the client did not authenticate the
129
+ server's certificate.
130
+
131
+ Subcase B - When your broker _does_ require client authentication:
132
+
133
+ * Expect connection success if the server can authenticate the client certificate
134
+ * Expect a verify result of 20 because the client did not authenticate the
135
+ server's certificate.
136
+
137
+ ### Use Case 4 - Authentification by both broker and client
138
+
139
+ Subcase A - When your broker does _not_ require client authentication:
140
+
141
+ * Expect connection success
142
+ * Expect a verify result of 0 becuase the client did authenticate the
143
+ server's certificate.
144
+
145
+ Subcase B - When your broker _does_ require client authentication:
146
+
147
+ * Expect connection success if the server can authenticate the client certificate
148
+ * Expect a verify result of 0 because the client did authenticate the
149
+ server's certificate.
150
+
151
+ ## Miscellaneous SSL Examples
152
+
153
+ The gem provides several other examples of using the built-in SSL
154
+ functionality. These examples are described below.
155
+
156
+ ### Override SSL Context Options
157
+
158
+ This example is in 'examples/misc/ssl_ctxoptions.rb'.
159
+
160
+ The gem provides the capability for the client to supply SSL context options
161
+ to be used during an SSL connect.
162
+
163
+ These options are passed to the gem in the `Stomp::SSLParams` instance.
164
+
165
+ These options are then placed by the gem in the `OpenSSL::SSL::SSLContext` instance used during
166
+ an SSL connect.
167
+
168
+ ### Specify Parameters When SSL Context Options Are Created
169
+
170
+ This example is in 'examples/misc/ssl_newparm.rb'.
171
+
172
+ The gem provides the capability of passing parameters to
173
+ `OpenSSL::SSL::SSLContext.new(..)`.
174
+
175
+ These options are passed to the gem in the connect hash used for open/new.
176
+
177
+ ### Override The Default Cipher List Used BY SSL
178
+
179
+ This example is in 'examples/misc/ssl_ucx_default_ciphers.rb'.
180
+
181
+ Note: this example is _not_ for use in JRuby.
182
+
183
+ The gem allows use of a default list of fairly well known and broker
184
+ supported ciphers found in `Stomp::DEFAULT_CIPHERS`.
185
+
186
+ However, the default list of Ruby ciphers can be requested.
187
+
188
+ This is requested when `Stomp::SSLParams` is created by the client using the
189
+ `:use_ruby_ciphers => true` parameter.
@@ -1,8 +1,16 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  #
4
- require "rubygems"
5
- require "stomp"
4
+ if Kernel.respond_to?(:require_relative)
5
+ require_relative("../ssl_common")
6
+ require_relative("../../stomp_common")
7
+ else
8
+ $LOAD_PATH << File.dirname(__FILE__)
9
+ require "../ssl_common"
10
+ require "../../stomp_common"
11
+ end
12
+ include SSLCommon
13
+ include Stomp1xCommon
6
14
  #
7
15
  # == Demo User Control of SSLContext options contents
8
16
  #
@@ -14,12 +22,15 @@ require "stomp"
14
22
  class ExampleSSLCtxOptions
15
23
  # Initialize.
16
24
  def initialize
25
+ # It is very likely that you will have to specify your specific port number.
26
+ # 61611 is currently my AMQ local port number for ssl client auth not required.
27
+ @port = ENV['STOMP_PORT'] ? ENV['STOMP_PORT'].to_i : 61611
17
28
  end
18
29
 
19
30
  # Run example 1
20
- def run1
31
+ def run1()
21
32
  require 'openssl' unless defined?(OpenSSL)
22
- puts "run method ...."
33
+ puts "run1 method ...."
23
34
  # Define SSL Options to be used. This code is copied from the defaults
24
35
  # in later versions of Ruby V2.x (which has been backported to 1.9.3).
25
36
  #
@@ -43,9 +54,8 @@ class ExampleSSLCtxOptions
43
54
  ssl_opts = Stomp::SSLParams.new(:ssl_ctxopts => opts, # SSLContext options to set
44
55
  :use_ruby_ciphers => urc,
45
56
  :fsck => true)
46
- sport = ENV["STOMP_PORT"].to_i
47
57
  hash = { :hosts => [
48
- {:login => 'guest', :passcode => 'guest', :host => 'localhost', :port => sport, :ssl => ssl_opts},
58
+ {:login => login(), :passcode => passcode(), :host => host(), :port => @port, :ssl => ssl_opts},
49
59
  ],
50
60
  :reliable => false, # YMMV, to test this in a sane manner
51
61
  }
@@ -56,11 +66,11 @@ class ExampleSSLCtxOptions
56
66
  puts "SSL Verify Result: #{ssl_opts.verify_result}"
57
67
  # puts "SSL Peer Certificate:\n#{ssl_opts.peer_cert}"
58
68
  #
59
- c.disconnect
69
+ c.disconnect()
60
70
  end
61
71
 
62
72
  # Run example 2
63
- def run2
73
+ def run2()
64
74
  puts "run2 method ...."
65
75
  #
66
76
  # Connection / Example 2 of 2, gem supplied options.
@@ -73,9 +83,8 @@ class ExampleSSLCtxOptions
73
83
  ssl_opts = Stomp::SSLParams.new(:ssl_ctxopts => Stomp::Connection::ssl_v2xoptions(),
74
84
  :use_ruby_ciphers => urc,
75
85
  :fsck => true)
76
- sport = ENV["STOMP_PORT"].to_i
77
86
  hash = { :hosts => [
78
- {:login => 'guest', :passcode => 'guest', :host => 'localhost', :port => sport, :ssl => ssl_opts},
87
+ {:login => login(), :passcode => passcode(), :host => host(), :port => @port, :ssl => ssl_opts},
79
88
  ],
80
89
  :reliable => false, # YMMV, to test this in a sane manner
81
90
  }
@@ -86,11 +95,11 @@ class ExampleSSLCtxOptions
86
95
  puts "SSL Verify Result: #{ssl_opts.verify_result}"
87
96
  # puts "SSL Peer Certificate:\n#{ssl_opts.peer_cert}"
88
97
  #
89
- c.disconnect
98
+ c.disconnect()
90
99
  end
91
100
  end
92
101
  #
93
- e = ExampleSSLCtxOptions.new
94
- e.run1
95
- e.run2
102
+ e = ExampleSSLCtxOptions.new()
103
+ e.run1()
104
+ e.run2()
96
105