Author: tross
Date: Tue Sep  6 19:26:36 2011
New Revision: 1165794

URL: http://svn.apache.org/viewvc?rev=1165794&view=rev
Log:
QPID-3360 - Ruby implementation of Qpid example applications
Applied partial patch from Darryl Pierce

Added:
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/client.rb
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/hello_world.rb
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/server.rb
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/
    qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/setup.rb

Added: qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/client.rb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/client.rb?rev=1165794&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/client.rb (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/client.rb Tue Sep  6 
19:26:36 2011
@@ -0,0 +1,50 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
+
+require 'qpid'
+
+if __FILE__ == $0
+  broker  = ARGV[1] || "amqp:tcp:localhost:5672"
+  options = ARGV[2] || ""
+
+  connection = Qpid::Messaging::Connection.new broker, options
+  connection.open
+  session = connection.create_session
+  sender = session.create_sender "service_queue"
+  response_queue = Qpid::Messaging::Address.new("#response-queue", "",
+                                                :create => :always,
+                                                :delete => :always)
+  receiver = session.create_receiver response_queue
+
+  ["Twas brillig, and the slithy toves",
+   "Did gire and gymble in the wabe.",
+   "All mimsy were the borogroves,",
+   "And the mome raths outgrabe."].each do |line|
+    request = Qpid::Messaging::Message.new :content => line
+    request.reply_to = response_queue
+    sender.send request
+    response = receiver.fetch
+    puts "#{request.content} -> #{response.content}"
+  end
+
+  connection.close
+end
+

Added: qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/hello_world.rb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/hello_world.rb?rev=1165794&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/hello_world.rb (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/hello_world.rb Tue Sep  6 
19:26:36 2011
@@ -0,0 +1,49 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
+
+require 'qpid'
+
+# This is your classic Hello World application, written in
+# Ruby, that uses Qpid. It demonstrates how to send and
+# also receive messages.
+#
+if __FILE__ == $0
+  broker  = ARGV[0] || "localhost:5672"
+  address = ARGV[1] || "amq.topic"
+  options = ARGV[2] || ""
+
+  connection = Qpid::Messaging::Connection.new broker
+  connection.open
+  session    = connection.create_session
+  receiver   = session.create_receiver address
+  sender     = session.create_sender address
+
+  # Send a simple message
+  sender.send Qpid::Messaging::Message.new :content => "Hello world!"
+
+  # Now receive the message
+  message = receiver.fetch Qpid::Messaging::Duration::SECOND
+  puts "#{message.content}"
+  session.acknowledge
+
+  connection.close
+end
+

Added: qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/server.rb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/server.rb?rev=1165794&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/server.rb (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/examples/server.rb Tue Sep  6 
19:26:36 2011
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
+
+require 'qpid'
+
+if __FILE__ == $0
+  broker  = ARGV[0] || "amqp:tcp:localhost:5672"
+  options = ARGV[1] || ""
+
+  connection = Qpid::Messaging::Connection.new broker, options
+  connection.open
+  session = connection.create_session
+  receiver = session.create_receiver "service_queue; {create:always}"
+
+  loop do
+    request = receiver.fetch
+    address = request.reply_to
+
+    if !address.nil?
+      sender = session.create_sender address
+      response = Qpid::Messaging::Message.new :content => 
request.content.upcase
+      sender.send response
+      puts "Processed request: #{request.content} -> #{response.content}"
+      session.acknowledge
+    else
+      puts "Error: no reply address specified for request: #{request.content}"
+      session.reject request
+    end
+  end
+
+  connection.close
+end
+

Added: qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/setup.rb
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/setup.rb?rev=1165794&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/setup.rb (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/test/lib/setup.rb Tue Sep  6 
19:26:36 2011
@@ -0,0 +1,29 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
+
+require 'qpid'
+
+def create_session url, session_name
+  conn = Qpid::Messaging::Connection.new url
+  conn.open
+  conn.create_session session_name
+end
+



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to