jsparrow 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -10,16 +10,16 @@ Make gem install:
10
10
 
11
11
  === Example
12
12
 
13
- ===== Six steps to send and receive JMS messages to/from a JMS middleware.
13
+ ===== Five steps to send and receive JMS messages to/from a JMS provider.
14
14
 
15
- WARNING: OpenJMS will be used as JMS middleware, but any other could be used with no problems.
15
+ WARNING: OpenJMS will be used as JMS provider, but any other could be used with no problems.
16
16
 
17
17
  1) Create my_jsparrow_test.rb file and require the gems
18
18
 
19
19
  require 'rubygems'
20
20
  require 'jsparrow'
21
21
 
22
- 2) Setup indispensable informations to connect your JMS middleware
22
+ 2) Setup indispensable informations to connect your JMS provider
23
23
 
24
24
  JSparrow::Connection.configure do |connection|
25
25
  connection.use_jms_client_jar '/opt/openjms/lib/openjms-0.7.7-beta-1.jar'
@@ -29,20 +29,17 @@ WARNING: OpenJMS will be used as JMS middleware, but any other could be used wit
29
29
  # :security_principal => 'user',
30
30
  # :security_credentials => 'password'
31
31
 
32
- connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory',
33
- :topic_connection_factory => 'ConnectionFactory'
32
+ connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory'
33
+
34
+ connection.enable_queues :my_queue => 'MyQueue'
34
35
  end
35
36
 
36
- 3) Create the client and setup a queue
37
+ 3) Create the client and start it
37
38
 
38
39
  jms_client = JSparrow::Connection.new_client
39
- jms_client.enable_queues :my_queue => 'MyQueue'
40
-
41
- 4) After appropriate setup, start the client
42
-
43
40
  jms_client.start
44
41
 
45
- 5) OK! Now you can send and receive messages right now!
42
+ 4) OK! Now you can send and receive messages right now!
46
43
 
47
44
  jms_client.queue_sender(:my_queue).send_text_message('jsparrow rocks!') do |msg|
48
45
  msg.set_string_property('recipient', 'jsparrow-example')
@@ -57,17 +54,19 @@ WARNING: OpenJMS will be used as JMS middleware, but any other could be used wit
57
54
  puts "message: #{msg.text}" # message: jsparrow rocks!
58
55
  end
59
56
 
60
- 6) After you receive your amazing messages, stop the client
57
+ 5) After you receive your amazing messages, stop the client
61
58
 
62
59
  jms_client.stop
63
60
 
64
- So, now that you did code and save it, start the OpenJMS server, create the queue (MyQueue), and run above script:
61
+ So, now that you wrote code and save it, start the OpenJMS server, create the queue (MyQueue), and run above script:
65
62
 
66
63
  jruby my_jsparrow_test.rb
67
64
 
68
65
  jsparrow rocks! =)
69
66
 
70
- ===== Sample code
67
+ === Sample
68
+
69
+ ===== A very simple sample code
71
70
 
72
71
  Or, if you don't want write code, only do it:
73
72
 
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- :patch: 0
2
+ :patch: 1
3
3
  :major: 1
4
4
  :build:
5
5
  :minor: 1
