trinidad 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,19 @@
1
+ == 0.3.0 (2009-07-07)
2
+
3
+ * project renamed due to tomcat legal issues
4
+
5
+ == 0.2.0 (2009-06-23)
6
+
7
+ * custom configuration from a yaml file
8
+ * load options from a custom web.xml
9
+
10
+ == 0.1.2
11
+
12
+ * Autoload application custom jars and classes.
13
+ * Added some specs.
14
+ * Server refactor.
15
+
16
+ == 0.1
17
+
18
+ * Initial release.
19
+ * Running default rails applications.
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ == Trinidad
2
+
3
+ Copyright (c) 2009 David Calavera
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ == Additional Bundled Software
25
+
26
+ Apache Tomcat is licensed according to the terms of Apache License, Version 2.0 (current). See http://www.apache.org/licenses/LICENSE-2.0 for details.
data/README.rdoc ADDED
@@ -0,0 +1,36 @@
1
+ = trinidad
2
+
3
+ Trinidad allows you to run a rails application within an embedded Apache Tomcat container.
4
+
5
+ This project was initially called "Tomcat-rails" but due to legal issues with the ASF and the Tomcat trademark it has been renamed.
6
+
7
+ == INSTALL:
8
+
9
+ jgem install trinidad
10
+ jgem install calavera-trinidad -s http://gems.github.com
11
+
12
+ == USAGE:
13
+
14
+ cd myrailsapp
15
+ jruby -S trinidad
16
+
17
+ == CONFIGURATION:
18
+
19
+ Trinidad allows you to configure some parameters when the server is started from the command line, the following is a list of the currently supported options:
20
+
21
+ * -p, --port PORT => port to bind to.
22
+ * -e, --env ENVIRONMENT => rails environment.
23
+ * -c, --context CONTEXT => application context path.
24
+ * --lib, --jars LIBS_DIR => directory containing jars.
25
+ * --classes CLASSES_DIR => directory containing classes.
26
+
27
+ The server can also be configured from a yaml file. If a file is not especified, the server tries to load the file <em>config/tomcat.yml</em>. Within this file you can add other options like jruby.min.runtimes(:jruby_min_runtimes) or jruby.max.runtimes(:jruby_max_runtimes).
28
+
29
+ jruby -S trinidad -f
30
+ jruby -S trinidad --config my_custom_configuration.yml
31
+
32
+ You can also specify a default web.xml to config your web application. By default the server tries to load the file <em>config/web.xml</em> but you can modify this path adding the option <em>default_web_xml</em> within your configuration file.
33
+
34
+ == Copyright
35
+
36
+ Copyright (c) 2009 David Calavera<calavera@apache.org>. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,78 @@
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 = "david.calavera@gmail.com"
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
+ end
17
+
18
+ rescue LoadError
19
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
20
+ end
21
+
22
+ require 'spec/rake/spectask'
23
+ Spec::Rake::SpecTask.new(:spec) do |spec|
24
+ spec.libs << 'lib' << 'spec'
25
+ spec.spec_opts = ['--options', "spec/spec.opts"]
26
+ spec.spec_files = FileList['spec/**/*_spec.rb']
27
+ end
28
+
29
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
30
+ spec.libs << 'lib' << 'spec'
31
+ spec.spec_opts = ['--options', "spec/spec.opts"]
32
+ spec.pattern = 'spec/**/*_spec.rb'
33
+ spec.rcov = true
34
+ end
35
+
36
+ task :default => :spec
37
+
38
+ require 'rake/rdoctask'
39
+ Rake::RDocTask.new do |rdoc|
40
+ if File.exist?('VERSION.yml')
41
+ config = YAML.load(File.read('VERSION.yml'))
42
+ version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
43
+ else
44
+ version = ""
45
+ end
46
+
47
+ rdoc.rdoc_dir = 'rdoc'
48
+ rdoc.title = "trinidad #{version}"
49
+ rdoc.rdoc_files.include('README*')
50
+ rdoc.rdoc_files.include('lib/**/*.rb')
51
+ end
52
+
53
+ begin
54
+ require 'rake/contrib/sshpublisher'
55
+ namespace :rubyforge do
56
+
57
+ desc "Release gem and RDoc documentation to RubyForge"
58
+ task :release => ["rubyforge:release:gem"]
59
+
60
+ namespace :release do
61
+ desc "Publish RDoc to RubyForge."
62
+ task :docs => [:rdoc] do
63
+ config = YAML.load(
64
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
65
+ )
66
+
67
+ host = "#{config['username']}@rubyforge.org"
68
+ remote_dir = "/var/www/gforge-projects/trinidad/"
69
+ local_dir = 'rdoc'
70
+
71
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
72
+ end
73
+ end
74
+ end
75
+ rescue LoadError
76
+ puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
77
+ end
78
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.0
data/bin/trinidad ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env jruby
2
+
3
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
4
+ $:.unshift(File.dirname(__FILE__) + '/../trinidad-libs')
5
+
6
+ require "trinidad"
7
+
8
+ opts = Trinidad::CommandLineParser.parse
9
+ Trinidad::Server.new(opts).start
@@ -0,0 +1,66 @@
1
+ module Trinidad
2
+ require 'optparse'
3
+
4
+ class CommandLineParser
5
+ def self.parse
6
+ default_options = {
7
+ :port => 3000,
8
+ :environment => 'development',
9
+ :context_path => '/',
10
+ :libs_dir => 'lib',
11
+ :classes_dir => 'classes',
12
+ :config => 'config/tomcat.yml'
13
+ }
14
+
15
+ parser = OptionParser.new do |opts|
16
+ opts.banner = 'Trinidad server default options:'
17
+ opts.separator ''
18
+
19
+ opts.on('-e', '--env ENVIRONMENT', 'Rails environment',
20
+ "default: #{default_options[:environment]}") do |v|
21
+ default_options[:environment] = v
22
+ end
23
+
24
+ opts.on('-p', '--port PORT', 'Port to bind to',
25
+ "default: #{default_options[:port]}") do |v|
26
+ default_options[:port] = v
27
+ end
28
+
29
+ opts.on('-c', '--context CONTEXT_PATH', 'The application context path',
30
+ "default: #{default_options[:context_path]}") do |v|
31
+ default_options[:context_path] = v
32
+ end
33
+
34
+ opts.on('--lib', '--jars LIBS_DIR', 'Directory containing jars used by the application',
35
+ "default: #{default_options[:libs_dir]}") do |v|
36
+ default_options[:libs_dir] = v
37
+ end
38
+
39
+ opts.on('--classes', '--classes CLASSES_DIR', 'Directory containing classes used by the application',
40
+ "default: #{default_options[:classes_dir]}") do |v|
41
+ default_options[:classes_dir] = v
42
+ end
43
+
44
+ opts.on('-f', '--config [CONFIG_FILE]', 'Configuration file',
45
+ "default: #{default_options[:config]}") do |v|
46
+ default_options[:config] = v if v
47
+ default_options.merge! YAML.load_file(default_options[:config])
48
+ end
49
+
50
+ opts.on('-v', '--version', 'display the current version') do
51
+ puts File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).chomp
52
+ exit
53
+ end
54
+
55
+ opts.on('-h', '--help', 'display the help') do
56
+ puts opts
57
+ exit
58
+ end
59
+
60
+ opts.parse!(ARGV)
61
+ end
62
+
63
+ default_options
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,26 @@
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.4"
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
+ end
21
+
22
+ module Rack
23
+ include_package "org.jruby.rack"
24
+ include_package "org.jruby.rack.rails"
25
+ end
26
+ end
@@ -0,0 +1,48 @@
1
+ module Trinidad
2
+ class Server
3
+
4
+ @@defaults = {
5
+ :environment => 'development',
6
+ :context_path => '/',
7
+ :libs_dir => 'lib',
8
+ :classes_dir => 'classes',
9
+ :default_web_xml => 'config/web.xml',
10
+ :port => 3000,
11
+ :jruby_min_runtimes => 1,
12
+ :jruby_max_runtimes => 5
13
+ }
14
+
15
+ def initialize(config = {})
16
+ load_config(config)
17
+ load_tomcat_server
18
+ create_web_app
19
+ end
20
+
21
+ def load_config(config)
22
+ @config = @@defaults.merge!(config)
23
+ @config[:web_app_dir] = Dir.pwd
24
+ end
25
+
26
+ def load_tomcat_server
27
+ @tomcat = Trinidad::Tomcat::Tomcat.new
28
+ @tomcat.setPort(@config[:port].to_i)
29
+ end
30
+
31
+ def create_web_app
32
+ web_app = WebApp.new(@tomcat.addWebapp(@config[:context_path].to_s, @config[:web_app_dir]), @config)
33
+
34
+ web_app.load_default_web_xml
35
+ web_app.add_rack_filter
36
+ web_app.add_context_loader
37
+ web_app.add_init_params
38
+ web_app.add_web_dir_resources
39
+
40
+ web_app.add_rack_context_listener
41
+ end
42
+
43
+ def start
44
+ @tomcat.start
45
+ @tomcat.getServer().await
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,103 @@
1
+ module Trinidad
2
+ class WebApp
3
+ attr_reader :context, :config
4
+
5
+ def initialize(context, config)
6
+ @context = context
7
+ @config = config
8
+ end
9
+
10
+ def add_rack_filter
11
+ unless rack_filter_configured?
12
+ filter_def = Trinidad::Tomcat::FilterDef.new
13
+ filter_def.setFilterName('RackFilter')
14
+ filter_def.setFilterClass('org.jruby.rack.RackFilter')
15
+
16
+ pattern = @config[:context_path][-1..-1] != '/' ? @config[:context_path] : @config[:context_path][0..-2]
17
+ filter_map = Trinidad::Tomcat::FilterMap.new
18
+ filter_map.setFilterName('RackFilter')
19
+ filter_map.addURLPattern("#{pattern}/*")
20
+
21
+ @context.addFilterDef(filter_def)
22
+ @context.addFilterMap(filter_map)
23
+ end
24
+ end
25
+
26
+ def add_context_loader
27
+ class_loader = org.jruby.util.JRubyClassLoader.new(JRuby.runtime.jruby_class_loader)
28
+ add_application_libs(class_loader)
29
+ add_application_classes(class_loader)
30
+
31
+ loader = Trinidad::Tomcat::WebappLoader.new(class_loader)
32
+
33
+ loader.container = @context
34
+ @context.loader = loader
35
+ end
36
+
37
+ def add_init_params
38
+ [:jruby_min_runtimes, :jruby_max_runtimes].each do |param|
39
+ param_name = param.to_s.gsub(/_/, '.')
40
+ @context.addParameter(param_name, @config[param].to_s) unless @context.findParameter(param_name)
41
+ end
42
+
43
+ @context.addParameter('jruby.initial.runtimes', @config[:jruby_min_runtimes].to_s) unless @context.findParameter('jruby.initial.runtimes')
44
+ @context.addParameter('rails.env', @config[:environment].to_s) unless @context.findParameter('rails.env')
45
+ @context.addParameter('rails.root', '/') unless @context.findParameter('rails.root')
46
+ @context.addParameter('public.root', '/public') unless @context.findParameter('public.root')
47
+ end
48
+
49
+ def add_web_dir_resources
50
+ @context.setDocBase(File.join(@config[:web_app_dir], "public/"))
51
+ end
52
+
53
+ def add_rack_context_listener
54
+ unless rack_listener_configured?
55
+ @context.addApplicationListener('org.jruby.rack.rails.RailsServletContextListener')
56
+ end
57
+ end
58
+
59
+ def add_application_libs(class_loader)
60
+ resources_dir = File.join(@config[:web_app_dir], @config[:libs_dir], '**', '*.jar')
61
+
62
+ Dir[resources_dir].each do |resource|
63
+ class_loader.addURL(java.io.File.new(resource).to_url)
64
+ end
65
+ end
66
+
67
+ def add_application_classes(class_loader)
68
+ resources_dir = File.join(@config[:web_app_dir], @config[:classes_dir])
69
+ class_loader.addURL(java.io.File.new(resources_dir).to_url)
70
+ end
71
+
72
+ def load_default_web_xml
73
+ default_web_xml = File.expand_path(File.join(@config[:web_app_dir], @config[:default_web_xml]))
74
+
75
+ if File.exist?(default_web_xml)
76
+ @context.setDefaultWebXml(default_web_xml)
77
+ @context.setDefaultContextXml(default_web_xml)
78
+
79
+ context_config = Trinidad::Tomcat::ContextConfig.new
80
+ context_config.setDefaultWebXml(default_web_xml)
81
+
82
+ @context.addLifecycleListener(context_config)
83
+ end
84
+ end
85
+
86
+ def rack_filter_configured?
87
+ return false if @context.getDefaultWebXml().nil?
88
+
89
+ web_xml = IO.read(@context.getDefaultWebXml())
90
+
91
+ return web_xml.include?('<servlet-class>org.jruby.rack.RackServlet') ||
92
+ web_xml.include?('<filter-class>org.jruby.rack.RackFilter')
93
+ end
94
+
95
+ def rack_listener_configured?
96
+ return false if @context.getDefaultWebXml().nil?
97
+
98
+ web_xml = IO.read(@context.getDefaultWebXml())
99
+
100
+ return web_xml.include?('<listener-class>org.jruby.rack.rails.RailsServletContextListener')
101
+ end
102
+ end
103
+ end
data/lib/trinidad.rb ADDED
@@ -0,0 +1,14 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ require "java"
5
+ require 'rubygems'
6
+
7
+ require 'trinidad/command_line_parser'
8
+ require 'trinidad/jars'
9
+ require 'trinidad/server'
10
+ require 'trinidad/web_app'
11
+
12
+ module Trinidad
13
+ TRINIDAD_LIBS = File.dirname(__FILE__) + "/../trinidad-libs" unless defined?(TRINIDAD_LIBS)
14
+ end
@@ -0,0 +1,13 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ $:.unshift(File.dirname(__FILE__) + '/../trinidad-libs')
11
+
12
+ require 'java'
13
+ require 'trinidad'
@@ -0,0 +1,32 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Trinidad::CommandLineParser do
4
+ it "should override classes option" do
5
+ ARGV = "--classes my_classes".split
6
+
7
+ options = Trinidad::CommandLineParser.parse
8
+ options[:classes_dir].should == 'my_classes'
9
+ end
10
+
11
+ it "should override libs option with lib option" do
12
+ ARGV = "--lib my_libs".split
13
+
14
+ options = Trinidad::CommandLineParser.parse
15
+ options[:libs_dir].should == 'my_libs'
16
+ end
17
+
18
+ it "should override libs option with jar option" do
19
+ ARGV = "--jars my_jars".split
20
+
21
+ options = Trinidad::CommandLineParser.parse
22
+ options[:libs_dir].should == 'my_jars'
23
+ end
24
+
25
+ it "should override the config file when it's especified" do
26
+ ARGV = "-f #{File.join(File.dirname(__FILE__), '..', 'web_app_mock', 'tomcat.yml')}".split
27
+
28
+ options = Trinidad::CommandLineParser.parse
29
+ options[:environment].should == 'production'
30
+ end
31
+
32
+ end
@@ -0,0 +1,97 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Trinidad::WebApp do
4
+ before do
5
+ @tomcat = Trinidad::Tomcat::Tomcat.new
6
+ tomcat_web_app = @tomcat.addWebapp('/', File.dirname(__FILE__) + '/../../')
7
+ config = {
8
+ :libs_dir => 'lib',
9
+ :classes_dir => 'classes',
10
+ :default_web_xml => 'config/web.xml',
11
+ :web_app_dir => File.join(File.dirname(__FILE__), '..', 'web_app_mock'),
12
+ :jruby_min_runtimes => 2,
13
+ :jruby_max_runtimes => 6,
14
+ :context_path => '/'
15
+ }
16
+ @web_app = Trinidad::WebApp.new(tomcat_web_app, config)
17
+ end
18
+
19
+ it "should load custom jars" do
20
+ class_loader = org.jruby.util.JRubyClassLoader.new(JRuby.runtime.jruby_class_loader)
21
+ @web_app.add_application_libs(class_loader)
22
+
23
+ resource = class_loader.find_class('org.ho.yaml.Yaml')
24
+ resource.should_not == nil
25
+ end
26
+
27
+ it "should load custom classes" do
28
+ class_loader = org.jruby.util.JRubyClassLoader.new(JRuby.runtime.jruby_class_loader)
29
+ @web_app.add_application_classes(class_loader)
30
+
31
+ resource = class_loader.find_class('HelloTomcat')
32
+ resource.should_not == nil
33
+ end
34
+
35
+ it "should start application context without errors" do
36
+ start_context
37
+ end
38
+
39
+ it "should add a filter from the default web.xml" do
40
+ start_context_with_web_xml
41
+ @web_app.context.findFilterDefs().size().should == 1
42
+ end
43
+
44
+ it "shouldn't duplicate init params" do
45
+ start_context_with_web_xml
46
+ lambda { @web_app.add_init_params }.should_not raise_error
47
+ end
48
+
49
+ it "should load init params" do
50
+ @web_app.add_init_params
51
+
52
+ @web_app.context.findParameter('jruby.min.runtimes').should == '2'
53
+ @web_app.context.findParameter('jruby.max.runtimes').should == '6'
54
+ end
55
+
56
+ it "should configure rack filter" do
57
+ @web_app.add_rack_filter
58
+ @web_app.context.findFilterDefs().size().should == 1
59
+ end
60
+
61
+ it "should configure rack listener" do
62
+ @web_app.add_rack_context_listener
63
+ @web_app.context.findApplicationListeners().size().should == 1
64
+ end
65
+
66
+ it "should have rack filter already configured" do
67
+ @web_app.load_default_web_xml
68
+ @web_app.rack_filter_configured?().should == true
69
+
70
+ @web_app.add_rack_filter
71
+ @web_app.context.findFilterDefs().size().should == 0
72
+ end
73
+
74
+ it "should have rack listener already configured" do
75
+ @web_app.load_default_web_xml
76
+ @web_app.rack_listener_configured?().should == true
77
+
78
+ @web_app.add_rack_context_listener
79
+ @web_app.context.findApplicationListeners().size().should == 0
80
+ end
81
+
82
+ def start_context_with_web_xml
83
+ @web_app.load_default_web_xml
84
+ start_context
85
+ end
86
+
87
+ def start_context
88
+ load_tomcat_libs
89
+ lambda { @web_app.context.start }.should_not raise_error
90
+ end
91
+
92
+ def load_tomcat_libs
93
+ @web_app.config[:libs_dir] = File.join(File.dirname(__FILE__), '..', '..', 'tomcat-libs')
94
+ @web_app.add_context_loader
95
+ end
96
+
97
+ end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trinidad
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - David Calavera
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-07-07 00:00:00 +02:00
13
+ default_executable: trinidad
14
+ dependencies: []
15
+
16
+ description:
17
+ email: david.calavera@gmail.com
18
+ executables:
19
+ - trinidad
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - LICENSE
24
+ - README.rdoc
25
+ files:
26
+ - History.txt
27
+ - LICENSE
28
+ - README.rdoc
29
+ - Rakefile
30
+ - VERSION
31
+ - bin/trinidad
32
+ - lib/trinidad.rb
33
+ - lib/trinidad/command_line_parser.rb
34
+ - lib/trinidad/jars.rb
35
+ - lib/trinidad/server.rb
36
+ - lib/trinidad/web_app.rb
37
+ - trinidad-libs/core-3.1.1.jar
38
+ - trinidad-libs/jasper-el.jar
39
+ - trinidad-libs/jasper-jdt.jar
40
+ - trinidad-libs/jasper.jar
41
+ - trinidad-libs/jetty-util-6.1.14.jar
42
+ - trinidad-libs/jruby-rack-0.9.4.jar
43
+ - trinidad-libs/jsp-2.1.jar
44
+ - trinidad-libs/jsp-api-2.1.jar
45
+ - trinidad-libs/servlet-api-2.5-6.1.14.jar
46
+ - trinidad-libs/tomcat-core.jar
47
+ - trinidad-libs/tomcat-dbcp.jar
48
+ - trinidad-libs/tomcat-jasper.jar
49
+ has_rdoc: true
50
+ homepage: http://calavera.github.com/trinidad
51
+ licenses: []
52
+
53
+ post_install_message:
54
+ rdoc_options:
55
+ - --charset=UTF-8
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ version:
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ version:
70
+ requirements: []
71
+
72
+ rubyforge_project: trinidad
73
+ rubygems_version: 1.3.4
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: Simple library to run rails applications into an embedded Tomcat
77
+ test_files:
78
+ - spec/spec_helper.rb
79
+ - spec/trinidad/command_line_parser_spec.rb
80
+ - spec/trinidad/web_app_spec.rb