leandrosilva-sparrow 1.0.0 → 1.0.1

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/README.rdoc CHANGED
@@ -2,6 +2,66 @@
2
2
 
3
3
  Sparrow is a JMS client (JRuby based).
4
4
 
5
+ === Install
6
+
7
+ Add Github as a source for your RubyGem:
8
+
9
+ gem sources -a http://gems.github.com
10
+
11
+ Make install:
12
+
13
+ sudo gem install leandrosilva-sparrow
14
+
15
+ === Example
16
+
17
+ ===== Three steps to send and receive JMS messages to/from a Java EE application server.
18
+
19
+ WARNING: OC4J will be used as Java EE application server, but any other could be used with no problems.
20
+
21
+ 1) Create my_sparrow_test.rb file and require the gems
22
+
23
+ require 'rubygems'
24
+ require 'sparrow'
25
+
26
+ 2) Create and setup a sparrow JMS client
27
+
28
+ jms_client = Sparrow::JMS::Connection::Client.new do |properties|
29
+ properties.client_jar_file = '/oc4j_extended_101330/j2ee/home/oc4jclient.jar'
30
+ properties.initial_context_factory = 'oracle.j2ee.naming.ApplicationClientInitialContextFactory'
31
+ properties.provider_url = 'ormi://localhost:23791'
32
+ properties.security_principal = 'oc4jadmin'
33
+ properties.security_credentials = 'welcome'
34
+ end
35
+
36
+ jms_client.enable_connection_factories(
37
+ :queue_connection_factory => 'jms/MyQueueCF'
38
+ )
39
+
40
+ jms_client.enable_queues(
41
+ :my_queue => 'jms/MyQueue'
42
+ )
43
+
44
+ 3) OK! You can send and receive messages right now!
45
+
46
+ jms_client.queue_sender(:my_queue).send_text_message('sparrow rocks!') do |msg|
47
+ msg.set_string_property('recipient', 'sparrow-example')
48
+ end
49
+
50
+ jms_client.queue_receiver(:my_queue).receive_message(
51
+ :timeout => 5000,
52
+ :selector => "recipient = 'sparrow-example'"
53
+ ) do |msg|
54
+
55
+ puts msg.is_text_message? # true
56
+ puts msg.text # sparrow rocks!
57
+ end
58
+
59
+ So, now start the OC4J server, create the connection factory (jms/MyQueueCF) and queue (jms/MyQueue), and run above script:
60
+
61
+ jruby my_sparrow_test.rb
62
+
63
+ sparrow rocks! =)
64
+
5
65
  == Copyright
6
66
 
7
67
  Copyright (c) 2009 Leandro Silva. See LICENSE for details.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :minor: 0
3
3
  :major: 1
4
- :patch: 0
4
+ :patch: 1
data/lib/connection.rb CHANGED
@@ -7,8 +7,8 @@ module Sparrow
7
7
  module Connection
8
8
 
9
9
  #
10
- # Configura��es necess�rias para que clientes JMS se conectem
11
- # ao servidor de aplica��es Java EE via JNDI Context.
10
+ # Configuracoes necessarias para que clientes JMS se conectem
11
+ # ao servidor de aplicacoes Java EE via JNDI Context.
12
12
  #
13
13
  class Properties
14
14
  attr_accessor :client_jar_file,
@@ -16,7 +16,7 @@ module Sparrow
16
16
  :security_principal, :security_credentials
17
17
 
18
18
  #
19
- # Cria um Hashtable Java contendo as configura��es atuais.
19
+ # Cria um Hashtable Java contendo as configuracoes atuais.
20
20
  #
21
21
  def to_jndi_environment_hashtable
22
22
  jndi_env = Hashtable.new
@@ -37,10 +37,10 @@ module Sparrow
37
37
  end
38
38
 
39
39
  #
40
- # Constroi um contexto JNDI inicial a partir das configura��es atuais.
40
+ # Constroi um contexto JNDI inicial a partir das configuracoes atuais.
41
41
  #
42
42
  def build_jndi_context
