[PATCH 04/11] Created the Ruby bindings for Address.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb  |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb  |  125 ++
 qpid/cpp/bindings/qpid/ruby/test/test_address.rb |   39 +++
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb  |1 +
 4 files changed, 166 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_address.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index 725fa45..f9d5822 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -19,5 +19,6 @@
 
 require 'qpid/errors'
 require 'qpid/duration'
+require 'qpid/address'
 require 'qpid/encoding'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb
new file mode 100644
index 000..73b61bb
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb
@@ -0,0 +1,125 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+module Qpid
+
+  module Messaging
+
+# Address represents an address to which messages can be sent or from
+# which they can be received.
+#
+# An Address can be described using the following pattern:
+#
+# address [ / subject ] ; [ { key : value , ... } ]
+#
+# where *address* is a simple name and *subject* is a subject or subject
+# pattern.
+#
+# The options, enclosed in curly braces, are key:value pairs delimited by
+# a comma. The values can be nested maps also enclosed in curly braces.
+# Or they can be lists of values, where they are contained within square
+# brackets but still comma delimited, such as:
+#
+# [value1,value2,value3]
+#
+# The following are the list of supported options:
+#
+# create:: Indicates if the address should be created; values are *always*,
+#  *never*, *sender* or *reciever*.
+#
+# assert:: Indicates whether or not to assert any specified node 
properties;
+#  values are *always*, *never*, *sender* or *receiver*.
+#
+# delete:: Indicates whether or not to delete the addressed node when a
+#  sender or receiver is cancelled; values are *always*, *never*,
+#  *sender* or *receiver*.
+#
+# node:: A nested map describing properties for the addressed node.
+#Properties are *type* (*topic* or *queue*), *durable* (a boolean),
+#*x-declare* (a nested map of amqp 0.10-specific options) and
+#*x-bindings*. (nested list which specifies a queue, exchange or
+#a binding key and arguments.
+#
+# link:: A nested map through which properties of the link can be 
specified;
+#properties are *durable*, *reliability*, *x-declare*, 
*x-subscribe*
+#and *x-bindings*.
+#
+# mode:: (*For receivers only*) indicates whether the receiver should 
consume
+#or browse messages; values are *consume* (the default) and 
*browse*.
+class Address
+
+  def initialize(name, subject, options = {}, _type = , address_impl = 
nil)
+@address_impl = address_impl || Cqpid::Address.new(name, subject, 
convert_options(options), _type)
+  end
+
+   def address_impl # :nodoc:
+ @address_impl
+   end
+
+   # Returns the name.
+  def name; @address_impl.getName; end
+
+  # Sets the name.
+  def name=(name); @address_impl.setName name; end
+
+  # Returns the subject.
+  def subject; @address_impl.getSubject; end
+
+  # Sets the subject.
+  def subject=(subject); @address_impl.setSubject(subject); end
+
+  # Returns the type.
+  #---
+  # We cannot use type since that clashes with the Ruby object.type
+  # identifier.
+  def _type; @address_impl.getType; end
+
+  # Sets the type.
+  #
+  # The type of the address determines how Sender and Receiver objects
+  # are constructed for it. If no type is specified then it will be
+  # determined by querying the broker.
+  def _type=(_type); 

[PATCH 03/11] Created the encode and decode methods in Qpid::Messaging.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

These methods differ from the same methods in Cqpid in that they handle
working with symbols and other non-string values.
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb   |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb  |   56 
 qpid/cpp/bindings/qpid/ruby/test/test_encoding.rb |  146 +
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb   |1 +
 4 files changed, 204 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_encoding.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index 597446d..725fa45 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -19,4 +19,5 @@
 
 require 'qpid/errors'
 require 'qpid/duration'
