trinidad 0.7.1 → 0.7.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/Rakefile CHANGED
@@ -14,6 +14,9 @@ begin
14
14
  gem.files = FileList['bin/*', 'lib/**/*.rb', 'trinidad-libs/*.jar', 'History.txt', 'LICENSE', 'Rakefile', 'README.rdoc', 'VERSION']
15
15
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
16
  gem.add_dependency 'rack', '>=1.0'
17
+
18
+ gem.add_development_dependency 'rspec'
19
+ gem.add_development_dependency 'mocha'
17
20
  end
18
21
 
19
22
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1
1
+ 0.7.2
@@ -30,18 +30,4 @@ Hash.class_eval do
30
30
  end
31
31
  end
32
32
 
33
- def deep_key?(key)
34
- exist = false
35
-
36
- keys.each do |k|
37
- if self[k].is_a? Hash
38
- exist = self[k].deep_key? key
39
- break
40
- end
41
-
42
- exist = (k == key)
43
- end
44
-
45
- exist
46
- end
47
33
  end
@@ -3,7 +3,7 @@ module Trinidad
3
3
 
4
4
  def add_init_params
5
5
  super
6
- @context.addParameter('rackup', rackup_script) unless @context.findParameter('rackup')
6
+ add_parameter_unless_exist('rackup', rackup_script)
7
7
  end
8
8
 
9
9
  def context_listener
@@ -3,8 +3,8 @@ module Trinidad
3
3
 
4
4
  def add_init_params
5
5
  super
6
- @context.addParameter('rails.env', environment.to_s) unless @context.findParameter('rails.env')
7
- @context.addParameter('rails.root', '/') unless @context.findParameter('rails.root')
6
+ add_parameter_unless_exist('rails.env', environment.to_s)
7
+ add_parameter_unless_exist('rails.root', '/')
8
8
  end
9
9
 
10
10
  def context_listener
@@ -1,8 +1,8 @@
1
1
  module Trinidad
2
2
  class Server
3
-
3
+
4
4
  attr_reader :tomcat
5
-
5
+
6
6
  def default_options
7
7
  {
8
8
  :environment => 'development',
@@ -15,38 +15,33 @@ module Trinidad
15
15
  :jruby_max_runtimes => 5
16
16
  }
17
17
  end
18
-
18
+
19
19
  def initialize(config = {})
20
20
  load_config(config)
21
21
  load_tomcat_server
22
22
  create_web_apps
23
23
  end
24
-
24
+
25
25
  def load_config(config)
26
26
  @config = default_options.deep_merge(config)
27
27
  add_default_web_app!(@config)
28
-
29
- configure_ssl!(@config)
30
28
  end
31
-
29
+
32
30
  def load_tomcat_server
33
31
  @tomcat = Trinidad::Tomcat::Tomcat.new
34
32
  @tomcat.setPort(@config[:port].to_i)
35
33
  @tomcat.setBaseDir(Dir.pwd)
36
-
34
+
37
35
  add_ssl_connector if ssl_enabled?
38
36
  add_ajp_connector if ajp_enabled?
39
37
  end
40
-
38
+
41
39
  def create_web_apps
42
40
  @config[:web_apps].each do |name, app|
43
- unless app[:context_path]
44
- app[:context_path] = name.to_s == 'default' ? '/' : "/#{name.to_s}"
45
- end
46
- app[:web_app_dir] = Dir.pwd unless app.has_key?(:web_app_dir)
41
+ app[:context_path] ||= (name.to_s == 'default' ? '/' : "/#{name.to_s}")
42
+ app[:web_app_dir] ||= Dir.pwd
47
43
 
48
44
  tomcat_app = @tomcat.addWebapp(app[:context_path].to_s, app[:web_app_dir])
49
- # tomcat_app.setDocBase(app[:web_app_dir])
50
45
 
51
46
  web_app = WebApp.create(tomcat_app, @config, app)
52
47
 
@@ -55,60 +50,60 @@ module Trinidad
55
50
  web_app.add_context_loader
56
51
  web_app.add_init_params
57
52
  web_app.add_web_dir_resources
58
-
53
+
59
54
  web_app.add_rack_context_listener
60
55
  end
61
56
  end
62
-
57
+
63
58
  def add_service_connector(options, protocol = nil)
64
59
  connector = Trinidad::Tomcat::Connector.new(protocol)
