rservicebus 0.1.74 → 0.1.75
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.
- data/bin/ReturnMessagesToSourceQueue +18 -18
- data/bin/SendEmptyMessage +3 -3
- data/bin/rsb_ctl +10 -10
- data/bin/rservicebus-create +4 -4
- data/bin/rservicebus-init +7 -6
- data/lib/rservicebus.rb +49 -49
- data/lib/rservicebus/Agent.rb +4 -4
- data/lib/rservicebus/AppResource.rb +4 -4
- data/lib/rservicebus/AppResource/Dir.rb +3 -3
- data/lib/rservicebus/AppResource/FluidDb.rb +1 -1
- data/lib/rservicebus/AppResource/FluidDbFirebird.rb +1 -1
- data/lib/rservicebus/AppResource/FluidDbMysql.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbMysql2.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbPgsql.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbTinyTds.rb +1 -1
- data/lib/rservicebus/AppResource/Mysql.rb +2 -2
- data/lib/rservicebus/AppResource/Redis.rb +1 -1
- data/lib/rservicebus/AppResource/ScpDownload.rb +51 -0
- data/lib/rservicebus/AppResource/ScpUpload.rb +3 -2
- data/lib/rservicebus/AppResource/Smb.rb +3 -3
- data/lib/rservicebus/AppResource/SmbDir.rb +2 -2
- data/lib/rservicebus/AppResource/SmbFile.rb +1 -1
- data/lib/rservicebus/Audit.rb +9 -9
- data/lib/rservicebus/CircuitBreaker.rb +4 -4
- data/lib/rservicebus/Config.rb +46 -46
- data/lib/rservicebus/ConfigureAppResource.rb +64 -63
- data/lib/rservicebus/ConfigureMonitor.rb +12 -12
- data/lib/rservicebus/ConfigureSubscriptionStorage.rb +5 -5
- data/lib/rservicebus/CronManager.rb +8 -8
- data/lib/rservicebus/EndpointMapping.rb +11 -11
- data/lib/rservicebus/HandlerLoader.rb +33 -33
- data/lib/rservicebus/HandlerManager.rb +2 -2
- data/lib/rservicebus/Host.rb +58 -58
- data/lib/rservicebus/MQ.rb +21 -21
- data/lib/rservicebus/MQ/Beanstalk.rb +9 -9
- data/lib/rservicebus/MQ/RabbitMq.rb +5 -5
- data/lib/rservicebus/MQ/Redis.rb +3 -3
- data/lib/rservicebus/Message.rb +11 -11
- data/lib/rservicebus/Monitor.rb +5 -5
- data/lib/rservicebus/Monitor/CsvDir.rb +5 -5
- data/lib/rservicebus/Monitor/CsvPerLine.rb +5 -5
- data/lib/rservicebus/Monitor/Dir.rb +34 -34
- data/lib/rservicebus/Monitor/DirNotifier.rb +15 -15
- data/lib/rservicebus/ResourceManager.rb +2 -2
- data/lib/rservicebus/Saga/Manager.rb +18 -18
- data/lib/rservicebus/SagaLoader.rb +19 -19
- data/lib/rservicebus/SagaStorage.rb +4 -4
- data/lib/rservicebus/SagaStorage/Dir.rb +12 -12
- data/lib/rservicebus/SendAtManager.rb +4 -4
- data/lib/rservicebus/SendAtStorage.rb +5 -5
- data/lib/rservicebus/SendAtStorage/File.rb +3 -3
- data/lib/rservicebus/StateManager.rb +2 -2
- data/lib/rservicebus/StateStorage.rb +2 -2
- data/lib/rservicebus/StateStorage/Dir.rb +11 -11
- data/lib/rservicebus/StateStorage/InMemory.rb +1 -1
- data/lib/rservicebus/StatisticManager.rb +2 -2
- data/lib/rservicebus/SubscriptionManager.rb +2 -2
- data/lib/rservicebus/SubscriptionStorage.rb +4 -4
- data/lib/rservicebus/SubscriptionStorage/File.rb +3 -3
- data/lib/rservicebus/SubscriptionStorage/Redis.rb +10 -10
- data/lib/rservicebus/Test.rb +2 -2
- data/lib/rservicebus/Test/Bus.rb +2 -2
- data/lib/rservicebus/Test/Redis.rb +1 -1
- data/lib/rservicebus/Transporter.rb +15 -15
- data/lib/rservicebus/helper_functions.rb +15 -15
- metadata +13 -12
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require 'yaml'
|
4
|
+
require 'beanstalk-client'
|
5
|
+
require 'rservicebus'
|
6
6
|
|
7
7
|
def returnMsg( beanstalk, job, request_nbr )
|
8
|
-
firstMatch =
|
8
|
+
firstMatch = 'ruby/object:'
|
9
9
|
|
10
10
|
payload = job.body
|
11
11
|
|
@@ -17,16 +17,16 @@ def returnMsg( beanstalk, job, request_nbr )
|
|
17
17
|
msg = YAML::load(payload)
|
18
18
|
if msg.lastErrorString.nil? then
|
19
19
|
puts "*** Requested msg, #{request_nbr}, does not have a sourceQueue to which it can be returned"
|
20
|
-
puts
|
21
|
-
puts
|
22
|
-
puts
|
23
|
-
puts
|
20
|
+
puts '*** Only errored msgs can be Returned'
|
21
|
+
puts '*** Generally, msgs would not be manually moved between queues'
|
22
|
+
puts '*** If you do need to, try'
|
23
|
+
puts '*** beanstalk-admin-dump <source queue name> | beanstalk-admin-load <destination queue name>'
|
24
24
|
|
25
25
|
job.release
|
26
26
|
return
|
27
27
|
end
|
28
28
|
queueName = msg.lastErrorSourceQueue
|
29
|
-
puts
|
29
|
+
puts '#' + "#{request_nbr.to_s}: #{msgName} to #{queueName}"
|
30
30
|
|
31
31
|
beanstalk.use( queueName )
|
32
32
|
beanstalk.put( payload )
|
@@ -37,14 +37,14 @@ end
|
|
37
37
|
|
38
38
|
index=nil
|
39
39
|
if ARGV.length == 0 then
|
40
|
-
queueName =
|
40
|
+
queueName = 'error'
|
41
41
|
elsif ARGV.length == 1 then
|
42
42
|
queueName = ARGV[0]
|
43
43
|
elsif ARGV.length == 2 then
|
44
44
|
queueName = ARGV[0]
|
45
45
|
index = ARGV[1].to_i
|
46
46
|
else
|
47
|
-
abort(
|
47
|
+
abort('Usage: ReturnMessagesToSourceQueue [queue name] [index]')
|
48
48
|
end
|
49
49
|
|
50
50
|
begin
|
@@ -52,12 +52,12 @@ begin
|
|
52
52
|
beanstalk = Beanstalk::Pool.new([host])
|
53
53
|
|
54
54
|
tubes = beanstalk.list_tubes[host]
|
55
|
-
|
56
|
-
|
55
|
+
unless tubes.include?(queueName) then
|
56
|
+
abort("Nothing waiting on the Beanstalk queue, #{queueName}")
|
57
57
|
end
|
58
58
|
|
59
59
|
tubeStats = beanstalk.stats_tube(queueName)
|
60
|
-
number_of_messages = tubeStats[
|
60
|
+
number_of_messages = tubeStats['current-jobs-ready']
|
61
61
|
if index.nil? then
|
62
62
|
puts
|
63
63
|
puts "Attempting to return #{number_of_messages} to their source queue"
|
@@ -71,7 +71,7 @@ begin
|
|
71
71
|
returnMsg( beanstalk, job, request_nbr )
|
72
72
|
end
|
73
73
|
rescue Exception => e
|
74
|
-
if e.message ==
|
74
|
+
if e.message == 'TIMED_OUT' then
|
75
75
|
else
|
76
76
|
raise
|
77
77
|
end
|
@@ -79,7 +79,7 @@ begin
|
|
79
79
|
else
|
80
80
|
if index > number_of_messages then
|
81
81
|
puts "*** Requested msg, #{index}, is greater than the number of msgs in the queue, #{number_of_messages}"
|
82
|
-
puts
|
82
|
+
puts '*** Try a smaller index, or remove the index number to return all msgs'
|
83
83
|
abort();
|
84
84
|
end
|
85
85
|
|
@@ -102,7 +102,7 @@ begin
|
|
102
102
|
end
|
103
103
|
|
104
104
|
rescue Exception => e
|
105
|
-
if e.message ==
|
105
|
+
if e.message == 'TIMED_OUT' then
|
106
106
|
else
|
107
107
|
raise
|
108
108
|
end
|
@@ -110,5 +110,5 @@ begin
|
|
110
110
|
end
|
111
111
|
|
112
112
|
rescue Beanstalk::NotConnected=>e
|
113
|
-
puts
|
113
|
+
puts 'Beanstalk not running'
|
114
114
|
end
|
data/bin/SendEmptyMessage
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'rservicebus'
|
4
|
+
require 'rservicebus/Agent'
|
5
5
|
|
6
6
|
|
7
7
|
abort( "Usage: #{File.basename($0)} <Msg Name> <Queue Name> [Response Queue Name] [Beanstalk Host]" ) unless ARGV.length >=2 && ARGV.length <=4
|
8
8
|
msg_name = ARGV[0]
|
9
9
|
queue_name = ARGV[1]
|
10
10
|
response_queue_name = "#{queue_name}Response" if ARGV.length >= 3
|
11
|
-
beanstalkHost =
|
11
|
+
beanstalkHost = 'beanstalk://localhost' if ARGV.length <= 4
|
12
12
|
|
13
13
|
agent = RServiceBus::Agent.new.getAgent( URI.parse( beanstalkHost) )
|
14
14
|
msg = RServiceBus.createAnonymousClass( msg_name )
|
data/bin/rsb_ctl
CHANGED
@@ -5,33 +5,33 @@
|
|
5
5
|
#
|
6
6
|
|
7
7
|
require 'rubygems'
|
8
|
-
require
|
9
|
-
require
|
8
|
+
require 'rservicebus'
|
9
|
+
require 'rservicebus/Agent'
|
10
10
|
|
11
11
|
|
12
12
|
|
13
13
|
if ARGV.length == 3 then
|
14
14
|
queue_name = ARGV[0]
|
15
15
|
switch_name = ARGV[1].upcase
|
16
|
-
switch_state = ARGV[2].upcase ==
|
16
|
+
switch_state = ARGV[2].upcase == 'TRUE' || ARGV[2].upcase == 'ON'
|
17
17
|
else
|
18
|
-
puts
|
19
|
-
puts
|
20
|
-
puts
|
18
|
+
puts 'Usage: rsb_ctl <queue name> <switch> <switch state>'
|
19
|
+
puts 'Valid switchs: Stats, Verbose'
|
20
|
+
puts 'Valid switch states: On, Off'
|
21
21
|
abort()
|
22
22
|
end
|
23
23
|
|
24
24
|
|
25
|
-
agent = RServiceBus::Agent.new.getAgent( URI.parse(
|
25
|
+
agent = RServiceBus::Agent.new.getAgent( URI.parse('beanstalk://localhost') )
|
26
26
|
obj = nil
|
27
27
|
case switch_name
|
28
|
-
when switch_name =
|
28
|
+
when switch_name = 'STATS'
|
29
29
|
obj = switch_state == true ? RServiceBus::Message_StatisticOutputOn.new : RServiceBus::Message_StatisticOutputOff.new
|
30
|
-
when switch_name =
|
30
|
+
when switch_name = 'VERBOSE'
|
31
31
|
obj = switch_state == true ? RServiceBus::Message_VerboseOutputOn.new : RServiceBus::Message_VerboseOutputOff.new
|
32
32
|
else
|
33
33
|
puts "Switch name, #{ARGV[0]}, not recognized"
|
34
|
-
puts
|
34
|
+
puts 'Valid switchs: Stats, Verbose'
|
35
35
|
abort()
|
36
36
|
end
|
37
37
|
|
data/bin/rservicebus-create
CHANGED
@@ -4,11 +4,11 @@
|
|
4
4
|
# Contract
|
5
5
|
def contract( name )
|
6
6
|
|
7
|
-
content =
|
7
|
+
content = '
|
8
8
|
class First
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
'
|
12
12
|
|
13
13
|
File.write( "#{name}/Contract.rb", content )
|
14
14
|
|
@@ -52,7 +52,7 @@ end
|
|
52
52
|
# MessageHandler
|
53
53
|
def messagehandler( name )
|
54
54
|
|
55
|
-
content =
|
55
|
+
content = '
|
56
56
|
class MessageHandler_First
|
57
57
|
|
58
58
|
def Handle( msg )
|
@@ -61,7 +61,7 @@ class MessageHandler_First
|
|
61
61
|
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
'
|
65
65
|
|
66
66
|
Dir.mkdir( "#{name}/MessageHandler" )
|
67
67
|
File.write( "#{name}/MessageHandler/First.rb", content )
|
data/bin/rservicebus-init
CHANGED
@@ -89,13 +89,14 @@ END_DATA
|
|
89
89
|
class Init
|
90
90
|
|
91
91
|
def Run
|
92
|
-
IO.write(
|
93
|
-
IO.write(
|
94
|
-
IO.write(
|
95
|
-
IO.write(
|
92
|
+
IO.write( 'README.md', ContentReadMe.string );
|
93
|
+
IO.write( 'Client.rb', ContentClient.string );
|
94
|
+
IO.write( 'Contract.rb', ContentContract.string );
|
95
|
+
IO.write( 'run', ContentRun.string );
|
96
96
|
|
97
|
-
Dir.mkdir(
|
98
|
-
|
97
|
+
Dir.mkdir('./MessageHandler') unless Dir.exists? './MessageHandler'
|
98
|
+
;
|
99
|
+
IO.write( 'MessageHandler/HelloWorld.rb', ContentMessageHandler.string );
|
99
100
|
end
|
100
101
|
|
101
102
|
end
|
data/lib/rservicebus.rb
CHANGED
@@ -4,55 +4,55 @@
|
|
4
4
|
#Don't buffer stdout
|
5
5
|
$stdout.sync = true
|
6
6
|
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
25
|
-
|
26
|
-
require
|
27
|
-
require
|
28
|
-
require
|
29
|
-
require
|
30
|
-
|
31
|
-
require
|
32
|
-
|
33
|
-
require
|
34
|
-
require
|
35
|
-
require
|
36
|
-
|
37
|
-
require
|
38
|
-
require
|
39
|
-
|
40
|
-
require
|
41
|
-
require
|
42
|
-
require
|
43
|
-
|
44
|
-
require
|
45
|
-
|
46
|
-
require
|
47
|
-
|
48
|
-
require
|
49
|
-
require
|
50
|
-
require
|
51
|
-
require
|
52
|
-
|
53
|
-
require
|
54
|
-
|
55
|
-
require
|
7
|
+
require 'rubygems'
|
8
|
+
require 'yaml'
|
9
|
+
require 'uuidtools'
|
10
|
+
require 'json'
|
11
|
+
require 'uri'
|
12
|
+
|
13
|
+
require 'rservicebus/helper_functions'
|
14
|
+
require 'rservicebus/ErrorMessage'
|
15
|
+
require 'rservicebus/HandlerLoader'
|
16
|
+
require 'rservicebus/HandlerManager'
|
17
|
+
require 'rservicebus/ConfigureAppResource'
|
18
|
+
require 'rservicebus/MQ'
|
19
|
+
require 'rservicebus/Host'
|
20
|
+
require 'rservicebus/Config'
|
21
|
+
require 'rservicebus/EndpointMapping'
|
22
|
+
require 'rservicebus/Stats'
|
23
|
+
require 'rservicebus/StatisticManager'
|
24
|
+
require 'rservicebus/Audit'
|
25
|
+
|
26
|
+
require 'rservicebus/Message'
|
27
|
+
require 'rservicebus/Message/Subscription'
|
28
|
+
require 'rservicebus/Message/StatisticOutput'
|
29
|
+
require 'rservicebus/Message/VerboseOutput'
|
30
|
+
|
31
|
+
require 'rservicebus/UserMessage/WithPayload'
|
32
|
+
|
33
|
+
require 'rservicebus/StateManager'
|
34
|
+
require 'rservicebus/CronManager'
|
35
|
+
require 'rservicebus/CircuitBreaker'
|
36
|
+
|
37
|
+
require 'rservicebus/AppResource'
|
38
|
+
require 'rservicebus/ResourceManager'
|
39
|
+
|
40
|
+
require 'rservicebus/SubscriptionManager'
|
41
|
+
require 'rservicebus/SubscriptionStorage'
|
42
|
+
require 'rservicebus/ConfigureSubscriptionStorage'
|
43
|
+
|
44
|
+
require 'rservicebus/ConfigureMonitor'
|
45
|
+
|
46
|
+
require 'rservicebus/Agent'
|
47
|
+
|
48
|
+
require 'rservicebus/SagaLoader.rb'
|
49
|
+
require 'rservicebus/Saga/Manager.rb'
|
50
|
+
require 'rservicebus/Saga/Data.rb'
|
51
|
+
require 'rservicebus/Saga/Base.rb'
|
52
|
+
|
53
|
+
require 'rservicebus/SagaStorage'
|
54
|
+
|
55
|
+
require 'rservicebus/SendAtManager'
|
56
56
|
|
57
57
|
|
58
58
|
module RServiceBus
|
data/lib/rservicebus/Agent.rb
CHANGED
@@ -10,9 +10,9 @@ end
|
|
10
10
|
@mq
|
11
11
|
|
12
12
|
def getAgent( uri )
|
13
|
-
ENV[
|
13
|
+
ENV['RSBMQ'] = uri.to_s
|
14
14
|
|
15
|
-
RServiceBus.rlog
|
15
|
+
RServiceBus.rlog '*** Agent.getAgent has been deprecated. Set the environment variable, RSBMQ, and simply create the class'
|
16
16
|
return Agent.new
|
17
17
|
end
|
18
18
|
|
@@ -31,10 +31,10 @@ end
|
|
31
31
|
msg = RServiceBus::Message.new( messageObj, returnAddress )
|
32
32
|
|
33
33
|
|
34
|
-
if queueName.index(
|
34
|
+
if queueName.index('@').nil? then
|
35
35
|
q = queueName
|
36
36
|
else
|
37
|
-
parts = queueName.split(
|
37
|
+
parts = queueName.split('@')
|
38
38
|
msg.setRemoteQueueName( parts[0] )
|
39
39
|
msg.setRemoteHostName( parts[1] )
|
40
40
|
q = 'transport-out'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'uri'
|
4
4
|
|
5
5
|
# Wrapper base class for resources used by applications, allowing rservicebus to configure the resource
|
6
6
|
# - dependency injection.
|
@@ -12,7 +12,7 @@ module RServiceBus
|
|
12
12
|
# The method which actually connects to the resource.
|
13
13
|
#
|
14
14
|
def connect(uri)
|
15
|
-
raise
|
15
|
+
raise 'Method, connect, needs to be implemented for resource'
|
16
16
|
end
|
17
17
|
|
18
18
|
def _connect
|
@@ -48,8 +48,8 @@ module RServiceBus
|
|
48
48
|
begin
|
49
49
|
self.finished
|
50
50
|
rescue Exception => e
|
51
|
-
puts
|
52
|
-
puts
|
51
|
+
puts '** AppResource. An error was raised while closing connection to, ' + @uri.to_s
|
52
|
+
puts 'Message: ' + e.message
|
53
53
|
puts e.backtrace
|
54
54
|
end
|
55
55
|
|
@@ -5,9 +5,9 @@ module RServiceBus
|
|
5
5
|
def connect(uri)
|
6
6
|
begin
|
7
7
|
inputDir = Dir.new( uri.path )
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
unless File.writable?(uri.path) then
|
9
|
+
puts "*** Warning. Directory is not writable, #{uri.path}."
|
10
|
+
puts "*** Warning. Make the directory, #{uri.path}, writable and try again."
|
11
11
|
end
|
12
12
|
rescue Errno::ENOENT => e
|
13
13
|
puts "***** Directory does not exist, #{uri.path}."
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'FluidDb/Mysql'
|
4
4
|
|
5
5
|
#Implementation of an AppResource - Redis
|
6
6
|
class AppResource_FluidDbMysql<AppResource
|
@@ -11,17 +11,17 @@ module RServiceBus
|
|
11
11
|
|
12
12
|
# Transaction Semantics
|
13
13
|
def Begin
|
14
|
-
@connection.execute(
|
14
|
+
@connection.execute( 'BEGIN', [] )
|
15
15
|
end
|
16
16
|
|
17
17
|
# Transaction Semantics
|
18
18
|
def Commit
|
19
|
-
@connection.execute(
|
19
|
+
@connection.execute( 'COMMIT', [] )
|
20
20
|
end
|
21
21
|
|
22
22
|
# Transaction Semantics
|
23
23
|
def Rollback
|
24
|
-
@connection.execute(
|
24
|
+
@connection.execute( 'ROLLBACK', [] )
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'FluidDb/Mysql2'
|
4
4
|
|
5
5
|
#Implementation ofF an AppResource - Redis
|
6
6
|
class AppResource_FluidDbMysql2<AppResource
|
@@ -11,17 +11,17 @@ module RServiceBus
|
|
11
11
|
|
12
12
|
# Transaction Semantics
|
13
13
|
def Begin
|
14
|
-
@connection.execute(
|
14
|
+
@connection.execute( 'BEGIN', [] )
|
15
15
|
end
|
16
16
|
|
17
17
|
# Transaction Semantics
|
18
18
|
def Commit
|
19
|
-
@connection.execute(
|
19
|
+
@connection.execute( 'COMMIT', [] )
|
20
20
|
end
|
21
21
|
|
22
22
|
# Transaction Semantics
|
23
23
|
def Rollback
|
24
|
-
@connection.execute(
|
24
|
+
@connection.execute( 'ROLLBACK', [] )
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|