+require 'qpid/encoding'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb
new file mode 100644
index 000..c8b843b
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb
@@ -0,0 +1,56 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+module Qpid
+
+  module Messaging
+
+# Encodes the supplied content into the given message.
+def self.encode content, message, encoding = nil
+  prepared = content
+  case content
+  when Hash
+prepared = {}
+content.each_pair do |key,value|
+  prepared[key.to_s] = value.to_s
+end
+Cqpid::encode prepared, message.message_impl
+  when Array
+prepared = []
+content.each {|value| prepared  value.to_s}
+Cqpid::encode prepared, message.message_impl
+  end
+end
+
+# Decodes and returns the message's content.
+def self.decode(message, content_type = nil)
+  content_type = message.content_type unless content_type
+
+  case content_type
+when amqp/map:  Cqpid.decodeMap message.message_impl
+when amqp/list: Cqpid.decodeList message.message_impl
+  end
+end
+
+  end
+
+end
+
diff --git a/qpid/cpp/bindings/qpid/ruby/test/test_encoding.rb 
b/qpid/cpp/bindings/qpid/ruby/test/test_encoding.rb
new file mode 100644
index 000..060975a
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/test/test_encoding.rb
@@ -0,0 +1,146 @@
+#
+# 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 'test/unit'
+require 'flexmock/test_unit'
+
+require 'cqpid'
+require 'qpid/encoding'
+
+class TestEncoding  Test::Unit::TestCase
+
+  def setup
+@cqpid = flexmock(Cqpid)
+
+@message = flexmock(message)
+@message_impl = flexmock(message_impl)
+
+@encoded = {foo = bar}
+  end
+
+  def test_encode_map_with_symbols
+@message.
+  should_receive(:message_impl).
+  once.
+  and_return(@message_impl)
+@cqpid.
+  should_receive(:encode).
+  once.
+  with({foo = bar}, @message_impl).
+  and_return(@encoded)
+
+result = Qpid::Messaging.encode({:foo = :bar}, @message)
+
+assert_same @encoded, result
+  end
+
+  def test_encode_list_with_symbols
+@message.
+  should_receive(:message_impl).
+  once.
+  and_return(@message_impl)
+@cqpid.
+  should_receive(:encode).
+  once.
+  with([foo, bar], @message_impl).
+  and_return(@encoded)
+
+result = 

[PATCH 02/11] Created the Duration namespace for duration contants.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

Added constants to map the C++ values to symbols within Ruby:

 * FOREVER
 * IMMEDIATE
 * MINUTE
 * SECOND
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb  |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/duration.rb |   63 ++
 2 files changed, 64 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/duration.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index 2cf0788..597446d 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -18,4 +18,5 @@
 #
 
 require 'qpid/errors'
+require 'qpid/duration'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/duration.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/duration.rb
new file mode 100644
index 000..c1f44e9
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/duration.rb
@@ -0,0 +1,63 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+module Qpid
+
+  module Messaging
+
+# A Duration represents a period of time in milliseconds
+#
+# It defines the following named values as symbols:
+#
+# :FOREVER :: the maximum integer value for the platform
+# :IMMEDIATE :: an alias for 0
+# :SECOND :: 1,000ms
+# :MINUTE :: 60,000ms
+class Duration
+
+  def initialize duration # :nodoc:
+@duration_impl = Cqpid::Duration.new duration
+  end
+
+  def duration_impl # :nodoc:
+@duration_impl
+  end
+
+  def self.add_item(key, value) # :nodoc:
+@hash ||= {}
+@hash[key] = Duration.new value
+  end
+
+  def self.const_missing(key) # :nodoc:
+@hash[key]
+  end
+
+  self.add_item :FOREVER,   Cqpid::Duration.FOREVER.getMilliseconds
+  self.add_item :IMMEDIATE, Cqpid::Duration.IMMEDIATE.getMilliseconds
+  self.add_item :SECOND,Cqpid::Duration.SECOND.getMilliseconds
+  self.add_item :MINUTE,Cqpid::Duration.MINUTE.getMilliseconds
+
+end
+
+  end
+
+end
+
-- 
1.7.6


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[PATCH 06/11] Created the Sender class and its unit tests.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The class is packaged as follows:

Qpid::Messaging::Sender

A Sender can send a message.
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb  |   82 ++
 qpid/cpp/bindings/qpid/ruby/test/test_sender.rb |  183 +++
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb |1 +
 4 files changed, 267 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_sender.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index b5ac578..b72747d 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -22,4 +22,5 @@ require 'qpid/duration'
 require 'qpid/address'
 require 'qpid/encoding'
 require 'qpid/message'
