jruby-jms 0.9.0 → 0.10.0

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