65
60
 
66
61
  opts = options.dup
67
-
68
- connector.scheme = opts.delete(:scheme) if opts[:scheme]
69
- connector.secure = opts.delete(:secure) || false
70
- connector.port = opts.delete(:port).to_i
71
-
72
- options.each do |key, value|
73
- connector.setProperty(key.to_s, value.to_s)
74
- end
75
-
62
+
63
+ connector.scheme = opts.delete(:scheme) if opts[:scheme]
64
+ connector.secure = opts.delete(:secure) || false
65
+ connector.port = opts.delete(:port).to_i
66
+
67
+ options.each do |key, value|
68
+ connector.setProperty(key.to_s, value.to_s)
69
+ end
70
+
76
71
  @tomcat.getService().addConnector(connector)
77
72
  end
78
-
73
+
79
74
  def add_ajp_connector
80
75
  add_service_connector(@config[:ajp], 'AJP/1.3')
81
76
  end
82
-
77
+
83
78
  def add_ssl_connector
84
- @config[:web_apps].each do |name, app|
85
- options = app[:ssl].merge({
86
- :scheme => 'https',
87
- :secure => true,
88
- :SSLEnabled => 'true',
89
- })
90
- add_service_connector(options)
91
-
92
- create_default_keystore(app) unless File.exist?(app[:ssl][:keystore])
93
- end
79
+ options = @config[:ssl].merge({
80
+ :scheme => 'https',
81
+ :secure => true,
82
+ :SSLEnabled => 'true'
83
+ })
84
+ options[:keystore] ||= 'ssl/keystore'
85
+ options[:keystorePass] ||= 'waduswadus'
86
+
87
+ add_service_connector(options)
88
+ create_default_keystore(options) unless File.exist?(options[:keystore])
94
89
  end
95
-
90
+
96
91
  def ssl_enabled?
97
- @config.has_key?(:ssl) || @config[:web_apps].deep_key?(:ssl)
92
+ @config.has_key?(:ssl)
98
93
  end
99
-
94
+
100
95
  def ajp_enabled?
101
96
  @config.has_key?(:ajp)
102
97
  end
103
-
98
+
104
99
  def create_default_keystore(config)
105
100
  keystore_file = java.io.File.new(config[:ssl][:keystore])
106
-
101
+
107
102
  if (!keystore_file.parent_file.exists() &&
108
103
  !keystore_file.parent_file.mkdir())
109
104
  raise "Unable to create keystore folder: " + keystore_file.parent_file.canonical_path
110
105
  end
111
-
106
+
112
107
  keytool_args = ["-genkey",
113
108
  "-alias", "localhost",
114
109
  "-dname", "CN=localhost, OU=Trinidad, O=Trinidad, C=ES",
@@ -118,7 +113,7 @@ module Trinidad
118
113
  "-keystore", config[:ssl][:keystore],
119
114
  "-storepass", config[:ssl][:keystorePass],
120
115
  "-keypass", config[:ssl][:keystorePass]]
121
-
116
+
122
117
  Trinidad::Tomcat::KeyTool.main(keytool_args.to_java(:string))
123
118
  end
124
119
 
@@ -141,18 +136,5 @@ module Trinidad
141
136
  end
142
137
  end
143
138
 
144
- def configure_ssl!(config)
145
- if config.has_key?(:ssl) || config[:web_apps].deep_key?(:ssl)
146
- if (config.has_key?(:ssl))
147
- config[:ssl][:keystore] ||= 'ssl/keystore'
148
- config[:ssl][:keystorePass] ||= 'waduswadus'
149
- end
150
-
151
- config[:web_apps].each do |name, app|
152
- app[:ssl] = config[:ssl] unless app.has_key?(:ssl)
153
- app[:ssl][:keystore] = File.join(app[:web_app_dir], app[:ssl][:keystore]) if app.has_key?(:ssl)
154
- end
155
- end
156
- end
157
139
  end
158
140
  end
@@ -41,15 +41,16 @@ module Trinidad
41
41
  def add_init_params
42
42
  [:jruby_min_runtimes, :jruby_max_runtimes].each do |param|
43
43
  param_name = param.to_s.gsub(/_/, '.')
44
- @context.addParameter(param_name, @config[param].to_s) unless @context.findParameter(param_name)
44
+ add_parameter_unless_exist(param_name, @config[param].to_s)
45
45
  end