+require 'qpid/sender'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb
new file mode 100644
index 000..5d59c20
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb
@@ -0,0 +1,82 @@
+#
+# 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.
+#
+
+module Qpid
+
+  module Messaging
+
+# Sender defines a type for sending messages.
+class Sender
+
+  def initialize(sender_impl) # :nodoc:
+@sender_impl = sender_impl
+  end
+
+  def sender_impl # :nodoc:
+@sender_impl
+  end
+
+  # Sends a message.
+  def send(message, args = {})
+block = args[:block] || false
+@sender_impl.send message.message_impl, block
+  end
+
+  # Closes the sender.
+  def close; @sender_impl.close; end
+
+  # Returns the name for the sender.
+  def name; @sender_impl.getName; end
+
+  # Sets the capacity for the sender, which is the number of outgoing
+  # messages that can be held pending confirmation or receipt by
+  # the broker.
+  def capacity=(capacity); @sender_impl.setCapacity capacity; end
+
+  # Returns the capacity.
+  def capacity; @sender_impl.getCapacity; end
+
+  # Returns the number of messages sent that are pending receipt
+  # confirmation by the broker.
+  def unsettled; @sender_impl.getUnsettled; end
+
+  # Returns the available capacity for sending messages.
+  def available
+@sender_impl.getAvailable
+  end
+
+  # Returns the Session for this sender.
+  def session; Qpid::Messaging::Session.new @sender_impl.getSession; end
+
+  # Returns if the underlying sender is valid.
+  def valid?; @sender_impl.isValid; end
+
+  # Returns if the underlying sender is null.
+  def null?; @sender_impl.isNull; end
+
+  def swap sender
+@sender_impl.swap sender.sender_impl
+  end
+
+end
+
+  end
+
+end
+
diff --git a/qpid/cpp/bindings/qpid/ruby/test/test_sender.rb 
b/qpid/cpp/bindings/qpid/ruby/test/test_sender.rb
new file mode 100644
index 000..64348b9
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/test/test_sender.rb
@@ -0,0 +1,183 @@
+#
+# 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 'test/unit'
+require 'flexmock/test_unit'
+
+require 'qpid/sender'
+
+class TestSender  Test::Unit::TestCase
+
+  def setup
+@messaging = flexmock(Qpid::Messaging)
+@message = flexmock(message)
+
+@session_impl = flexmock(session_impl)
+
+   

[PATCH 07/11] Created the Receiver class and its unit tests.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The class is packaged as follows:

Qpid::Messaging::Receiver
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb   |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb  |  102 +
 qpid/cpp/bindings/qpid/ruby/test/test_receiver.rb |  238 +
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb   |1 +
 4 files changed, 342 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_receiver.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index b72747d..3edb65c 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -23,4 +23,5 @@ require 'qpid/address'
 require 'qpid/encoding'
 require 'qpid/message'
 require 'qpid/sender'
+require 'qpid/receiver'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb
new file mode 100644
index 000..d498aa9
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb
@@ -0,0 +1,102 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+require 'qpid/duration'
+
+module Qpid
+
+  module Messaging
+
+# Receiver defines a type for receiving messages.
+class Receiver
+
+  def initialize(receiver_impl) # :nodoc:
+@receiver_impl = receiver_impl
+  end
+
+  def receiver_impl # :nodoc:
+@receiver_impl
+  end
+
+  # Retrieves a message from the receiver's local queue, or waits
+  # for up to the duration specified for one to become available.
+  def get(duration = Qpid::Messaging::Duration::FOREVER)
+message_impl = @receiver_impl.get duration.duration_impl
+create_message_wrapper message_impl unless message_impl.nil?
+  end
+
+  # Retrieves a message from the receiver's subscription, or waits
+  # for up to the duration specified for one to become available.
+  def fetch(duration = Qpid::Messaging::Duration::FOREVER)
+message_impl = @receiver_impl.fetch duration.duration_impl
+create_message_wrapper message_impl unless message_impl.nil?
+  end
+
+  # Sets the capacity.
+  #
+  # The capacity for a receiver determines the number of messages that
+  # can be held in the receiver before being fetched.
+  def capacity=(capacity); @receiver_impl.setCapacity capacity; end
+
+  # Returns the capacity.
+  def capacity; @receiver_impl.getCapacity; end
+
+  # Returns the number of available messages waiting to be fetched.
+  def available; @receiver_impl.getAvailable; end
+
+  # Returns the number of messages that have been received and acknowledged
+  # but whose acknowledgements have not been confirmed by the sender.
+  def unsettled; @receiver_impl.getUnsettled; end
+
+  # Cancels the reciever.
+  def close; @receiver_impl.close; end
+
+  # Returns whether the receiver is closed.
+  def closed?; @receiver_impl.isClosed; end
+
+  # Returns the name of the receiver
+  def name; @receiver_impl.getName; end
+
+  # Returns the Session for this receiver.
+  def session; Qpid::Messaging::Session.new(@receiver_impl.getSession); end
+
+  # Returns whether the underlying handle is valid.
+  def valid?; @receiver_impl.isValid; end
+
+  # Returns whether the underlying handle is null.
+  def null?; @receiver_impl.isNull; end
+
+  def swap receiver
+@receiver_impl.swap receiver.receiver_impl
+  end
+
+  private
+
+  def create_message_wrapper message_impl
+Qpid::Messaging::Message.new({}, message_impl)
+  end
+
+end
+
+  end
+
+end
+
diff --git a/qpid/cpp/bindings/qpid/ruby/test/test_receiver.rb 
b/qpid/cpp/bindings/qpid/ruby/test/test_receiver.rb
new file mode 100644
index 000..61a4db1
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/test/test_receiver.rb
@@ -0,0 +1,238 @@
+#
+# 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 

