jruby-jms 0.10.2 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|