qpid_messaging 0.20.2 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/ChangeLog +4 -0
  2. data/LICENSE +0 -4
  3. data/README.rdoc +15 -20
  4. data/TODO +10 -5
  5. data/ext/cqpid/cqpid.cpp +156 -40
  6. data/ext/cqpid/extconf.rb +10 -2
  7. data/lib/qpid_messaging.rb +56 -3
  8. data/lib/qpid_messaging/address.rb +51 -28
  9. data/lib/qpid_messaging/connection.rb +75 -46
  10. data/lib/qpid_messaging/duration.rb +49 -14
  11. data/lib/qpid_messaging/encoding.rb +5 -5
  12. data/lib/qpid_messaging/message.rb +61 -68
  13. data/lib/qpid_messaging/receiver.rb +62 -67
  14. data/lib/qpid_messaging/sender.rb +39 -56
  15. data/lib/qpid_messaging/session.rb +78 -81
  16. metadata +51 -61
  17. data/Rakefile +0 -137
  18. data/features/closing_a_connection.feature +0 -13
  19. data/features/closing_a_session.feature +0 -13
  20. data/features/connecting_to_a_broker.feature +0 -13
  21. data/features/creating_a_receiver.feature +0 -29
  22. data/features/creating_a_sender.feature +0 -25
  23. data/features/creating_a_session.feature +0 -12
  24. data/features/getting_the_connections_authenticated_username.feature +0 -8
  25. data/features/receiving_a_message.feature +0 -30
  26. data/features/sending_a_message.feature +0 -21
  27. data/features/session_returns_its_connection.feature +0 -12
  28. data/features/sessions_have_names.feature +0 -8
  29. data/features/step_definitions/address_steps.rb +0 -22
  30. data/features/step_definitions/connection_steps.rb +0 -93
  31. data/features/step_definitions/receiver_steps.rb +0 -69
  32. data/features/step_definitions/sender_steps.rb +0 -34
  33. data/features/step_definitions/session_steps.rb +0 -99
  34. data/features/support/env.rb +0 -22
  35. data/lib/qpid_messaging/errors.rb +0 -33
  36. data/lib/qpid_messaging/version.rb +0 -31
  37. data/spec/qpid_messaging/address_spec.rb +0 -87
  38. data/spec/qpid_messaging/connection_spec.rb +0 -191
  39. data/spec/qpid_messaging/duration_spec.rb +0 -56
  40. data/spec/qpid_messaging/encoding_spec.rb +0 -63
  41. data/spec/qpid_messaging/message_spec.rb +0 -305
  42. data/spec/qpid_messaging/receiver_spec.rb +0 -170
  43. data/spec/qpid_messaging/sender_spec.rb +0 -135
  44. data/spec/qpid_messaging/session_spec.rb +0 -353
  45. data/spec/spec_helper.rb +0 -20