Ruby APIs on top of Swig-generated code...

2011-07-11 Thread Darryl L. Pierce
This patch set is a set of APIs that sit on top of the code generated by
the swig code generator. This code is provides a set of APIs that are,
hopefully, more intuitive to Ruby developers.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[PATCH 01/11] Created the Qpid Ruby libraries.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The libraries provide a more Ruby-esque way of using the Qpid libraries
that are generated via SWIG.
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb |   21 +++
 qpid/cpp/bindings/qpid/ruby/lib/qpid/errors.rb  |   30 ++
 qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb |   31 +++
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb |   23 +
 4 files changed, 105 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/errors.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
new file mode 100644
index 000..2cf0788
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -0,0 +1,21 @@
+#
+# 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.
+#
+
+require 'qpid/errors'
+
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/errors.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/errors.rb
new file mode 100644
index 000..7a16d08
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/errors.rb
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+module Qpid
+
+  module Messaging
+
+class KeyError  RuntimeError
+end
+
+  end
+
+end
+
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb
new file mode 100644
index 000..a791b16
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb
@@ -0,0 +1,31 @@
+#
+# 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.
+#
+
+module Qpid
+
+  module Version
+
+NUMBERS = [MAJOR = 0,
+   MINOR = 10,
+   BUILD = 0]
+  end
+
+  VERSION = Version::NUMBERS.join('.')
+
+end
diff --git a/qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb 
b/qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb
new file mode 100644
index 000..f5b7384
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb
@@ -0,0 +1,23 @@
+#
+# 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 

[PATCH 05/11] Created the Message class and its unit tests.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The class is packaged as:

Qpid::Messaging::Message

A Message can return its content and be used to send a message over an
instance of Sender.
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb  |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb  |  129 +
 qpid/cpp/bindings/qpid/ruby/test/test_message.rb |  307 ++
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb  |1 +
 4 files changed, 438 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_message.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index f9d5822..b5ac578 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -21,4 +21,5 @@ require 'qpid/errors'
 require 'qpid/duration'
 require 'qpid/address'
 require 'qpid/encoding'
