trinidad_daemon_extension 0.1.0 → 0.1.2
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 +5 -1
- data/README +11 -5
- data/lib/trinidad_daemon_extension.rb +16 -2
- data/rakelib/build.rake +1 -1
- data/spec/trinidad_daemon_extension_spec.rb +35 -3
- data/trinidad-libs/trinidad-daemon-extension.jar +0 -0
- data/trinidad_daemon_extension.gemspec +2 -2
- metadata +3 -3
data/History.txt
CHANGED
data/README
CHANGED
@@ -18,12 +18,12 @@ It uses a temporal directory to write the pid file but its route can be override
|
|
18
18
|
|
19
19
|
* To enable it from the configuration file you have to add a section "extensions" to the root of the file and the section "daemon" to this one. The pid file can be specified there:
|
20
20
|
|
21
|
-
|
21
|
+
---
|
22
22
|
extensions:
|
23
23
|
daemon:
|
24
24
|
pid_file: ./trinidad.pid # this is optional by default the extension writes the pid file into a temporal directory.
|
25
25
|
|
26
|
-
* To enable it from the command line you have to load the extension first and
|
26
|
+
* To enable it from the command line you have to load the extension first and then add one of these options:
|
27
27
|
|
28
28
|
-d, --daemonize [PID_FILE]
|
29
29
|
|
@@ -31,11 +31,17 @@ It uses a temporal directory to write the pid file but its route can be override
|
|
31
31
|
|
32
32
|
$ jruby -S trinidad --load daemon --daemonize ./trinidad.pid
|
33
33
|
|
34
|
-
|
34
|
+
The log file where the daemon writes its logs is also configurable from the trinidad's configuration file.
|
35
|
+
By default it writes the logs into the file log/trinidad.log with the level INFO, to modify this behaviour you just need to add these lines under the daemon configuration:
|
35
36
|
|
36
|
-
|
37
|
+
---
|
38
|
+
extensions:
|
39
|
+
daemon:
|
40
|
+
log:
|
41
|
+
file: trinidad.log # where the daemon writes its output
|
42
|
+
level: ALL # severity level, it cn be one of these: ALL, CONFIG, FINE, FINER, FINEST, INFO, OFF, SEVERE, WARNING
|
37
43
|
|
38
|
-
You can find further information on how to write your
|
44
|
+
You can find further information on how to write your own extension in the wiki: http://wiki.github.com/calavera/trinidad/extensions
|
39
45
|
|
40
46
|
# Copyright
|
41
47
|
|
@@ -9,15 +9,29 @@ require File.expand_path('../../trinidad-libs/trinidad-daemon-extension', __FILE
|
|
9
9
|
module Trinidad
|
10
10
|
module Extensions
|
11
11
|
module Daemon
|
12
|
-
VERSION = '0.1.
|
12
|
+
VERSION = '0.1.2'
|
13
13
|
end
|
14
14
|
|
15
15
|
class DaemonServerExtension < ServerExtension
|
16
16
|
def configure(tomcat)
|
17
|
-
org.jruby.trinidad.TrinidadDaemon.new(tomcat, @options[:pid_file])
|
17
|
+
org.jruby.trinidad.TrinidadDaemon.new(tomcat, @options[:pid_file], logger_options)
|
18
18
|
end
|
19
19
|
|
20
20
|
def override_tomcat?; true; end
|
21
|
+
|
22
|
+
def logger_options
|
23
|
+
log = @options[:log] || {}
|
24
|
+
log[:file] ||= 'log/trinidad.log'
|
25
|
+
|
26
|
+
level = log[:level] || 'INFO'
|
27
|
+
unless %w{ALL CONFIG FINE FINER FINEST INFO OFF SEVERE WARNING}.include?(level)
|
28
|
+
puts "Invalid log level #{level}, using default: INFO"
|
29
|
+
end
|
30
|
+
log[:level] = level
|
31
|
+
log = Hash[log.map{|k, v| [k.to_s, v]}]
|
32
|
+
|
33
|
+
Java::java.util.HashMap.new(log)
|
34
|
+
end
|
21
35
|
end
|
22
36
|
|
23
37
|
class DaemonOptionsExtension < OptionsExtension
|
data/rakelib/build.rake
CHANGED
@@ -25,12 +25,44 @@ describe Trinidad::Extensions::DaemonServerExtension do
|
|
25
25
|
daemon.pid_file.should =~ /trinidad_pid.txt$/
|
26
26
|
end
|
27
27
|
|
28
|
+
it "creates a default log info when it's not present" do
|
29
|
+
log = subject.logger_options
|
30
|
+
log['file'].should == 'log/trinidad.log'
|
31
|
+
log['level'].should == 'INFO'
|
32
|
+
end
|
33
|
+
|
34
|
+
it "uses the log configuration provided when it's present" do
|
35
|
+
extension = Trinidad::Extensions::DaemonServerExtension.new({
|
36
|
+
:log => {
|
37
|
+
:file => 'custom.log',
|
38
|
+
:level => 'ALL'
|
39
|
+
}
|
40
|
+
})
|
41
|
+
|
42
|
+
log = extension.logger_options
|
43
|
+
log['file'].should == 'custom.log'
|
44
|
+
log['level'].should == 'ALL'
|
45
|
+
end
|
46
|
+
|
47
|
+
it "uses the default level when it's not recognized" do
|
48
|
+
extension = Trinidad::Extensions::DaemonServerExtension.new({
|
49
|
+
:log => {
|
50
|
+
:level => 'LEVEL'
|
51
|
+
}
|
52
|
+
})
|
53
|
+
|
54
|
+
log = extension.logger_options
|
55
|
+
log['file'].should == 'log/trinidad.log'
|
56
|
+
log['level'].should == 'LEVEL'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe Trinidad::Extensions::DaemonOptionsExtension do
|
28
61
|
it "allows to specify a command line option to run the daemon" do
|
29
|
-
extension = Trinidad::Extensions::DaemonOptionsExtension.new
|
30
62
|
parser = OptionParser.new
|
31
63
|
options = {}
|
32
|
-
|
33
|
-
|
64
|
+
|
65
|
+
subject.configure(parser, options)
|
34
66
|
parser.parse! '-d /tmp/trinidad.pid'.split
|
35
67
|
|
36
68
|
options[:extensions].keys.should include(:daemon)
|
Binary file
|
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'trinidad_daemon_extension'
|
16
|
-
s.version = '0.1.
|
17
|
-
s.date = '2010-04-
|
16
|
+
s.version = '0.1.2'
|
17
|
+
s.date = '2010-04-19'
|
18
18
|
s.rubyforge_project = 'trinidad_daemon_extension'
|
19
19
|
|
20
20
|
## Make sure your summary is short. The description may be as long
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David Calavera
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-19 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|