onstomp 1.0.11 → 1.0.12
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 +4 -4
- data/.travis.yml +4 -8
- data/lib/onstomp/client.rb +23 -22
- data/lib/onstomp/version.rb +1 -1
- data/spec/onstomp/failover/client_spec.rb +17 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e7dbfd893a6b95f5f4ccd27d0cd52e020bc1bd18b860240e96f76ad4e68ab75
|
4
|
+
data.tar.gz: 18e70c1771dbe700fce021658c73197ffc59e4fcb163fdea06dd999283f136f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d781f70aa092cda65cfb396ff5ae07e8fb547e7e292c9bfdd5bda5f4fb33aba4127d799c9ede0b0ea16b60ad1682c31d51d6c5f02082e1a74a8bb0b056e1bfe
|
7
|
+
data.tar.gz: 7d0a63dce9fa5257feb44593e684febc3010953750efbb71e1939b6480751472cc4a867f17d9c2b3a7cc6f936d16c2673510f1e5992821f9d045cf0e8c719053
|
data/.travis.yml
CHANGED
data/lib/onstomp/client.rb
CHANGED
@@ -9,7 +9,7 @@ class OnStomp::Client
|
|
9
9
|
include OnStomp::Interfaces::ReceiptManager
|
10
10
|
include OnStomp::Interfaces::SubscriptionManager
|
11
11
|
include OnStomp::Components::Scopes
|
12
|
-
|
12
|
+
|
13
13
|
# The `URI` reference to the STOMP broker
|
14
14
|
# @return [String]
|
15
15
|
attr_reader :uri
|
@@ -19,51 +19,52 @@ class OnStomp::Client
|
|
19
19
|
# Connection object specific to the established STOMP protocol version
|
20
20
|
# @return [OnStomp::Connections::Base]
|
21
21
|
attr_reader :connection
|
22
|
-
|
22
|
+
|
23
23
|
# The protocol versions to allow for this connection
|
24
24
|
# @return [Array<String>]
|
25
25
|
attr_configurable_protocols :versions
|
26
|
-
|
26
|
+
|
27
27
|
# The client-side heartbeat settings to allow for this connection
|
28
28
|
# @return [Array<Fixnum>]
|
29
29
|
attr_configurable_client_beats :heartbeats
|
30
|
-
|
30
|
+
|
31
31
|
# The host header value to send to the broker when connecting. This allows
|
32
32
|
# the client to inform the server which host it wishes to connect with
|
33
33
|
# when multiple brokers may share an IP address through virtual hosting.
|
34
34
|
# @return [String]
|
35
35
|
attr_configurable_str :host, :default => 'localhost', :uri_attr => :host
|
36
|
-
|
36
|
+
|
37
37
|
# The login header value to send to the broker when connecting.
|
38
38
|
# @return [String]
|
39
39
|
attr_configurable_str :login, :default => '', :uri_attr => :user
|
40
|
-
|
40
|
+
|
41
41
|
# The passcode header value to send to the broker when connecting.
|
42
42
|
# @return [String]
|
43
43
|
attr_configurable_str :passcode, :default => '', :uri_attr => :password
|
44
|
-
|
44
|
+
|
45
45
|
# The class to use when instantiating a new IO processor for the connection.
|
46
46
|
# Defaults to {OnStomp::Components::ThreadedProcessor}
|
47
47
|
# @return [Class]
|
48
48
|
attr_configurable_processor :processor
|
49
|
-
|
49
|
+
|
50
50
|
# The number of seconds to wait before a write-blocked connection is
|
51
51
|
# considered dead. Defaults to 120 seconds.
|
52
52
|
# @return [Fixnum]
|
53
53
|
attr_configurable_int :write_timeout, :default => 120
|
54
|
-
|
54
|
+
|
55
55
|
# The number of seconds to wait before a connection that is read-blocked
|
56
56
|
# during the {OnStomp::Connections::Base#connect connect} phase is
|
57
57
|
# considered dead. Defaults to 120 seconds.
|
58
58
|
# @return [Fixnum]
|
59
59
|
attr_configurable_int :read_timeout, :default => 120
|
60
|
-
|
60
|
+
|
61
61
|
# @api gem:1 STOMP:1.0,1.1
|
62
62
|
# Creates a new client for the specified uri and optional hash of options.
|
63
63
|
# @param [String,URI] uri
|
64
64
|
# @param [{Symbol => Object}] options
|
65
65
|
def initialize uri, options={}
|
66
66
|
@uri = uri.is_a?(::URI) ? uri : ::URI.parse(uri)
|
67
|
+
options = options.dup
|
67
68
|
@ssl = options.delete(:ssl)
|
68
69
|
configure_configurable options
|
69
70
|
configure_subscription_management
|
@@ -72,7 +73,7 @@ class OnStomp::Client
|
|
72
73
|
close unless f[:receipt]
|
73
74
|
end
|
74
75
|
end
|
75
|
-
|
76
|
+
|
76
77
|
# @api gem:1 STOMP:1.0,1.1
|
77
78
|
# Connects to the STOMP broker referenced by {#uri}. Includes optional
|
78
79
|
# headers in the CONNECT frame, if specified.
|
@@ -91,7 +92,7 @@ class OnStomp::Client
|
|
91
92
|
self
|
92
93
|
end
|
93
94
|
alias :open :connect
|
94
|
-
|
95
|
+
|
95
96
|
# @api gem:1 STOMP:1.0,1.1
|
96
97
|
# Sends a DISCONNECT frame to the broker and blocks until the connection
|
97
98
|
# has been closed. This method ensures that all frames not yet sent to
|
@@ -106,14 +107,14 @@ class OnStomp::Client
|
|
106
107
|
end
|
107
108
|
alias :disconnect_without_flush :disconnect
|
108
109
|
alias :disconnect :disconnect_with_flush
|
109
|
-
|
110
|
+
|
110
111
|
# @api gem:1 STOMP:1.0,1.1
|
111
112
|
# Returns true if a connection to the broker exists and itself is connected.
|
112
113
|
# @return [true,false]
|
113
114
|
def connected?
|
114
115
|
connection && connection.connected?
|
115
116
|
end
|
116
|
-
|
117
|
+
|
117
118
|
# @api gem:1 STOMP:1.0,1.1
|
118
119
|
# Forces the connection between broker and client closed.
|
119
120
|
# @note Use of this method may result in frames never being sent to the
|
@@ -125,9 +126,9 @@ class OnStomp::Client
|
|
125
126
|
processor_inst.stop
|
126
127
|
self
|
127
128
|
end
|
128
|
-
|
129
|
+
|
129
130
|
# @group Methods you ought not use directly.
|
130
|
-
|
131
|
+
|
131
132
|
# Ultimately sends a {OnStomp::Components::Frame frame} to the STOMP broker.
|
132
133
|
# This method should not be invoked directly. Use the frame methods provided
|
133
134
|
# by the {OnStomp::Interfaces:FrameMethod} interface.
|
@@ -139,32 +140,32 @@ class OnStomp::Client
|
|
139
140
|
connection && connection.write_frame_nonblock(frame)
|
140
141
|
end
|
141
142
|
end
|
142
|
-
|
143
|
+
|
143
144
|
# Called by {#connection} when a frame has been read from the socket
|
144
145
|
# connection to the STOMP broker.
|
145
146
|
def dispatch_received frame
|
146
147
|
trigger_before_receiving frame
|
147
148
|
trigger_after_receiving frame
|
148
149
|
end
|
149
|
-
|
150
|
+
|
150
151
|
# Called by {#connection} when a frame has been written to the socket
|
151
152
|
# connection to the STOMP broker.
|
152
153
|
def dispatch_transmitted frame
|
153
154
|
trigger_after_transmitting frame
|
154
155
|
end
|
155
|
-
|
156
|
+
|
156
157
|
# @endgroup
|
157
|
-
|
158
|
+
|
158
159
|
private
|
159
160
|
def register_callbacks f, cbs
|
160
161
|
cbs[:subscribe] && add_subscription(f, cbs[:subscribe])
|
161
162
|
cbs[:receipt] && add_receipt(f, cbs[:receipt])
|
162
163
|
end
|
163
|
-
|
164
|
+
|
164
165
|
def processor_inst
|
165
166
|
@processor_inst ||= processor.new(self)
|
166
167
|
end
|
167
|
-
|
168
|
+
|
168
169
|
def close
|
169
170
|
connection && connection.close
|
170
171
|
clear_subscriptions
|
data/lib/onstomp/version.rb
CHANGED
@@ -54,6 +54,19 @@ module OnStomp::Failover
|
|
54
54
|
login: 'user_name'
|
55
55
|
})
|
56
56
|
end
|
57
|
+
|
58
|
+
it 'passes the ssl settings to both clients in the pool' do
|
59
|
+
c = Client.new('failover:(stomp:///,stomp+ssl:///)', {
|
60
|
+
buffer: 'OnStomp::Failover::DummyBuffer',
|
61
|
+
retry_attempts: 2,
|
62
|
+
ssl: { ca_file: 'ca.crt' },
|
63
|
+
login: 'user_name'
|
64
|
+
})
|
65
|
+
|
66
|
+
c.client_pool.clients.count.should == 2
|
67
|
+
c.client_pool.clients[0].ssl.should == { ca_file: 'ca.crt' }
|
68
|
+
c.client_pool.clients[1].ssl.should == { ca_file: 'ca.crt' }
|
69
|
+
end
|
57
70
|
end
|
58
71
|
|
59
72
|
describe ".connected?" do
|
@@ -70,7 +83,7 @@ module OnStomp::Failover
|
|
70
83
|
client.connected?.should be_false
|
71
84
|
end
|
72
85
|
end
|
73
|
-
|
86
|
+
|
74
87
|
describe ".connect" do
|
75
88
|
it "should call reconnect" do
|
76
89
|
client.should_receive(:reconnect).and_return(true)
|
@@ -94,7 +107,7 @@ module OnStomp::Failover
|
|
94
107
|
triggered.should be_true
|
95
108
|
end
|
96
109
|
end
|
97
|
-
|
110
|
+
|
98
111
|
describe ".disconnect" do
|
99
112
|
let(:connection) {
|
100
113
|
mock('connection').tap do |m|
|
@@ -132,7 +145,7 @@ module OnStomp::Failover
|
|
132
145
|
Thread.pass while t.alive?
|
133
146
|
actual_disconnect.call *args
|
134
147
|
end
|
135
|
-
|
148
|
+
|
136
149
|
active_client.should_receive(:disconnect).with(:header1 => 'value 1')
|
137
150
|
client.disconnect :header1 => 'value 1'
|
138
151
|
end
|
@@ -158,7 +171,7 @@ module OnStomp::Failover
|
|
158
171
|
client.disconnect :header1 => 'value 1'
|
159
172
|
end
|
160
173
|
end
|
161
|
-
|
174
|
+
|
162
175
|
describe ".transmit" do
|
163
176
|
it "should transmit on the active client if there is one" do
|
164
177
|
active_client.should_receive(:transmit).with('test', :coming => 'home')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onstomp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian D. Eccles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|