+require 'qpid/message'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb
new file mode 100644
index 000..652b9fe
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb
@@ -0,0 +1,129 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+module Qpid
+
+  module Messaging
+
+# Message represents a message.
+class Message
+
+  def initialize(args = {}, message_impl = nil)
+@message_impl = message_impl
+@message_impl = Cqpid::Message.new if @message_impl.nil?
+@message_impl.setContent args[:content].to_s if args[:content]
+  end
+
+  def message_impl # :nodoc:
+@message_impl
+  end
+
+  # Assigns the reply to address.
+  # The address must be an instance of Address.
+  def reply_to=(address); @message_impl.setReplyTo address.address_impl; 
end
+
+  # Returns the reply to address for the message as an instance of 
+Address+.
+  def reply_to
+address_impl = @message_impl.getReplyTo
+# only return an address if a reply to was specified
+Qpid::Messaging::Address.new(nil, nil, nil, nil, address_impl) if 
address_impl
+  end
+
+  # Sets the subject.
+  def subject=(subject); @message_impl.setSubject subject; end
+
+  # Returns the subject.
+  def subject; @message_impl.getSubject; end
+
+  # Sets the content type.
+  def content_type=(content_type); @message_impl.setContentType 
content_type; end
+
+  # Returns the content type.
+  def content_type; @message_impl.getContentType; end
+
+  # Sets the message id.
+  def message_id=(message_id); @message_impl.setMessageId message_id.to_s; 
end
+
+  # Returns the message id.
+  def message_id; @message_impl.getMessageId; end
+
+  # Sets the user id.
+  def user_id=(user_id); @message_impl.setUserId user_id; end
+
+  # Returns the user id.
+  def user_id; @message_impl.getUserId; end
+
+  # Sets the correlation id.
+  def correlation_id=(correlation_id); @message_impl.setCorrelationId 
correlation_id; end
+
+  # Returns the correlation id.
+  def correlation_id; @message_impl.getCorrelationId; end
+
+  # Sets the priority.
+  def priority=(priority); @message_impl.setPriority priority; end
+
+  # Returns the priority.
+  def priority; @message_impl.getPriority; end
+
+  # Sets the time-to-live in milliseconds.
+  def ttl=(duration); @message_impl.setTtl duration; end
+
+  # Returns the time-to-live in milliseconds.
+  def ttl; @message_impl.getTtl; end
+
+  # Sets the durability.
+  def durable=(durable); @message_impl.setDurable durable; end
+
+  # Returns the durability.
+  def durable; @message_impl.getDurable; end
+
+  # Allows marking the message as redelivered.
+  def redelivered=(redelivered); @message_impl.setRedelivered redelivered; 
end
+
+  # Returns if the message was redelivered.
+  def redelivered; @message_impl.getRedelivered; end
+
+  # Returns all named properties.
+  # *NOTE:* It is recommended to use the +foo[key]+ method for
+  # retrieving properties.
+  def properties; 

[PATCH 11/11] Ruby specific .gitignore file.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

Ignores pkg and html directories.
---
 qpid/cpp/bindings/qpid/ruby/.gitignore |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/.gitignore

diff --git a/qpid/cpp/bindings/qpid/ruby/.gitignore 
b/qpid/cpp/bindings/qpid/ruby/.gitignore
new file mode 100644
index 000..ab78513
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/.gitignore
@@ -0,0 +1,2 @@
+pkg
+html
-- 
1.7.6


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[PATCH 08/11] Created the Session class and its unit tests.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The Session class is packaged as follows:

Qpid::Messaging::Session

A Session can create a Sender or a Receiver endpoint.
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb  |1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb  |  186 +
 qpid/cpp/bindings/qpid/ruby/test/test_session.rb |  445 ++
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb  |1 +
 4 files changed, 633 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_session.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index 3edb65c..65e6393 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -24,4 +24,5 @@ require 'qpid/encoding'
 require 'qpid/message'
 require 'qpid/sender'
 require 'qpid/receiver'