data/Rakefile DELETED
@@ -1,137 +0,0 @@
1
- # Rakefile for Qpid -*- ruby -*-
2
- #
3
- # Licensed to the Apache Software Foundation (ASF) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The ASF licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
- #
20
-
21
- task :noop
22
-
23
- $:.push File.expand_path("../lib", __FILE__)
24
-
25
- OUTPUT_DIR=ENV["OUTPUT_DIR"] || "."
26
-
27
- require "rubygems"
28
- require "rubygems/package_task"
29
-
30
- require "rake/clean"
31
- require "rake/extensiontask"
32
- require "rdoc/task"
33
- require "rake/testtask"
34
-
35
- require "cucumber/rake/task"
36
- require "rspec/core/rake_task"
37
-
38
- CLOBBER.include("pkg")
39
-
40
- load "./lib/qpid_messaging/version.rb"
41
-
42
- #-------------
43
- # Gem Details.
44
- #-------------
45
-
46
- NAME = "qpid_messaging"
47
- # VERSION = Qpid::VERSION
48
- AUTHOR = "Apache Qpid Project"
49
- EMAIL = "dev@qpid.apache.org"
50
- HOMEPAGE = "http://qpid.apache.org"
51
- SUMMARY = "Qpid is an enterprise messaging framework."
52
-
53
- desc "Default: run all tests."
54
- task :default => :test
55
-
56
- desc "Runs all tests."
57
- task :test => :"test:all"
58
-
59
- #---------------
60
- # Testing tasks.
61
- #---------------
62
-
63
- namespace :test do
64
-
65
- desc "Run RSpec tests."
66
- RSpec::Core::RakeTask.new do |t|
67
- t.ruby_opts = ['-rtest/unit']
68
- t.rcov = false
69
- t.rcov_opts = [
70
- '--exclude', 'lib\/qpid_messaging.rb,spec\/,lib\/ruby',
71
- ]
72
- end
73
-
74
- desc "Run all tests (default)."
75
- task :all => [:spec, :features]
76
-
77
- Cucumber::Rake::Task.new(:features) do |t|
78
- t.libs = ["lib", "ext/nonblockio"]
79
- t.cucumber_opts = "--format progress"
80
- end
81
-
82
- end
83
-
84
- #---------------------
85
- # Documentation tasks.
86
- #---------------------
87
-
88
- Rake::RDocTask.new(:rdoc => "rdoc",
89
- :clobber_rdoc => "rdoc:clean",
90
- :rerdoc => "rdoc:force") do |rd|
91
- rd.main = "README.rdoc"
92
- rd.options << "--all"
93
- rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
94
- rd.title = "Qpid Messaging Documentation"
95
- end
96
-
97
- #-----------------
98
- # Package the gem.
99
- #-----------------
100
-
101
- spec = Gem::Specification.new do |s|
102
- s.name = NAME
103
- s.version = Qpid::VERSION
104
- s.platform = Gem::Platform::RUBY
105
- s.extra_rdoc_files = ["README.rdoc"]
106
- s.summary = SUMMARY
107
- s.description = s.summary
108
- s.author = AUTHOR
109
- s.email = EMAIL
110
- s.homepage = HOMEPAGE
111
-
112
- s.extensions = FileList["ext/**/extconf.rb"]
113
-
114
- s.require_path = "lib"
115
- # DEPRECATED s.autorequire = NAME
116
- s.files = FileList["LICENSE",
117
- "README.rdoc",
118
- "Rakefile",
119
- "TODO",
120
- "lib/**/*.rb",
121
- "test/**/*.rb",
122
- "examples/**/*.rb",
123
- "ext/**/*",
124
- "features/**/*",
125
- "spec/**/*"]
126
- end
127
-
128
- Gem::PackageTask.new(spec) do |pkg|
129
- pkg.package_dir = "#{OUTPUT_DIR}/pkg"
130
- end
131
-
132
- #------------------
133
- # Build native code
134
- #------------------
135
-
136
- Rake::ExtensionTask.new("cqpid", spec)
137
-
@@ -1,13 +0,0 @@
1
- Feature: Closing an open connection
2
- When working with a broker
3
- As a producer or consumer
4
- I want to close a connection
5
-
6
- Scenario: The connection is already closed
7
- Given a closed connection
8
- Then calling close does not raise an exception
9
-
10
- Scenario: The connection is open
11
- Given an open connection
12
- And the connection is closed
13
- Then the connection is in the closed state
@@ -1,13 +0,0 @@
1
- Feature: Closing an open session
2
- While working with a session
3
- As a producer or consumer
4
- I want to close the session
5
-
6
- Scenario: The connection has already been closed
7
- Given an open session with a closed connection
8
- Then closing the session does not raise an error
9
-
10
- Scenario: Closing an active session
11
- Given an open session
12
- Then closing the session does not raise an error
13
- And the connection is in the open state
@@ -1,13 +0,0 @@
1
- Feature: Connecting to a broker
2
- In order to interaction on an AMQP network
3
- As a producer or consumer
4
- I want to connect to a broker
5
-
6
- Scenario: Connections are closed by default
7
- Given a new connection
8
- Then the connection is in the closed state
9
-
10
- Scenario: Opening a connection
11
- Given a new connection
12
- And the connection is opened
13
- Then the connection is in the open state
@@ -1,29 +0,0 @@
1
- Feature: Creating a receiver
2
- When working with a messaging environment
3
- As a consumer
4
- I want to create a Receiver for consuming messages
5
-
6
- Scenario: The session is closed
7
- Given a closed session
8
- Then creating a receiver with "my-queue" raises an exception
9
-
10
- Scenario: The connection is closed
11
- Given an open session with a closed connection
12
- Then creating a receiver with "my-queue" raises an exception
13
-
14
- Scenario: The address is malformed
15
- Given an open session
16
- Then creating a receiver with "my-queue;{foo:bar}" raises an exception
17
-
18
- Scenario: The address string is valid but the queue does not exist
19
- Given an open session
20
- Then creating a receiver for a nonexistent queue raises an exception
21
-
22
- Scenario: The address string is fine
23
- Given an open session
24
- Then creating a receiver with "my-queue;{create:always,delete:always}" succeeds
25
-
26
- Scenario: Using an Address object
27
- Given an open session
28
- And an Address with the string "create-receiver-test;{create:always}"
29
- Then creating a receiver with an Address succeeds
@@ -1,25 +0,0 @@
1
- Feature: Creating a sender
2
- When working with a session
3
- As a producer
4
- I want to create a Sender for sending messages
5
-
6
- Scenario: The session is closed
7
- Given a closed session
8
- Then creating a sender with "my-queue;{create:always,delete:always}" raises an exception
9
-
10
- Scenario: The connection is closed
11
- Given an open session with a closed connection
12
- Then creating a sender with "my-queue;{create:always,delete:always}" raises an exception
13
-
14
- Scenario: The address is malformed
15
- Given an open session
16
- Then creating a sender with "my-queue;{foo:bar}" raises an exception
17
-
18
- Scenario: The address string is valid
19
- Given an open session
20
- Then creating a sender with "my-queue;{create:always,delete:always}" succeeds
21
-
22
- Scenario: Using an Address object
23
- Given an open session
24
- And an Address with the string "my-queue/my-subject;{create:always}"
25
- Then creating a sender with an Address succeeds
@@ -1,12 +0,0 @@
1
- Feature: Creating a session
2
- When working with a broker
3
- As a producer or consumer
4
- I want to create a session
5
-
6
- Scenario: The connection is closed
7
- Given a closed connection
8
- Then creating a session raises an exception
9
-
10
- Scenario: The connection is open
11
- Given an open connection
12
- Then creating a session works
@@ -1,8 +0,0 @@
1
- Feature: Getting the authenticated username from an open connection.
2
- When connected to a broker
3
- As a producer or consumer
4
- I can retrieve the username used to authenticate
5
-
6
- Scenario: When connected anonymously
7
- Given an open connection
8
- Then the authenticated username should be "anonymous"
@@ -1,30 +0,0 @@
1
- Feature: Receving a message
2
- When working with a broker
3
- As a message consumer
4
- I need to be able to receive messages
5
-
6
- Scenario: Receiving after the session is closed
7
- Given a sender and receiver for "my-queue;{create:always,delete:always}"
8
- And the message "this is a test" is sent
9
- And the session is closed
10
- Then getting the next message raises an error
11
-
12
- Scenario: Receiving after the connection is closed
13
- Given a sender and receiver for "my-queue;{create:always,delete:always}"
14
- And the message "this is a test" is sent
15
- And the connection is closed
16
- Then getting the next message raises an error
17
-
18
- Scenario: No message is received on an empty queue
19
- Given an existing receiver for "my-queue;{create:always,delete:always}"
20
- And the receiver has no pending messages
21
- Then getting the next message raises an error
22
-
23
- Scenario: A message is pending
24
- Given an open session
25
- And given a sender for "my-queue;{create:always}"
26
- And given a receiver for "my-queue;{create:always,delete:always}"
27
- And the receiver has a capacity of 1
28
- And the message "this is a test" is sent
29
- Then the receiver should have 1 message available
30
- And the receiver should receive a message with "this is a test"
@@ -1,21 +0,0 @@
1
- Feature: Sending a message
2
- When working with a broker
3
- As a producer
4
- I want to send messages using an existing Sender
5
-
6
- Scenario: The session is closed
7
- Given an open session
8
- And creating a sender with "my-queue;{create:always,delete:always}" succeeds
9
- And the session is closed
10
- Then sending the message "This is a test" should raise an error
11
-
12
- Scenario: The connection is closed
13
- Given an open session
14
- And creating a sender with "my-queue;{create:always,delete:always}" succeeds
15
- And the connection is closed
16
- Then sending the message "This is a test" should raise an error
17
-
18
- Scenario: The message sends successfully
19
- Given an open session
20
- And creating a sender with "my-queue;{create:always,delete:always}" succeeds
21
- Then sending the message "This is a test" succeeds
@@ -1,12 +0,0 @@
1
- Feature: A session returns its connection
2
- With an action session
3
- As a producer or consumer
4
- I can retrieve the underlying connection for the session
5
-
6
- Scenario: The connection is closed
7
- Given an open session with a closed connection
8
- Then the connection for the session is in the closed state
9
-
10
- Scenario: The connection is open
11
- Given an open session
12
- Then the connection for the session is in the open state
@@ -1,8 +0,0 @@
1
- Feature: Session have a name
2
- When using a session
3
- As a producer or consumer
4
- I can name a session and then later retrieve it by name
5
-
6
- Scenario: Naming a session
7
- Given an existing session named "test-session"
8
- Then the session can be retrieved by the name "test-session"
@@ -1,22 +0,0 @@
1
- #
2
- # Licensed to the Apache Software Foundation (ASF) under one
3
- # or more contributor license agreements. See the NOTICE file
4
- # distributed with this work for additional information
5
- # regarding copyright ownership. The ASF licenses this file
6
- # to you under the Apache License, Version 2.0 (the
7
- # "License"); you may not use this file except in compliance
8
- # with the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing,
13
- # software distributed under the License is distributed on an
14
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- # KIND, either express or implied. See the License for the
16
- # specific language governing permissions and limitations
17
- # under the License.
18
- #
19
-
20
- Given /^an Address with the string "(.*?)"$/ do |address|
21
- @address = Qpid::Messaging::Address.new "#{address}"
22
- end
@@ -1,93 +0,0 @@
1
- #
2
- # Licensed to the Apache Software Foundation (ASF) under one
3
- # or more contributor license agreements. See the NOTICE file
4
- # distributed with this work for additional information
5
- # regarding copyright ownership. The ASF licenses this file
6
- # to you under the Apache License, Version 2.0 (the
7
- # "License"); you may not use this file except in compliance
8
- # with the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing,
13
- # software distributed under the License is distributed on an
14
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- # KIND, either express or implied. See the License for the
16
- # specific language governing permissions and limitations
17
- # under the License.
18
- #
19
-
20
- # close all connections
21
- After do
22
- @connection.close if @connection
23
- end
24
-
25
- Given /^a new connection$/ do
26
- @connection = Qpid::Messaging::Connection.new unless @connection
27
- end
28
-
29
- Given /^an open connection$/ do
30
- steps %Q{
31
- Given a new connection
32
- }
33
- @connection.open
34
- end
35
-
36
- Given /^a closed connection$/ do
37
- steps %Q{
38
- Given a new connection
39
- }
40
- @connection.close if @connection.open?
41
- end
42
-
43
- Then /^the connection is in the (open|closed) state$/ do |state|
44
- @connection.open?.should == false if state == "closed"
45
- @connection.open?.should == true if state == "open"
46
- end
47
-
48
- Given /^the connection is opened$/ do
49
- @connection.open
50
- end
51
-
52
- Given /^the connection is closed$/ do
53
- @connection.close
54
- end
55
-
56
- Then /^creating a session raises an exception$/ do
57
- lambda {
58
- @session = @connection.create_session
59
- }.should raise_error
60
- end
61
-
62
- Then /^creating a session works$/ do
63
- steps %Q{
64
- Given a session exists with the name "nameless"
65
- }
66
- @session.should_not be_nil
67
- end
68
-
69
- Given /^an existing session named "([^"]*)"$/ do |name|
70
- steps %Q{
71
- Given an open connection
72
- And a session exists with the name "#{name}"
73
- }
74
- end
75
-
76
- Given /^a session exists with the name "([^"]*)"$/ do |name|
77
- @session = @connection.create_session :name => "#{name}"
78
- end
79
-
80
- Then /^the session can be retrieved by the name "([^"]*)"$/ do |name|
81
- session = @connection.session "#{name}"
82
- session.should_not be_nil
83
- end
84
-
85
- Then /^calling close does not raise an exception$/ do
86
- lambda {
87
- @connection.close
88
- }.should_not raise_error
89
- end
90
-
91
- Then /^the authenticated username should be "([^"]*)"$/ do |username|
92
- @connection.authenticated_username.should == "#{username}"
93
- end