43
- # Carrega a biblioteca cliente do servidor de aplica��es
43
+ # Carrega a biblioteca cliente do servidor de aplicacoes
44
44
  require @client_jar_file
45
45
 
46
46
  InitialContext.new(to_jndi_environment_hashtable)
@@ -48,8 +48,8 @@ module Sparrow
48
48
  end
49
49
 
50
50
  #
51
- # Cliente JMS que possibilita a conex�o com o servidor de aplica��es Java EE
52
- # que prov� o servi�o JMS.
51
+ # Cliente JMS que possibilita a conexao com o servidor de aplicacoes Java EE
52
+ # que prove o servico JMS.
53
53
  #
54
54
  class Client
55
55
  attr_reader :properties
@@ -65,7 +65,7 @@ module Sparrow
65
65
  raise ClientInitializationError.new(@properties, cause)
66
66
  end
67
67
 
68
- # Conex�es, filas, t�picos, senders e receivers que ser�o habilitados
68
+ # Conexoes, filas, topicos, senders e receivers que serao habilitados
69
69
  @connection_factories = {}
70
70
  @queues = {}
71
71
  @queue_senders = {}
data/lib/jee.rb CHANGED
@@ -1,14 +1,14 @@
1
- # Defini��o do diret�rios onde est�o as libs
1
+ # Libs directory definition
2
2
  JEE_LIB_DIR = File.expand_path(File.dirname(__FILE__)) + '/jee'
3
3
 
4
- # Antes de qualquer outra, a fundamental
4
+ # Befor all, the fundamental require for us
5
5
  require 'java'
6
6
 
7
- # Biblioteca essencial de integra��o com JMS
7
+ # Lib to JMS integration (contain the META-INF/applicationContext.xml)
8
8
  require "#{JEE_LIB_DIR}/sparrow-essential.jar"
9
9
 
10
- # Biblioteca Java EE principal
10
+ # Java EE
11
11
  require "#{JEE_LIB_DIR}/javaee-1.5.jar"
12
12
 
13
- # Biblioteca da API JMS
14
- require "#{JEE_LIB_DIR}/jms.jar"
13
+ # JMS API
14
+ require "#{JEE_LIB_DIR}/jms.jar"
data/lib/messaging.rb CHANGED
@@ -3,21 +3,21 @@ import 'javax.jms.Session'
3
3
  import 'javax.jms.MessageListener'
4
4
 
5
5
  module Sparrow
6
- module JMS
6
+ module JMSg
7
7
  module Messaging
8
8
 
9
9
  #
10
- # Tempo padr�o de timeout no recebimento de mensagens = 1 milesegundo.
10
+ # Tempo padrao de timeout no recebimento de mensagens = 1 milesegundo.
11
11
  #
12
12
  DEFAULT_RECEIVER_TIMEOUT = 1000
13
13
 
14
14
  #
15
15
  # Classe base para mensageiros, que enviam ou recebem mensagens, tanto
16
- # para filas ou t�picos.
16
+ # para filas ou topicos.
17
17
  #
18
18
  class Base
19
19
  def initialize(connection_factory, destination)
20
- # F�brica de conex�es JMS
20
+ # Fabrica de conexoes JMS
21
21
  @connection_factory = connection_factory
22
22
 
23
23
  # Destino JMS para envio ou recebimento de mensagens
@@ -33,7 +33,6 @@ module Sparrow
33
33
  send_message do |session|
34
34
  text_message = session.create_text_message(text)
35
35
 
36
- # Se houver uma bloco para tratamento da mensagem
37
36
  if block_given?
38
37
  yield(text_message)
39
38
  end
@@ -46,7 +45,6 @@ module Sparrow
46
45
  send_message do |session|
47
46
  object_message = session.create_object_message(object)
48
47
 
49
- # Se houver uma bloco para tratamento da mensagem
50
48
  if block_given?
51
49
  yield(object_message)
52
50
  end
@@ -59,7 +57,6 @@ module Sparrow
59
57
  send_message do |session|