+require 'qpid/session'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb
new file mode 100644
index 000..543c26c
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb
@@ -0,0 +1,186 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+require 'qpid/errors'
+
+module Qpid
+
+  module Messaging
+
+# A Session represents a distinct conversation between end points.
+class Session
+
+  def initialize(session) # :nodoc:
+@session_impl = session
+  end
+
+  def session_impl # :nodoc:
+@session_impl
+  end
+
+  # Returns the +Connection+ for the +Session+.
+  def connection
+connection_impl = @session_impl.getConnection
+Qpid::Messaging::Connection.new , {}, connection_impl
+  end
+
+  # Creates a new endpoint for sending messages.
+  def create_sender(address)
+_address = address
+
+if address.class == Qpid::Messaging::Address
+  _address = address.address_impl
+end
+
+Qpid::Messaging::Sender.new(@session_impl.createSender(_address))
+  end
+
+  # Retrieves the +Sender+ with the specified name.
+  def sender(name)
+result = nil
+
+begin
+  sender_impl = @session_impl.getSender name
+  result = Sender.for_impl sender_impl
+rescue
+  # treat any error as a key error
+end
+
+raise Qpid::Messaging::KeyError, No such sender: #{name} if 
result.nil?
+result
+  end
+
+  # Retrieves the +Receiver+ with the specified name.
+  def receiver(name)
+result = nil
+
+begin
+  receiver_impl = @session_impl.getReceiver name
+  result = Receiver.for_impl receiver_impl
+rescue
+  # treat any error as a key error
+end
+
+raise Qpid::Messaging::KeyError, No such receiver: #{name} if 
result.nil?
+result
+  end
+
+  # Creates a new endpoint for receiving messages.
+  def create_receiver(address)
+result = nil
+
+if address.class == Qpid::Messaging::Address
+  address_impl = address.address_impl
+  result = 
Qpid::Messaging::Receiver.new(@session_impl.createReceiver(address_impl))
+else
+  result = 
Qpid::Messaging::Receiver.new(@session_impl.createReceiver(address))
+end
+
+return result
+  end
+
+  # Closes the Session and all associated Senders and Receivers.
+  # All Sessions are closed when the associated Connection is closed.
+  def close; @session_impl.close; end
+
+  # Commits any pending transactions for a transactional session.
+  def commit; @session_impl.commit; end
+
+  # Rolls back any uncommitted transactions on a transactional session.
+  def rollback; @session_impl.rollback; end
+
+  # Acknowledges one or more outstanding messages that have been received
+  # on this session.
+  #
+  # If a message is submitted (:message = something_message) then only
+  # that message is acknowledged. Otherwise all messsages are acknowledged.
+  #
+  # If :sync = true then the call will block until the server completes
+  # processing the 

[PATCH 09/11] Created the Connection class and its unit tests.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The Connection class is packaged as follows:

Qpid::Messaging::Connection
---
 qpid/cpp/bindings/qpid/ruby/lib/qpid.rb|1 +
 qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb |  134 ++
 .../cpp/bindings/qpid/ruby/test/test_connection.rb |  257 
 qpid/cpp/bindings/qpid/ruby/test/ts_bindings.rb|1 +
 4 files changed, 393 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb
 create mode 100644 qpid/cpp/bindings/qpid/ruby/test/test_connection.rb

diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
index 65e6393..1f00c13 100644
--- a/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -25,4 +25,5 @@ require 'qpid/message'
 require 'qpid/sender'
 require 'qpid/receiver'
 require 'qpid/session'
+require 'qpid/connection'
 
diff --git a/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb 
b/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb
new file mode 100644
index 000..5c56c1f
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb
@@ -0,0 +1,134 @@
+#
+# 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.
+#
+
+require 'cqpid'
+
+module Qpid
+
+  module Messaging
+
+# Connection allows for establishing connections to a remote endpoint.
+class Connection
+
+  # The following general options are supported (as strings or symbols):
+  #
+  # username::
+  # password::
+  # heartbeat::
+  # tcp_nodelay::
+  # sasl_mechanism::
+  # sasl_service::
+  # sasl_min_ssf::
+  # sasl_max_ssf::
+  # transport::
+  #
+  # The following options specifically control reconnection behavior:
+  #
+  # reconnect:: *true* or *false*; indicates whether to attempt 
reconnections
+  # reconnect_timeout:: the number of seconds to attempt reconnecting
+  # reconnect_limit:: the number of retries before reporting failure
+  # reconnect_interval_min:: initial delay, in seconds, before attempting 
a reconnecting
+  # reconnect_interval_max:: number of seconds to wait before additional 
reconnect attempts
+  # reconnect_interval:: shorthand for setting box min and max values
+  # reconnect_urls:: a list of alternate URLs to use for reconnection 
attempts
+  def initialize(url, options = {}, connection_impl = nil)
+@url = url
+@connection_impl = connection_impl
+@options = options
+  end
+
+  def connection_impl # :nodoc:
+@connection_impl
+  end
+
+  # Opens the connection.
+  def open
+@connection_impl = Cqpid::Connection.new(@url, convert_options)
+@connection_impl.open
+  end
+
+  # Reports whether the connection is open.
+  def open?; false || (@connection_impl.isOpen if @connection_impl); end
+
+  # Closes the connection.
+  def close; @connection_impl.close if open?; end
+
+  # Creates a new session.
+  #
+  # If :transactional = true then a transactional session is created.
+  # Otherwise a standard session is created.
+  def create_session(args = {})
+name = args[:name] || 
+if open?
+  if args[:transactional]
+session = @connection_impl.createTransactionalSession name
+  else
+session = @connection_impl.createSession name
+  end
+  return Session.new(session)
+else
+  raise RuntimeError.new No connection available.
+end
+  end
+
+  # Returns a session for the specified session name.
+  def session name
+session_impl = @connection_impl.getSession name
+Qpid::Messaging::Session.new session_impl if session_impl
+  end
+
+  # Returns the username used to authenticate with the connection.
+  def authenticated_username; @connection_impl.getAuthenticatedUsername if 
open?; end
+
+  # inherited from Handle
+
+  # Returns whether the underlying handle is valid; i.e., not null.
+  def valid?
+@connection_impl.isValid
+  end
+
+  # Returns whether the underlying handle is null.
+  def null?
+

