trinidad_daemon_extension 0.2.10 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +3 -0
- data/History.txt +7 -0
- data/README.md +49 -0
- data/Rakefile +6 -50
- data/lib/trinidad_daemon_extension/tomcat_wrapper.rb +89 -0
- data/lib/trinidad_daemon_extension/version.rb +7 -0
- data/lib/trinidad_daemon_extension.rb +18 -11
- data/spec/spec_helper.rb +6 -7
- data/spec/trinidad_daemon_extension_spec.rb +82 -1
- data/trinidad-libs/akuma.jar +0 -0
- data/trinidad-libs/jna.jar +0 -0
- data/trinidad_daemon_extension.gemspec +24 -60
- metadata +14 -13
- data/README +0 -49
- data/rakelib/build.rake +0 -38
- data/spec/spec.opts +0 -2
- data/trinidad-libs/trinidad-daemon-extension.jar +0 -0
data/Gemfile
ADDED
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 0.3.0 (2012-03-06)
|
2
|
+
|
3
|
+
* Update akuma.jar to latest release 1.7 - fixes init exec issue
|
4
|
+
* Update jna.jar to 3.4.0 (no longer included as part of akuma.jar)
|
5
|
+
* Replaced the (java) daemonizer implementation org.jruby.trinidad.TrinidadDaemon
|
6
|
+
with a ruby class Trinidad::Extensions::Daemon::TomcatWrapper
|
7
|
+
|
1
8
|
== 0.2.10 (2012-01-09)
|
2
9
|
|
3
10
|
* Add engine method to the proxy
|
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Trinidad Daemon Extension
|
2
|
+
|
3
|
+
Extension to run Trinidad server as a daemon.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
jruby -S gem install trinidad_daemon_extension
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
This extension can be enabled from the Trinidad's configuration file or from the
|
12
|
+
command line. It uses a temporal directory to write the pid file but its path
|
13
|
+
can be overridden.
|
14
|
+
|
15
|
+
### Configuration file
|
16
|
+
|
17
|
+
Configure the daemon in the "extensions" section of the *trinidad.yml* file :
|
18
|
+
|
19
|
+
---
|
20
|
+
extensions:
|
21
|
+
daemon:
|
22
|
+
# optional by default the pid is written into a temporal directory :
|
23
|
+
pid_file: ./trinidad.pid
|
24
|
+
|
25
|
+
The extension also allows tuning JVM arguments to run the daemon with.
|
26
|
+
They just need to be added into the *jvm_args* configuration section:
|
27
|
+
|
28
|
+
---
|
29
|
+
extensions:
|
30
|
+
daemon:
|
31
|
+
jvm_args: '-XX:MaxPermSize=512m'
|
32
|
+
|
33
|
+
**NOTE:** Be aware that *jvm_args* are bare `java` options and not ones
|
34
|
+
accepted by the `jruby` command !
|
35
|
+
|
36
|
+
### Command line
|
37
|
+
|
38
|
+
To enable the extension from the command line you have to load the extension
|
39
|
+
first and then use it's `--daemonize [PID_FILE]` option :
|
40
|
+
|
41
|
+
$ jruby -S trinidad --load daemon --daemonize ./trinidad.pid
|
42
|
+
|
43
|
+
|
44
|
+
You can find further information on how to write your own extension in the wiki:
|
45
|
+
http://wiki.github.com/calavera/trinidad/extensions
|
46
|
+
|
47
|
+
## Copyright
|
48
|
+
|
49
|
+
Copyright (c) 2010-2012 David Calavera. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -13,18 +13,10 @@ def name
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def version
|
16
|
-
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
16
|
+
line = File.read("lib/#{name}/version.rb")[/^\s*VERSION\s*=\s*.*/]
|
17
17
|
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
18
18
|
end
|
19
19
|
|
20
|
-
def date
|
21
|
-
Date.today.to_s
|
22
|
-
end
|
23
|
-
|
24
|
-
def rubyforge_project
|
25
|
-
name
|
26
|
-
end
|
27
|
-
|
28
20
|
def gemspec_file
|
29
21
|
"#{name}.gemspec"
|
30
22
|
end
|
@@ -33,10 +25,6 @@ def gem_file
|
|
33
25
|
"#{name}-#{version}.gem"
|
34
26
|
end
|
35
27
|
|
36
|
-
def replace_header(head, header_name)
|
37
|
-
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
38
|
-
end
|
39
|
-
|
40
28
|
#############################################################################
|
41
29
|
#
|
42
30
|
# Standard tasks
|
@@ -45,14 +33,11 @@ end
|
|
45
33
|
|
46
34
|
task :default => :spec
|
47
35
|
|
48
|
-
require '
|
49
|
-
|
50
|
-
spec.
|
51
|
-
spec.spec_opts = ['--options', 'spec/spec.opts']
|
52
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
36
|
+
require 'rspec/core/rake_task'
|
37
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
38
|
+
spec.rspec_opts = ['--color', "--format documentation"]
|
53
39
|
end
|
54
40
|
|
55
|
-
|
56
41
|
desc "Generate RCov test coverage and open in your browser"
|
57
42
|
task :coverage do
|
58
43
|
require 'rcov'
|
@@ -95,12 +80,11 @@ task :release => :build do
|
|
95
80
|
end
|
96
81
|
sh "git commit --allow-empty -a -m 'Release #{version}'"
|
97
82
|
sh "git tag v#{version}"
|
98
|
-
sh "git push origin master"
|
99
|
-
sh "git push --tags"
|
83
|
+
sh "git push origin master --tags"
|
100
84
|
sh "gem push pkg/#{name}-#{version}.gem"
|
101
85
|
end
|
102
86
|
|
103
|
-
task :build =>
|
87
|
+
task :build => :validate do
|
104
88
|
sh "mkdir -p pkg"
|
105
89
|
sh "gem build #{gemspec_file}"
|
106
90
|
sh "mv #{gem_file} pkg"
|
@@ -109,34 +93,6 @@ end
|
|
109
93
|
task :install => :build do
|
110
94
|
sh "gem install pkg/#{name}-#{version}.gem"
|
111
95
|
end
|
112
|
-
task :gemspec => :validate do
|
113
|
-
# read spec file and split out manifest section
|
114
|
-
spec = File.read(gemspec_file)
|
115
|
-
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
116
|
-
|
117
|
-
# replace name version and date
|
118
|
-
replace_header(head, :name)
|
119
|
-
replace_header(head, :version)
|
120
|
-
replace_header(head, :date)
|
121
|
-
#comment this out if your rubyforge_project has a different name
|
122
|
-
replace_header(head, :rubyforge_project)
|
123
|
-
|
124
|
-
# determine file list from git ls-files
|
125
|
-
files = `git ls-files`.
|
126
|
-
split("\n").
|
127
|
-
sort.
|
128
|
-
reject { |file| file =~ /^\./ }.
|
129
|
-
reject { |file| file =~ /^(rdoc|pkg|src|git-hooks)/ }.
|
130
|
-
reject { |file| file =~ /tomcat-core.jar/ }.
|
131
|
-
map { |file| " #{file}" }.
|
132
|
-
join("\n")
|
133
|
-
|
134
|
-
# piece file back together and write
|
135
|
-
manifest = " s.files = %w[\n#{files}\n ]\n"
|
136
|
-
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
137
|
-
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
138
|
-
puts "Updated #{gemspec_file}"
|
139
|
-
end
|
140
96
|
|
141
97
|
task :validate do
|
142
98
|
libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
|
3
|
+
module Trinidad
|
4
|
+
module Extensions
|
5
|
+
module Daemon
|
6
|
+
class TomcatWrapper
|
7
|
+
|
8
|
+
attr_reader :pid_file, :jvm_args
|
9
|
+
|
10
|
+
def initialize(tomcat, pid_file = nil, jvm_args = nil)
|
11
|
+
@tomcat = tomcat
|
12
|
+
# Dir.tmpdir allows overriding /tmp location from ENV
|
13
|
+
pid_file ||= File.join(Dir.tmpdir, 'trinidad.pid')
|
14
|
+
@pid_file = java.io.File.new(pid_file).getAbsolutePath
|
15
|
+
@jvm_args = jvm_args
|
16
|
+
end
|
17
|
+
|
18
|
+
def server
|
19
|
+
@tomcat.server # getServer()
|
20
|
+
end
|
21
|
+
|
22
|
+
def service
|
23
|
+
@tomcat.service # getService()
|
24
|
+
end
|
25
|
+
|
26
|
+
def engine
|
27
|
+
@tomcat.engine # getEngine()
|
28
|
+
end
|
29
|
+
|
30
|
+
def host
|
31
|
+
@tomcat.host # getHost()
|
32
|
+
end
|
33
|
+
|
34
|
+
def start
|
35
|
+
daemon = com.sun.akuma.Daemon.new
|
36
|
+
if daemon.isDaemonized
|
37
|
+
pid = com.sun.akuma.CLibrary::LIBC.getpid
|
38
|
+
puts "Starting Trinidad as a daemon"
|
39
|
+
puts "To stop it, kill -s SIGINT #{pid}"
|
40
|
+
daemon.init(pid_file)
|
41
|
+
else
|
42
|
+
daemon.daemonize(configure_jvm_args)
|
43
|
+
java.lang.System.exit(0)
|
44
|
+
end
|
45
|
+
@tomcat.start
|
46
|
+
@tomcat.server.await
|
47
|
+
rescue java.lang.Exception => e
|
48
|
+
java.lang.System.err.println("Error daemonizing Trinidad: " + e.getMessage())
|
49
|
+
e.printStackTrace(java.lang.System.err)
|
50
|
+
java.lang.System.exit(1)
|
51
|
+
end
|
52
|
+
|
53
|
+
def stop
|
54
|
+
@tomcat.stop
|
55
|
+
end
|
56
|
+
|
57
|
+
def respond_to?(name)
|
58
|
+
super || @tomcat.respond_to?(name)
|
59
|
+
end
|
60
|
+
|
61
|
+
def method_missing(name, *args, &block)
|
62
|
+
if @tomcat.respond_to?(name)
|
63
|
+
@tomcat.send(name, *args, &block)
|
64
|
+
else
|
65
|
+
super
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def configure_jvm_args
|
72
|
+
args = com.sun.akuma.JavaVMArguments.new
|
73
|
+
com.sun.akuma.JavaVMArguments.current.each do |arg|
|
74
|
+
if arg.to_java.startsWith("-Xbootclasspath")
|
75
|
+
# add here the custom arguments, otherwhise are added after
|
76
|
+
# trinidad script and break optionParser
|
77
|
+
jvm_args.each { |custom| args.add(custom) }
|
78
|
+
end
|
79
|
+
# I don't understand this hack but without it the daemon goes off,
|
80
|
+
# could be others
|
81
|
+
args.add(arg) unless arg.to_java.endsWith("java")
|
82
|
+
end
|
83
|
+
args
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -1,34 +1,41 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
|
3
|
-
require 'trinidad
|
2
|
+
|
3
|
+
require 'trinidad'
|
4
4
|
require 'trinidad/jars'
|
5
|
+
require 'trinidad/extensions'
|
6
|
+
|
7
|
+
require 'java'
|
5
8
|
|
6
9
|
require File.expand_path('../../trinidad-libs/akuma', __FILE__)
|
7
|
-
require File.expand_path('../../trinidad-libs/
|
10
|
+
require File.expand_path('../../trinidad-libs/jna', __FILE__)
|
11
|
+
|
12
|
+
require 'trinidad_daemon_extension/version'
|
13
|
+
require 'trinidad_daemon_extension/tomcat_wrapper'
|
8
14
|
|
9
15
|
module Trinidad
|
10
16
|
module Extensions
|
11
|
-
module Daemon
|
12
|
-
VERSION = '0.2.10'
|
13
|
-
end
|
14
|
-
|
15
17
|
class DaemonServerExtension < ServerExtension
|
16
18
|
def configure(tomcat)
|
17
|
-
|
19
|
+
Trinidad::Extensions::Daemon::TomcatWrapper.new(tomcat, pid_file, jvm_args)
|
18
20
|
end
|
19
21
|
|
20
22
|
def override_tomcat?; true; end
|
21
23
|
|
24
|
+
def pid_file
|
25
|
+
@options[:pid_file]
|
26
|
+
end
|
27
|
+
|
22
28
|
def jvm_args
|
23
|
-
|
29
|
+
@options[:jvm_args] ? @options[:jvm_args].split : []
|
24
30
|
end
|
25
31
|
end
|
26
32
|
|
27
33
|
class DaemonOptionsExtension < OptionsExtension
|
28
34
|
def configure(parser, default_options)
|
29
|
-
|
35
|
+
message = 'run Trinidad as a daemon, PID_FILE defaults to ENV[TMPDIR]/trinidad.pid'
|
36
|
+
parser.on('--daemonize', '--daemonize [PID_FILE]', message) do |pid|
|
30
37
|
extensions = default_options[:extensions] || {}
|
31
|
-
extensions[:daemon] = {:pid_file => pid}
|
38
|
+
extensions[:daemon] = { :pid_file => pid }
|
32
39
|
default_options[:extensions] = extensions
|
33
40
|
end
|
34
41
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
begin
|
2
|
-
require '
|
2
|
+
require 'rspec'
|
3
3
|
rescue LoadError
|
4
4
|
require 'rubygems'
|
5
5
|
gem 'rspec'
|
6
|
-
require '
|
6
|
+
require 'rspec'
|
7
7
|
end
|
8
8
|
|
9
|
-
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
10
|
-
|
11
|
-
require 'java'
|
12
|
-
require 'trinidad_daemon_extension'
|
13
9
|
require 'mocha'
|
14
10
|
|
15
|
-
|
11
|
+
RSpec.configure do |config|
|
16
12
|
config.mock_with :mocha
|
17
13
|
end
|
14
|
+
|
15
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
16
|
+
require 'trinidad_daemon_extension'
|
@@ -11,7 +11,7 @@ describe Trinidad::Extensions::DaemonServerExtension do
|
|
11
11
|
it "bypass the control to the daemon" do
|
12
12
|
daemon = subject.configure(@tomcat)
|
13
13
|
daemon.should_not be_nil
|
14
|
-
daemon.should be_instance_of(
|
14
|
+
daemon.should be_instance_of(Trinidad::Extensions::Daemon::TomcatWrapper)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "uses a temporal directory to write the pid file by default" do
|
@@ -47,3 +47,84 @@ describe Trinidad::Extensions::DaemonOptionsExtension do
|
|
47
47
|
options[:extensions][:daemon][:pid_file].should == '/tmp/trinidad.pid'
|
48
48
|
end
|
49
49
|
end
|
50
|
+
|
51
|
+
class Java::OrgApacheCatalinaStartup::Tomcat
|
52
|
+
|
53
|
+
field_reader :basedir # only setBaseDir
|
54
|
+
field_reader :port, :hostname # only setters
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
describe Trinidad::Extensions::Daemon::TomcatWrapper do
|
59
|
+
|
60
|
+
it "responds to tomcat methods" do
|
61
|
+
tomcat_wrapper.respond_to?(:start).should be true
|
62
|
+
tomcat_wrapper.respond_to?(:stop).should be true
|
63
|
+
|
64
|
+
tomcat_wrapper.respond_to?(:base_dir=).should be true
|
65
|
+
tomcat_wrapper.respond_to?(:setBaseDir).should be true
|
66
|
+
|
67
|
+
tomcat_wrapper.respond_to?(:port=).should be true
|
68
|
+
tomcat_wrapper.respond_to?(:setPort).should be true
|
69
|
+
end
|
70
|
+
|
71
|
+
it "configures a real tomcat" do
|
72
|
+
wrapper = tomcat_wrapper
|
73
|
+
tomcat = wrapper.instance_variable_get(:'@tomcat')
|
74
|
+
|
75
|
+
wrapper.base_dir = '/base_dir'
|
76
|
+
wrapper.hostname = 'local-host1'
|
77
|
+
wrapper.server.address = 'local-host2'
|
78
|
+
wrapper.port = 42
|
79
|
+
wrapper.host.app_base = '/app-base'
|
80
|
+
wrapper.enable_naming
|
81
|
+
|
82
|
+
tomcat.basedir.should == '/base_dir'
|
83
|
+
tomcat.hostname.should == 'local-host1'
|
84
|
+
tomcat.server.address.should == 'local-host2'
|
85
|
+
tomcat.port.should == 42
|
86
|
+
tomcat.host.app_base.should == '/app-base'
|
87
|
+
end
|
88
|
+
|
89
|
+
def tomcat_wrapper
|
90
|
+
Trinidad::Extensions::Daemon::TomcatWrapper.new Trinidad::Tomcat::Tomcat.new
|
91
|
+
end
|
92
|
+
|
93
|
+
context "mocked" do
|
94
|
+
|
95
|
+
@@tmpdir = nil
|
96
|
+
before :all do
|
97
|
+
@@tmpdir = ENV['TMPDIR']
|
98
|
+
ENV['TMPDIR'] = File.dirname(__FILE__)
|
99
|
+
end
|
100
|
+
|
101
|
+
after :all do
|
102
|
+
ENV['TMPDIR'] = @@tmpdir
|
103
|
+
end
|
104
|
+
|
105
|
+
before :each do
|
106
|
+
@tomcat = mock('tomcat')
|
107
|
+
@tomcat_wrapper = Trinidad::Extensions::Daemon::TomcatWrapper.new(@tomcat)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "starts tomcat" do
|
111
|
+
current_pid = $$
|
112
|
+
com.sun.akuma.Daemon.expects(:new).returns daemon = mock("daemon")
|
113
|
+
daemon.expects(:isDaemonized).returns true
|
114
|
+
daemon.expects(:init).with("#{File.dirname(__FILE__)}/trinidad.pid")
|
115
|
+
|
116
|
+
@tomcat.expects(:start)
|
117
|
+
@tomcat.expects(:server).returns server = mock("tomcat.server")
|
118
|
+
server.expects(:await)
|
119
|
+
|
120
|
+
@tomcat_wrapper.start
|
121
|
+
end
|
122
|
+
|
123
|
+
it "stops tomcat" do
|
124
|
+
@tomcat.expects(:stop)
|
125
|
+
@tomcat_wrapper.stop
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
data/trinidad-libs/akuma.jar
CHANGED
Binary file
|
Binary file
|
@@ -1,73 +1,37 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
## You can find comprehensive Gem::Specification documentation, at
|
6
|
-
## http://docs.rubygems.org/read/chapter/20
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require 'trinidad_daemon_extension/version'
|
4
|
+
|
7
5
|
Gem::Specification.new do |s|
|
8
6
|
s.specification_version = 2 if s.respond_to? :specification_version=
|
9
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
10
8
|
s.rubygems_version = '1.3.5'
|
11
|
-
|
12
|
-
## Leave these as is they will be modified for you by the rake gemspec task.
|
13
|
-
## If your rubyforge_project name is different, then edit it and comment out
|
14
|
-
## the sub! line in the Rakefile
|
9
|
+
|
15
10
|
s.name = 'trinidad_daemon_extension'
|
16
|
-
s.version =
|
17
|
-
s.date = '2012-01-09'
|
11
|
+
s.version = Trinidad::Extensions::Daemon::VERSION
|
18
12
|
s.rubyforge_project = 'trinidad_daemon_extension'
|
19
|
-
|
20
|
-
## Make sure your summary is short. The description may be as long
|
21
|
-
## as you like.
|
13
|
+
|
22
14
|
s.summary = "Trinidad daemon extension"
|
23
15
|
s.description = "Trinidad extension to run the Apache Tomcat server as a daemon"
|
24
|
-
|
25
|
-
## List the primary authors. If there are a bunch of authors, it's probably
|
26
|
-
## better to set the email to an email list or something. If you don't have
|
27
|
-
## a custom homepage, consider using your GitHub URL or the like.
|
16
|
+
|
28
17
|
s.authors = ["David Calavera"]
|
29
18
|
s.email = 'calavera@apache.org'
|
30
|
-
s.homepage = 'http://github.com/
|
31
|
-
|
32
|
-
## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
|
33
|
-
## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
|
34
|
-
s.require_paths = %w[lib]
|
35
|
-
|
36
|
-
## Specify any RDoc options here. You'll want to add your README and
|
37
|
-
## LICENSE files to the extra_rdoc_files list.
|
19
|
+
s.homepage = 'http://github.com/trinidad/trinidad_daemon_extension'
|
38
20
|
s.rdoc_options = ["--charset=UTF-8"]
|
39
|
-
s.extra_rdoc_files = %w[README LICENSE]
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
s.add_dependency('trinidad_jars',
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
s.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
# = MANIFEST =
|
54
|
-
s.files = %w[
|
55
|
-
History.txt
|
56
|
-
LICENSE
|
57
|
-
README
|
58
|
-
Rakefile
|
59
|
-
lib/trinidad_daemon_extension.rb
|
60
|
-
rakelib/build.rake
|
61
|
-
spec/spec.opts
|
62
|
-
spec/spec_helper.rb
|
63
|
-
spec/trinidad_daemon_extension_spec.rb
|
64
|
-
trinidad-libs/akuma.jar
|
65
|
-
trinidad-libs/trinidad-daemon-extension.jar
|
66
|
-
trinidad_daemon_extension.gemspec
|
67
|
-
]
|
68
|
-
# = MANIFEST =
|
69
|
-
|
70
|
-
## Test files will be grabbed from the file list. Make sure the path glob
|
71
|
-
## matches what you actually use.
|
21
|
+
s.extra_rdoc_files = %w[README.md LICENSE]
|
22
|
+
|
23
|
+
s.require_paths = %w[lib]
|
24
|
+
|
25
|
+
s.add_dependency('trinidad_jars', ">= 1.0.0")
|
26
|
+
|
27
|
+
s.add_development_dependency('rspec', '~> 2.8')
|
28
|
+
s.add_development_dependency('mocha', '>= 0.10.4')
|
29
|
+
|
30
|
+
s.files = `git ls-files`.split("\n").sort.
|
31
|
+
reject { |file| file =~ /^\./ }.
|
32
|
+
reject { |file| file =~ /^(rdoc|pkg|src|git-hooks)/ }.
|
33
|
+
reject { |file| file =~ /tomcat-core.jar/ } # only for compiling !
|
34
|
+
|
72
35
|
s.test_files = s.files.select { |path| path =~ /^spec\/.*_spec\.rb/ }
|
36
|
+
|
73
37
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: trinidad_daemon_extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Calavera
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-03-06 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: trinidad_jars
|
@@ -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
|
type: :runtime
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
@@ -29,9 +29,9 @@ dependencies:
|
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: "
|
34
|
+
version: "2.8"
|
35
35
|
type: :development
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 0.10.4
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
48
|
description: Trinidad extension to run the Apache Tomcat server as a daemon
|
@@ -52,22 +52,23 @@ executables: []
|
|
52
52
|
extensions: []
|
53
53
|
|
54
54
|
extra_rdoc_files:
|
55
|
-
- README
|
55
|
+
- README.md
|
56
56
|
- LICENSE
|
57
57
|
files:
|
58
|
+
- Gemfile
|
58
59
|
- History.txt
|
59
60
|
- LICENSE
|
60
|
-
- README
|
61
|
+
- README.md
|
61
62
|
- Rakefile
|
62
63
|
- lib/trinidad_daemon_extension.rb
|
63
|
-
-
|
64
|
-
-
|
64
|
+
- lib/trinidad_daemon_extension/tomcat_wrapper.rb
|
65
|
+
- lib/trinidad_daemon_extension/version.rb
|
65
66
|
- spec/spec_helper.rb
|
66
67
|
- spec/trinidad_daemon_extension_spec.rb
|
67
68
|
- trinidad-libs/akuma.jar
|
68
|
-
- trinidad-libs/
|
69
|
+
- trinidad-libs/jna.jar
|
69
70
|
- trinidad_daemon_extension.gemspec
|
70
|
-
homepage: http://github.com/
|
71
|
+
homepage: http://github.com/trinidad/trinidad_daemon_extension
|
71
72
|
licenses: []
|
72
73
|
|
73
74
|
post_install_message:
|
@@ -90,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
91
|
requirements: []
|
91
92
|
|
92
93
|
rubyforge_project: trinidad_daemon_extension
|
93
|
-
rubygems_version: 1.8.
|
94
|
+
rubygems_version: 1.8.15
|
94
95
|
signing_key:
|
95
96
|
specification_version: 2
|
96
97
|
summary: Trinidad daemon extension
|
data/README
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
Trinidad Daemon Extension
|
2
|
-
=======
|
3
|
-
|
4
|
-
# DESCRIPTION
|
5
|
-
|
6
|
-
Extension to run Trinidad server as a daemon.
|
7
|
-
|
8
|
-
[WARNING] This extension only works with Trinidad 0.8.3 or above.
|
9
|
-
|
10
|
-
# INSTALLATION
|
11
|
-
|
12
|
-
jruby -S gem install trinidad_daemon_extension
|
13
|
-
|
14
|
-
# USAGE
|
15
|
-
|
16
|
-
This extension can be enabled from the Trinidad's configuration file or from the command line.
|
17
|
-
It uses a temporal directory to write the pid file but its route can be overrided.
|
18
|
-
|
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
|
-
|
21
|
-
---
|
22
|
-
extensions:
|
23
|
-
daemon:
|
24
|
-
pid_file: ./trinidad.pid # this is optional by default the extension writes the pid file into a temporal directory.
|
25
|
-
|
26
|
-
* To enable it from the command line you have to load the extension first and then add one of these options:
|
27
|
-
|
28
|
-
--daemonize [PID_FILE]
|
29
|
-
|
30
|
-
for instance:
|
31
|
-
|
32
|
-
$ jruby -S trinidad --load daemon --daemonize ./trinidad.pid
|
33
|
-
|
34
|
-
The extension also allows to add new JVM arguments to run the daemon with. They just need to be added into the configuration file:
|
35
|
-
|
36
|
-
---
|
37
|
-
extensions:
|
38
|
-
daemon:
|
39
|
-
jvm_args: '-XX:MaxPermSize=512m'
|
40
|
-
|
41
|
-
You can find further information on how to write your own extension in the wiki: http://wiki.github.com/calavera/trinidad/extensions
|
42
|
-
|
43
|
-
# DEVELOPMENT
|
44
|
-
|
45
|
-
Copy the hooks into git-hooks directory to .git/hooks to make sure the jar file is updated when the java code is modified.
|
46
|
-
|
47
|
-
# Copyright
|
48
|
-
|
49
|
-
Copyright (c) 2010-2012 David Calavera. See LICENSE for details.
|
data/rakelib/build.rake
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'ant'
|
2
|
-
require 'fileutils'
|
3
|
-
include FileUtils
|
4
|
-
|
5
|
-
TARGET_DIR = 'target'
|
6
|
-
LIBS_DIR = 'trinidad-libs'
|
7
|
-
JAR_NAME = 'trinidad-daemon-extension.jar'
|
8
|
-
|
9
|
-
namespace :ant do
|
10
|
-
desc 'Clean the java target directory'
|
11
|
-
task :clean do
|
12
|
-
rm_f TARGET_DIR
|
13
|
-
rm_f "#{LIBS_DIR}/#{JAR_NAME}"
|
14
|
-
end
|
15
|
-
|
16
|
-
desc 'Compile the java classes'
|
17
|
-
task :compile => :clean do
|
18
|
-
opts = {
|
19
|
-
:fork => 'true',
|
20
|
-
:failonerror => 'true',
|
21
|
-
:srcdir => 'src/main/java',
|
22
|
-
:destdir => TARGET_DIR,
|
23
|
-
:classpath => Dir.glob('trinidad-libs/*.jar').join(':')
|
24
|
-
}
|
25
|
-
|
26
|
-
mkdir_p TARGET_DIR
|
27
|
-
ant.javac(opts)
|
28
|
-
end
|
29
|
-
|
30
|
-
desc 'Create the jar file'
|
31
|
-
task :build => :compile do
|
32
|
-
opts = {
|
33
|
-
:destfile => "#{LIBS_DIR}/#{JAR_NAME}",
|
34
|
-
:basedir => TARGET_DIR
|
35
|
-
}
|
36
|
-
ant.jar(opts)
|
37
|
-
end
|
38
|
-
end
|
data/spec/spec.opts
DELETED
Binary file
|