46
46
 
47
- @context.addParameter('jruby.initial.runtimes', @config[:jruby_min_runtimes].to_s) unless @context.findParameter('jruby.initial.runtimes')
48
- @context.addParameter('public.root', File.join('/', public_root)) unless @context.findParameter('public.root')
47
+ add_parameter_unless_exist('jruby.initial.runtimes', @config[:jruby_min_runtimes].to_s)
48
+ add_parameter_unless_exist('public.root', File.join('/', public_root))
49
49
  end
50
50
 
51
51
  def add_web_dir_resources
52
- @context.setDocBase(File.join(@app[:web_app_dir], public_root)) if File.exist?(File.join(@app[:web_app_dir], public_root))
52
+ doc_base = File.join(@app[:web_app_dir], public_root)
53
+ @context.setDocBase(doc_base) if File.exist?(doc_base)
53
54
  end
54
55
 
55
56
  def add_rack_context_listener
@@ -121,5 +122,9 @@ module Trinidad
121
122
  def environment
122
123
  @app[:environment] || @config[:environment]
123
124
  end
125
+
126
+ def add_parameter_unless_exist(name, value)
127
+ @context.addParameter(name, value) unless @context.findParameter(name)
128
+ end
124
129
  end
125
130
  end
@@ -1,41 +1,41 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe Trinidad::Server do
4
-
4
+
5
5
  it "should have ssl disabled when config param is nil" do
6
6
  server = Trinidad::Server.new
7
7
  server.ssl_enabled?.should == false
8
8
  end
9
-
9
+
10
10
  it "should have ajp disabled when config param is nil" do
11
11
  server = Trinidad::Server.new
12
12
  server.ajp_enabled?.should == false
13
13
  end
14
-
14
+
15
15
  it "should have ssl enabled when config param is a number" do
16
16
  server = Trinidad::Server.new({:ssl => {:port => 8443},
17
17
  :web_app_dir => MOCK_WEB_APP_DIR})
18
-
18
+
19
19
  server.ssl_enabled?.should == true
20
20
  end
21
-
21
+
22
22
  it "should have ajp enabled when config param is a number" do
23
23
  server = Trinidad::Server.new({:ajp => {:port => 8009}})
24
-
24
+
25
25
  server.ajp_enabled?.should == true
26
26
  end
27
-
27
+
28
28
  it "should have a connector with https scheme" do
29
29
  server = Trinidad::Server.new({:ssl => {:port => 8443},
30
30
  :web_app_dir => MOCK_WEB_APP_DIR})
31
-
31
+
32
32
  server.tomcat.service.findConnectors().should have(1).connectors
33
33
  server.tomcat.service.findConnectors()[0].scheme.should == 'https'
34
34
  end
35
-
35
+
36
36
  it "should have an ajp connector enabled" do
37
37
  server = Trinidad::Server.new({:ajp => {:port => 8009}})
38
-
38
+
39
39
  server.tomcat.service.findConnectors().should have(1).connectors
40
40
  server.tomcat.service.findConnectors()[0].protocol.should == 'AJP/1.3'
41
41
  end
@@ -58,7 +58,7 @@ describe Trinidad::Server do
58
58
 
59
59
  context_loaded = server.tomcat.host.findChildren()
60
60
  context_loaded.should have(3).web_apps
61
-
61
+
62
62
  expected = ['/mock1', '/mock2', '/']
63
63
  context_loaded.each do |context|
64
64
  expected.delete(context.getPath()).should == context.getPath()
@@ -70,7 +70,7 @@ describe Trinidad::Server do
70
70
 
71
71
  default_context_should_be_loaded(server.tomcat.host.findChildren())
72
72
  end
73
-
73
+
74
74
  it "loads the default application from the current directory using the rackup file if :web_apps is not present" do
