org.torquebox.torquebox-messaging-client 1.0.0.Beta22-java → 1.0.0.Beta23-java
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/lib/gem_hook.rb +1 -0
- data/lib/jboss-common-core-2.2.17.GA.jar +0 -0
- data/lib/{jboss-jms-api_1.1_spec-1.0.0.Beta1.jar → jboss-jms-api_1.1_spec-1.0.0.Final.jar} +0 -0
- data/lib/jnp-client-5.0.5.Final.jar +0 -0
- data/lib/org.torquebox.torquebox-messaging-client.rb +5 -3
- data/lib/torquebox-interp-core.jar +0 -0
- data/lib/torquebox-interp-metadata.jar +0 -0
- data/lib/torquebox-interp-spi.jar +0 -0
- data/lib/torquebox-messaging-client.jar +0 -0
- data/lib/torquebox-messaging-core.jar +0 -0
- data/lib/torquebox/messaging/destination.rb +9 -0
- data/lib/torquebox/messaging/ext/javax_jms_session.rb +44 -5
- data/spec/client_spec.rb +7 -7
- data/spec/destination_spec.rb +45 -0
- metadata +12 -10
    
        data/lib/gem_hook.rb
    CHANGED
    
    
| Binary file | 
| Binary file | 
| Binary file | 
| @@ -1,15 +1,17 @@ | |
| 1 1 | 
             
            module TorqueboxMessagingClient
         | 
| 2 | 
            -
              VERSION = '1.0.0. | 
| 3 | 
            -
              MAVEN_VERSION = '1.0.0. | 
| 2 | 
            +
              VERSION = '1.0.0.Beta23'
         | 
| 3 | 
            +
              MAVEN_VERSION = '1.0.0.Beta23'
         | 
| 4 4 | 
             
            end
         | 
| 5 5 | 
             
            begin
         | 
| 6 6 | 
             
              require 'java'
         | 
| 7 7 | 
             
              require File.dirname(__FILE__) + '/torquebox-messaging-client.jar'
         | 
| 8 | 
            -
              require File.dirname(__FILE__) + '/jboss-jms-api_1.1_spec-1.0.0. | 
| 8 | 
            +
              require File.dirname(__FILE__) + '/jboss-jms-api_1.1_spec-1.0.0.Final.jar'
         | 
| 9 9 | 
             
              require File.dirname(__FILE__) + '/hornetq-core-2.1.2.Final.jar'
         | 
| 10 10 | 
             
              require File.dirname(__FILE__) + '/hornetq-jms-client-2.1.2.Final.jar'
         | 
| 11 11 | 
             
              require File.dirname(__FILE__) + '/netty-3.2.1.Final.jar'
         | 
| 12 12 | 
             
              require File.dirname(__FILE__) + '/hornetq-logging-2.1.2.Final.jar'
         | 
| 13 | 
            +
              require File.dirname(__FILE__) + '/jnp-client-5.0.5.Final.jar'
         | 
| 14 | 
            +
              require File.dirname(__FILE__) + '/jboss-common-core-2.2.17.GA.jar'
         | 
| 13 15 | 
             
              require File.dirname(__FILE__) + '/jboss-logging-3.0.0.Beta4.jar'
         | 
| 14 16 | 
             
              require File.dirname(__FILE__) + '/torquebox-interp-spi.jar'
         | 
| 15 17 | 
             
              require File.dirname(__FILE__) + '/torquebox-interp-core.jar'
         | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| @@ -18,6 +18,15 @@ module TorqueBox | |
| 18 18 | 
             
                    end
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 | 
            +
                  def receive options={}
         | 
| 22 | 
            +
                    result = nil
         | 
| 23 | 
            +
                    Client.connect(options) do |session|
         | 
| 24 | 
            +
                      result = session.receive( name, options )
         | 
| 25 | 
            +
                      session.commit if session.transacted?
         | 
| 26 | 
            +
                    end
         | 
| 27 | 
            +
                    result
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
             | 
| 21 30 | 
             
                  def start
         | 
| 22 31 | 
             
                    TorqueBox::Kernel.lookup("JMSServerManager") do |server|
         | 
| 23 32 | 
             
                      destination.name = name
         | 
