fmq 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +11 -6
- data/PostInstall.txt +1 -3
- data/README.txt +1 -1
- data/config/hoe.rb +3 -3
- data/default-server/config.ru +1 -1
- data/lib/fmq/admin.rb +22 -16
- data/lib/fmq/queue_manager.rb +3 -1
- data/lib/fmq/server.rb +4 -1
- data/lib/fmq/version.rb +1 -1
- data/test/{test_helper.rb → helper.rb} +0 -0
- data/test/test_basic.rb +1 -1
- data/test/test_file_persistent.rb +1 -1
- data/test/test_fmq_client.rb +1 -1
- data/test/test_linked.rb +1 -1
- data/test/test_queue_manager.rb +2 -2
- metadata +10 -12
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.3.5 2009-07-25
|
2
|
+
|
3
|
+
* 1 minor change:
|
4
|
+
* ruby 1.9 and rack 1.0.0 compatibility (thanks to John W Higgins <wishdev@gmail.com>)
|
5
|
+
|
1
6
|
== 0.3.4 2008-09-06
|
2
7
|
|
3
8
|
* 2 minor change:
|
@@ -15,7 +20,7 @@
|
|
15
20
|
|
16
21
|
* 3 minor changes:
|
17
22
|
* changed the way of the queue manager setup
|
18
|
-
* updated rdoc, readme and website
|
23
|
+
* updated rdoc, readme and website documentation
|
19
24
|
* added a new queue that persists the messages in the file system
|
20
25
|
* 3 tiny changes:
|
21
26
|
* fixed the fmq logger creation
|
@@ -26,9 +31,9 @@
|
|
26
31
|
|
27
32
|
* 2 minor changes:
|
28
33
|
* refactored the queue manager and remove legacy code (moved constraints stuff to the base queue)
|
29
|
-
* refactored the setup_queue method in the configuration file (sorry you have to change your
|
34
|
+
* refactored the setup_queue method in the configuration file (sorry you have to change your config)
|
30
35
|
* 3 tiny changes:
|
31
|
-
* default-server can now be used from within the development repository (no rund trip
|
36
|
+
* default-server can now be used from within the development repository (no rund trip necessary)
|
32
37
|
* added and replaced some tests for the new interface of the queue manager and the base queue
|
33
38
|
* one can now yield and return messages
|
34
39
|
|
@@ -38,11 +43,11 @@
|
|
38
43
|
* replaced the mongrel handler by rack so that it can be used by many servers and in different configurations
|
39
44
|
* removed the old yml style config and replaced it by a new rubyish config style (see config.ru)
|
40
45
|
* 5 tiny changes:
|
41
|
-
*
|
46
|
+
* separated the admin interface handler
|
42
47
|
* removed the configuration stuff that belonged to the old yml file from queue_manager and boot classes
|
43
48
|
* removed that the command fmq can be used to start the server (rackup can be used by now)
|
44
|
-
* admin interface is now
|
45
|
-
* admin interface is validated by W3C
|
49
|
+
* admin interface is now separated to several files (javascript, css, ...)
|
50
|
+
* admin interface is validated by W3C validator for xhtml strict and css 2.1 compliance
|
46
51
|
|
47
52
|
== 0.2.0 2008-06-28
|
48
53
|
|
data/PostInstall.txt
CHANGED
@@ -1,3 +1 @@
|
|
1
|
-
|
2
|
-
For more information on Free Message Queue (FMQ), see http://fmq.rubyforge.org
|
3
|
-
================================================================================
|
1
|
+
For more information on Free Message Queue (FMQ), see http://fmq.rubyforge.org
|
data/README.txt
CHANGED
data/config/hoe.rb
CHANGED
@@ -8,7 +8,7 @@ RUBYFORGE_PROJECT = 'fmq' # The unix name for your project
|
|
8
8
|
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
9
9
|
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
10
10
|
EXTRA_DEPENDENCIES = [
|
11
|
-
['rack', '>= 0.
|
11
|
+
['rack', '>= 1.0.0']
|
12
12
|
] # An array of rubygem dependencies [name, version]
|
13
13
|
|
14
14
|
@config_file = "~/.rubyforge/user-config.yml"
|
@@ -63,8 +63,8 @@ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
63
63
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
64
64
|
p.extra_deps = EXTRA_DEPENDENCIES
|
65
65
|
|
66
|
-
|
67
|
-
|
66
|
+
#p.spec_extras = {} # A hash of extra values to set in the gemspec.
|
67
|
+
end
|
68
68
|
|
69
69
|
CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
|
70
70
|
PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
|
data/default-server/config.ru
CHANGED
data/lib/fmq/admin.rb
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
# Copyright (c) 2008 Vincent Landgraf
|
3
3
|
#
|
4
4
|
# This file is part of the Free Message Queue.
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# Free Message Queue is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
8
|
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# Free Message Queue is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
|
-
#
|
15
|
+
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
17
|
# along with Free Message Queue. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
#
|
@@ -21,22 +21,22 @@ module FreeMessageQueue
|
|
21
21
|
class AdminInterface
|
22
22
|
# rack response for bad requests
|
23
23
|
WRONG_METHOD = [400, {"CONTENT-TYPE" => "text/plain", "ERROR" => "Wrong http Method"}, ""]
|
24
|
-
|
24
|
+
|
25
25
|
# rack response for good requests
|
26
26
|
OK = [200, {"CONTENT-TYPE" => "text/plain"}, ["ok"]]
|
27
|
-
|
27
|
+
|
28
28
|
# create the admin interface for the passed QueueManager
|
29
29
|
def initialize(queue_manager)
|
30
30
|
@manager = queue_manager
|
31
31
|
@log = FreeMessageQueue.logger
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
# handle all requests
|
35
35
|
def call(env)
|
36
36
|
begin
|
37
37
|
request = Rack::Request.new(env)
|
38
38
|
@log.debug "[AdminInterface] ENV: #{env.inspect}"
|
39
|
-
|
39
|
+
|
40
40
|
if request.get? then
|
41
41
|
@log.info "[AdminInterface] list queues"
|
42
42
|
# ======= LIST QUEUES
|
@@ -44,7 +44,7 @@ module FreeMessageQueue
|
|
44
44
|
@manager.queues.each do |queue_name|
|
45
45
|
queues_code << queue_to_json(queue_name)
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
return [200, {"CONTENT-TYPE" => "application/json"}, ["[%s]" % queues_code.join(","), ]]
|
49
49
|
elsif request.post? then
|
50
50
|
if request["_method"] == "delete" then
|
@@ -55,9 +55,12 @@ module FreeMessageQueue
|
|
55
55
|
elsif request["_method"] == "create"
|
56
56
|
# ======= CREATE QUEUE
|
57
57
|
@log.info "[AdminInterface] create queue"
|
58
|
-
@manager.setup_queue
|
58
|
+
@manager.setup_queue(request["path"], request["queue_class"]) do |q|
|
59
59
|
q.max_messages = request["max_messages"].to_i
|
60
60
|
q.max_size = str_bytes request["max_size"]
|
61
|
+
request.params.each { |k,v|
|
62
|
+
q.send("#{k[3..-1]}=", v) if k.match(/^qm_/)
|
63
|
+
}
|
61
64
|
end
|
62
65
|
return OK
|
63
66
|
else
|
@@ -70,13 +73,13 @@ module FreeMessageQueue
|
|
70
73
|
return [400, {"CONTENT-TYPE" => "text/plain", "ERROR" => ex.message}, [ex.message]]
|
71
74
|
end
|
72
75
|
end
|
73
|
-
|
76
|
+
|
74
77
|
private
|
75
|
-
|
78
|
+
|
76
79
|
# converts the data of one queue to json format
|
77
80
|
def queue_to_json(queue_name)
|
78
81
|
queue = @manager.queue(queue_name)
|
79
|
-
|
82
|
+
|
80
83
|
"[\"%s\", %d, %d, %d, %d]" % [
|
81
84
|
queue_name,
|
82
85
|
queue.bytes,
|
@@ -85,14 +88,17 @@ module FreeMessageQueue
|
|
85
88
|
queue.max_messages,
|
86
89
|
]
|
87
90
|
end
|
88
|
-
|
91
|
+
|
89
92
|
# Retuns count of bytes to a expression with kb, mb or gb
|
90
93
|
# e.g 10kb will return 10240
|
91
94
|
def str_bytes(str)
|
92
95
|
case str
|
93
|
-
when /([0-9]+)kb/i
|
94
|
-
|
95
|
-
when /([0-9]+)
|
96
|
+
when /([0-9]+)kb/i
|
97
|
+
$1.to_i.kb
|
98
|
+
when /([0-9]+)mb/i
|
99
|
+
$1.to_i.mb
|
100
|
+
when /([0-9]+)gb/i
|
101
|
+
$1.to_i.gb
|
96
102
|
else
|
97
103
|
BaseQueue::INFINITE
|
98
104
|
end
|
data/lib/fmq/queue_manager.rb
CHANGED
@@ -78,8 +78,10 @@ module FreeMessageQueue
|
|
78
78
|
|
79
79
|
# create a queue using a block. The block can be used to set configuration
|
80
80
|
# options for the queue
|
81
|
-
def setup_queue(path, queue_class =
|
81
|
+
def setup_queue(path, queue_class = nil, &block)
|
82
82
|
check_queue_name(path)
|
83
|
+
queue_class ||= DEFAULT_QUEUE_CLASS
|
84
|
+
queue_class = FreeMessageQueue::const_get(queue_class) if queue_class.class == String
|
83
85
|
queue_object = queue_class.new(self)
|
84
86
|
block.call(queue_object) if block_given?
|
85
87
|
@queues[path] = queue_object
|
data/lib/fmq/server.rb
CHANGED
@@ -17,6 +17,9 @@
|
|
17
17
|
# You should have received a copy of the GNU General Public License
|
18
18
|
# along with Free Message Queue. If not, see <http://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
|
+
|
21
|
+
require 'yaml'
|
22
|
+
|
20
23
|
module FreeMessageQueue
|
21
24
|
# This implements server that plugs the free message queue into a rack enviroment
|
22
25
|
class Server
|
@@ -29,7 +32,7 @@ module FreeMessageQueue
|
|
29
32
|
# Process incoming request and send them to the right sub processing method like <em>process_get</em>
|
30
33
|
def call(env)
|
31
34
|
request = Rack::Request.new(env)
|
32
|
-
queue_path = request.env["
|
35
|
+
queue_path = request.env["PATH_INFO"]
|
33
36
|
@log.debug("[Server] Request params: #{YAML.dump(request.params)})")
|
34
37
|
|
35
38
|
response = nil
|
data/lib/fmq/version.rb
CHANGED
File without changes
|
data/test/test_basic.rb
CHANGED
data/test/test_fmq_client.rb
CHANGED
data/test/test_linked.rb
CHANGED
data/test/test_queue_manager.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/
|
1
|
+
require File.dirname(__FILE__) + '/helper.rb'
|
2
2
|
|
3
3
|
# This is the tests the queue manager interface
|
4
4
|
class TestQueueManager < Test::Unit::TestCase
|
@@ -6,7 +6,7 @@ class TestQueueManager < Test::Unit::TestCase
|
|
6
6
|
|
7
7
|
def setup
|
8
8
|
@queue_manager = FreeMessageQueue::QueueManager.new(false) do
|
9
|
-
setup_queue DEFAULT_QUEUE_NAME do |q|
|
9
|
+
setup_queue TestQueueManager::DEFAULT_QUEUE_NAME do |q|
|
10
10
|
q.max_messages = 100
|
11
11
|
q.max_size = 100.mb
|
12
12
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Landgraf
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-07-25 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.
|
23
|
+
version: 1.0.0
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hoe
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.3.2
|
34
34
|
version:
|
35
35
|
description: The project implements a queue system with a server and some client apis. This project wants to be a fast and lightweight implementation with most of the features of MQS or ActiveMQ.
|
36
36
|
email:
|
@@ -76,18 +76,17 @@ files:
|
|
76
76
|
- lib/fmq/queues/file_persistent.rb
|
77
77
|
- lib/fmq/queues/round_robin.rb
|
78
78
|
- lib/fmq/version.rb
|
79
|
+
- test/helper.rb
|
79
80
|
- test/test_basic.rb
|
80
81
|
- test/test_fmq_client.rb
|
81
|
-
- test/test_helper.rb
|
82
82
|
- test/test_linked.rb
|
83
83
|
- test/test_queue_manager.rb
|
84
84
|
- test/test_file_persistent.rb
|
85
85
|
has_rdoc: true
|
86
86
|
homepage: http://fmq.rubyforge.org
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
================================================================================
|
87
|
+
licenses: []
|
88
|
+
|
89
|
+
post_install_message: For more information on Free Message Queue (FMQ), see http://fmq.rubyforge.org
|
91
90
|
rdoc_options:
|
92
91
|
- --main
|
93
92
|
- README.txt
|
@@ -108,14 +107,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
107
|
requirements: []
|
109
108
|
|
110
109
|
rubyforge_project: fmq
|
111
|
-
rubygems_version: 1.
|
110
|
+
rubygems_version: 1.3.5
|
112
111
|
signing_key:
|
113
|
-
specification_version:
|
112
|
+
specification_version: 3
|
114
113
|
summary: The project implements a queue system with a server and some client apis. This project wants to be a fast and lightweight implementation with most of the features of MQS or ActiveMQ.
|
115
114
|
test_files:
|
116
115
|
- test/test_basic.rb
|
117
116
|
- test/test_file_persistent.rb
|
118
117
|
- test/test_fmq_client.rb
|
119
|
-
- test/test_helper.rb
|
120
118
|
- test/test_linked.rb
|
121
119
|
- test/test_queue_manager.rb
|