[PATCH 10/11] Created the Rakefile for automating tasks.

2011-07-11 Thread Darryl L. Pierce
From: Darryl L. Pierce dpie...@redhat.com

The Rakefile allows us to run both unit and integration tests.

Also included a README.rdoc file.

All tests are in the test: namespace, and can be run with the
commands:

rake test:units
rake test:integrations
rake test:all # runs both unit and integraton tests
rake test # alias for test:all
---
 qpid/cpp/bindings/qpid/ruby/README.rdoc |   27 +++
 qpid/cpp/bindings/qpid/ruby/Rakefile|   74 +++
 2 files changed, 101 insertions(+), 0 deletions(-)
 create mode 100644 qpid/cpp/bindings/qpid/ruby/README.rdoc
 create mode 100644 qpid/cpp/bindings/qpid/ruby/Rakefile

diff --git a/qpid/cpp/bindings/qpid/ruby/README.rdoc 
b/qpid/cpp/bindings/qpid/ruby/README.rdoc
new file mode 100644
index 000..960fdf6
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/README.rdoc
@@ -0,0 +1,27 @@
+= Qpid - Open Source AMQP Messaging
+
+Qpid is an cross-platform enterprise messaging system.
+
+Version :: 0.10.0.alpha.0
+
+= Links
+
+Documents :: http://qpid.apache.org/
+
+= Installation
+
+You can install Qpid with the following command.
+
+  $ gem install qpid
+
+== Examples
+
+Take a look at the integration tests for examples on how to leverage
+the messaging capabilities of Qpid in your Ruby applications.
+
+== License
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor licensing agreements.
+
+
diff --git a/qpid/cpp/bindings/qpid/ruby/Rakefile 
b/qpid/cpp/bindings/qpid/ruby/Rakefile
new file mode 100644
index 000..ef2b158
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/Rakefile
@@ -0,0 +1,74 @@
+# Rakefile for Qpid -*- ruby -*-
+#
+# 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.
+#
+
+task :noop
+
+require 'rubygems'
+require 'rake/clean'
+require 'rake/rdoctask'
+require 'rake/testtask'
+
+CLOBBER.include('pkg')
+
+load './lib/qpid/version.rb'
+
+desc 'Default: run all tests.'
+task :default = :'test:all'
+
+#---
+# Testing tasks.
+#---
+
+desc 'Run all tests (alias for test:all).'
+task :test = :'test:all'
+
+namespace :test do
+  desc Run all tests (default).
+  task :all = [:units, :integrations]
+
+  desc Run unit tests.
+  Rake::TestTask.new(:units) do |t|
+t.libs  '.'
+t.pattern = 'test/test*.rb'
+t.verbose = true
+  end
+
+  desc Run integration tests.
+  Rake::TestTask.new(:integrations) do |t|
+t.libs  '.'
+t.pattern = 'test/integration/*.rb'
+t.verbose = true
+  end
+
+end
+
+#-
+# Documentation tasks.
+#-
+
+Rake::RDocTask.new(
+   :rdoc = 'rdoc',
+   :clobber_rdoc = 'rdoc:clean',
+   :rerdoc = 'rdoc:force'
+   ) do |rd|
+  rd.main= 'README.rdoc'
+  rd.options  '--all'
+  rd.rdoc_files.include('README.rdoc', 'lib/**/*.rb')
+end
-- 
1.7.6


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] [Updated] (QPID-3345) Make new transport implementations pluggable

