[PATCH 04/11] Created the Ruby bindings for Address.
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.
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.
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.
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.
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...
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.
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.
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.
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.
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.
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.
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
[ 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
[ 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
[ 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
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
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