jruby-jms 1.1.0-java → 1.2.0-java
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/HISTORY.md +24 -7
- data/README.md +49 -49
- data/Rakefile +17 -12
- data/lib/jms.rb +8 -17
- data/lib/jms/bytes_message.rb +3 -19
- data/lib/jms/connection.rb +63 -83
- data/lib/jms/map_message.rb +9 -25
- data/lib/jms/message.rb +22 -173
- data/lib/jms/message_consumer.rb +23 -35
- data/lib/jms/message_listener_impl.rb +22 -38
- data/lib/jms/message_producer.rb +9 -25
- data/lib/jms/mq_workaround.rb +11 -26
- data/lib/jms/object_message.rb +1 -17
- data/lib/jms/oracle_a_q_connection_factory.rb +4 -21
- data/lib/jms/queue_browser.rb +2 -18
- data/lib/jms/session.rb +92 -106
- data/lib/jms/session_pool.rb +34 -41
- data/lib/jms/text_message.rb +0 -16
- data/lib/jms/version.rb +1 -1
- data/test/connection_test.rb +35 -81
- data/test/jms.yml +18 -8
- data/test/message_test.rb +27 -43
- data/test/session_pool_test.rb +30 -46
- data/test/session_test.rb +30 -45
- data/test/test_helper.rb +33 -0
- metadata +20 -26
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -36
- data/examples/advanced/session_pool.rb +0 -37
- data/examples/client-server/replier.rb +0 -29
- data/examples/client-server/requestor.rb +0 -40
- data/examples/file-to-q/files_to_q.rb +0 -51
- data/examples/file-to-q/q_to_files.rb +0 -44
- data/examples/invm/invm.rb +0 -44
- data/examples/invm/log4j.properties +0 -58
- data/examples/jms.yml +0 -149
- data/examples/performance/consumer.rb +0 -25
- data/examples/performance/producer.rb +0 -31
- data/examples/producer-consumer/browser.rb +0 -24
- data/examples/producer-consumer/consumer.rb +0 -24
- data/examples/producer-consumer/consumer_async.rb +0 -41
- data/examples/producer-consumer/producer.rb +0 -25
- data/examples/publish-subscribe/publish.rb +0 -24
- data/examples/publish-subscribe/subscribe.rb +0 -31
- data/lib/jms/logging.rb +0 -50
- data/nbproject/private/private.properties +0 -3
- data/nbproject/private/rake-d.txt +0 -5
- data/parallel_minion.gemspec +0 -21
@@ -1,25 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Consumer:
|
3
|
-
# Retrieve all messages from a queue
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'yaml'
|
11
|
-
require 'jms'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
JMS::Connection.session(config) do |session|
|
20
|
-
stats = session.consume(:queue_name => 'ExampleQueue', :statistics => true) do |message|
|
21
|
-
# Do nothing in this example with each message
|
22
|
-
end
|
23
|
-
|
24
|
-
JMS::logger.info "Consumed #{stats[:messages]} messages. Average #{stats[:ms_per_msg]}ms per message"
|
25
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Producer:
|
3
|
-
# Write multiple messages to the queue
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'yaml'
|
11
|
-
require 'jms'
|
12
|
-
require 'benchmark'
|
13
|
-
|
14
|
-
jms_provider = ARGV[0] || 'activemq'
|
15
|
-
count = (ARGV[1] || 10).to_i
|
16
|
-
|
17
|
-
# Load Connection parameters from configuration file
|
18
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
19
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
20
|
-
|
21
|
-
JMS::Connection.session(config) do |session|
|
22
|
-
duration = Benchmark.realtime do
|
23
|
-
session.producer(:queue_name => 'ExampleQueue') do |producer|
|
24
|
-
count.times do |i|
|
25
|
-
producer.send(session.message("Hello Producer #{i}"))
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
JMS::logger.info "Produced #{count} messages. Average #{duration*1000/count}ms per message"
|
31
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Browsing Consumer:
|
3
|
-
# Browse all messages on a queue without removing them
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'jms'
|
11
|
-
require 'yaml'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
# Consume all available messages on the queue
|
20
|
-
JMS::Connection.session(config) do |session|
|
21
|
-
session.browse(:queue_name => 'ExampleQueue', :timeout=>1000) do |message|
|
22
|
-
JMS::logger.info message.inspect
|
23
|
-
end
|
24
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Consumer:
|
3
|
-
# Retrieve all messages from a queue
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'jms'
|
11
|
-
require 'yaml'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
# Consume all available messages on the queue
|
20
|
-
JMS::Connection.session(config) do |session|
|
21
|
-
session.consume(:queue_name => 'ExampleQueue', :timeout=>1000) do |message|
|
22
|
-
JMS::logger.info message.inspect
|
23
|
-
end
|
24
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Asynchronous Consumer:
|
3
|
-
# Retrieve all messages from the queue in a separate thread
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'jms'
|
11
|
-
require 'yaml'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
continue = true
|
20
|
-
|
21
|
-
trap("INT") {
|
22
|
-
JMS::logger.info "CTRL + C"
|
23
|
-
continue = false
|
24
|
-
}
|
25
|
-
|
26
|
-
# Consume all available messages on the queue
|
27
|
-
JMS::Connection.start(config) do |connection|
|
28
|
-
|
29
|
-
# Define Asynchronous code block to be called every time a message is received
|
30
|
-
connection.on_message(:queue_name => 'ExampleQueue') do |message|
|
31
|
-
JMS::logger.info message.inspect
|
32
|
-
end
|
33
|
-
|
34
|
-
# Since the on_message handler above is in a separate thread the thread needs
|
35
|
-
# to do some other work. For this example it will just sleep for 10 seconds
|
36
|
-
while(continue)
|
37
|
-
sleep 10
|
38
|
-
end
|
39
|
-
|
40
|
-
JMS::logger.info "closing ..."
|
41
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Producer:
|
3
|
-
# Write messages to the queue
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'yaml'
|
11
|
-
require 'jms'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
JMS::Connection.session(config) do |session|
|
20
|
-
session.producer(:queue_name => 'ExampleQueue') do |producer|
|
21
|
-
producer.delivery_mode_sym = :non_persistent
|
22
|
-
producer.send(session.message("Hello World: #{Time.now}"))
|
23
|
-
JMS::logger.info "Successfully sent one message to queue ExampleQueue"
|
24
|
-
end
|
25
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Publisher:
|
3
|
-
# Write messages to a topic
|
4
|
-
#
|
5
|
-
|
6
|
-
# Allow examples to be run in-place without requiring a gem install
|
7
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
8
|
-
|
9
|
-
require 'rubygems'
|
10
|
-
require 'yaml'
|
11
|
-
require 'jms'
|
12
|
-
|
13
|
-
jms_provider = ARGV[0] || 'activemq'
|
14
|
-
|
15
|
-
# Load Connection parameters from configuration file
|
16
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
17
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
18
|
-
|
19
|
-
JMS::Connection.session(config) do |session|
|
20
|
-
session.producer(:topic_name => 'SampleTopic') do |producer|
|
21
|
-
producer.send(session.message("Hello World: #{Time.now}"))
|
22
|
-
JMS::logger.info "Successfully published one message to topic SampleTopic"
|
23
|
-
end
|
24
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Sample Topic Subscriber:
|
3
|
-
# Retrieve all messages from a topic using a non-durable subscription
|
4
|
-
#
|
5
|
-
# Try starting multiple copies of this Consumer. All active instances should
|
6
|
-
# receive the same messages
|
7
|
-
#
|
8
|
-
# Since the topic subscription is non-durable, it will only receive new messages.
|
9
|
-
# Any messages sent prior to the instance starting will not be received.
|
10
|
-
# Also, any messages sent after the instance has stopped will not be received
|
11
|
-
# when the instance is re-started, only new messages sent after it started will
|
12
|
-
# be received.
|
13
|
-
|
14
|
-
# Allow examples to be run in-place without requiring a gem install
|
15
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
|
16
|
-
|
17
|
-
require 'rubygems'
|
18
|
-
require 'jms'
|
19
|
-
require 'yaml'
|
20
|
-
|
21
|
-
jms_provider = ARGV[0] || 'activemq'
|
22
|
-
|
23
|
-
# Load Connection parameters from configuration file
|
24
|
-
config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'jms.yml'))[jms_provider]
|
25
|
-
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless config
|
26
|
-
|
27
|
-
JMS::Connection.session(config) do |session|
|
28
|
-
session.consume(:topic_name => 'SampleTopic', :timeout=>30000) do |message|
|
29
|
-
JMS::logger.info message.inspect
|
30
|
-
end
|
31
|
-
end
|
data/lib/jms/logging.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
################################################################################
|
2
|
-
# Copyright 2008, 2009, 2010, 2011 J. Reid Morrison
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
################################################################################
|
16
|
-
|
17
|
-
# Add Logging capabilities
|
18
|
-
module JMS
|
19
|
-
|
20
|
-
# Returns the logger being used by jruby-jms
|
21
|
-
# Unless previously set, it will try to use the Rails logger and if it
|
22
|
-
# is not present, it will return a new Ruby logger
|
23
|
-
def self.logger
|
24
|
-
@logger ||= (self.rails_logger || self.ruby_logger)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Replace the logger for jruby-jms
|
28
|
-
def self.logger=(logger)
|
29
|
-
@logger = logger
|
30
|
-
end
|
31
|
-
|
32
|
-
# Use the ruby logger, but add needed trace level logging which will result
|
33
|
-
# in debug log entries
|
34
|
-
def self.ruby_logger(level=nil, target=STDOUT)
|
35
|
-
require 'logger'
|
36
|
-
|
37
|
-
l = ::Logger.new(target)
|
38
|
-
l.instance_eval "alias :trace :debug"
|
39
|
-
l.instance_eval "alias :trace? :debug?"
|
40
|
-
l.level = level || ::Logger::INFO
|
41
|
-
l
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
def self.rails_logger
|
46
|
-
(defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger) ||
|
47
|
-
(defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER.respond_to?(:debug) && RAILS_DEFAULT_LOGGER)
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
data/parallel_minion.gemspec
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
$:.push File.expand_path("../lib", __FILE__)
|
2
|
-
|
3
|
-
# Maintain gem's version:
|
4
|
-
require 'jms/version'
|
5
|
-
|
6
|
-
# Describe your gem and declare its dependencies:
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = 'jruby-jms'
|
9
|
-
spec.version = JMS::VERSION
|
10
|
-
spec.platform = 'java'
|
11
|
-
spec.authors = ['Reid Morrison']
|
12
|
-
spec.email = ['reidmo@gmail.com']
|
13
|
-
spec.homepage = 'https://github.com/reidmorrison/jruby-jms'
|
14
|
-
spec.summary = 'JRuby interface into JMS'
|
15
|
-
spec.description = 'JRuby-JMS is a Java and Ruby library that exposes the Java JMS API in a ruby friendly way. For JRuby only.'
|
16
|
-
spec.files = FileList["./**/*"].exclude('*.gem', './nbproject/*').map{|f| f.sub(/^\.\//, '')}
|
17
|
-
spec.test_files = Dir["test/**/*"]
|
18
|
-
spec.license = "Apache License V2.0"
|
19
|
-
spec.has_rdoc = true
|
20
|
-
spec.add_dependency 'gene_pool'
|
21
|
-
end
|