Mês passado comecei a tocar um projeto na CVC Turismo que, entre outras coisas, envolve troca mensagens assíncronas usando JMS. Esse trabalho foi está sendo tão divertido que me inspirou a escrever um post sobre Message-Driven Beans e Transações; e mais recentemente, a começar um novo projeto pessoal.
Sparrow é um cliente JMS implementado sobre JRuby e distribuido como uma Rubygem – hospedada no Github, é claro. Ele é uma boa opção para quem precisa integrar sistemas Ruby com servidores de aplicações Java EE, provedores de mensageria JMS.
É pá, pum! Quer ver?
require 'rubygems'
require 'sparrow'
# Configuração que tem que ser feita uma única vez
jms_client = Sparrow::JMS::Connection::Client.new do |props|
props.client_jar_file = '/oc4j_extended_101330/j2ee/home/oc4jclient.jar'
props.initial_context_factory = 'oracle.j2ee.naming.ApplicationClientInitialContextFactory'
props.provider_url = 'ormi://localhost:23791'
props.security_principal = 'oc4jadmin'
props.security_credentials = 'welcome'
end
jms_client.enable_connection_factories(
:queue_connection_factory => 'jms/MyQueueCF'
)
jms_client.enable_queues(
:my_queue => 'jms/MyQueue'
)
# Envio
jms_client.queue_sender(:my_queue).send_text_message('sparrow rocks!') do |msg|
msg.set_string_property('recipient', 'sparrow-example')
end
# Recebimento
jms_client.queue_receiver(:my_queue).receive_message(
:timeout => 5000,
:selector => "recipient = 'sparrow-example'"
) do |msg|
puts msg.is_text_message? # true
puts msg.text # sparrow rocks!
end
Fácil, não? 🙂
Se você quiser saber mais sobre o projeto, testá-lo, critica-lo, ou algo assim, por favor, não fique acanhado fique à vontade. E se não for pedir demais, deixe um comentário nesse post, como um feedback, para eu saber o quanto ainda preciso melhorá-lo e evoluí-lo.
Valeu!
Parabéns pela iniciativa de criar esse projeto para por em prática seus estudos de ruby.
Porém meu pré-conceito em relação à sintaxe do ruby permanece.. Quem sabe um dia eu consiga me superar! hehehe
[]’s
– l30 –
obs.: Ainda bem que não sou tão limitadinho.. consegui até postar um comentário no seu blog! ooooohhhhhh…
Valeu!!!
Faço votos que sim… huahuahua