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
|