data/lib/client.rb ADDED
@@ -0,0 +1,161 @@
1
+ # Classes Java usadas nesse arquivo
2
+ import 'javax.naming.InitialContext'
3
+
4
+ module JSparrow
5
+ module Connection
6
+
7
+ #
8
+ # Cliente JMS que possibilita a conexao com o servidor de aplicacoes Java EE
9
+ # que prove o servico JMS.
10
+ #
11
+ class Client
12
+ def initialize(connection_config, jndi_context_builder)
13
+ @connection_config = connection_config
14
+ @jndi_context_builder = jndi_context_builder
15
+
16
+ # Conexoes, filas, topicos, senders e receivers que serao habilitados
17
+ @connection_factories = {}
18
+ @queues = {}
19
+ @queue_senders = {}
20
+ @queue_receivers = {}
21
+ @topics = {}
22
+ @topic_senders = {}
23
+ @topic_receivers = {}
24
+
25
+ # Foi iniciado?
26
+ @started = false
27
+ end
28
+
29
+ def is_started?
30
+ @started
31
+ end
32
+
33
+ def start
34
+ raise InvalidClientStateError.new('started', 'start') if is_started?
35
+
36
+ begin
37
+ @jndi_context = @jndi_context_builder.build
38
+ rescue => cause
39
+ raise ClientInitializationError.new(@connection_config, cause)
40
+ end
41
+
42
+ @connection_factories, @queues, @topics = lookup_resources
43
+
44
+ @started = true
45
+ end
46
+
47
+ def is_stoped?
48
+ !@started
49
+ end
50
+
51
+ def stop
52
+ raise InvalidClientStateError.new('stoped', 'stop') if is_stoped?
53
+
54
+ @jndi_context.close
55
+
56
+ @started = false
57
+ end
58
+
59
+ def queue_connection_factory_enabled?
60
+ @connection_config.enabled_connection_factories.include?(:queue_connection_factory)
61
+ end
62
+
63
+ def queue_connection_factory
64
+ @connection_factories[:queue_connection_factory]
65
+ end
66
+
67
+ def queue_enabled?(queue_name)
68
+ @connection_config.enabled_queues.include?(queue_name)
69
+ end
70
+
71
+ def queue(queue_name)
72
+ raise NameError, "Queue '#{queue_name}' does not exist." unless queue_enabled?(queue_name)
73
+
74
+ @queues[queue_name]
75
+ end
76
+
77
+ def queue_sender(queue_name)
78
+ @queue_senders[queue_name] ||=
79
+ Messaging::Sender.new(queue_connection_factory, queue(queue_name))
80
+ end
81
+
82
+ def queue_receiver(queue_name)
83
+ @queue_receivers[queue_name] ||=
84
+ Messaging::Receiver.new(queue_connection_factory, queue(queue_name))
85
+ end
86
+
87
+ def topic_connection_factory_enabled?
88
+ @connection_config.enabled_connection_factories.include?(:topic_connection_factory)
89
+ end
90
+
91
+ def topic_connection_factory
92
+ @connection_factories[:topic_connection_factory]
93
+ end
94
+
95
+ def topic_enabled?(topic_name)
96
+ @connection_config.enabled_topics.include?(topic_name)
97
+ end
98
+
99
+ def topic(topic_name)
100
+ raise NameError, "Topic '#{topic_name}' does not exist." unless topic_enabled?(topic_name)
101
+
102
+ @topics[topic_name]
103
+ end
104
+
105
+ def topic_sender(topic_name)
106
+ @topic_senders[topic_name] ||=
107
+ Messaging::Sender.new(topic_connection_factory, topic(topic_name))
108
+ end
109
+
110
+ def topic_receiver(topic_name)
111
+ @topic_receivers[topic_name] ||=
112
+ Messaging::Receiver.new(topic_connection_factory, topic(topic_name))
113
+ end
114
+
115
+ # -- Private methods -- #
116
+ private
117
+
118
+ def lookup_resources
119
+ @lookuped_connection_factories = lookup_resource(@connection_config.enabled_connection_factories)
120
+ @lookuped_queues = lookup_resource(@connection_config.enabled_queues)
121
+ @lookuped_topic = lookup_resource(@connection_config.enabled_topics)
122
+
123
+ return @lookuped_connection_factories, @lookuped_queues, @lookuped_topic
124
+ end
125
+
126
+ def lookup_resource(jndi_names = {})
127
+ lookuped = {}
128
+
129
+ return lookuped unless jndi_names
130
+
131
+ jndi_names.each do |key, jndi_name|
132
+ lookuped[key] = @jndi_context.lookup(jndi_name)
133
+ end
134
+
135
+ lookuped
136
+ end
137
+ end
138
+
139
+ class ClientInitializationError < StandardError
140
+ attr_reader :config, :cause
141
+
142
+ def initialize(config, cause)
143
+ super("Could not open connection to server. Verify the config's config.")
144
+
145
+ @config = config
146
+ @cause = cause
147
+ end
148
+ end
149
+
150
+ class InvalidClientStateError < StandardError
151
+ attr_reader :state, :operation
152
+
153
+ def initialize(state, operation)
154
+ super("Could not did #{operation} because client is #{state}.")
155
+
156
+ @state = state
157
+ @operation = operation
158
+ end
159
+ end
160
+ end
161
+ end
data/lib/connection.rb CHANGED
@@ -6,35 +6,37 @@ module JSparrow
6
6
  module Connection
7
7
 
8
8
  #
9
- # Metodo usado para configurar a conexao com o middleware de JMS.
9
+ # Metodo usado para configurar a conexao com o provedor de JMS.
10
10
  #