| @@ -5,8 +5,8 @@ module javax.jms::Session | |
| 5 5 | 
             
              attr_accessor :connection
         | 
| 6 6 | 
             
              attr_accessor :naming_context
         | 
| 7 7 |  | 
| 8 | 
            -
              def publish( | 
| 9 | 
            -
                destination = lookup_destination(  | 
| 8 | 
            +
              def publish(destination, message)
         | 
| 9 | 
            +
                destination = lookup_destination( destination ) unless destination.is_a?( Java::javax.jms.Destination )
         | 
| 10 10 | 
             
                producer = createProducer( destination )
         | 
| 11 11 | 
             
                jms_message = create_text_message
         | 
| 12 12 | 
             
                jms_message.encode message
         | 
| @@ -15,13 +15,52 @@ module javax.jms::Session | |
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 17 | 
             
              # Returns decoded message, by default.  Pass :decode=>false to
         | 
| 18 | 
            -
              # return the original JMS TextMessage
         | 
| 18 | 
            +
              # return the original JMS TextMessage.  Pass :timeout to give up
         | 
| 19 | 
            +
              # after a number of milliseconds
         | 
| 19 20 | 
             
              def receive(destination_name, options={})
         | 
| 20 21 | 
             
                decode = options.fetch(:decode, true)
         | 
| 22 | 
            +
                timeout = options.fetch(:timeout, 0)
         | 
| 21 23 | 
             
                destination = lookup_destination( destination_name )
         | 
| 22 24 | 
             
                consumer = createConsumer( destination )
         | 
| 23 | 
            -
                jms_message = consumer.receive
         | 
| 24 | 
            -
                 | 
| 25 | 
            +
                jms_message = consumer.receive( timeout )
         | 
| 26 | 
            +
                if jms_message
         | 
| 27 | 
            +
                  decode ? jms_message.decode : jms_message
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              # Sends a message to specified destination, creates a temporary
         | 
| 32 | 
            +
              # queue and waits for reply (request-reply pattern).
         | 
| 33 | 
            +
              #
         | 
| 34 | 
            +
              # Options:
         | 
| 35 | 
            +
              #
         | 
| 36 | 
            +
              # :timeout - specifies the time in miliseconds to wait for answer,
         | 
| 37 | 
            +
              #            default: 10000 (10s)
         | 
| 38 | 
            +
              # :decode  - pass false to return the original JMS TextMessage,
         | 
| 39 | 
            +
              #            default: true
         | 
| 40 | 
            +
              #
         | 
| 41 | 
            +
              def send_and_receive(destination_name, message, options = {})
         | 
| 42 | 
            +
                decode = options.fetch(:decode, true)
         | 
| 43 | 
            +
                timeout = options.fetch(:timeout, 10000) # 10s
         | 
| 44 | 
            +
                destination = lookup_destination( destination_name )
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                request_producer = createProducer( destination )
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                reply_queue = createTemporaryQueue
         | 
| 49 | 
            +
                reply_receiver = createConsumer( reply_queue )
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                jms_message = createTextMessage
         | 
| 52 | 
            +
                jms_message.jmsreply_to = reply_queue
         | 
| 53 | 
            +
                jms_message.jmsdelivery_mode = Java::javax.jms.DeliveryMode.NON_PERSISTENT
         | 
| 54 | 
            +
                jms_message.encode message
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                request_producer.send( jms_message )
         | 
| 57 | 
            +
                commit
         | 
| 58 | 
            +
                jms_message = reply_receiver.receive( timeout )
         | 
| 59 | 
            +
                commit
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                if jms_message
         | 
| 62 | 
            +
                  decode ? jms_message.decode : jms_message
         | 
| 63 | 
            +
                end
         | 
| 25 64 | 
             
              end
         | 
| 26 65 |  | 
| 27 66 | 
             
              def lookup_destination(destination_name)
         | 
    
        data/spec/client_spec.rb
    CHANGED
    
    | @@ -29,7 +29,6 @@ describe TorqueBox::Messaging::Client do | |
| 29 29 | 
             
                  received_message = nil
         | 
| 30 30 |  | 
| 31 31 | 
             
                  consumer_thread = Thread.new {
         | 
| 32 | 
            -
                    sleep( 2 )
         | 
| 33 32 | 
             
                    TorqueBox::Messaging::Client.connect() do |session|
         | 
| 34 33 | 
             
                      received_message = session.receive( '/queues/foo' )
         | 
| 35 34 | 
             
                      session.commit
         | 
| @@ -105,13 +104,14 @@ describe TorqueBox::Messaging::Client do | |
| 105 104 | 
             
                  received_message.get_string_property( 'torquebox_encoding' ).should be_nil
         | 
| 106 105 | 
             
                end
         | 
| 107 106 |  | 
| 108 | 
            -
                it "should  | 
| 109 | 
            -
                   | 
| 110 | 
            -
                   | 
| 111 | 
            -
             | 
| 112 | 
            -
                   | 
| 107 | 
            +
                it "should timeout if asked" do
         | 
| 108 | 
            +
                  received_message = nil
         | 
| 109 | 
            +
                  TorqueBox::Messaging::Client.connect() do |session|
         | 
| 110 | 
            +
                    received_message = session.receive( '/queues/foo', :timeout => 1 )
         | 
| 111 | 
            +
                  end
         | 
| 112 | 
            +
                  received_message.should be_nil
         | 
| 113 113 | 
             
                end
         | 
| 114 | 
            -
             | 
| 114 | 
            +
                
         | 
| 115 115 | 
             
              end
         | 
| 116 116 |  | 
| 117 117 | 
             
            end
         | 
    
        data/spec/destination_spec.rb
    CHANGED
    
    | @@ -1,4 +1,7 @@ | |
| 1 1 |  | 
| 2 | 
            +
            require 'org.torquebox.torquebox-container-foundation'
         | 
| 3 | 
            +
            require 'org.torquebox.torquebox-naming-container'
         | 
| 4 | 
            +
            require 'org.torquebox.torquebox-messaging-container'
         | 
| 2 5 | 
             
            require 'torquebox/messaging/destination'
         | 
| 3 6 |  | 
| 4 7 | 
             
            describe TorqueBox::Messaging::Destination do
         | 
| @@ -31,4 +34,46 @@ describe TorqueBox::Messaging::Destination do | |
| 31 34 | 
             
                topic.destroy
         | 
| 32 35 | 
             
              end
         | 
| 33 36 |  | 
| 37 | 
            +
              describe "sending and receiving" do
         | 
| 38 | 
            +
                before(:each) do
         | 
| 39 | 
            +
                  @container = TorqueBox::Container::Foundation.new
         | 
| 40 | 
            +
                  @container.enable( TorqueBox::Naming::NamingService ) {|config| config.export=false}
         | 
| 41 | 
            +
                  @container.enable( TorqueBox::Messaging::MessageBroker ) 
         | 
| 42 | 
            +
                  @container.start
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
              
         | 
| 45 | 
            +
                after(:each) do
         | 
| 46 | 
            +
                  @container.stop
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                it "should be able to publish to and receive from a queue" do
         | 
| 50 | 
            +
                  queue = TorqueBox::Messaging::Queue.new "/queues/foo"
         | 
| 51 | 
            +
                  queue.start
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  queue.publish "howdy"
         | 
| 54 | 
            +
                  message = queue.receive
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                  queue.destroy
         | 
| 57 | 
            +
                  message.should eql( "howdy" )
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                it "should publish to multiple topic consumers" do
         | 
| 61 | 
            +
                  topic = TorqueBox::Messaging::Topic.new "/topics/foo"
         | 
| 62 | 
            +
                  topic.start
         | 
| 63 | 
            +
                  threads, count = [], 10
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  # Use a threadsafe "array"
         | 
| 66 | 
            +
                  msgs = java.util.Collections.synchronizedList( [] )
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  # Ensure all clients are blocking on the receipt of a message
         | 
| 69 | 
            +
                  count.times { threads << Thread.new { msgs << topic.receive } }
         | 
| 70 | 
            +
                  sleep(1)
         | 
| 71 | 
            +
                  topic.publish "howdy"
         | 
| 72 | 
            +
                  threads.each {|t| t.join}
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                  topic.destroy
         | 
| 75 | 
            +
                  msgs.to_a.should eql( ["howdy"] * count )
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
             | 
| 34 79 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version | |
| 6 6 | 
             
                - 1
         | 
| 7 7 | 
             
                - 0
         | 
| 8 8 | 
             
                - 0
         | 
| 9 | 
            -
                -  | 
| 10 | 
            -
              version: 1.0.0. | 
| 9 | 
            +
                - Beta23
         | 
| 10 | 
            +
              version: 1.0.0.Beta23
         | 
| 11 11 | 
             
            platform: java
         | 
| 12 12 | 
             
            authors: []
         | 
| 13 13 |  | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2010- | 
| 18 | 
            +
            date: 2010-12-06 00:00:00 -06:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
              - !ruby/object:Gem::Dependency 
         | 
| @@ -29,8 +29,8 @@ dependencies: | |
| 29 29 | 
             
                          - 1
         | 
| 30 30 | 
             
                          - 0
         | 
| 31 31 | 
             
                          - 0
         | 
| 32 | 
            -
                          -  | 
| 33 | 
            -
                        version: 1.0.0. | 
| 32 | 
            +
                          - Beta23
         | 
| 33 | 
            +
                        version: 1.0.0.Beta23
         | 
| 34 34 | 
             
                type: :runtime
         | 
| 35 35 | 
             
                version_requirements: *id001
         | 
| 36 36 | 
             
              - !ruby/object:Gem::Dependency 
         | 
| @@ -44,8 +44,8 @@ dependencies: | |
| 44 44 | 
             
                          - 1
         | 
| 45 45 | 
             
                          - 0
         | 
| 46 46 | 
             
                          - 0
         | 
| 47 | 
            -
                          -  | 
| 48 | 
            -
                        version: 1.0.0. | 
| 47 | 
            +
                          - Beta23
         | 
| 48 | 
            +
                        version: 1.0.0.Beta23
         | 
| 49 49 | 
             
                type: :development
         | 
| 50 50 | 
             
                version_requirements: *id002
         | 
| 51 51 | 
             
              - !ruby/object:Gem::Dependency 
         | 
| @@ -59,8 +59,8 @@ dependencies: | |
| 59 59 | 
             
                          - 1
         | 
| 60 60 | 
             
                          - 0
         | 
| 61 61 | 
             
                          - 0
         | 
| 62 | 
            -
                          -  | 
| 63 | 
            -
                        version: 1.0.0. | 
| 62 | 
            +
                          - Beta23
         | 
| 63 | 
            +
                        version: 1.0.0.Beta23
         | 
| 64 64 | 
             
                type: :development
         | 
| 65 65 | 
             
                version_requirements: *id003
         | 
| 66 66 | 
             
              - !ruby/object:Gem::Dependency 
         | 
| @@ -89,11 +89,13 @@ files: | |
| 89 89 | 
             
              - licenses/lgpl-2.1.txt
         | 
| 90 90 | 
             
              - lib/torquebox-messaging-client.jar
         | 
| 91 91 | 
             
              - lib/org.torquebox.torquebox-messaging-client.rb
         | 
| 92 | 
            -
              - lib/jboss-jms-api_1.1_spec-1.0.0. | 
| 92 | 
            +
              - lib/jboss-jms-api_1.1_spec-1.0.0.Final.jar
         | 
| 93 93 | 
             
              - lib/hornetq-core-2.1.2.Final.jar
         | 
| 94 94 | 
             
              - lib/hornetq-jms-client-2.1.2.Final.jar
         | 
| 95 95 | 
             
              - lib/netty-3.2.1.Final.jar
         | 
| 96 96 | 
             
              - lib/hornetq-logging-2.1.2.Final.jar
         | 
| 97 | 
            +
              - lib/jnp-client-5.0.5.Final.jar
         | 
| 98 | 
            +
              - lib/jboss-common-core-2.2.17.GA.jar
         | 
| 97 99 | 
             
              - lib/jboss-logging-3.0.0.Beta4.jar
         | 
| 98 100 | 
             
              - lib/torquebox-interp-spi.jar
         | 
| 99 101 | 
             
              - lib/torquebox-interp-core.jar
         |