jruby-jms 0.10.2 → 0.11.0
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 +15 -0
- data/README.md +27 -28
- data/Rakefile +7 -1
- data/doc/classes/JMS.html +265 -0
- data/doc/classes/JMS/BytesMessage.html +215 -0
- data/doc/classes/JMS/Connection.html +1145 -0
- data/doc/classes/JMS/MapMessage.html +333 -0
- data/doc/classes/JMS/Message.html +1085 -0
- data/doc/classes/JMS/MessageConsumer.html +316 -0
- data/doc/classes/JMS/MessageListenerImpl.html +262 -0
- data/doc/classes/JMS/ObjectMessage.html +170 -0
- data/doc/classes/JMS/OracleAQConnectionFactory.html +184 -0
- data/doc/classes/JMS/QueueBrowser.html +155 -0
- data/doc/classes/JMS/Session.html +947 -0
- data/doc/classes/JMS/SessionPool.html +411 -0
- data/doc/classes/JMS/TextMessage.html +194 -0
- data/doc/created.rid +1 -0
- data/doc/files/README_md.html +440 -0
- data/doc/files/lib/jms/bytes_message_rb.html +122 -0
- data/doc/files/lib/jms/connection_rb.html +140 -0
- data/doc/files/lib/jms/imports_rb.html +108 -0
- data/doc/files/lib/jms/logging_rb.html +129 -0
- data/doc/files/lib/jms/map_message_rb.html +122 -0
- data/doc/files/lib/jms/message_consumer_rb.html +122 -0
- data/doc/files/lib/jms/message_listener_impl_rb.html +122 -0
- data/doc/files/lib/jms/message_rb.html +122 -0
- data/doc/files/lib/jms/object_message_rb.html +122 -0
- data/doc/files/lib/jms/oracle_a_q_connection_factory_rb.html +122 -0
- data/doc/files/lib/jms/queue_browser_rb.html +122 -0
- data/doc/files/lib/jms/session_pool_rb.html +108 -0
- data/doc/files/lib/jms/session_rb.html +164 -0
- data/doc/files/lib/jms/text_message_rb.html +122 -0
- data/doc/files/lib/jms_rb.html +131 -0
- data/doc/fr_class_index.html +39 -0
- data/doc/fr_file_index.html +42 -0
- data/doc/fr_method_index.html +120 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/examples/advanced/session_pool.rb +37 -0
- data/examples/client-server/replier.rb +29 -0
- data/examples/client-server/requestor.rb +40 -0
- data/examples/jms.yml +85 -9
- data/examples/performance/consumer.rb +6 -8
- data/examples/performance/producer.rb +10 -10
- data/examples/producer-consumer/browser.rb +24 -0
- data/examples/{consumer.rb → producer-consumer/consumer.rb} +5 -4
- data/examples/producer-consumer/consumer_async.rb +30 -0
- data/examples/{producer.rb → producer-consumer/producer.rb} +5 -3
- data/examples/publish-subscribe/publish.rb +24 -0
- data/examples/publish-subscribe/subscribe.rb +31 -0
- data/lib/jms/bytes_message.rb +52 -0
- data/lib/jms/connection.rb +170 -162
- data/lib/jms/imports.rb +21 -0
- data/lib/jms/logging.rb +17 -1
- data/lib/jms/{javax_jms_map_message.rb → map_message.rb} +2 -2
- data/lib/jms/message.rb +285 -0
- data/lib/jms/{javax_jms_message_consumer.rb → message_consumer.rb} +6 -3
- data/lib/jms/{message_listener.rb → message_listener_impl.rb} +3 -3
- data/lib/jms/{javax_jms_object_message.rb → object_message.rb} +1 -1
- data/lib/jms/oracle_a_q_connection_factory.rb +35 -0
- data/lib/jms/{javax_jms_queue_browser.rb → queue_browser.rb} +5 -4
- data/lib/jms/{javax_jms_session.rb → session.rb} +23 -25
- data/lib/jms/session_pool.rb +148 -0
- data/lib/jms/{javax_jms_text_message.rb → text_message.rb} +1 -1
- data/test/connection_test.rb +31 -29
- data/test/jms.yml +8 -9
- data/test/message_test.rb +29 -29
- data/test/session_test.rb +39 -39
- metadata +62 -22
- data/lib/jms/javax_jms_message.rb +0 -264
data/test/jms.yml
CHANGED
@@ -13,10 +13,10 @@ activemq:
|
|
13
13
|
:factory: org.apache.activemq.ActiveMQConnectionFactory
|
14
14
|
:broker_url: tcp://localhost:61616
|
15
15
|
:require_jars:
|
16
|
-
- ~/Applications/apache-activemq-5.4.2/activemq-all-5.4.2.jar
|
16
|
+
- ~/Applications/apache-activemq-5.4.2-fuse-03-09/activemq-all-5.4.2-fuse-03-09.jar
|
17
17
|
:queue_name: TestQueue
|
18
18
|
:topic_name: TestTopic
|
19
|
-
|
19
|
+
|
20
20
|
hornetq:
|
21
21
|
# Connect to a local HornetQ Broker using JNDI
|
22
22
|
:jndi_name: /ConnectionFactory
|
@@ -27,12 +27,11 @@ hornetq:
|
|
27
27
|
java.naming.security.principal: guest
|
28
28
|
java.naming.security.credentials: guest
|
29
29
|
:require_jars:
|
30
|
-
- ~/Applications/hornetq-2.
|
31
|
-
- ~/Applications/hornetq-2.
|
32
|
-
- ~/Applications/hornetq-2.
|
33
|
-
- ~/Applications/hornetq-2.
|
34
|
-
- ~/Applications/hornetq-2.
|
35
|
-
- ~/Applications/hornetq-2.
|
30
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/hornetq-core-client.jar
|
31
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/hornetq-core.jar
|
32
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/hornetq-jms-client.jar
|
33
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/jboss-jms-api.jar
|
34
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/jnp-client.jar
|
35
|
+
- ~/Applications/hornetq-2.2.2.Final/lib/netty.jar
|
36
36
|
:queue_name: TestQueue
|
37
37
|
:topic_name: TestTopic
|
38
|
-
|
data/test/message_test.rb
CHANGED
@@ -12,16 +12,16 @@ class JMSTest < Test::Unit::TestCase
|
|
12
12
|
# Load configuration from jms.yml
|
13
13
|
setup do
|
14
14
|
# To change the JMS provider, edit jms.yml and change :default
|
15
|
-
|
15
|
+
|
16
16
|
# Load Connection parameters from configuration file
|
17
17
|
cfg = YAML.load_file(File.join(File.dirname(__FILE__), 'jms.yml'))
|
18
18
|
jms_provider = cfg['default']
|
19
19
|
@config = cfg[jms_provider]
|
20
20
|
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless @config
|
21
|
-
@queue_name = @config
|
22
|
-
@topic_name = @config
|
21
|
+
@queue_name = @config.delete(:queue_name) || raise("Mandatory :queue_name missing from jms.yml")
|
22
|
+
@topic_name = @config.delete(:topic_name) || raise("Mandatory :topic_name missing from jms.yml")
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
should 'produce and consume messages to/from a temporary queue' do
|
26
26
|
JMS::Connection.session(@config) do |session|
|
27
27
|
assert_not_nil session
|
@@ -29,10 +29,10 @@ class JMSTest < Test::Unit::TestCase
|
|
29
29
|
session.producer(:queue_name => :temporary) do |producer|
|
30
30
|
# Send Message
|
31
31
|
producer.send(session.message('Hello World'))
|
32
|
-
|
32
|
+
|
33
33
|
# Consume Message
|
34
34
|
session.consume(:destination => producer.destination) do |message|
|
35
|
-
assert_equal message.java_kind_of?(
|
35
|
+
assert_equal message.java_kind_of?(JMS::TextMessage), true
|
36
36
|
data = message.data
|
37
37
|
end
|
38
38
|
end
|
@@ -48,16 +48,16 @@ class JMSTest < Test::Unit::TestCase
|
|
48
48
|
session.producer(:queue_name => @queue_name) do |producer|
|
49
49
|
# Send Message
|
50
50
|
producer.send(session.message('Hello World'))
|
51
|
-
|
51
|
+
|
52
52
|
# Browse Message
|
53
|
-
session.browse(:queue_name => @queue_name) do |message|
|
54
|
-
assert_equal message.java_kind_of?(
|
53
|
+
session.browse(:queue_name => @queue_name, :timeout=>1000) do |message|
|
54
|
+
assert_equal message.java_kind_of?(JMS::TextMessage), true
|
55
55
|
browse_data = message.data
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
# Consume Message
|
59
59
|
session.consume(:queue_name => @queue_name) do |message|
|
60
|
-
assert_equal message.java_kind_of?(
|
60
|
+
assert_equal message.java_kind_of?(JMS::TextMessage), true
|
61
61
|
data = message.data
|
62
62
|
end
|
63
63
|
end
|
@@ -69,30 +69,30 @@ class JMSTest < Test::Unit::TestCase
|
|
69
69
|
should 'support setting persistence using symbols and the java constants' do
|
70
70
|
JMS::Connection.session(@config) do |session|
|
71
71
|
message = session.message('Hello World')
|
72
|
-
assert_equal message.
|
73
|
-
message.
|
74
|
-
assert_equal message.
|
75
|
-
message.
|
76
|
-
assert_equal message.
|
72
|
+
assert_equal message.jms_delivery_mode_sym, :non_persistent
|
73
|
+
message.jms_delivery_mode_sym = :non_persistent
|
74
|
+
assert_equal message.jms_delivery_mode_sym, :non_persistent
|
75
|
+
message.jms_delivery_mode_sym = :persistent
|
76
|
+
assert_equal message.jms_delivery_mode_sym, :persistent
|
77
77
|
end
|
78
|
-
end
|
79
|
-
|
78
|
+
end
|
79
|
+
|
80
80
|
should 'produce and consume non-persistent messages' do
|
81
81
|
JMS::Connection.session(@config) do |session|
|
82
82
|
assert_not_nil session
|
83
83
|
data = nil
|
84
84
|
session.producer(:queue_name => :temporary) do |producer|
|
85
85
|
message = session.message('Hello World')
|
86
|
-
message.
|
87
|
-
assert_equal :non_persistent, message.
|
86
|
+
message.jms_delivery_mode_sym = :non_persistent
|
87
|
+
assert_equal :non_persistent, message.jms_delivery_mode_sym
|
88
88
|
assert_equal false, message.persistent?
|
89
|
-
|
89
|
+
|
90
90
|
# Send Message
|
91
91
|
producer.send(message)
|
92
|
-
|
92
|
+
|
93
93
|
# Consume Message
|
94
94
|
session.consume(:destination => producer.destination) do |message|
|
95
|
-
assert_equal message.java_kind_of?(
|
95
|
+
assert_equal message.java_kind_of?(JMS::TextMessage), true
|
96
96
|
data = message.data
|
97
97
|
#assert_equal :non_persistent, message.jms_delivery_mode
|
98
98
|
#assert_equal false, message.persistent?
|
@@ -108,18 +108,18 @@ class JMSTest < Test::Unit::TestCase
|
|
108
108
|
data = nil
|
109
109
|
session.producer(:queue_name => :temporary) do |producer|
|
110
110
|
message = session.message('Hello World')
|
111
|
-
message.
|
112
|
-
assert_equal :persistent, message.
|
111
|
+
message.jms_delivery_mode_sym = :persistent
|
112
|
+
assert_equal :persistent, message.jms_delivery_mode_sym
|
113
113
|
assert_equal true, message.persistent?
|
114
|
-
|
114
|
+
|
115
115
|
# Send Message
|
116
116
|
producer.send(message)
|
117
|
-
|
117
|
+
|
118
118
|
# Consume Message
|
119
119
|
session.consume(:destination => producer.destination) do |message|
|
120
|
-
assert_equal message.java_kind_of?(
|
120
|
+
assert_equal message.java_kind_of?(JMS::TextMessage), true
|
121
121
|
data = message.data
|
122
|
-
assert_equal :persistent, message.
|
122
|
+
assert_equal :persistent, message.jms_delivery_mode_sym
|
123
123
|
assert_equal true, message.persistent?
|
124
124
|
end
|
125
125
|
end
|
data/test/session_test.rb
CHANGED
@@ -12,14 +12,14 @@ class JMSTest < Test::Unit::TestCase
|
|
12
12
|
# Load configuration from jms.yml
|
13
13
|
setup do
|
14
14
|
# To change the JMS provider, edit jms.yml and change :default
|
15
|
-
|
15
|
+
|
16
16
|
# Load Connection parameters from configuration file
|
17
17
|
cfg = YAML.load_file(File.join(File.dirname(__FILE__), 'jms.yml'))
|
18
18
|
jms_provider = cfg['default']
|
19
19
|
@config = cfg[jms_provider]
|
20
20
|
raise "JMS Provider option:#{jms_provider} not found in jms.yml file" unless @config
|
21
|
-
@queue_name = @config
|
22
|
-
@topic_name = @config
|
21
|
+
@queue_name = @config.delete(:queue_name) || raise("Mandatory :queue_name missing from jms.yml")
|
22
|
+
@topic_name = @config.delete(:topic_name) || raise("Mandatory :topic_name missing from jms.yml")
|
23
23
|
end
|
24
24
|
|
25
25
|
should 'create a session' do
|
@@ -32,10 +32,10 @@ class JMSTest < Test::Unit::TestCase
|
|
32
32
|
JMS::Connection.session(@config) do |session|
|
33
33
|
assert_not_nil session
|
34
34
|
# Create Text Message
|
35
|
-
assert_equal session.message("Hello").java_kind_of?(
|
36
|
-
|
35
|
+
assert_equal session.message("Hello").java_kind_of?(JMS::TextMessage), true
|
36
|
+
|
37
37
|
# Create Map Message
|
38
|
-
assert_equal session.message('hello'=>'world').java_kind_of?(
|
38
|
+
assert_equal session.message('hello'=>'world').java_kind_of?(JMS::MapMessage), true
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -43,98 +43,98 @@ class JMSTest < Test::Unit::TestCase
|
|
43
43
|
JMS::Connection.session(@config) do |session|
|
44
44
|
assert_not_nil session
|
45
45
|
# Create Text Message
|
46
|
-
assert_equal session.create_text_message("Hello").java_kind_of?(
|
47
|
-
|
46
|
+
assert_equal session.create_text_message("Hello").java_kind_of?(JMS::TextMessage), true
|
47
|
+
|
48
48
|
# Create Map Message
|
49
|
-
assert_equal session.create_map_message.java_kind_of?(
|
49
|
+
assert_equal session.create_map_message.java_kind_of?(JMS::MapMessage), true
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
should 'create temporary destinations in blocks' do
|
54
54
|
JMS::Connection.session(@config) do |session|
|
55
55
|
assert_not_nil session
|
56
|
-
|
56
|
+
|
57
57
|
# Temporary Queue
|
58
58
|
session.destination(:queue_name => :temporary) do |destination|
|
59
|
-
assert_equal destination.java_kind_of?(
|
59
|
+
assert_equal destination.java_kind_of?(JMS::TemporaryQueue), true
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
# Temporary Topic
|
63
63
|
session.create_destination(:topic_name => :temporary) do |destination|
|
64
|
-
assert_equal destination.java_kind_of?(
|
64
|
+
assert_equal destination.java_kind_of?(JMS::TemporaryTopic), true
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
should 'create temporary destinations' do
|
70
70
|
JMS::Connection.session(@config) do |session|
|
71
71
|
assert_not_nil session
|
72
|
-
|
72
|
+
|
73
73
|
# Temporary Queue
|
74
74
|
destination = session.create_destination(:queue_name => :temporary)
|
75
|
-
assert_equal destination.java_kind_of?(
|
75
|
+
assert_equal destination.java_kind_of?(JMS::TemporaryQueue), true
|
76
76
|
destination.delete
|
77
|
-
|
77
|
+
|
78
78
|
# Temporary Topic
|
79
79
|
destination = session.create_destination(:topic_name => :temporary)
|
80
|
-
assert_equal destination.java_kind_of?(
|
80
|
+
assert_equal destination.java_kind_of?(JMS::TemporaryTopic), true
|
81
81
|
destination.delete
|
82
82
|
end
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
should 'create destinations in blocks' do
|
86
86
|
JMS::Connection.session(@config) do |session|
|
87
87
|
assert_not_nil session
|
88
|
-
|
88
|
+
|
89
89
|
# Temporary Queue
|
90
90
|
session.destination(:queue_name => @queue_name) do |destination|
|
91
|
-
assert_equal destination.java_kind_of?(
|
91
|
+
assert_equal destination.java_kind_of?(JMS::Queue), true
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
# Temporary Topic
|
95
95
|
session.create_destination(:topic_name => @topic_name) do |destination|
|
96
|
-
assert_equal destination.java_kind_of?(
|
96
|
+
assert_equal destination.java_kind_of?(JMS::Topic), true
|
97
97
|
end
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
should 'create destinations' do
|
102
102
|
JMS::Connection.session(@config) do |session|
|
103
103
|
assert_not_nil session
|
104
|
-
|
104
|
+
|
105
105
|
# Queue
|
106
106
|
queue = session.create_destination(:queue_name => @queue_name)
|
107
|
-
assert_equal queue.java_kind_of?(
|
108
|
-
|
107
|
+
assert_equal queue.java_kind_of?(JMS::Queue), true
|
108
|
+
|
109
109
|
# Topic
|
110
110
|
topic = session.create_destination(:topic_name => @topic_name)
|
111
|
-
assert_equal topic.java_kind_of?(
|
111
|
+
assert_equal topic.java_kind_of?(JMS::Topic), true
|
112
112
|
end
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
should 'create destinations using direct methods' do
|
116
116
|
JMS::Connection.session(@config) do |session|
|
117
117
|
assert_not_nil session
|
118
|
-
|
118
|
+
|
119
119
|
# Queue
|
120
120
|
queue = session.queue(@queue_name)
|
121
|
-
assert_equal queue.java_kind_of?(
|
122
|
-
|
121
|
+
assert_equal queue.java_kind_of?(JMS::Queue), true
|
122
|
+
|
123
123
|
# Temporary Queue
|
124
124
|
queue = session.temporary_queue
|
125
|
-
assert_equal queue.java_kind_of?(
|
125
|
+
assert_equal queue.java_kind_of?(JMS::TemporaryQueue), true
|
126
126
|
queue.delete
|
127
|
-
|
127
|
+
|
128
128
|
# Topic
|
129
129
|
topic = session.topic(@topic_name)
|
130
|
-
assert_equal topic.java_kind_of?(
|
131
|
-
|
130
|
+
assert_equal topic.java_kind_of?(JMS::Topic), true
|
131
|
+
|
132
132
|
# Temporary Topic
|
133
133
|
topic = session.temporary_topic
|
134
|
-
assert_equal topic.java_kind_of?(
|
134
|
+
assert_equal topic.java_kind_of?(JMS::TemporaryTopic), true
|
135
135
|
topic.delete
|
136
136
|
end
|
137
137
|
end
|
138
|
-
|
138
|
+
|
139
139
|
end
|
140
140
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jruby-jms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 10
|
8
|
-
- 2
|
9
|
-
version: 0.10.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.11.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Reid Morrison
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-04-19 00:00:00 -04:00
|
18
14
|
default_executable:
|
19
15
|
dependencies: []
|
20
16
|
|
@@ -31,22 +27,68 @@ files:
|
|
31
27
|
- LICENSE.txt
|
32
28
|
- Rakefile
|
33
29
|
- README.md
|
34
|
-
-
|
30
|
+
- doc/created.rid
|
31
|
+
- doc/fr_class_index.html
|
32
|
+
- doc/fr_file_index.html
|
33
|
+
- doc/fr_method_index.html
|
34
|
+
- doc/index.html
|
35
|
+
- doc/rdoc-style.css
|
36
|
+
- doc/classes/JMS.html
|
37
|
+
- doc/classes/JMS/BytesMessage.html
|
38
|
+
- doc/classes/JMS/Connection.html
|
39
|
+
- doc/classes/JMS/MapMessage.html
|
40
|
+
- doc/classes/JMS/Message.html
|
41
|
+
- doc/classes/JMS/MessageConsumer.html
|
42
|
+
- doc/classes/JMS/MessageListenerImpl.html
|
43
|
+
- doc/classes/JMS/ObjectMessage.html
|
44
|
+
- doc/classes/JMS/OracleAQConnectionFactory.html
|
45
|
+
- doc/classes/JMS/QueueBrowser.html
|
46
|
+
- doc/classes/JMS/Session.html
|
47
|
+
- doc/classes/JMS/SessionPool.html
|
48
|
+
- doc/classes/JMS/TextMessage.html
|
49
|
+
- doc/files/README_md.html
|
50
|
+
- doc/files/lib/jms_rb.html
|
51
|
+
- doc/files/lib/jms/bytes_message_rb.html
|
52
|
+
- doc/files/lib/jms/connection_rb.html
|
53
|
+
- doc/files/lib/jms/imports_rb.html
|
54
|
+
- doc/files/lib/jms/logging_rb.html
|
55
|
+
- doc/files/lib/jms/map_message_rb.html
|
56
|
+
- doc/files/lib/jms/message_consumer_rb.html
|
57
|
+
- doc/files/lib/jms/message_listener_impl_rb.html
|
58
|
+
- doc/files/lib/jms/message_rb.html
|
59
|
+
- doc/files/lib/jms/object_message_rb.html
|
60
|
+
- doc/files/lib/jms/oracle_a_q_connection_factory_rb.html
|
61
|
+
- doc/files/lib/jms/queue_browser_rb.html
|
62
|
+
- doc/files/lib/jms/session_pool_rb.html
|
63
|
+
- doc/files/lib/jms/session_rb.html
|
64
|
+
- doc/files/lib/jms/text_message_rb.html
|
35
65
|
- examples/jms.yml
|
36
|
-
- examples/
|
66
|
+
- examples/advanced/session_pool.rb
|
67
|
+
- examples/client-server/replier.rb
|
68
|
+
- examples/client-server/requestor.rb
|
37
69
|
- examples/performance/consumer.rb
|
38
70
|
- examples/performance/producer.rb
|
71
|
+
- examples/producer-consumer/browser.rb
|
72
|
+
- examples/producer-consumer/consumer.rb
|
73
|
+
- examples/producer-consumer/consumer_async.rb
|
74
|
+
- examples/producer-consumer/producer.rb
|
75
|
+
- examples/publish-subscribe/publish.rb
|
76
|
+
- examples/publish-subscribe/subscribe.rb
|
39
77
|
- lib/jms.rb
|
78
|
+
- lib/jms/bytes_message.rb
|
40
79
|
- lib/jms/connection.rb
|
41
|
-
- lib/jms/
|
42
|
-
- lib/jms/javax_jms_message.rb
|
43
|
-
- lib/jms/javax_jms_message_consumer.rb
|
44
|
-
- lib/jms/javax_jms_object_message.rb
|
45
|
-
- lib/jms/javax_jms_queue_browser.rb
|
46
|
-
- lib/jms/javax_jms_session.rb
|
47
|
-
- lib/jms/javax_jms_text_message.rb
|
80
|
+
- lib/jms/imports.rb
|
48
81
|
- lib/jms/logging.rb
|
49
|
-
- lib/jms/
|
82
|
+
- lib/jms/map_message.rb
|
83
|
+
- lib/jms/message.rb
|
84
|
+
- lib/jms/message_consumer.rb
|
85
|
+
- lib/jms/message_listener_impl.rb
|
86
|
+
- lib/jms/object_message.rb
|
87
|
+
- lib/jms/oracle_a_q_connection_factory.rb
|
88
|
+
- lib/jms/queue_browser.rb
|
89
|
+
- lib/jms/session.rb
|
90
|
+
- lib/jms/session_pool.rb
|
91
|
+
- lib/jms/text_message.rb
|
50
92
|
- test/connection_test.rb
|
51
93
|
- test/jms.yml
|
52
94
|
- test/message_test.rb
|
@@ -61,23 +103,21 @@ rdoc_options: []
|
|
61
103
|
require_paths:
|
62
104
|
- lib
|
63
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
64
107
|
requirements:
|
65
108
|
- - ">="
|
66
109
|
- !ruby/object:Gem::Version
|
67
|
-
segments:
|
68
|
-
- 0
|
69
110
|
version: "0"
|
70
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
71
113
|
requirements:
|
72
114
|
- - ">="
|
73
115
|
- !ruby/object:Gem::Version
|
74
|
-
segments:
|
75
|
-
- 0
|
76
116
|
version: "0"
|
77
117
|
requirements: []
|
78
118
|
|
79
119
|
rubyforge_project:
|
80
|
-
rubygems_version: 1.
|
120
|
+
rubygems_version: 1.5.1
|
81
121
|
signing_key:
|
82
122
|
specification_version: 3
|
83
123
|
summary: JRuby interface into JMS
|
@@ -1,264 +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
|
-
# Extend JMS Message Interface with Ruby methods
|
18
|
-
#
|
19
|
-
# A Message is the item that can be put on a queue, or obtained from a queue.
|
20
|
-
#
|
21
|
-
# A Message consists of 3 major parts:
|
22
|
-
# - Header
|
23
|
-
# Accessible as attributes of the Message class
|
24
|
-
# - Properties
|
25
|
-
# Accessible via [] and []= methods
|
26
|
-
# - Data
|
27
|
-
# The actual data portion of the message
|
28
|
-
# See the specific message types for details on how to access the data
|
29
|
-
# portion of the message
|
30
|
-
#
|
31
|
-
# For further help on javax.jms.Message
|
32
|
-
# http://download.oracle.com/javaee/6/api/index.html?javax/jms/Message.html
|
33
|
-
#
|
34
|
-
# Interface javax.jms.Message
|
35
|
-
module javax.jms::Message
|
36
|
-
|
37
|
-
# Methods directly exposed from the Java class:
|
38
|
-
|
39
|
-
# call-seq:
|
40
|
-
# acknowledge
|
41
|
-
#
|
42
|
-
# Acknowledges all consumed messages of the session of this consumed message
|
43
|
-
#
|
44
|
-
|
45
|
-
# call-seq:
|
46
|
-
# clear_body
|
47
|
-
#
|
48
|
-
# Clears out the message body
|
49
|
-
#
|
50
|
-
|
51
|
-
# call-seq:
|
52
|
-
# clear_properties
|
53
|
-
#
|
54
|
-
# Clears out the properties of this message
|
55
|
-
#
|
56
|
-
|
57
|
-
# Header Fields - Attributes of the message
|
58
|
-
|
59
|
-
# Return the JMS Delivery Mode as a symbol
|
60
|
-
# :persistent
|
61
|
-
# :non_persistent
|
62
|
-
# other: Value from javax.jms.DeliveryMode
|
63
|
-
def jms_delivery_mode
|
64
|
-
case getJMSDeliveryMode
|
65
|
-
when javax.jms.DeliveryMode::PERSISTENT
|
66
|
-
:persistent
|
67
|
-
when javax.jms.DeliveryMode::NON_PERSISTENT
|
68
|
-
:non_persistent
|
69
|
-
else
|
70
|
-
getJMSDeliveryMode
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
# Set the JMS Delivery Mode
|
75
|
-
# Valid values for mode
|
76
|
-
# :persistent
|
77
|
-
# :non_persistent
|
78
|
-
# other: Any constant from javax.jms.DeliveryMode
|
79
|
-
def jms_delivery_mode=(mode)
|
80
|
-
val = case mode
|
81
|
-
when :persistent
|
82
|
-
javax.jms.DeliveryMode::PERSISTENT
|
83
|
-
when :non_persistent
|
84
|
-
javax.jms.DeliveryMode::NON_PERSISTENT
|
85
|
-
else
|
86
|
-
mode
|
87
|
-
end
|
88
|
-
self.setJMSDeliveryMode(val)
|
89
|
-
end
|
90
|
-
|
91
|
-
# Is the message persistent?
|
92
|
-
def persistent?
|
93
|
-
getJMSDeliveryMode == javax.jms.DeliveryMode::PERSISTENT
|
94
|
-
end
|
95
|
-
|
96
|
-
# Returns the Message correlation ID as a String
|
97
|
-
# The resulting string may contain nulls
|
98
|
-
def jms_correlation_id
|
99
|
-
String.from_java_bytes(getJMSCorrelationIDAsBytes) if getJMSCorrelationIDAsBytes
|
100
|
-
end
|
101
|
-
|
102
|
-
# Set the Message correlation ID
|
103
|
-
# correlation_id: String
|
104
|
-
# Also supports embedded nulls within the correlation id
|
105
|
-
def jms_correlation_id=(correlation_id)
|
106
|
-
setJMSCorrelationIDAsBytes(correlation_id.nil? ? nil : correlation_id.to_java_bytes)
|
107
|
-
end
|
108
|
-
|
109
|
-
# Returns the Message Destination
|
110
|
-
# Instance of javax.jms.Destination
|
111
|
-
def jms_destination
|
112
|
-
getJMSDestination
|
113
|
-
end
|
114
|
-
|
115
|
-
# Set the Message Destination
|
116
|
-
# jms_destination: Must be an instance of javax.jms.Destination
|
117
|
-
def jms_destination=(destination)
|
118
|
-
setJMSDestination(destination)
|
119
|
-
end
|
120
|
-
|
121
|
-
# Return the message expiration value as an Integer
|
122
|
-
def jms_expiration
|
123
|
-
getJMSExpiration
|
124
|
-
end
|
125
|
-
|
126
|
-
# Set the Message expiration value
|
127
|
-
# expiration: Integer
|
128
|
-
def jms_expiration=(expiration)
|
129
|
-
setJMSExpiration(expiration)
|
130
|
-
end
|
131
|
-
|
132
|
-
# Returns the Message ID as a String
|
133
|
-
# The resulting string may contain embedded nulls
|
134
|
-
def jms_message_id
|
135
|
-
getJMSMessageID
|
136
|
-
end
|
137
|
-
|
138
|
-
# Set the Message correlation ID
|
139
|
-
# message_id: String
|
140
|
-
# Also supports nulls within the message id
|
141
|
-
def jms_message_id=(message_id)
|
142
|
-
setJMSMessageID(message_id)
|
143
|
-
end
|
144
|
-
|
145
|
-
# Returns the Message Priority level as an Integer
|
146
|
-
def jms_priority
|
147
|
-
getJMSPriority
|
148
|
-
end
|
149
|
-
|
150
|
-
# Set the Message priority level
|
151
|
-
# priority: Integer
|
152
|
-
def jms_priority=(priority)
|
153
|
-
setJMSPriority(priority)
|
154
|
-
end
|
155
|
-
|
156
|
-
# Indicates whether the Message was redelivered?
|
157
|
-
def jms_redelivered?
|
158
|
-
getJMSRedelivered
|
159
|
-
end
|
160
|
-
|
161
|
-
# Set whether the Message was redelivered
|
162
|
-
# bool: Boolean
|
163
|
-
def jms_redelivered=(bool)
|
164
|
-
setJMSPriority(bool)
|
165
|
-
end
|
166
|
-
|
167
|
-
# Returns the Message reply to Destination
|
168
|
-
# Instance of javax.jms.Destination
|
169
|
-
def jms_reply_to
|
170
|
-
getJMSReplyTo
|
171
|
-
end
|
172
|
-
|
173
|
-
# Set the Message reply to Destination
|
174
|
-
# reply_to: Must be an instance of javax.jms.Destination
|
175
|
-
def jms_reply_to=(reply_to)
|
176
|
-
setJMSReplyTo(reply_to)
|
177
|
-
end
|
178
|
-
|
179
|
-
# Returns the Message timestamp as Java Timestamp Integer
|
180
|
-
#TODO Return Ruby Time object?
|
181
|
-
def jms_timestamp
|
182
|
-
getJMSTimestamp
|
183
|
-
end
|
184
|
-
|
185
|
-
# Set the Message reply to Destination
|
186
|
-
# timestamp: Must be an Java Timestamp Integer
|
187
|
-
#TODO Support Ruby Time
|
188
|
-
def jms_timestamp=(timestamp)
|
189
|
-
setJMSTimestamp(timestamp)
|
190
|
-
end
|
191
|
-
|
192
|
-
# Returns the Message type supplied by the client when the message was sent
|
193
|
-
def jms_type
|
194
|
-
getJMSType
|
195
|
-
end
|
196
|
-
|
197
|
-
# Sets the Message type
|
198
|
-
# type: String
|
199
|
-
def jms_type=(type)
|
200
|
-
setJMSType(type)
|
201
|
-
end
|
202
|
-
|
203
|
-
# Return the attributes (header fields) of the message as a Hash
|
204
|
-
def attributes
|
205
|
-
{
|
206
|
-
:jms_correlation_id => jms_correlation_id,
|
207
|
-
:jms_delivery_mode => jms_delivery_mode,
|
208
|
-
:jms_destination => jms_destination,
|
209
|
-
:jms_expiration => jms_expiration,
|
210
|
-
:jms_message_id => jms_message_id,
|
211
|
-
:jms_priority => jms_priority,
|
212
|
-
:jms_redelivered => jms_redelivered?,
|
213
|
-
:jms_reply_to => jms_reply_to,
|
214
|
-
:jms_timestamp => jms_timestamp,
|
215
|
-
:jms_type => jms_type,
|
216
|
-
}
|
217
|
-
end
|
218
|
-
|
219
|
-
# Methods for manipulating the message properties
|
220
|
-
|
221
|
-
# Get the value of a property
|
222
|
-
def [](key)
|
223
|
-
getObjectProperty key.to_s
|
224
|
-
end
|
225
|
-
|
226
|
-
# Set a property
|
227
|
-
def []=(key, value)
|
228
|
-
setObjectProperty(key.to_s, value)
|
229
|
-
end
|
230
|
-
|
231
|
-
# Does message include specified property?
|
232
|
-
def include?(key)
|
233
|
-
# Ensure a Ruby true is returned
|
234
|
-
property_exists key == true
|
235
|
-
end
|
236
|
-
|
237
|
-
# Return Properties as a hash
|
238
|
-
def properties
|
239
|
-
h = {}
|
240
|
-
properties_each_pair {|k,v| h[k]=v}
|
241
|
-
h
|
242
|
-
end
|
243
|
-
|
244
|
-
# Set Properties from an existing hash
|
245
|
-
def properties=(h)
|
246
|
-
clear_properties
|
247
|
-
h.each_pair {|k,v| setObjectProperty(k.to_s, v)}
|
248
|
-
h
|
249
|
-
end
|
250
|
-
|
251
|
-
# Return each name value pair
|
252
|
-
def properties_each_pair(&proc)
|
253
|
-
enum = getPropertyNames
|
254
|
-
while enum.has_more_elements
|
255
|
-
key = enum.next_element
|
256
|
-
proc.call key, getObjectProperty(key)
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
def inspect
|
261
|
-
"#{self.class.name}: #{data}\nAttributes: #{attributes.inspect}\nProperties: #{properties.inspect}"
|
262
|
-
end
|
263
|
-
|
264
|
-
end
|