75
75
  server = Trinidad::Server.new({
76
76
  :web_app_dir => MOCK_WEB_APP_DIR,
@@ -34,7 +34,7 @@ describe Trinidad::WebApp do
34
34
  it "should load custom jars" do
35
35
  class_loader = org.jruby.util.JRubyClassLoader.new(JRuby.runtime.jruby_class_loader)
36
36
  @web_app.add_application_libs(class_loader)
37
-
37
+
38
38
  resource = class_loader.find_class('org.ho.yaml.Yaml')
39
39
  resource.should_not == nil
40
40
  end
@@ -60,10 +60,10 @@ describe Trinidad::WebApp do
60
60
  start_context_with_web_xml
61
61
  lambda { @web_app.add_init_params }.should_not raise_error
62
62
  end
63
-
63
+
64
64
  it "should load init params" do
65
65
  @web_app.add_init_params
66
-
66
+
67
67
  @web_app.context.findParameter('jruby.min.runtimes').should == '2'
68
68
  @web_app.context.findParameter('jruby.max.runtimes').should == '6'
69
69
  end
metadata CHANGED
@@ -1,93 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trinidad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
- - David Calavera
7
+ - David Calavera
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-01 00:00:00 +01:00
12
+ date: 2009-12-08 00:00:00 +01:00
13
13
  default_executable: trinidad
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rack
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "1.0"
24
- version:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: mocha
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
25
45
  description:
26
46
  email: calavera@apache.org
27
47
  executables:
28
- - trinidad
48
+ - trinidad
29
49
  extensions: []
30
50
 
31
51
  extra_rdoc_files:
32
- - LICENSE
33
- - README.rdoc
52
+ - LICENSE
53
+ - README.rdoc
34
54
  files:
35
- - History.txt
36
- - LICENSE
37
- - README.rdoc
38
- - Rakefile
39
- - VERSION
40
- - bin/trinidad
41
- - lib/trinidad.rb
42
- - lib/trinidad/command_line_parser.rb
43
- - lib/trinidad/core_ext.rb
44
- - lib/trinidad/jars.rb
45
- - lib/trinidad/rackup_web_app.rb
46
- - lib/trinidad/rails_web_app.rb
47
- - lib/trinidad/server.rb
48
- - lib/trinidad/web_app.rb
49
- - trinidad-libs/core-3.1.1.jar
50
- - trinidad-libs/jasper-el.jar
51
- - trinidad-libs/jasper-jdt.jar
52
- - trinidad-libs/jasper.jar
53
- - trinidad-libs/jetty-util-6.1.14.jar
54
- - trinidad-libs/jruby-rack-0.9.5.jar
55
- - trinidad-libs/jsp-2.1.jar
56
- - trinidad-libs/jsp-api-2.1.jar
57
- - trinidad-libs/servlet-api-2.5-6.1.14.jar
58
- - trinidad-libs/tomcat-core.jar
59
- - trinidad-libs/tomcat-dbcp.jar
60
- - trinidad-libs/tomcat-jasper.jar
55
+ - History.txt
56
+ - LICENSE
57
+ - README.rdoc
58
+ - Rakefile
59
+ - VERSION
60
+ - bin/trinidad
61
+ - lib/trinidad.rb
62
+ - lib/trinidad/command_line_parser.rb
63
+ - lib/trinidad/core_ext.rb
64
+ - lib/trinidad/jars.rb
65
+ - lib/trinidad/rackup_web_app.rb
66
+ - lib/trinidad/rails_web_app.rb
67
+ - lib/trinidad/server.rb
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
61
81
  has_rdoc: true
62
82
  homepage: http://calavera.github.com/trinidad
63
83
  licenses: []
64
84
 
65
85
  post_install_message:
66
86
  rdoc_options:
67
- - --charset=UTF-8
87
+ - --charset=UTF-8
68
88
  require_paths:
69
- - lib
89
+ - lib
70
90
  required_ruby_version: !ruby/object:Gem::Requirement
71
91
  requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: "0"
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
75
95
  version:
76
96
  required_rubygems_version: !ruby/object:Gem::Requirement
77
97
  requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: "0"
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
81
101
  version:
82
102
  requirements: []
83
103
 
84
104
  rubyforge_project: trinidad
85
- rubygems_version: 1.3.2
105
+ rubygems_version: 1.3.5
86
106
  signing_key:
87
107
  specification_version: 3
88
108
  summary: Simple library to run rails applications into an embedded Tomcat
89
109
  test_files:
90
- - spec/spec_helper.rb
91
- - spec/trinidad/command_line_parser_spec.rb
92
- - spec/trinidad/server_spec.rb
93
- - spec/trinidad/web_app_spec.rb
110
+ - spec/spec_helper.rb
111
+ - spec/trinidad/command_line_parser_spec.rb
112
+ - spec/trinidad/server_spec.rb
113
+ - spec/trinidad/web_app_spec.rb