60
58
  map_message = session.create_map_message
61
59
 
62
- # Se houver uma bloco para tratamento da mensagem
63
60
  if block_given?
64
61
  yield(map_message)
65
62
  end
@@ -69,15 +66,15 @@ module Sparrow
69
66
  end
70
67
 
71
68
  def send_messages(&message_sender)
72
- # Cria uma conex�o, uma sess�o e um emissor de qualquer tipo de mensagem
69
+ # Cria uma conexao, uma sessao e um emissor de qualquer tipo de mensagem
73
70
  connection = @connection_factory.create_connection
74
71
  session = connection.create_session(true, Session::AUTO_ACKNOWLEDGE)
75
72
  producer = session.create_producer(@destination)
76
73
 
77
- # Passa o controle que trata a emiss�o de mensagens
74
+ # Passa o controle que trata a emissao de mensagens
78
75
  message_sender.call(session, producer)
79
76
 
80
- # Fecha a conex�o
77
+ # Fecha a conexao
81
78
  connection.close
82
79
  end
83
80
 
@@ -85,7 +82,7 @@ module Sparrow
85
82
  private
86
83
 
87
84
  def send_message(&message_creator)
88
- # Cria uma conex�o, uma sess�o e um emissor de qualquer tipo de mensagem
85
+ # Cria uma conexao, uma sessao e um emissor de qualquer tipo de mensagem
89
86
  connection = @connection_factory.create_connection
90
87
  session = connection.create_session(true, Session::AUTO_ACKNOWLEDGE)
91
88
  producer = session.create_producer(@destination)
@@ -96,7 +93,7 @@ module Sparrow
96
93
  # Envia a mensagem
97
94
  producer.send(message)
98
95
 
99
- # Commita a sess�o e fecha a conex�o
96
+ # Commita a sessao e fecha a conexao
100
97
  session.commit
101
98
  connection.close
102
99
  end
@@ -107,19 +104,19 @@ module Sparrow
107
104
  #
108
105
  class Receiver < Base
109
106
  def receive_message(criteria_for_receiving = {:timeout => DEFAULT_RECEIVER_TIMEOUT, :selector => ''}, &message_handler)
110
- # Cria uma conex�o, uma sess�o e um consumidor de qualquer tipo de mensagem
107
+ # Cria uma conexao, uma sessao e um consumidor de qualquer tipo de mensagem
111
108
  connection = @connection_factory.create_connection
112
109
  session = connection.create_session(false, Session::AUTO_ACKNOWLEDGE)
113
110
  consumer = session.create_consumer(@destination, criteria_for_receiving[:selector])
114
111
 
115
- # Prepara a conex�o para receber mensagens
112
+ # Prepara a conexao para receber mensagens
116
113
  connection.start
117
114
 
118
115
  # Inicia o recebimento de mensagens
119
116
  timeout = criteria_for_receiving[:timeout] || DEFAULT_RECEIVER_TIMEOUT
120
117
 
121
118
  while (received_message = consumer.receive(timeout))
122
- # Inclui o modulo de identifica��o de mensagem, util para o message_handler
119
+ # Inclui o modulo de identificacao de mensagem, util para o message_handler
123
120
  class << received_message
124
121
  include MessageType
125
122
  end
@@ -128,7 +125,7 @@ module Sparrow
128
125
  message_handler.call(received_message)
129
126
  end
130
127
 
131
- # Fecha a conex�o
128
+ # Fecha a conexao
132
129
  connection.close
133
130
  end
134
131
  end
@@ -136,7 +133,7 @@ module Sparrow
136
133
  #
137
134
  # Ouvintes de mensagens.
138
135
  #
139
- # TODO: Completar a implementa��o. Ainda n�o est� legal.
136
+ # TODO: Completar a implementacao. Ainda nao esta legal.
140
137
  #
141
138
  class Listener < Base
142
139
  include MessageListener
@@ -146,12 +143,12 @@ module Sparrow
146
143
  end
147
144
 