11
11
  def self.configure
12
- @@properties = ConnectionProperties.new
12
+ @@config = Configuration.new
13
13
 
14
- yield @@properties
14
+ yield @@config
15
+
16
+ @@config
15
17
  end
16
18
 
17
19
  #
18
- # Metodo usado para obter a configuracao para conexao com o middleware de JMS.
20
+ # Metodo usado para obter a configuracao para conexao com o provedor de JMS.
19
21
  #
20
- def self.connection_properties
21
- @@properties
22
+ def self.configuration
23
+ @@config
22
24
  end
23
25
 
24
26
  #
25
27
  # Metodo usado para criar um novo Client JMS.
26
28
  #
27
29
  def self.new_client
28
- jndi_context_builder = JNDI::ContextBuilder.new(@@properties.jms_client_jar, @@properties.jndi_properties)
30
+ jndi_context_builder = JNDI::ContextBuilder.new(@@config.jms_client_jar, @@config.jndi_properties)
29
31
 
30
- Client.new(@@properties, jndi_context_builder)
32
+ Client.new(@@config, jndi_context_builder)
31
33
  end
32
34
 
33
35
  #
34
36
  # Configuracoes necessarias para que clientes JMS se conetem
35
- # ao middleware de mensageria via contexto JNDI.
37
+ # ao provedor de mensageria via contexto JNDI.
36
38
  #
37
- class ConnectionProperties
39
+ class Configuration
38
40
  attr_reader :jms_client_jar, :jndi_properties,
39
41
  :enabled_connection_factories, :enabled_queues, :enabled_topics
40
42
 
@@ -58,182 +60,20 @@ module JSparrow
58
60
  @enabled_topics = jndi_names
59
61
  end
60
62
  end
61
-
62
- #
63
- # Cliente JMS que possibilita a conexao com o servidor de aplicacoes Java EE
64
- # que prove o servico JMS.
65
- #
66
- class Client
67
- def initialize(connection_properties, jndi_context_builder)
68
- @connection_properties = connection_properties
69
- @jndi_context_builder = jndi_context_builder
70
-
71
- @jndi_name_of_enabled_connection_factories = @connection_properties.enabled_connection_factories
72
- @jndi_name_of_enabled_queues = {}
73
- @jndi_name_of_enabled_topics = {}
74
-
75
- # Conexoes, filas, topicos, senders e receivers que serao habilitados
76
- @connection_factories = {}
77
- @queues = {}
78
- @queue_senders = {}
79
- @queue_receivers = {}
80
- @topics = {}
81
- @topic_senders = {}
82
- @topic_receivers = {}
83
-
84
- # Foi startado?
85
- @started = false
86
- end
87
-
88
- def is_started?
89
- @started
90
- end
91
-
92
- def start
93
- raise InvalidClientStateError.new('started', 'start') if is_started?
94
-
95
- begin
96
- @jndi_context = @jndi_context_builder.build
97
- rescue => cause
98
- raise ClientInitializationError.new(@connection_properties, cause)
99
- end
100
-
101
- @connection_factories = lookup_resource(@jndi_name_of_enabled_connection_factories)
102
- @queues = lookup_resource(@jndi_name_of_enabled_queues)
103
- @topics = lookup_resource(@jndi_name_of_enabled_topics)
104
-
105
- @started = true
106
- end
107
-
108
- def is_stoped?
109
- !@started
110
- end
111
-
112
- def stop
113
- raise InvalidClientStateError.new('stoped', 'stop') if is_stoped?
114
-
115
- @jndi_context.close
116
-
117
- @started = false
118
- end
119
-
120
- def queue_connection_factory_enabled?
121
- @jndi_name_of_enabled_connection_factories.include?(:queue_connection_factory)
122
- end
123
-
124
- def queue_connection_factory
125
- @connection_factories[:queue_connection_factory]
126
- end
127
-
128
- def topic_connection_factory_enabled?
129
- @jndi_name_of_enabled_connection_factories.include?(:topic_connection_factory)
130
- end
131
-
132
- def topic_connection_factory
133
- @connection_factories[:topic_connection_factory]
134
- end
135
-
136
- def enable_queues(jndi_names = {})
137
- raise InvalidClientStateError.new('started', 'enable_queues') if is_started?
138
-
139
- @jndi_name_of_enabled_queues = jndi_names
140
- end
141
-
142
- def queue_enabled?(queue_name)
143
- @jndi_name_of_enabled_queues.include?(queue_name)
144
- end
145
-
146
- def queue(queue_name)
147
- raise NameError, "Queue '#{queue_name}' does not exist." unless queue_enabled?(queue_name)
148
-
149
- @queues[queue_name]
150
- end
151
-
152
- def queue_sender(queue_name)
153
- @queue_senders[queue_name] ||=
154
- Messaging::Sender.new(queue_connection_factory, queue(queue_name))
155
- end
156
-
157
- def queue_receiver(queue_name)
158
- @queue_receivers[queue_name] ||=
159
- Messaging::Receiver.new(queue_connection_factory, queue(queue_name))
160
- end
161
-
162
- def enable_topics(jndi_names = {})
163
- raise InvalidClientStateError.new('started', 'enable_topics') if is_started?
164
-
165
- @jndi_name_of_enabled_topics = jndi_names
166
- end
167
-
168
- def topic_enabled?(topic_name)
169
- @jndi_name_of_enabled_topics.include?(topic_name)
170
- end
171
-
172
- def topic(topic_name)
173
- raise NameError, "Topic '#{topic_name}' does not exist." unless topic_enabled?(topic_name)
174
-
175
- @topics[topic_name]
176
- end
177
-
178
- def topic_sender(topic_name)
179
- @topic_senders[topic_name] ||=
180
- Messaging::Sender.new(topic_connection_factory, topic(topic_name))
181
- end
182
-
183
- def topic_receiver(topic_name)
184
- @topic_receivers[topic_name] ||=
185
- Messaging::Receiver.new(topic_connection_factory, topic(topic_name))
186
- end
187
-
188
- # -- Private methods -- #
189
- private
190
-
191
- def lookup_resource(jndi_names = {})
192
- lookuped = {}
193
-
194
- jndi_names.each do |key, jndi_name|
195
- lookuped[key] = @jndi_context.lookup(jndi_name)
196
- end
197
-
198
- lookuped
199
- end
200
- end
201
-
202
- class ClientInitializationError < StandardError
203
- attr_reader :properties, :cause
204
-
205
- def initialize(properties, cause)
206
- super("Could not open connection to server. Verify the properties's properties.")
207
-
208
- @properties = properties
209
- @cause = cause
210
- end
211
- end
212
-
213
- class InvalidClientStateError < StandardError
214
- attr_reader :state, :operation
215
-
216
- def initialize(state, operation)
217
- super("Could not did #{operation} because client is #{state}.")
218
-
219
- @state = state
220
- @operation = operation
221
- end
222
- end
223
63
  end
