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.
Files changed (70) hide show
  1. data/HISTORY.md +15 -0
  2. data/README.md +27 -28
  3. data/Rakefile +7 -1
  4. data/doc/classes/JMS.html +265 -0
  5. data/doc/classes/JMS/BytesMessage.html +215 -0
  6. data/doc/classes/JMS/Connection.html +1145 -0
  7. data/doc/classes/JMS/MapMessage.html +333 -0
  8. data/doc/classes/JMS/Message.html +1085 -0
  9. data/doc/classes/JMS/MessageConsumer.html +316 -0
  10. data/doc/classes/JMS/MessageListenerImpl.html +262 -0
  11. data/doc/classes/JMS/ObjectMessage.html +170 -0
  12. data/doc/classes/JMS/OracleAQConnectionFactory.html +184 -0
  13. data/doc/classes/JMS/QueueBrowser.html +155 -0
  14. data/doc/classes/JMS/Session.html +947 -0
  15. data/doc/classes/JMS/SessionPool.html +411 -0
  16. data/doc/classes/JMS/TextMessage.html +194 -0
  17. data/doc/created.rid +1 -0
  18. data/doc/files/README_md.html +440 -0
  19. data/doc/files/lib/jms/bytes_message_rb.html +122 -0
  20. data/doc/files/lib/jms/connection_rb.html +140 -0
  21. data/doc/files/lib/jms/imports_rb.html +108 -0
  22. data/doc/files/lib/jms/logging_rb.html +129 -0
  23. data/doc/files/lib/jms/map_message_rb.html +122 -0
  24. data/doc/files/lib/jms/message_consumer_rb.html +122 -0
  25. data/doc/files/lib/jms/message_listener_impl_rb.html +122 -0
  26. data/doc/files/lib/jms/message_rb.html +122 -0
  27. data/doc/files/lib/jms/object_message_rb.html +122 -0
  28. data/doc/files/lib/jms/oracle_a_q_connection_factory_rb.html +122 -0
  29. data/doc/files/lib/jms/queue_browser_rb.html +122 -0
  30. data/doc/files/lib/jms/session_pool_rb.html +108 -0
  31. data/doc/files/lib/jms/session_rb.html +164 -0
  32. data/doc/files/lib/jms/text_message_rb.html +122 -0
  33. data/doc/files/lib/jms_rb.html +131 -0
  34. data/doc/fr_class_index.html +39 -0
  35. data/doc/fr_file_index.html +42 -0
  36. data/doc/fr_method_index.html +120 -0
  37. data/doc/index.html +24 -0
  38. data/doc/rdoc-style.css +208 -0
  39. data/examples/advanced/session_pool.rb +37 -0
  40. data/examples/client-server/replier.rb +29 -0
  41. data/examples/client-server/requestor.rb +40 -0
  42. data/examples/jms.yml +85 -9
  43. data/examples/performance/consumer.rb +6 -8
  44. data/examples/performance/producer.rb +10 -10
  45. data/examples/producer-consumer/browser.rb +24 -0
  46. data/examples/{consumer.rb → producer-consumer/consumer.rb} +5 -4
  47. data/examples/producer-consumer/consumer_async.rb +30 -0
  48. data/examples/{producer.rb → producer-consumer/producer.rb} +5 -3
  49. data/examples/publish-subscribe/publish.rb +24 -0
  50. data/examples/publish-subscribe/subscribe.rb +31 -0
  51. data/lib/jms/bytes_message.rb +52 -0
  52. data/lib/jms/connection.rb +170 -162
  53. data/lib/jms/imports.rb +21 -0
  54. data/lib/jms/logging.rb +17 -1
  55. data/lib/jms/{javax_jms_map_message.rb → map_message.rb} +2 -2
  56. data/lib/jms/message.rb +285 -0
  57. data/lib/jms/{javax_jms_message_consumer.rb → message_consumer.rb} +6 -3
  58. data/lib/jms/{message_listener.rb → message_listener_impl.rb} +3 -3
  59. data/lib/jms/{javax_jms_object_message.rb → object_message.rb} +1 -1
  60. data/lib/jms/oracle_a_q_connection_factory.rb +35 -0
  61. data/lib/jms/{javax_jms_queue_browser.rb → queue_browser.rb} +5 -4
  62. data/lib/jms/{javax_jms_session.rb → session.rb} +23 -25
  63. data/lib/jms/session_pool.rb +148 -0
  64. data/lib/jms/{javax_jms_text_message.rb → text_message.rb} +1 -1
  65. data/test/connection_test.rb +31 -29
  66. data/test/jms.yml +8 -9
  67. data/test/message_test.rb +29 -29
  68. data/test/session_test.rb +39 -39
  69. metadata +62 -22
  70. 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.1.2.Final/lib/hornetq-core-client.jar
31
- - ~/Applications/hornetq-2.1.2.Final/lib/hornetq-core.jar
32
- - ~/Applications/hornetq-2.1.2.Final/lib/hornetq-jms-client.jar
33
- - ~/Applications/hornetq-2.1.2.Final/lib/jboss-jms-api.jar
34
- - ~/Applications/hornetq-2.1.2.Final/lib/jnp-client.jar
35
- - ~/Applications/hornetq-2.1.2.Final/lib/netty.jar
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[:queue_name] || raise("Mandatory :queue_name missing from jms.yml")
22
- @topic_name = @config[:topic_name] || raise("Mandatory :topic_name missing from jms.yml")
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?(javax.jms::TextMessage), true
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?(javax.jms::TextMessage), true
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?(javax.jms::TextMessage), true
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.jms_delivery_mode, :non_persistent
73
- message.jms_delivery_mode = :non_persistent
74
- assert_equal message.jms_delivery_mode, :non_persistent
75
- message.jms_delivery_mode = :persistent
76
- assert_equal message.jms_delivery_mode, :persistent
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.jms_delivery_mode = :non_persistent
87
- assert_equal :non_persistent, message.jms_delivery_mode
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?(javax.jms::TextMessage), true
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.jms_delivery_mode = :persistent
112
- assert_equal :persistent, message.jms_delivery_mode
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?(javax.jms::TextMessage), true
120
+ assert_equal message.java_kind_of?(JMS::TextMessage), true
121
121
  data = message.data
122
- assert_equal :persistent, message.jms_delivery_mode
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[:queue_name] || raise("Mandatory :queue_name missing from jms.yml")
22
- @topic_name = @config[:topic_name] || raise("Mandatory :topic_name missing from jms.yml")
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?(javax.jms::TextMessage), true
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?(javax.jms::MapMessage), true
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?(javax.jms::TextMessage), true
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?(javax.jms::MapMessage), true
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?(javax.jms::TemporaryQueue), true
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?(javax.jms::TemporaryTopic), true
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?(javax.jms::TemporaryQueue), true
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?(javax.jms::TemporaryTopic), true
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?(javax.jms::Queue), true
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?(javax.jms::Topic), true
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?(javax.jms::Queue), true
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?(javax.jms::Topic), true
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?(javax.jms::Queue), true
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?(javax.jms::TemporaryQueue), true
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?(javax.jms::Topic), true
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?(javax.jms::TemporaryTopic), true
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: false
5
- segments:
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-02-23 00:00:00 -05:00
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
- - examples/consumer.rb
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/producer.rb
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/javax_jms_map_message.rb
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/message_listener.rb
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.3.6
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