148
145
  def criteria_for_receiving(criteria = {:timeout => DEFAULT_RECEIVER_TIMEOUT, :selector => ''})
149
- # Valor default para timeout, caso n�o tenha sido informado
146
+ # Valor default para timeout, caso nao tenha sido informado
150
147
  @criteria_for_receiving[:timeout] = criteria[:timeout] || DEFAULT_RECEIVER_TIMEOUT
151
148
  end
152
149
 
153
150
  #
154
- # Nome pelo qual este listener ser� conhecido.
151
+ # Nome pelo qual este listener sera conhecido.
155
152
  #
156
153
  # Invariavelmente deve ser re-implementado nas subclasses.
157
154
  #
@@ -160,7 +157,7 @@ module Sparrow
160
157
  end
161
158
 
162
159
  #
163
- # Destino JMS que ser� escutado.
160
+ # Destino JMS que sera escutado.
164
161
  #
165
162
  # Invariavelmente deve ser re-implementado nas subclasses.
166
163
  #
@@ -172,7 +169,7 @@ module Sparrow
172
169
  # Inicia a escuta de mensagens.
173
170
  #
174
171
  def start_listening
175
- # Cria uma conex�o, uma sess�o e um consumidor de qualquer tipo de mensagem
172
+ # Cria uma conexao, uma sessao e um consumidor de qualquer tipo de mensagem
176
173
  connection = @connection_factory.create_connection
177
174
  session = connection.create_session(false, Session::AUTO_ACKNOWLEDGE)
178
175
  consumer = session.create_consumer(@destination, @criteria_for_receiving[:selector])
@@ -180,15 +177,15 @@ module Sparrow
180
177
  # Registra-se como ouvinte
181
178
  consumer.message_listener = self
182
179
 
183
- # inicia a escuta de mensagens
180
+ # Inicia a escuta de mensagens
184
181
  connection.start
185
182
  end
186
183
 
187
184
  #
188
- # Faz o enriquecimento do objeto mensagem e delega para o m�todo on_receive_message
185
+ # Faz o enriquecimento do objeto mensagem e delega para o metodo on_receive_message
189
186
  # que, implementado pelas subclasses, efetivamente trata a mensagem.
190
187
  #
191
- # N�o deve ser re-implementado por subclasses.
188
+ # Nao deve ser re-implementado por subclasses.
192
189
  #
193
190
  def on_message(received_message)
194
191
  class << received_message
@@ -199,8 +196,8 @@ module Sparrow
199
196
  end
200
197
 
201
198
  #
202
- # executado todas as vezes que chega uma mensagem que atenda aos crit�rios
203
- # definido para este listener (na vari�vel de inst�ncia @criteria).
199
+ # E executado todas as vezes que chega uma mensagem que atenda aos criterios
200
+ # definido para este listener (na variavel de instancia @criteria).
204
201
  #
205
202
  # Invariavelmente deve ser re-implementado nas subclasses.
206
203
  #
@@ -227,4 +224,4 @@ module Sparrow
227
224
  end
228
225
  end
229
226
  end
230
- end
227
+ end
data/lib/sparrow.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  $LOAD_PATH.unshift(File.dirname(File.expand_path(__FILE__)))
2
2
 
3
- # Bibliotecas Java necessárias
3
+ # Bibliotecas Java necessarias
4
4
  require 'jee.rb'
5
5
 
6
6
  # Bibliotecas sparrow
@@ -1,9 +1,9 @@
1
1
  require File.dirname(File.expand_path(__FILE__)) + '/spec_helper.rb'
2
2
 
3
3
  #
4
- # Cen�rio de configura��o do cliente JMS, quando s�o informadas as propriedades de ambiente
5
- # para conex�o com o servidor de aplica��es e a inicializa��o do contexto JNDI inicial,
6
- # onde est�o criadas as connection factories, queues e topics.
4
+ # Cenario de configuracao do cliente JMS, quando sao informadas as propriedades de ambiente
5
+ # para conexao com o servidor de aplicacoes e a inicializacao do contexto JNDI inicial,
6
+ # onde estao criadas as connection factories, queues e topics.
7
7
  #
