jruby-hornetq 0.2.5.alpha → 0.3.0.alpha
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/HISTORY.md +12 -0
- data/Rakefile +13 -1
- data/bin/hornetq_server +2 -2
- data/examples/README +6 -0
- data/examples/{client/advanced → advanced}/batch_client.rb +18 -34
- data/examples/advanced/bytes_producer.rb +25 -0
- data/examples/advanced/client.rb +56 -0
- data/examples/{client/advanced/multi_client.rb → advanced/client_session_pooling.rb} +29 -25
- data/examples/advanced/consume_on_message.rb +50 -0
- data/examples/advanced/consumer.rb +31 -0
- data/examples/{client/advanced → advanced}/hornetq.yml +8 -6
- data/examples/advanced/multi_client.rb +71 -0
- data/examples/advanced/producer.rb +37 -0
- data/examples/advanced/server.rb +44 -0
- data/examples/client-server/client.rb +40 -0
- data/examples/client-server/server.rb +37 -0
- data/examples/producer-consumer/consume_all.rb +25 -0
- data/examples/producer-consumer/consume_on_message.rb +46 -0
- data/examples/producer-consumer/consumer.rb +27 -0
- data/examples/producer-consumer/producer.rb +32 -0
- data/examples/{client/resque → resque}/hornetq_job.rb +2 -2
- data/examples/{client/resque → resque}/processor.rb +1 -1
- data/examples/{client/resque → resque}/readme.md +0 -0
- data/examples/{client/resque → resque}/resque_conf.rb +0 -0
- data/examples/{client/resque → resque}/resque_worker.rb +0 -0
- data/examples/{client/resque → resque}/sleep_job.rb +0 -0
- data/examples/{server → server-config}/backup_server.yml +0 -0
- data/examples/{server → server-config}/live_server.yml +0 -0
- data/examples/{server → server-config}/standalone_server.yml +0 -0
- data/examples/{client → simple}/invm.rb +6 -7
- data/examples/{advanced/transaction-failover → transaction-failover}/README +0 -0
- data/examples/{advanced/transaction-failover → transaction-failover}/consumer.rb +4 -1
- data/examples/{advanced/transaction-failover → transaction-failover}/hornetq.yml +6 -3
- data/examples/{advanced/transaction-failover → transaction-failover}/producer.rb +8 -3
- data/examples/{simple_worker → worker}/README +0 -0
- data/examples/worker/hornetq.yml +26 -0
- data/examples/worker/producer.rb +71 -0
- data/examples/{simple_worker → worker}/test_object.rb +0 -0
- data/examples/worker/worker.rb +72 -0
- data/lib/hornetq/client.rb +1 -1
- data/lib/hornetq/client/{factory.rb → connection.rb} +153 -86
- data/lib/hornetq/client/message_handler.rb +3 -3
- data/lib/hornetq/client/org_hornetq_api_core_client_client_session.rb +187 -26
- data/lib/hornetq/client/org_hornetq_core_client_impl_client_consumer_impl.rb +26 -9
- data/lib/hornetq/client/org_hornetq_core_client_impl_client_message_impl.rb +190 -35
- data/lib/hornetq/client/session_pool.rb +4 -4
- data/lib/hornetq/common/log_delegate.rb +17 -15
- data/lib/hornetq/common/logging.rb +20 -7
- data/lib/hornetq/common/org_hornetq_core_logging_logger.rb +11 -9
- data/lib/hornetq/server.rb +86 -3
- data/lib/hornetq/{org_hornetq_core_server_hornet_q_server.rb → server/org_hornetq_core_server_hornet_q_server.rb} +1 -1
- data/lib/hornetq/uri.rb +4 -0
- data/test/client_connection_test.rb +158 -0
- data/test/logging_test.rb +32 -0
- data/test/server_test.rb +208 -0
- metadata +47 -48
- data/examples/client/advanced/bytes_producer.rb +0 -21
- data/examples/client/advanced/client.rb +0 -47
- data/examples/client/advanced/consumer.rb +0 -35
- data/examples/client/advanced/multi_consumer.rb +0 -54
- data/examples/client/advanced/producer.rb +0 -35
- data/examples/client/advanced/server.rb +0 -39
- data/examples/client/client.rb +0 -31
- data/examples/client/consumer.rb +0 -22
- data/examples/client/data/bindings/hornetq-bindings-1.bindings +0 -0
- data/examples/client/data/bindings/hornetq-bindings-2.bindings +0 -0
- data/examples/client/data/journal/hornetq-data-1.hq +0 -0
- data/examples/client/data/journal/hornetq-data-2.hq +0 -0
- data/examples/client/producer.rb +0 -21
- data/examples/client/server.rb +0 -31
- data/examples/simple_worker/hornetq.yml +0 -34
- data/examples/simple_worker/producer.rb +0 -54
- data/examples/simple_worker/worker.rb +0 -49
- data/lib/data/bindings/hornetq-bindings-1.bindings +0 -0
- data/lib/data/bindings/hornetq-bindings-2.bindings +0 -0
- data/lib/hornetq/server/factory.rb +0 -87
- data/test/server_factory_test.rb +0 -183
data/test/server_factory_test.rb
DELETED
@@ -1,183 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'test/unit'
|
3
|
-
require 'shoulda'
|
4
|
-
require 'hornetq'
|
5
|
-
require 'fileutils'
|
6
|
-
|
7
|
-
class MyThread < ::Thread
|
8
|
-
def initialize(name, &block)
|
9
|
-
super() do
|
10
|
-
begin
|
11
|
-
yield
|
12
|
-
rescue => e
|
13
|
-
puts("Thread #{name} died due to exception #{e.message}\n#{e.backtrace.join("\n")}")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class ServerFactoryTest < Test::Unit::TestCase
|
20
|
-
context 'standalone server' do
|
21
|
-
setup do
|
22
|
-
@server = nil
|
23
|
-
@tmp_data_dir = "/tmp/data_dir/#{$$}"
|
24
|
-
@uri = "hornetq://localhost:15445"
|
25
|
-
@server_thread = MyThread.new('standalone server') do
|
26
|
-
@server = HornetQ::Server::Factory.create_server(:uri => @uri, :data_directory => @tmp_data_dir)
|
27
|
-
@server.start
|
28
|
-
end
|
29
|
-
# Give the server time to startup
|
30
|
-
sleep 5
|
31
|
-
end
|
32
|
-
|
33
|
-
teardown do
|
34
|
-
@server.stop
|
35
|
-
@server_thread.join
|
36
|
-
FileUtils.rm_rf(@tmp_data_dir)
|
37
|
-
end
|
38
|
-
|
39
|
-
should 'pass simple messages' do
|
40
|
-
count = 10
|
41
|
-
queue_name = 'test_queue'
|
42
|
-
config = {
|
43
|
-
:connector => { :uri => @uri },
|
44
|
-
:session => { :username =>'guest', :password => 'guest'}
|
45
|
-
}
|
46
|
-
|
47
|
-
# Create a HornetQ session
|
48
|
-
HornetQ::Client::Factory.session(config) do |session|
|
49
|
-
session.create_queue(queue_name, queue_name, true)
|
50
|
-
producer = session.create_producer(queue_name)
|
51
|
-
(1..count).each do |i|
|
52
|
-
message = session.create_message(HornetQ::Client::Message::TEXT_TYPE,false)
|
53
|
-
message.durable = true
|
54
|
-
# Set the message body text
|
55
|
-
message.body = "Message ##{i}"
|
56
|
-
# Send message to the queue
|
57
|
-
producer.send(message)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
HornetQ::Client::Factory.session(config) do |session|
|
62
|
-
consumer = session.create_consumer(queue_name)
|
63
|
-
session.start
|
64
|
-
|
65
|
-
i = 0
|
66
|
-
while message = consumer.receive(1000)
|
67
|
-
i += 1
|
68
|
-
message.acknowledge
|
69
|
-
assert_equal "Message ##{i}", message.body
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'live and backup server' do
|
76
|
-
setup do
|
77
|
-
@count = 20
|
78
|
-
|
79
|
-
@server = nil
|
80
|
-
@tmp_data_dir = "/tmp/data_dir/#{$$}"
|
81
|
-
@uri = "hornetq://localhost:15445,localhost:15446"
|
82
|
-
|
83
|
-
@backup_server = nil
|
84
|
-
@backup_tmp_data_dir = "/tmp/backup_data_dir/#{$$}"
|
85
|
-
@backup_uri = "hornetq://localhost:15446"
|
86
|
-
|
87
|
-
@backup_server_thread = MyThread.new('backup server') do
|
88
|
-
begin
|
89
|
-
@backup_server = HornetQ::Server::Factory.create_server(:uri => @backup_uri, :data_directory => @backup_tmp_data_dir, :backup => true)
|
90
|
-
@backup_server.start
|
91
|
-
rescue Exception => e
|
92
|
-
puts "Error in backup server thread: #{e.message}\n#{e.backtrace.join("\n")}"
|
93
|
-
end
|
94
|
-
end
|
95
|
-
# Give the backup server time to startup
|
96
|
-
sleep 10
|
97
|
-
|
98
|
-
@server_thread = MyThread.new('live server') do
|
99
|
-
begin
|
100
|
-
@server = HornetQ::Server::Factory.create_server(:uri => @uri, :data_directory => @tmp_data_dir)
|
101
|
-
@server.start
|
102
|
-
rescue Exception => e
|
103
|
-
puts "Error in live server thread: #{e.message}\n#{e.backtrace.join("\n")}"
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
# Give the live server time to startup
|
108
|
-
sleep 10
|
109
|
-
|
110
|
-
@queue_name = 'test_queue'
|
111
|
-
@config = {
|
112
|
-
:connector => {
|
113
|
-
:uri => @uri,
|
114
|
-
:failover_on_initial_connection => true,
|
115
|
-
:failover_on_server_shutdown => true,
|
116
|
-
},
|
117
|
-
:session => { :username =>'guest', :password => 'guest'}
|
118
|
-
}
|
119
|
-
|
120
|
-
@killer_thread = MyThread.new('killer') do
|
121
|
-
sleep 5
|
122
|
-
@server.stop
|
123
|
-
end
|
124
|
-
|
125
|
-
@producer_thread = MyThread.new('producer') do
|
126
|
-
# Create a HornetQ session
|
127
|
-
HornetQ::Client::Factory.session(@config) do |session|
|
128
|
-
session.create_queue(@queue_name, @queue_name, true)
|
129
|
-
producer = session.create_producer(@queue_name)
|
130
|
-
(1..@count).each do |i|
|
131
|
-
message = session.create_message(HornetQ::Client::Message::TEXT_TYPE, true)
|
132
|
-
# Set the message body text
|
133
|
-
message.body = "Message ##{i}"
|
134
|
-
# Send message to the queue
|
135
|
-
begin
|
136
|
-
puts "Producing message: #{message.body}"
|
137
|
-
producer.send(message)
|
138
|
-
sleep 1
|
139
|
-
rescue Java::org.hornetq.api.core.HornetQException => e
|
140
|
-
puts "Received producer exception: #{e.message} with code=#{e.cause.code}"
|
141
|
-
if e.cause.getCode == Java::org.hornetq.api.core.HornetQException::UNBLOCKED
|
142
|
-
puts "Retrying the send"
|
143
|
-
retry
|
144
|
-
end
|
145
|
-
rescue Exception => e
|
146
|
-
puts "Received producer exception: #{e.message}"
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
teardown do
|
154
|
-
@server.stop
|
155
|
-
@backup_server.stop
|
156
|
-
[ @server_thread, @backup_server_thread, @killer_thread, @producer_thread ].each do |thread|
|
157
|
-
thread.join
|
158
|
-
end
|
159
|
-
FileUtils.rm_rf([@tmp_data_dir, @backup_tmp_data_dir])
|
160
|
-
end
|
161
|
-
|
162
|
-
should 'failover to backup server w/o message loss' do
|
163
|
-
# Let the producer create the queue
|
164
|
-
sleep 2
|
165
|
-
HornetQ::Client::Factory.session(@config) do |session|
|
166
|
-
consumer = session.create_consumer(@queue_name)
|
167
|
-
session.start
|
168
|
-
|
169
|
-
i = 0
|
170
|
-
while message = consumer.receive(1000)
|
171
|
-
i += 1
|
172
|
-
message.acknowledge
|
173
|
-
assert_equal "Message ##{i}", message.body
|
174
|
-
puts "Consuming message #{message.body}"
|
175
|
-
end
|
176
|
-
assert_equal @count, i
|
177
|
-
end
|
178
|
-
|
179
|
-
killer_thread.join
|
180
|
-
producer_thread.join
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|