trinidad 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/README.rdoc +9 -1
- data/VERSION +1 -1
- data/lib/trinidad.rb +2 -1
- data/lib/trinidad/command_line_parser.rb +13 -12
- data/lib/trinidad/core_ext.rb +13 -0
- data/lib/trinidad/extensions.rb +47 -0
- data/lib/trinidad/server.rb +30 -8
- data/lib/trinidad/web_app.rb +28 -17
- data/spec/fixtures/foo.rb +15 -0
- data/spec/fixtures/trinidad_foo_extension.rb +1 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/trinidad/extensions_spec.rb +19 -0
- data/spec/trinidad/server_spec.rb +15 -0
- metadata +93 -77
- data/Rakefile +0 -83
- data/lib/trinidad/jars.rb +0 -29
- data/trinidad-libs/core-3.1.1.jar +0 -0
- data/trinidad-libs/jasper-el.jar +0 -0
- data/trinidad-libs/jasper-jdt.jar +0 -0
- data/trinidad-libs/jasper.jar +0 -0
- data/trinidad-libs/jetty-util-6.1.14.jar +0 -0
- data/trinidad-libs/jruby-rack-0.9.5.jar +0 -0
- data/trinidad-libs/jsp-2.1.jar +0 -0
- data/trinidad-libs/jsp-api-2.1.jar +0 -0
- data/trinidad-libs/servlet-api-2.5-6.1.14.jar +0 -0
- data/trinidad-libs/tomcat-core.jar +0 -0
- data/trinidad-libs/tomcat-dbcp.jar +0 -0
- data/trinidad-libs/tomcat-jasper.jar +0 -0
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -35,6 +35,14 @@ You can also specify a default web.xml to config your web application. By defaul
|
|
35
35
|
|
36
36
|
Other advanced options can be found in the wiki: http://wiki.github.com/calavera/trinidad/advanced-configuration
|
37
37
|
|
38
|
+
== EXTENSIONS:
|
39
|
+
|
40
|
+
From the version 0.8.0 Trinidad allows to extend the server with more Tomcat features, here there is a list with the current available extensions:
|
41
|
+
|
42
|
+
* Database connection pooling: http://github.com/calavera/trinidad-dbpool
|
43
|
+
|
44
|
+
You can find further information on how to write your onw extension in the wiki: http://wiki.github.com/calavera/trinidad/extensions
|
45
|
+
|
38
46
|
== Copyright
|
39
47
|
|
40
|
-
Copyright (c)
|
48
|
+
Copyright (c) 2010 David Calavera<calavera@apache.org>. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
data/lib/trinidad.rb
CHANGED
@@ -3,9 +3,11 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
3
3
|
|
4
4
|
require "java"
|
5
5
|
require 'rubygems'
|
6
|
+
gem 'trinidad_jars'
|
6
7
|
|
7
8
|
require 'trinidad/core_ext'
|
8
9
|
|
10
|
+
require 'trinidad/extensions'
|
9
11
|
require 'trinidad/command_line_parser'
|
10
12
|
require 'trinidad/jars'
|
11
13
|
require 'trinidad/server'
|
@@ -14,5 +16,4 @@ require 'trinidad/rails_web_app'
|
|
14
16
|
require 'trinidad/rackup_web_app'
|
15
17
|
|
16
18
|
module Trinidad
|
17
|
-
TRINIDAD_LIBS = File.dirname(__FILE__) + "/../trinidad-libs" unless defined?(TRINIDAD_LIBS)
|
18
19
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
module Trinidad
|
2
2
|
require 'optparse'
|
3
|
-
|
3
|
+
|
4
4
|
class CommandLineParser
|
5
|
+
|
5
6
|
def self.parse
|
6
7
|
default_options = {
|
7
8
|
:port => 3000,
|
@@ -13,7 +14,7 @@ module Trinidad
|
|
13
14
|
:ssl_port => 8443,
|
14
15
|
:ajp_port => 8009
|
15
16
|
}
|
16
|
-
|
17
|
+
|
17
18
|
parser = OptionParser.new do |opts|
|
18
19
|
opts.banner = 'Trinidad server default options:'
|
19
20
|
opts.separator ''
|
@@ -22,22 +23,22 @@ module Trinidad
|
|
22
23
|
"default: #{default_options[:environment]}") do |v|
|
23
24
|
default_options[:environment] = v
|
24
25
|
end
|
25
|
-
|
26
|
+
|
26
27
|
opts.on('-p', '--port PORT', 'Port to bind to',
|
27
28
|
"default: #{default_options[:port]}") do |v|
|
28
29
|
default_options[:port] = v
|
29
30
|
end
|
30
|
-
|
31
|
+
|
31
32
|
opts.on('-c', '--context CONTEXT_PATH', 'The application context path',
|
32
33
|
"default: #{default_options[:context_path]}") do |v|
|
33
34
|
default_options[:context_path] = v
|
34
35
|
end
|
35
|
-
|
36
|
+
|
36
37
|
opts.on('--lib', '--jars LIBS_DIR', 'Directory containing jars used by the application',
|
37
38
|
"default: #{default_options[:libs_dir]}") do |v|
|
38
39
|
default_options[:libs_dir] = v
|
39
40
|
end
|
40
|
-
|
41
|
+
|
41
42
|
opts.on('--classes', '--classes CLASSES_DIR', 'Directory containing classes used by the application',
|
42
43
|
"default: #{default_options[:classes_dir]}") do |v|
|
43
44
|
default_options[:classes_dir] = v
|
@@ -48,7 +49,7 @@ module Trinidad
|
|
48
49
|
ssl_port = v.nil? ? default_options.delete(:ssl_port) : v.to_i
|
49
50
|
default_options[:ssl] = {:port => ssl_port}
|
50
51
|
end
|
51
|
-
|
52
|
+
|
52
53
|
opts.on('-a', '--ajp [AJP_PORT]', 'Enable ajp connections',
|
53
54
|
"default port: #{default_options[:ajp_port]}") do |v|
|
54
55
|
ajp_port = v.nil? ? default_options.delete(:ajp_port) : v.to_i
|
@@ -69,21 +70,21 @@ module Trinidad
|
|
69
70
|
opts.on('--public', '--public DIRECTORY', 'Public directory', 'default: public') do |v|
|
70
71
|
default_options[:public] = v
|
71
72
|
end
|
72
|
-
|
73
|
+
|
73
74
|
opts.on('-v', '--version', 'display the current version') do
|
74
75
|
puts File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).chomp
|
75
76
|
exit
|
76
77
|
end
|
77
|
-
|
78
|
+
|
78
79
|
opts.on('-h', '--help', 'display the help') do
|
79
80
|
puts opts
|
80
81
|
exit
|
81
82
|
end
|
82
|
-
|
83
|
+
|
83
84
|
opts.parse!(ARGV)
|
84
85
|
end
|
85
|
-
|
86
|
-
|
86
|
+
|
87
|
+
default_options
|
87
88
|
end
|
88
89
|
end
|
89
90
|
end
|
data/lib/trinidad/core_ext.rb
CHANGED
@@ -30,4 +30,17 @@ Hash.class_eval do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
def symbolize!
|
34
|
+
keys.each do |key|
|
35
|
+
self[key].symbolize! if self[key].is_a?(Hash)
|
36
|
+
self[key.to_sym] = self.delete(key)
|
37
|
+
end
|
38
|
+
self
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class String
|
43
|
+
def camelize
|
44
|
+
self.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
|
45
|
+
end
|
33
46
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Trinidad
|
2
|
+
module Extensions
|
3
|
+
def self.configure_webapp_extensions(extensions, tomcat, app_context)
|
4
|
+
if extensions
|
5
|
+
extensions.each do |name, options|
|
6
|
+
extension(name, 'WebAppExtension').new(options).configure(tomcat, app_context)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.configure_server_extensions(extensions, tomcat)
|
12
|
+
if extensions
|
13
|
+
extensions.each do |name, options|
|
14
|
+
extension(name, 'ServerExtension').new(options).configure(tomcat)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.extension(name, type)
|
20
|
+
class_name = (name.to_s.camelize << type).to_sym
|
21
|
+
load_extension(name) unless const_defined?(class_name)
|
22
|
+
const_get(class_name)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.load_extension(name)
|
26
|
+
require "trinidad_#{name}_extension"
|
27
|
+
end
|
28
|
+
|
29
|
+
class Extension
|
30
|
+
def initialize(options)
|
31
|
+
@options = options.dup
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class WebAppExtension < Extension
|
36
|
+
def configure(tomcat, app_context)
|
37
|
+
raise NotImplementedError, "#{self.class}#configure not implemented"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class ServerExtension < Extension
|
42
|
+
def configure(tomcat)
|
43
|
+
raise NotImplementedError, "#{self.class}#configure not implemented"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/trinidad/server.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module Trinidad
|
2
|
-
|
2
|
+
JSystem = java.lang.System
|
3
|
+
JContext = javax.naming.Context
|
3
4
|
|
4
|
-
|
5
|
+
class Server
|
6
|
+
attr_reader :tomcat, :config
|
5
7
|
|
6
8
|
def default_options
|
7
9
|
{
|
@@ -23,7 +25,7 @@ module Trinidad
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def load_config(config)
|
26
|
-
@config = default_options.deep_merge(config)
|
28
|
+
@config = default_options.deep_merge(config).symbolize!
|
27
29
|
add_default_web_app!(@config)
|
28
30
|
end
|
29
31
|
|
@@ -31,9 +33,12 @@ module Trinidad
|
|
31
33
|
@tomcat = Trinidad::Tomcat::Tomcat.new
|
32
34
|
@tomcat.setPort(@config[:port].to_i)
|
33
35
|
@tomcat.setBaseDir(Dir.pwd)
|
36
|
+
enable_naming
|
34
37
|
|
35
38
|
add_ssl_connector if ssl_enabled?
|
36
39
|
add_ajp_connector if ajp_enabled?
|
40
|
+
|
41
|
+
Trinidad::Extensions.configure_server_extensions(@config[:extensions], @tomcat)
|
37
42
|
end
|
38
43
|
|
39
44
|
def create_web_apps
|
@@ -47,6 +52,7 @@ module Trinidad
|
|
47
52
|
|
48
53
|
web_app.load_default_web_xml
|
49
54
|
web_app.add_rack_filter
|
55
|
+
web_app.configure_extensions(@tomcat)
|
50
56
|
web_app.add_context_loader
|
51
57
|
web_app.add_init_params
|
52
58
|
web_app.add_web_dir_resources
|
@@ -64,7 +70,7 @@ module Trinidad
|
|
64
70
|
connector.secure = opts.delete(:secure) || false
|
65
71
|
connector.port = opts.delete(:port).to_i
|
66
72
|
|
67
|
-
|
73
|
+
opts.each do |key, value|
|
68
74
|
connector.setProperty(key.to_s, value.to_s)
|
69
75
|
end
|
70
76
|
|
@@ -97,7 +103,7 @@ module Trinidad
|
|
97
103
|
end
|
98
104
|
|
99
105
|
def create_default_keystore(config)
|
100
|
-
keystore_file = java.io.File.new(config[:
|
106
|
+
keystore_file = java.io.File.new(config[:keystore])
|
101
107
|
|
102
108
|
if (!keystore_file.parent_file.exists() &&
|
103
109
|
!keystore_file.parent_file.mkdir())
|
@@ -110,9 +116,9 @@ module Trinidad
|
|
110
116
|
"-keyalg", "RSA",
|
111
117
|
"-validity", "365",
|
112
118
|
"-storepass", "key",
|
113
|
-
"-keystore", config[:
|
114
|
-
"-storepass", config[:
|
115
|
-
"-keypass", config[:
|
119
|
+
"-keystore", config[:keystore],
|
120
|
+
"-storepass", config[:keystorePass],
|
121
|
+
"-keypass", config[:keystorePass]]
|
116
122
|
|
117
123
|
Trinidad::Tomcat::KeyTool.main(keytool_args.to_java(:string))
|
118
124
|
end
|
@@ -136,5 +142,21 @@ module Trinidad
|
|
136
142
|
end
|
137
143
|
end
|
138
144
|
|
145
|
+
def enable_naming
|
146
|
+
@tomcat.getServer().addLifecycleListener(Trinidad::Tomcat::NamingContextListener.new)
|
147
|
+
|
148
|
+
JSystem.setProperty("catalina.useNaming", "true")
|
149
|
+
|
150
|
+
value = "org.apache.naming"
|
151
|
+
old_value = JSystem.getProperty(JContext.URL_PKG_PREFIXES) || value
|
152
|
+
|
153
|
+
value = value + ":" + old_value unless old_value.include?(value)
|
154
|
+
JSystem.setProperty(JContext.URL_PKG_PREFIXES, value)
|
155
|
+
|
156
|
+
value = JSystem.getProperty(JContext.INITIAL_CONTEXT_FACTORY)
|
157
|
+
unless value
|
158
|
+
JSystem.setProperty(JContext.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory")
|
159
|
+
end
|
160
|
+
end
|
139
161
|
end
|
140
162
|
end
|
data/lib/trinidad/web_app.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
module Trinidad
|
2
2
|
class WebApp
|
3
3
|
attr_reader :context, :config
|
4
|
-
|
4
|
+
|
5
5
|
def self.create(context, config, app)
|
6
6
|
app.has_key?(:rackup) ? RackupWebApp.new(context, config, app) : RailsWebApp.new(context, config, app)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(context, config, app)
|
10
10
|
@context = context
|
11
11
|
@config = config
|
12
12
|
@app = app
|
13
|
+
|
14
|
+
@class_loader = org.jruby.util.JRubyClassLoader.new(JRuby.runtime.jruby_class_loader)
|
13
15
|
end
|
14
|
-
|
16
|
+
|
15
17
|
def add_rack_filter
|
16
18
|
unless rack_filter_configured?
|
17
19
|
filter_def = Trinidad::Tomcat::FilterDef.new
|
@@ -26,47 +28,46 @@ module Trinidad
|
|
26
28
|
@context.addFilterMap(filter_map)
|
27
29
|
end
|
28
30
|
end
|
29
|
-
|
31
|
+
|
30
32
|
def add_context_loader
|
31
|
-
class_loader
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
loader = Trinidad::Tomcat::WebappLoader.new(class_loader)
|
33
|
+
add_application_libs(@class_loader)
|
34
|
+
add_application_classes(@class_loader)
|
35
|
+
|
36
|
+
loader = Trinidad::Tomcat::WebappLoader.new(@class_loader)
|
36
37
|
|
37
38
|
loader.container = @context
|
38
39
|
@context.loader = loader
|
39
40
|
end
|
40
|
-
|
41
|
+
|
41
42
|
def add_init_params
|
42
43
|
[:jruby_min_runtimes, :jruby_max_runtimes].each do |param|
|
43
44
|
param_name = param.to_s.gsub(/_/, '.')
|
44
45
|
add_parameter_unless_exist(param_name, @config[param].to_s)
|
45
46
|
end
|
46
|
-
|
47
|
+
|
47
48
|
add_parameter_unless_exist('jruby.initial.runtimes', @config[:jruby_min_runtimes].to_s)
|
48
49
|
add_parameter_unless_exist('public.root', File.join('/', public_root))
|
49
50
|
end
|
50
|
-
|
51
|
+
|
51
52
|
def add_web_dir_resources
|
52
53
|
doc_base = File.join(@app[:web_app_dir], public_root)
|
53
54
|
@context.setDocBase(doc_base) if File.exist?(doc_base)
|
54
55
|
end
|
55
|
-
|
56
|
+
|
56
57
|
def add_rack_context_listener
|
57
58
|
unless rack_listener_configured?
|
58
59
|
@context.addApplicationListener(context_listener)
|
59
60
|
end
|
60
61
|
end
|
61
|
-
|
62
|
+
|
62
63
|
def add_application_libs(class_loader)
|
63
64
|
resources_dir = File.join(@app[:web_app_dir], libs_dir, '**', '*.jar')
|
64
|
-
|
65
|
+
|
65
66
|
Dir[resources_dir].each do |resource|
|
66
67
|
class_loader.addURL(java.io.File.new(resource).to_url)
|
67
68
|
end
|
68
69
|
end
|
69
|
-
|
70
|
+
|
70
71
|
def add_application_classes(class_loader)
|
71
72
|
resources_dir = File.join(@app[:web_app_dir], classes_dir)
|
72
73
|
class_loader.addURL(java.io.File.new(resources_dir).to_url)
|
@@ -74,7 +75,7 @@ module Trinidad
|
|
74
75
|
|
75
76
|
def load_default_web_xml
|
76
77
|
default_web_xml = File.expand_path(File.join(@app[:web_app_dir], default_web_xml_file))
|
77
|
-
|
78
|
+
|
78
79
|
if File.exist?(default_web_xml)
|
79
80
|
@context.setDefaultWebXml(default_web_xml)
|
80
81
|
@context.setDefaultContextXml(default_web_xml)
|
@@ -126,5 +127,15 @@ module Trinidad
|
|
126
127
|
def add_parameter_unless_exist(name, value)
|
127
128
|
@context.addParameter(name, value) unless @context.findParameter(name)
|
128
129
|
end
|
130
|
+
|
131
|
+
def load_extensions?
|
132
|
+
@app.has_key?(:extensions)
|
133
|
+
end
|
134
|
+
|
135
|
+
def configure_extensions(tomcat)
|
136
|
+
return unless load_extensions?
|
137
|
+
|
138
|
+
Trinidad::Extensions.configure_webapp_extensions(@app[:extensions], tomcat, @context)
|
139
|
+
end
|
129
140
|
end
|
130
141
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Trinidad
|
2
|
+
module Extensions
|
3
|
+
class FooWebAppExtension < WebAppExtension
|
4
|
+
def configure(tomcat, app_context)
|
5
|
+
@options
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class FooServerExtension < ServerExtension
|
10
|
+
def configure(tomcat)
|
11
|
+
@options
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/foo'
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,7 @@ end
|
|
8
8
|
|
9
9
|
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
10
10
|
$:.unshift(File.dirname(__FILE__) + '/../trinidad-libs')
|
11
|
+
$:.unshift(File.dirname(__FILE__) + '/fixtures')
|
11
12
|
|
12
13
|
require 'java'
|
13
14
|
require 'trinidad'
|
@@ -17,4 +18,4 @@ Spec::Runner.configure do |config|
|
|
17
18
|
config.mock_with :mocha
|
18
19
|
end
|
19
20
|
|
20
|
-
MOCK_WEB_APP_DIR = File.join(File.dirname(__FILE__), 'web_app_mock')
|
21
|
+
MOCK_WEB_APP_DIR = File.join(File.dirname(__FILE__), 'web_app_mock')
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
describe Trinidad::Extensions do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@extensions = {:foo => {:bar => :bazz}}
|
8
|
+
end
|
9
|
+
|
10
|
+
it "configures the server with new stuff" do
|
11
|
+
lambda {Trinidad::Extensions.configure_server_extensions(@extensions, nil)}.should_not raise_error
|
12
|
+
lambda {Trinidad::Extensions.const_get(:FooServerExtension)}.should_not raise_error
|
13
|
+
end
|
14
|
+
|
15
|
+
it "configures the webapp with new stuff" do
|
16
|
+
lambda {Trinidad::Extensions.configure_webapp_extensions(@extensions, nil, nil)}.should_not raise_error
|
17
|
+
lambda {Trinidad::Extensions.const_get(:FooWebAppExtension)}.should_not raise_error
|
18
|
+
end
|
19
|
+
end
|
@@ -1,7 +1,22 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
|
3
|
+
JSystem = java.lang.System
|
4
|
+
JContext = javax.naming.Context
|
5
|
+
|
3
6
|
describe Trinidad::Server do
|
4
7
|
|
8
|
+
it "always uses symbols as configuration keys" do
|
9
|
+
server = Trinidad::Server.new({'port' => 4000})
|
10
|
+
server.config[:port].should == 4000
|
11
|
+
end
|
12
|
+
|
13
|
+
it "enables catalina naming" do
|
14
|
+
Trinidad::Server.new
|
15
|
+
JSystem.getProperty(JContext.URL_PKG_PREFIXES).should include("org.apache.naming")
|
16
|
+
JSystem.getProperty(JContext.INITIAL_CONTEXT_FACTORY).should == "org.apache.naming.java.javaURLContextFactory"
|
17
|
+
JSystem.getProperty("catalina.useNaming").should == "true"
|
18
|
+
end
|
19
|
+
|
5
20
|
it "should have ssl disabled when config param is nil" do
|
6
21
|
server = Trinidad::Server.new
|
7
22
|
server.ssl_enabled?.should == false
|
metadata
CHANGED
@@ -1,113 +1,129 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trinidad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 8
|
8
|
+
- 0
|
9
|
+
version: 0.8.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
|
-
|
12
|
+
- David Calavera
|
8
13
|
autorequire:
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-04-04 00:00:00 +02:00
|
13
18
|
default_executable: trinidad
|
14
19
|
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rack
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 0
|
30
|
+
version: "1.0"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: trinidad_jars
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
42
|
+
version: "0"
|
43
|
+
type: :runtime
|
44
|
+
version_requirements: *id002
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: rspec
|
47
|
+
prerelease: false
|
48
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
segments:
|
53
|
+
- 0
|
54
|
+
version: "0"
|
55
|
+
type: :development
|
56
|
+
version_requirements: *id003
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: mocha
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
version: "0"
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id004
|
45
69
|
description:
|
46
70
|
email: calavera@apache.org
|
47
71
|
executables:
|
48
|
-
|
72
|
+
- trinidad
|
49
73
|
extensions: []
|
50
74
|
|
51
75
|
extra_rdoc_files:
|
52
|
-
|
53
|
-
|
76
|
+
- LICENSE
|
77
|
+
- README.rdoc
|
54
78
|
files:
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
- lib/trinidad/web_app.rb
|
69
|
-
- trinidad-libs/core-3.1.1.jar
|
70
|
-
- trinidad-libs/jasper-el.jar
|
71
|
-
- trinidad-libs/jasper-jdt.jar
|
72
|
-
- trinidad-libs/jasper.jar
|
73
|
-
- trinidad-libs/jetty-util-6.1.14.jar
|
74
|
-
- trinidad-libs/jruby-rack-0.9.5.jar
|
75
|
-
- trinidad-libs/jsp-2.1.jar
|
76
|
-
- trinidad-libs/jsp-api-2.1.jar
|
77
|
-
- trinidad-libs/servlet-api-2.5-6.1.14.jar
|
78
|
-
- trinidad-libs/tomcat-core.jar
|
79
|
-
- trinidad-libs/tomcat-dbcp.jar
|
80
|
-
- trinidad-libs/tomcat-jasper.jar
|
79
|
+
- History.txt
|
80
|
+
- LICENSE
|
81
|
+
- README.rdoc
|
82
|
+
- VERSION
|
83
|
+
- bin/trinidad
|
84
|
+
- lib/trinidad.rb
|
85
|
+
- lib/trinidad/command_line_parser.rb
|
86
|
+
- lib/trinidad/core_ext.rb
|
87
|
+
- lib/trinidad/extensions.rb
|
88
|
+
- lib/trinidad/rackup_web_app.rb
|
89
|
+
- lib/trinidad/rails_web_app.rb
|
90
|
+
- lib/trinidad/server.rb
|
91
|
+
- lib/trinidad/web_app.rb
|
81
92
|
has_rdoc: true
|
82
93
|
homepage: http://calavera.github.com/trinidad
|
83
94
|
licenses: []
|
84
95
|
|
85
96
|
post_install_message:
|
86
97
|
rdoc_options:
|
87
|
-
|
98
|
+
- --charset=UTF-8
|
88
99
|
require_paths:
|
89
|
-
|
100
|
+
- lib
|
90
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
91
102
|
requirements:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
segments:
|
106
|
+
- 0
|
107
|
+
version: "0"
|
96
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
109
|
requirements:
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
version: "0"
|
102
115
|
requirements: []
|
103
116
|
|
104
117
|
rubyforge_project: trinidad
|
105
|
-
rubygems_version: 1.3.
|
118
|
+
rubygems_version: 1.3.6
|
106
119
|
signing_key:
|
107
120
|
specification_version: 3
|
108
121
|
summary: Simple library to run rails applications into an embedded Tomcat
|
109
122
|
test_files:
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
123
|
+
- spec/fixtures/foo.rb
|
124
|
+
- spec/fixtures/trinidad_foo_extension.rb
|
125
|
+
- spec/spec_helper.rb
|
126
|
+
- spec/trinidad/command_line_parser_spec.rb
|
127
|
+
- spec/trinidad/extensions_spec.rb
|
128
|
+
- spec/trinidad/server_spec.rb
|
129
|
+
- spec/trinidad/web_app_spec.rb
|
data/Rakefile
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "trinidad"
|
8
|
-
gem.summary = %Q{Simple library to run rails applications into an embedded Tomcat}
|
9
|
-
gem.email = "calavera@apache.org"
|
10
|
-
gem.homepage = "http://calavera.github.com/trinidad"
|
11
|
-
gem.authors = ["David Calavera"]
|
12
|
-
gem.rubyforge_project = 'trinidad'
|
13
|
-
|
14
|
-
gem.files = FileList['bin/*', 'lib/**/*.rb', 'trinidad-libs/*.jar', 'History.txt', 'LICENSE', 'Rakefile', 'README.rdoc', 'VERSION']
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
gem.add_dependency 'rack', '>=1.0'
|
17
|
-
|
18
|
-
gem.add_development_dependency 'rspec'
|
19
|
-
gem.add_development_dependency 'mocha'
|
20
|
-
end
|
21
|
-
|
22
|
-
Jeweler::GemcutterTasks.new
|
23
|
-
rescue LoadError
|
24
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
25
|
-
end
|
26
|
-
|
27
|
-
require 'spec/rake/spectask'
|
28
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
29
|
-
spec.libs << 'lib' << 'spec'
|
30
|
-
spec.spec_opts = ['--options', "spec/spec.opts"]
|
31
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
32
|
-
end
|
33
|
-
|
34
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
35
|
-
spec.libs << 'lib' << 'spec'
|
36
|
-
spec.spec_opts = ['--options', "spec/spec.opts"]
|
37
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
38
|
-
spec.rcov = true
|
39
|
-
end
|
40
|
-
|
41
|
-
task :default => :spec
|
42
|
-
|
43
|
-
require 'rake/rdoctask'
|
44
|
-
Rake::RDocTask.new do |rdoc|
|
45
|
-
if File.exist?('VERSION.yml')
|
46
|
-
config = YAML.load(File.read('VERSION.yml'))
|
47
|
-
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
48
|
-
else
|
49
|
-
version = ""
|
50
|
-
end
|
51
|
-
|
52
|
-
rdoc.rdoc_dir = 'rdoc'
|
53
|
-
rdoc.title = "trinidad #{version}"
|
54
|
-
rdoc.rdoc_files.include('README*')
|
55
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
56
|
-
end
|
57
|
-
|
58
|
-
begin
|
59
|
-
require 'rake/contrib/sshpublisher'
|
60
|
-
namespace :rubyforge do
|
61
|
-
|
62
|
-
desc "Release gem and RDoc documentation to RubyForge"
|
63
|
-
task :release => ["rubyforge:release:gem"]
|
64
|
-
|
65
|
-
namespace :release do
|
66
|
-
desc "Publish RDoc to RubyForge."
|
67
|
-
task :docs => [:rdoc] do
|
68
|
-
config = YAML.load(
|
69
|
-
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
70
|
-
)
|
71
|
-
|
72
|
-
host = "#{config['username']}@rubyforge.org"
|
73
|
-
remote_dir = "/var/www/gforge-projects/trinidad/"
|
74
|
-
local_dir = 'rdoc'
|
75
|
-
|
76
|
-
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
rescue LoadError
|
81
|
-
puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
|
82
|
-
end
|
83
|
-
|
data/lib/trinidad/jars.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module Trinidad
|
2
|
-
|
3
|
-
require "servlet-api-2.5-6.1.14"
|
4
|
-
require "core-3.1.1"
|
5
|
-
require "jsp-api-2.1"
|
6
|
-
require "jsp-2.1"
|
7
|
-
require 'tomcat-core'
|
8
|
-
require 'jetty-util-6.1.14'
|
9
|
-
|
10
|
-
require "jruby-rack-0.9.5"
|
11
|
-
|
12
|
-
module Tomcat
|
13
|
-
include_package 'org.apache.catalina'
|
14
|
-
include_package 'org.apache.catalina.startup'
|
15
|
-
include_package 'org.apache.catalina.core'
|
16
|
-
include_package 'org.apache.catalina.deploy'
|
17
|
-
include_package 'org.apache.catalina.loader'
|
18
|
-
|
19
|
-
include_package 'org.apache.naming.resources'
|
20
|
-
|
21
|
-
import 'org.apache.catalina.connector.Connector'
|
22
|
-
import 'sun.security.tools.KeyTool'
|
23
|
-
end
|
24
|
-
|
25
|
-
module Rack
|
26
|
-
include_package "org.jruby.rack"
|
27
|
-
include_package "org.jruby.rack.rails"
|
28
|
-
end
|
29
|
-
end
|
Binary file
|
data/trinidad-libs/jasper-el.jar
DELETED
Binary file
|
Binary file
|
data/trinidad-libs/jasper.jar
DELETED
Binary file
|
Binary file
|
Binary file
|
data/trinidad-libs/jsp-2.1.jar
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|