8
8
  describe Sparrow::JMS::Connection::Client, ', quando esta sendo configurado,' do
9
9
 
@@ -45,8 +45,8 @@ describe Sparrow::JMS::Connection::Client, ', quando esta sendo configurado,' do
45
45
  end
46
46
 
47
47
  #
48
- # Cen�rio p�s-configura��o do cliente JMS, quando as queues e os t�picos j� devem estar
49
- # dispon�veis, e ent�o poss�vel obter sender/receiver para elas.
48
+ # Cenario pos-configuracao do cliente JMS, quando as queues e os topicos ja devem estar
49
+ # disponiveis, e entao e possivel obter sender/receiver para elas.
50
50
  #
51
51
  describe Sparrow::JMS::Connection::Client, ', depois de ter sido configurado,' do
52
52
 
@@ -1,8 +1,8 @@
1
1
  require File.dirname(File.expand_path(__FILE__)) + '/spec_helper.rb'
2
2
 
3
3
  #
4
- # Cen�rio p�s-obten��o de um Sender e um Receiver, quando deve ser poss�vel enviar e
5
- # receber mensagens de tr�s tipos (Texto, Objeto e Mapa) de uma queue especifica,
4
+ # Cenario pos-obtencao de um Sender e um Receiver, quando deve ser possivel enviar e
5
+ # receber mensagens de tres tipos (Texto, Objeto e Mapa) de uma queue especifica,
6
6
  # individualmente ou em lote.
7
7
  #
8
8
  describe Sparrow::JMS::Messaging, ', quando tem um Sender e um Receiver para uma Queue especifica,' do
@@ -89,7 +89,7 @@ describe Sparrow::JMS::Messaging, ', quando tem um Sender e um Receiver para uma
89
89
  map_message.set_long('id', my_id_long)
90
90
  producer.send(map_message)
91
91
 
92
- # Commita as tr�s mensagens enviadas na sess�o
92
+ # Commita as tres mensagens enviadas na sessao
93
93
  session.commit
94
94
  end
95
95
 
@@ -118,8 +118,8 @@ describe Sparrow::JMS::Messaging, ', quando tem um Sender e um Receiver para uma
118
118
  end
119
119
 
120
120
  #
121
- # Cen�rio p�s-configura��o do cliente JMS, quando deve ser poss�vel escutar mensagens
122
- # atrav�s de objetos listeners.
121
+ # Cenario pos-configuracao do cliente JMS, quando deve ser possivel escutar mensagens
122
+ # atraves de objetos listeners.
123
123
  #
124
124
  describe Sparrow::JMS::Messaging::Listener,
125
125
  ', quando um Listener se registra para escutar uma Queue especifica,' do
@@ -129,4 +129,4 @@ describe Sparrow::JMS::Messaging::Listener,
129
129
  end
130
130
 
131
131
  it 'deveria possibilitar escutar mensagens atraves de um listener'
132
- end
132
+ end
data/spec/spec_helper.rb CHANGED
@@ -4,12 +4,15 @@ require 'spec'
4
4
  require File.dirname(File.expand_path(__FILE__)) + '/../lib/sparrow.rb'
5
5
 
6
6
  #
7
- # M�dulo com m�todos uteis para as propertiess.
7
+ # Modulo com metodos uteis para as propertiess.
8
8
  #
9
9
  module SparrowHelperMethods
10
10
 
11
11
  #
12
- # Apenas cria, mas n�o faz o setup do cliente JMS.
12
+ # Apenas cria, mas nao faz o setup do cliente JMS.
13
+ #
14
+ # WARNING: OC4J will be used as Java EE application server, but any other could
15
+ # be used with no problems.
13
16
  #
14
17
  def create_jms_client
15
18
  jms_client = Sparrow::JMS::Connection::Client.new do |properties|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leandrosilva-sparrow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.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: 2009-03-07 00:00:00 -08:00
12
+ date: 2009-03-08 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15