224
64
 
225
65
  module JNDI
226
66
 
227
67
  #
228
- # Builder para construcao de contexto JNDI para conexao com o middleware
68
+ # Builder para construcao de contexto JNDI para conexao com o provedor
229
69
  # de JMS.
230
70
  #
231
71
  class ContextBuilder
232
72
  attr_accessor :jms_client_jar, :jndi_properties
233
73
 
234
74
  def initialize(jms_client_jar, jndi_properties)
235
- @jms_client_jar = jms_client_jar
236
- @jndi_properties = jndi_properties
75
+ @jms_client_jar = jms_client_jar
76
+ @jndi_properties = jndi_properties
237
77
  end
238
78
 
239
79
  #
data/lib/jsparrow.rb CHANGED
@@ -5,5 +5,6 @@ require 'jms.rb'
5
5
 
6
6
  # Bibliotecas do JSparrow
7
7
  require 'connection.rb'
8
+ require 'client.rb'
8
9
  require 'messaging.rb'
9
10
  require 'error.rb'
data/sample/sample.rb CHANGED
@@ -9,20 +9,19 @@ JSparrow::Connection.configure do |connection|
9
9
  # :security_principal => 'user',
10
10
  # :security_credentials => 'password'
11
11
 
12
- connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory',
13
- :topic_connection_factory => 'ConnectionFactory'
12
+ connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory'
13
+
14
+ connection.enable_queues :test_queue => 'TestQueue'
14
15
  end
15
16
 
16
17
  jms_client = JSparrow::Connection.new_client
17
- jms_client.enable_queues :pardal_queue => 'PardalQueue'
18
-
19
18
  jms_client.start
20
19
 
21
- jms_client.queue_sender(:pardal_queue).send_text_message('jsparrow rocks!') do |msg|
20
+ jms_client.queue_sender(:test_queue).send_text_message('jsparrow rocks!') do |msg|
22
21
  msg.set_string_property('recipient', 'jsparrow-example')