2011-07-11 Thread Keith Wall (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall updated QPID-3345:
-

Attachment: 0001-QPID-3345-restore-add-ability-to-use-sys-props-to-se.patch

Proposed patch to resolve this Improvement.

 Make new transport implementations pluggable
 

 Key: QPID-3345
 URL: https://issues.apache.org/jira/browse/QPID-3345
 Project: Qpid
  Issue Type: Improvement
  Components: Java Client, Java Common
Reporter: Keith Wall
Assignee: Keith Wall
 Fix For: 0.13

 Attachments: 
 0001-QPID-3345-restore-add-ability-to-use-sys-props-to-se.patch


 Allow new transport implementations (those produced by QPID-3342) to be 
 loaded by reflection, thus working towards the removal of dependencies on 
 Mina by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] [Assigned] (QPID-3345) Make new transport implementations pluggable

2011-07-11 Thread Keith Wall (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall reassigned QPID-3345:


Assignee: Rajith Attapattu  (was: Keith Wall)

Hi Rajith

Would you mind reviewing this patch?

(I've been trying to put this up on review board, but it keeps giving me an 
internal server error).

cheers Keith.

 Make new transport implementations pluggable
 

 Key: QPID-3345
 URL: https://issues.apache.org/jira/browse/QPID-3345
 Project: Qpid
  Issue Type: Improvement
  Components: Java Client, Java Common
Reporter: Keith Wall
Assignee: Rajith Attapattu
 Fix For: 0.13

 Attachments: 
 0001-QPID-3345-restore-add-ability-to-use-sys-props-to-se.patch


 Allow new transport implementations (those produced by QPID-3342) to be 
 loaded by reflection, thus working towards the removal of dependencies on 
 Mina by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] [Commented] (QPID-3345) Make new transport implementations pluggable

2011-07-11 Thread Rajith Attapattu (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13063427#comment-13063427
 ] 

Rajith Attapattu commented on QPID-3345:


Keith,

I also got the same error when trying to add the patch when creating a review 
request. I got around that by just creating a review request without the patch 
and then using upload diff, once the request is created.Perhaps that might work 
for you as well.
I'd be happy to review the patch for you.

Regards,

Rajith

 Make new transport implementations pluggable
 

 Key: QPID-3345
 URL: https://issues.apache.org/jira/browse/QPID-3345
 Project: Qpid
  Issue Type: Improvement
  Components: Java Client, Java Common
Reporter: Keith Wall
Assignee: Rajith Attapattu
 Fix For: 0.13

 Attachments: 
 0001-QPID-3345-restore-add-ability-to-use-sys-props-to-se.patch


 Allow new transport implementations (those produced by QPID-3342) to be 
 loaded by reflection, thus working towards the removal of dependencies on 
 Mina by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



0.12 release update - RC1 this week

2011-07-11 Thread Justin Ross
Hello.  This is a reminder that I will be producing the first 0.12 release 
candidate this week, probably Wednesday evening or Thursday morning (my 
time, US east coast).


I haven't seen any requests to merge to the release branch so far.  I know 
of one pending fix for a windows distribution problem (the one Chuck 
mailed about).  If there are others in the wings, let me know so I can 
kick off the approval process.


Thanks,
Justin

---
0.12 release page: https://cwiki.apache.org/qpid/012-release.html

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: 0.12 release update - RC1 this week

2011-07-11 Thread Darryl L. Pierce
On Mon, Jul 11, 2011 at 05:07:51PM -0400, Justin Ross wrote:
 Hello.  This is a reminder that I will be producing the first 0.12
 release candidate this week, probably Wednesday evening or Thursday
 morning (my time, US east coast).
 
 I haven't seen any requests to merge to the release branch so far.
 I know of one pending fix for a windows distribution problem (the
 one Chuck mailed about).  If there are others in the wings, let me
 know so I can kick off the approval process.

If posted a fix for BZ#704271. It's a one-line fix for the pure Ruby
APIs.

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/



pgptK2T94J1T7.pgp
Description: PGP signature