jruby-jms 0.9.0 → 0.10.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/test/jms.yml ADDED
@@ -0,0 +1,38 @@
1
+ # This YAML file contains the configuration options for several different
2
+ # JMS Providers
3
+ #
4
+ # The Examples that ship with jruby-jms will use the entry 'default' unless
5
+ # overriden at the command line. For example:
6
+ # jruby producer.rb activemq
7
+ #
8
+ ---
9
+ # Which JMS Provider to use by default
10
+ default: activemq
11
+
12
+ activemq:
13
+ :factory: org.apache.activemq.ActiveMQConnectionFactory
14
+ :broker_url: tcp://localhost:61616
15
+ :require_jars:
16
+ - ~/Applications/apache-activemq-5.4.2/activemq-all-5.4.2.jar
17
+ :queue_name: TestQueue
18
+ :topic_name: TestTopic
19
+
20
+ hornetq:
21
+ # Connect to a local HornetQ Broker using JNDI
22
+ :jndi_name: /ConnectionFactory
23
+ :jndi_context:
24
+ java.naming.factory.initial: org.jnp.interfaces.NamingContextFactory
25
+ java.naming.provider.url: jnp://localhost:1099
26
+ java.naming.factory.url.pkgs: org.jboss.naming:org.jnp.interfaces
27
+ java.naming.security.principal: guest
28
+ java.naming.security.credentials: guest
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
36
+ :queue_name: TestQueue
37
+ :topic_name: TestTopic
38
+
@@ -0,0 +1,184 @@
1
+ # Allow examples to be run in-place without requiring a gem install
2
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
3
+
4
+ require 'rubygems'
5
+ require 'test/unit'
6
+ require 'shoulda'
7
+ require 'jms'
8
+ require 'yaml'
9
+
10
+ class JMSTest < Test::Unit::TestCase
11
+ context 'JMS Session' do
12
+ # Load configuration from jms.yml
13
+ setup do
14
+ # To change the JMS provider, edit jms.yml and change :default
15
+
16
+ # Load Connection parameters from configuration file
17
+ cfg = YAML.load_file(File.join(File.dirname(__FILE__), 'jms.yml'))
18
+ jms_provider = cfg['default']
19
+ @config = cfg[jms_provider]
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")
23
+ end
24
+
25
+ should 'create a session' do
26
+ JMS::Connection.session(@config) do |session|
27
+ assert_not_nil session
28
+ end
29
+ end
30
+
31
+ should 'create automatic messages' do
32
+ JMS::Connection.session(@config) do |session|
33
+ assert_not_nil session
34
+ # Create Text Message
35
+ assert_equal session.message("Hello").java_kind_of?(javax.jms::TextMessage), true
36
+
37
+ # Create Map Message
38
+ assert_equal session.message('hello'=>'world').java_kind_of?(javax.jms::MapMessage), true
39
+ end
40
+ end
41
+
42
+ should 'create explicit messages' do
43
+ JMS::Connection.session(@config) do |session|
44
+ assert_not_nil session
45
+ # Create Text Message
46
+ assert_equal session.create_text_message("Hello").java_kind_of?(javax.jms::TextMessage), true
47
+
48
+ # Create Map Message
49
+ assert_equal session.create_map_message.java_kind_of?(javax.jms::MapMessage), true
50
+ end
51
+ end
52
+
53
+ should 'create temporary destinations in blocks' do
54
+ JMS::Connection.session(@config) do |session|
55
+ assert_not_nil session
56
+
57
+ # Temporary Queue
58
+ session.destination(:queue_name => :temporary) do |destination|
59
+ assert_equal destination.java_kind_of?(javax.jms::TemporaryQueue), true
60
+ end
61
+
62
+ # Temporary Topic
63
+ session.create_destination(:topic_name => :temporary) do |destination|
64
+ assert_equal destination.java_kind_of?(javax.jms::TemporaryTopic), true
65
+ end
66
+ end
67
+ end
68
+
69
+ should 'create temporary destinations' do
70
+ JMS::Connection.session(@config) do |session|
71
+ assert_not_nil session
72
+
73
+ # Temporary Queue
74
+ destination = session.create_destination(:queue_name => :temporary)
75
+ assert_equal destination.java_kind_of?(javax.jms::TemporaryQueue), true
76
+ destination.delete
77
+
78
+ # Temporary Topic
79
+ destination = session.create_destination(:topic_name => :temporary)
80
+ assert_equal destination.java_kind_of?(javax.jms::TemporaryTopic), true
81
+ destination.delete
82
+ end
83
+ end
84
+
85
+ should 'create destinations in blocks' do
86
+ JMS::Connection.session(@config) do |session|
87
+ assert_not_nil session
88
+
89
+ # Temporary Queue
90
+ session.destination(:queue_name => @queue_name) do |destination|
91
+ assert_equal destination.java_kind_of?(javax.jms::Queue), true
92
+ end
93
+
94
+ # Temporary Topic
95
+ session.create_destination(:topic_name => @topic_name) do |destination|
96
+ assert_equal destination.java_kind_of?(javax.jms::Topic), true
97
+ end
98
+ end
99
+ end
100
+
101
+ should 'create destinations' do
102
+ JMS::Connection.session(@config) do |session|
103
+ assert_not_nil session
104
+
105
+ # Queue
106
+ queue = session.create_destination(:queue_name => @queue_name)
107
+ assert_equal queue.java_kind_of?(javax.jms::Queue), true
108
+
109
+ # Topic
110
+ topic = session.create_destination(:topic_name => @topic_name)
111
+ assert_equal topic.java_kind_of?(javax.jms::Topic), true
112
+ end
113
+ end
114
+
115
+ should 'create destinations using direct methods' do
116
+ JMS::Connection.session(@config) do |session|
117
+ assert_not_nil session
118
+
119
+ # Queue
120
+ queue = session.queue(@queue_name)
121
+ assert_equal queue.java_kind_of?(javax.jms::Queue), true
122
+
123
+ # Temporary Queue
124
+ queue = session.temporary_queue
125
+ assert_equal queue.java_kind_of?(javax.jms::TemporaryQueue), true
126
+ queue.delete
127
+
128
+ # Topic
129
+ topic = session.topic(@topic_name)
130
+ assert_equal topic.java_kind_of?(javax.jms::Topic), true
131
+
132
+ # Temporary Topic
133
+ topic = session.temporary_topic
134
+ assert_equal topic.java_kind_of?(javax.jms::TemporaryTopic), true
135
+ topic.delete
136
+ end
137
+ end
138
+
139
+ should 'produce and consume messages to/from a temporary queue' do
140
+ JMS::Connection.session(@config) do |session|
141
+ assert_not_nil session
142
+ data = nil
143
+ session.producer(:queue_name => :temporary) do |producer|
144
+ # Send Message
145
+ producer.send(session.message('Hello World'))
146
+
147
+ # Consume Message
148
+ session.consume(:destination => producer.destination) do |message|
149
+ assert_equal message.java_kind_of?(javax.jms::TextMessage), true
150
+ data = message.data
151
+ end
152
+ end
153
+ assert_equal data, 'Hello World'
154
+ end
155
+ end
156
+
157
+ should 'produce, browse and consume messages to/from a queue' do
158
+ JMS::Connection.session(@config) do |session|
159
+ assert_not_nil session
160
+ data = nil
161
+ browse_data = nil
162
+ session.producer(:queue_name => @queue_name) do |producer|
163
+ # Send Message
164
+ producer.send(session.message('Hello World'))
165
+
166
+ # Browse Message
167
+ session.browse(:queue_name => @queue_name) do |message|
168
+ assert_equal message.java_kind_of?(javax.jms::TextMessage), true
169
+ browse_data = message.data
170
+ end
171
+
172
+ # Consume Message
173
+ session.consume(:queue_name => @queue_name) do |message|
174
+ assert_equal message.java_kind_of?(javax.jms::TextMessage), true
175
+ data = message.data
176
+ end
177
+ end
178
+ assert_equal data, 'Hello World'
179
+ assert_equal browse_data, 'Hello World'
180
+ end
181
+ end
182
+
183
+ end
184
+ end
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-jms
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 10
8
+ - 0
9
+ version: 0.10.0
6
10
  platform: ruby