23
22
  end
24
23
 
25
- jms_client.queue_receiver(:pardal_queue).receive_message(
24
+ jms_client.queue_receiver(:test_queue).receive_message(
26
25
  :timeout => 5000,
27
26
  :selector => "recipient = 'jsparrow-example'"
28
27
  ) do |msg|
@@ -0,0 +1,86 @@
1
+ require File.dirname(File.expand_path(__FILE__)) + '/spec_helper.rb'
2
+
3
+ #
4
+ # Cenario que testa o start e stop do cliente JMS.
5
+ #
6
+ describe JSparrow::Connection::Client, ', quando criado,' do
7
+
8
+ before(:all) do
9
+ @jms_client = create_jms_client
10
+ end
11
+
12
+ it 'deveria permitir ser iniciado e parado' do
13
+ @jms_client.start
14
+
15
+ @jms_client.is_started?.should be true
16
+ @jms_client.is_stoped?.should be false
17
+
18
+ @jms_client.stop
19
+
20
+ @jms_client.is_started?.should be false
21
+ @jms_client.is_stoped?.should be true
22
+ end
23
+ end
24
+
25
+ #
26
+ # Cenario de configuracao do cliente JMS, quando sao informadas as propriedades de ambiente
27
+ # para conexao com o servidor de aplicacoes e a inicializacao do contexto JNDI inicial,
28
+ # onde estao criadas as connection factories, queues e topics.
29
+ #
30
+ # Importante: nesse momento o cliente JMS ainda nao sera iniciado, ja que nao deve haver
31
+ # configuracao depois inicia-lo.
32
+ #
33
+ describe JSparrow::Connection::Client, ', quando esta sendo configurado, mas ainda nao iniciado,' do
34
+
35
+ before(:all) do
36
+ @jms_client = create_jms_client
37
+ end
38
+
39
+ it 'deveria ter uma connection factory especifica para queues' do
40
+ @jms_client.queue_connection_factory_enabled?.should be true
41
+ end
42
+
43
+ it 'deveria ter uma connection factory especifica para topics' do
44
+ @jms_client.topic_connection_factory_enabled?.should be true
45
+ end
46
+
47
+ it 'deveria ter uma Queue especifica' do
48
+ @jms_client.queue_enabled?(:test_queue).should eql true
49
+ end
50
+
51
+ it 'deveria ter um Topic especifico' do
52
+ @jms_client.topic_enabled?(:test_topic).should eql true
53
+ end
54
+ end
55
+
56
+ #
57
+ # Cenario pos-configuracao do cliente JMS, quando as queues e os topicos ja devem estar
58
+ # disponiveis, e entao e possivel obter sender/receiver para elas.
59
+ #
60
+ describe JSparrow::Connection::Client, ', depois de ter sido configurado,' do
61
+
62
+ before(:all) do
63
+ @jms_client = create_jms_client
64
+ @jms_client.start
65
+ end
66
+
67
+ after(:all) do
68
+ @jms_client.stop
69
+ end
70
+
71
+ it 'deveria possibilitar obter um Sender para uma Queue especifica' do
72
+ @jms_client.queue_sender(:test_queue).should_not be nil
73
+ end
74
+
75
+ it 'deveria possibilitar obter um Receiver para uma Queue especifica' do
76
+ @jms_client.queue_receiver(:test_queue).should_not be nil
77
+ end
78
+
79
+ it 'deveria possibilitar obter um Sender para um Topic especifico' do
80
+ @jms_client.topic_sender(:test_topic).should_not be nil
81
+ end
82
+
83
+ it 'deveria possibilitar obter um Receiver para um Topic especifico' do
84
+ @jms_client.topic_receiver(:test_topic).should_not be nil
85
+ end
86
+ end
@@ -1,120 +1,31 @@
1
1
  require File.dirname(File.expand_path(__FILE__)) + '/spec_helper.rb'
2
2
 
3
3
  #
4
- # Cenario que testa o start e stop do cliente JMS.
4
+ # Cenario que testa a configuracao a conexao com o provedor de JMS.
5
5
  #
6
- describe JSparrow::Connection::Client, ', quando criado,' do
6
+ describe JSparrow::Connection, ', quando configurado,' do
7
7
 
8
8
  before(:all) do
9
- @jms_client = create_jms_client
9
+ @config = configure_connection
10
10
  end
11
11
 
12
- it 'deveria permitir ser iniciado e parado' do
13
- @jms_client.start
14
-
15
- @jms_client.is_started?.should be true
16
- @jms_client.is_stoped?.should be false
17
-
18
- @jms_client.stop
19
-
20
- @jms_client.is_started?.should be false
21
- @jms_client.is_stoped?.should be true
12
+ it 'deveria ter jms_client_jar' do
13
+ @config.jms_client_jar.should_not be nil
22
14
  end
23
- end
24
-
25
- #
26
- # Cenario de configuracao do cliente JMS, quando sao informadas as propriedades de ambiente
27
- # para conexao com o servidor de aplicacoes e a inicializacao do contexto JNDI inicial,
28
- # onde estao criadas as connection factories, queues e topics.
29
- #
30
- # Importante: nesse momento o cliente JMS ainda nao sera iniciado, ja que nao deve haver
31
- # configuracao depois inicia-lo.
32
- #
33
- describe JSparrow::Connection::Client, ', quando esta sendo configurado, mas ainda nao iniciado,' do
34
15
 
35
- before(:all) do
36
- @jms_client = create_jms_client
37
- end
38
-
39
- it 'deveria ter uma connection factory especifica para queues' do
40
- @jms_client.queue_connection_factory_enabled?.should be true
41
- end
42
-
43
- it 'deveria ter uma connection factory especifica para topics' do
44
- @jms_client.topic_connection_factory_enabled?.should be true
16
+ it 'deveria ter jndi_properties' do
17
+ @config.jndi_properties.should_not be nil
45
18
  end
46
-
47
- it 'deveria permitir habilitar uma Queue especifica' do
48
- @jms_client.enable_queues :pardal_queue => 'PardalQueue'
49
19
 
50
- @jms_client.queue_enabled?(:pardal_queue).should eql true
20
+ it 'deveria ter enabled_connection_factories' do
21
+ @config.enabled_connection_factories.should_not be nil
51
22
  end
52
-
53
- it 'deveria permitir habilitar um Topic especifico' do
54
- @jms_client.enable_topics :pardal_topic => 'PardalTopic'
55
-
56
- @jms_client.topic_enabled?(:pardal_topic).should eql true
57
- end
58
- end
59
-
60
- #
61
- # Cenario de configuracao do cliente JMS apos ter sido iniciado.
62
- #
63
- # Importante: Como o cliente JMS ja esta iniciado, deve lancar erro, nao permitindo
64
- # qualquer configuracao.
65
- #
66
- describe JSparrow::Connection::Client, ', quando esta sendo configurado, apos iniciado,' do
67
23
 
68
- before(:all) do
69
- @jms_client = create_jms_client
70
- @jms_client.start
24
+ it 'deveria ter enabled_queues' do
25
+ @config.enabled_queues.should_not be nil
71
26
  end
72
-
73
- after(:all) do
74
- @jms_client.stop
75
- end
76
-
77
- it 'nao deveria permitir habilitar uma Queue especifica' do
78
- lambda {
79
- @jms_client.enable_queues(:pardal_queue => 'PardalQueue')
80
- }.should raise_error JSparrow::Connection::InvalidClientStateError
81
- end
82
-
83
- it 'nao deveria permitir habilitar um Topic especifico' do
84
- lambda {
85
- @jms_client.enable_topics(:pardal_topic => 'PardalTopic')
86
- }.should raise_error JSparrow::Connection::InvalidClientStateError
87
- end
88
- end
89
27
 
90
- #
91
- # Cenario pos-configuracao do cliente JMS, quando as queues e os topicos ja devem estar
92
- # disponiveis, e entao e possivel obter sender/receiver para elas.
93
- #
94
- describe JSparrow::Connection::Client, ', depois de ter sido configurado,' do
95
-
96
- before(:all) do
97
- @jms_client = create_and_setup_jms_client
98
- @jms_client.start
99
- end
100
-
101
- after(:all) do
102
- @jms_client.stop
103
- end
104
-
105
- it 'deveria possibilitar obter um Sender para uma Queue especifica' do
106
- @jms_client.queue_sender(:pardal_queue).should_not be nil
107
- end
108
-
109
- it 'deveria possibilitar obter um Receiver para uma Queue especifica' do
110
- @jms_client.queue_receiver(:pardal_queue).should_not be nil
111
- end
112
-
113
- it 'deveria possibilitar obter um Sender para um Topic especifico' do
114
- @jms_client.topic_sender(:pardal_topic).should_not be nil
115
- end
116
-
117
- it 'deveria possibilitar obter um Receiver para um Topic especifico' do
118
- @jms_client.topic_receiver(:pardal_topic).should_not be nil
28
+ it 'deveria ter enabled_topics' do
29
+ @config.enabled_topics.should_not be nil
119
30
  end
120
31
  end
@@ -8,11 +8,11 @@ require File.dirname(File.expand_path(__FILE__)) + '/spec_helper.rb'
8
8
  describe JSparrow::Messaging, ', quando tem um Sender e um Receiver para uma Queue especifica,' do
9
9
 
10
10
  before(:all) do
11
- @jms_client = create_and_setup_jms_client
11
+ @jms_client = create_jms_client
12
12
  @jms_client.start
13
13
 
14
- @sender = @jms_client.queue_sender(:pardal_queue)
15
- @receiver = @jms_client.queue_receiver(:pardal_queue)
14
+ @sender = @jms_client.queue_sender(:test_queue)
15
+ @receiver = @jms_client.queue_receiver(:test_queue)
16
16
  end
17
17
 
18
18
  after(:all) do
data/spec/spec_helper.rb CHANGED
@@ -17,32 +17,23 @@ module JSparrowHelperMethods
17
17
  JSparrow::Connection.new_client
18
18
  end
19
19
 
20
- def create_and_setup_jms_client
21
- configure_connection
22
-
23
- jms_client = JSparrow::Connection.new_client
24
- jms_client.enable_queues :pardal_queue => 'PardalQueue'
25
- jms_client.enable_topics :pardal_topic => 'PardalTopic'
26
-
27
- jms_client
28
- end
29
-
30
- # --- Private methods --- #
31
- private
32
-
33
- def configure_connection
34
- JSparrow::Connection.configure do |connection|
35
- connection.use_jms_client_jar '/opt/openjms/lib/openjms-0.7.7-beta-1.jar'
20
+ def configure_connection
21
+ JSparrow::Connection.configure do |connection|
22
+ connection.use_jms_client_jar '/opt/openjms/lib/openjms-0.7.7-beta-1.jar'
36
23
 
37
- connection.use_jndi_properties :initial_context_factory => 'org.exolab.jms.jndi.InitialContextFactory',
38
- :provider_url => 'tcp://localhost:3035'
39
- # :security_principal => 'user',
40
- # :security_credentials => 'password'
41
-
42
- connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory',
43
- :topic_connection_factory => 'ConnectionFactory'
44
- end
24
+ connection.use_jndi_properties :initial_context_factory => 'org.exolab.jms.jndi.InitialContextFactory',
25
+ :provider_url => 'tcp://localhost:3035'
26
+ # :security_principal => 'user',
27
+ # :security_credentials => 'password'
28
+
29
+ connection.enable_connection_factories :queue_connection_factory => 'ConnectionFactory',
30
+ :topic_connection_factory => 'ConnectionFactory'
31
+
32
+ connection.enable_queues :test_queue => 'TestQueue'
33
+
34
+ connection.enable_topics :test_topic => 'TestTopic'
45
35
  end
36
+ end
46
37
  end
47
38
 
48
39
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsparrow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Silva
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-15 00:00:00 -08:00
12
+ date: 2010-02-16 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -27,6 +27,7 @@ files:
27
27
  - README.rdoc
28
28
  - Rakefile
29
29
  - VERSION.yml
30
+ - lib/client.rb
30
31
  - lib/connection.rb
31
32
  - lib/error.rb
32
33
  - lib/jms.rb
@@ -36,6 +37,7 @@ files:
36
37
  - lib/jsparrow.rb
37
38
  - lib/messaging.rb
38
39
  - sample/sample.rb
40
+ - spec/client_spec.rb
39
41
  - spec/connection_spec.rb
40
42
  - spec/messaging_spec.rb
41
43
  - spec/spec_helper.rb
@@ -68,6 +70,7 @@ signing_key:
68
70
  specification_version: 3
69
71
  summary: JSparrow is a JMS client based on JRuby
70
72
  test_files:
73
+ - spec/client_spec.rb
71
74
  - spec/connection_spec.rb
72
75
  - spec/messaging_spec.rb
73
76
  - spec/spec_helper.rb