7
11
  authors:
8
12
  - Reid Morrison
@@ -10,7 +14,7 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-01-24 00:00:00 -05:00
17
+ date: 2011-02-10 00:00:00 -05:00
14
18
  default_executable:
15
19
  dependencies: []
16
20
 
@@ -29,7 +33,6 @@ files:
29
33
  - README.md
30
34
  - examples/consumer.rb
31
35
  - examples/jms.yml
32
- - examples/log4j.properties
33
36
  - examples/producer.rb
34
37
  - examples/performance/consumer.rb
35
38
  - examples/performance/producer.rb
@@ -42,6 +45,12 @@ files:
42
45
  - lib/jms/javax_jms_queue_browser.rb
43
46
  - lib/jms/javax_jms_session.rb
44
47
  - lib/jms/javax_jms_text_message.rb
48
+ - lib/jms/logger.rb
49
+ - lib/jms/logging.rb
50
+ - lib/jms/message_listener.rb
51
+ - test/connection_test.rb
52
+ - test/jms.yml
53
+ - test/session_test.rb
45
54
  has_rdoc: true
46
55
  homepage: https://github.com/reidmorrison/jruby-jms
47
56
  licenses: []
@@ -52,21 +61,23 @@ rdoc_options: []
52
61
  require_paths:
53
62
  - lib
54
63
  required_ruby_version: !ruby/object:Gem::Requirement
55
- none: false
56
64
  requirements:
57
65
  - - ">="
58
66
  - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
59
69
  version: "0"
60
70
  required_rubygems_version: !ruby/object:Gem::Requirement
61
- none: false
62
71
  requirements:
63
72
  - - ">="
64
73
  - !ruby/object:Gem::Version
74
+ segments:
75
+ - 0
65
76
  version: "0"
66
77
  requirements: []
67
78
 
68
79
  rubyforge_project:
69
- rubygems_version: 1.4.2
80
+ rubygems_version: 1.3.6
70
81
  signing_key:
71
82
  specification_version: 3
72
83
  summary: JRuby interface into JMS
@@ -1,31 +0,0 @@
1
- #
2
- # log4j properties
3
- #
4
-
5
- # Screen only logging
6
- log4j.rootLogger=INFO, terminal
7
-
8
- # To enable file logging
9
- #log4j.rootLogger=INFO, terminal, out
10
-
11
- # Set logging level for jruby-jms.
12
- # Valid values: WARN, INFO, DEBUG, TRACE
13
- # TRACE will log every message sent or received. Use with caution
14
- log4j.logger.JMS=TRACE
15
-
16
- #The logging properties used during tests..
17
- # CONSOLE appender not used by default
18
- log4j.appender.terminal=org.apache.log4j.ConsoleAppender
19
- log4j.appender.terminal.layout=org.apache.log4j.PatternLayout
20
- log4j.appender.terminal.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}] %m%n
21
- log4j.appender.terminal.target=System.out
22
- #log4j.appender.terminal.threshold=INFO
23
-
24
- # File appender
25
- log4j.appender.out=org.apache.log4j.RollingFileAppender
26
- log4j.appender.out.file=jruby-jms.log
27
- log4j.appender.out.maxFileSize=16384KB
28
- log4j.appender.out.maxBackupIndex=5
29
- log4j.appender.out.append=true
30
- log4j.appender.out.layout=org.apache.log4j.PatternLayout
31
- log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-40.40c - %m%n