trinidad 0.9.9 → 0.9.10

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/lib/trinidad.rb CHANGED
@@ -22,5 +22,5 @@ require 'trinidad/rackup_web_app'
22
22
 
23
23
 
24
24
  module Trinidad
25
- VERSION = '0.9.9'
25
+ VERSION = '0.9.10'
26
26
  end
@@ -115,6 +115,10 @@ module Trinidad
115
115
  default_options[:address] = v
116
116
  end
117
117
 
118
+ opts.on('-g', '--log LEVEL', 'Log level', 'default: INFO') do |v|
119
+ default_options[:log] = v
120
+ end
121
+
118
122
  opts.on('-v', '--version', 'display the current version') do
119
123
  puts "trinidad #{Trinidad::VERSION} (tomcat #{Trinidad::TOMCAT_VERSION})"
120
124
  exit
@@ -1,6 +1,4 @@
1
1
  module Trinidad
2
- JSystem = java.lang.System
3
- JContext = javax.naming.Context
4
2
 
5
3
  class Server
6
4
  attr_reader :tomcat, :config
@@ -15,7 +13,8 @@ module Trinidad
15
13
  :port => 3000,
16
14
  :jruby_min_runtimes => 1,
17
15
  :jruby_max_runtimes => 5,
18
- :address => 'localhost'
16
+ :address => 'localhost',
17
+ :log => 'INFO'
19
18
  }
20
19
  end
21
20
 
@@ -37,7 +36,7 @@ module Trinidad
37
36
  @tomcat.port = @config[:port].to_i
38
37
  @tomcat.base_dir = Dir.pwd
39
38
  @tomcat.host.app_base = Dir.pwd
40
- enable_naming
39
+ @tomcat.enable_naming
41
40
 
42
41
  add_http_connector if http_configured?
43
42
  add_ssl_connector if ssl_enabled?
@@ -55,6 +54,7 @@ module Trinidad
55
54
  remove_defaults(app_context)
56
55
 
57
56
  web_app = WebApp.create(@config, app_config)
57
+ configure_logging(web_app)
58
58
 
59
59
  Trinidad::Extensions.configure_webapp_extensions(web_app.extensions, @tomcat, app_context)
60
60
  app_context.add_lifecycle_listener(WebAppLifecycleListener.new(web_app))
@@ -155,7 +155,8 @@ module Trinidad
155
155
  unless (config.has_key?(:web_apps))
156
156
  default_app = {
157
157
  :context_path => config[:context_path] || '/',
158
- :web_app_dir => config[:web_app_dir] || Dir.pwd
158
+ :web_app_dir => config[:web_app_dir] || Dir.pwd,
159
+ :log => config[:log]
159
160
  }
160
161
  default_app[:rackup] = config[:rackup] if (config.has_key?(:rackup))
161
162
 
@@ -163,23 +164,6 @@ module Trinidad
163
164
  end
164
165
  end
165
166
 
166
- def enable_naming
167
- @tomcat.server.add_lifecycle_listener(Trinidad::Tomcat::NamingContextListener.new)
168
-
169
- JSystem.set_property("catalina.useNaming", "true")
170
-
171
- value = "org.apache.naming"
172
- old_value = JSystem.get_property(JContext::URL_PKG_PREFIXES) || value
173
-
174
- value = value + ":" + old_value unless old_value.include?(value)
175
- JSystem.set_property(JContext::URL_PKG_PREFIXES, value)
176
-
177
- value = JSystem.get_property(JContext::INITIAL_CONTEXT_FACTORY)
178
- unless value
179
- JSystem.set_property(JContext::INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory")
180
- end
181
- end
182
-
183
167
  def remove_defaults(app_context)
184
168
  default_servlet = app_context.find_child('default')
185
169
  app_context.remove_child(default_servlet) if default_servlet
@@ -193,5 +177,37 @@ module Trinidad
193
177
 
194
178
  app_context.process_tlds = false
195
179
  end
180
+
181
+ def configure_logging(web_app)
182
+ log_path = File.join(web_app.web_app_dir, 'log', "#{web_app.environment}.log")
183
+ log_file = java.io.File.new(log_path)
184
+
185
+ unless log_file.exists
186
+ log_file.parent_file.mkdirs
187
+ log_file.create_new_file
188
+ end
189
+
190
+ jlogging = java.util.logging
191
+
192
+ log_handler = jlogging.FileHandler.new(log_path, true)
193
+ logger = jlogging.Logger.get_logger("")
194
+
195
+ log_level = web_app.log
196
+ unless %w{ALL CONFIG FINE FINER FINEST INFO OFF SEVERE WARNING}.include?(log_level)
197
+ puts "Invalid log level #{log_level}, using default: INFO"
198
+ log_level = 'INFO'
199
+ end
200
+
201
+ level = jlogging.Level.parse(log_level)
202
+
203
+ logger.handlers.each do |handler|
204
+ handler.level = level
205
+ end
206
+
207
+ logger.level = level
208
+
209
+ log_handler.formatter = jlogging.SimpleFormatter.new
210
+ logger.add_handler(log_handler)
211
+ end
196
212
  end
197
213
  end
@@ -48,7 +48,8 @@ module Trinidad
48
48
  @app_config[:public] || @config[:public] || 'public'
49
49
  end
50
50
 
51
- %w{web_app_dir libs_dir classes_dir default_web_xml environment jruby_min_runtimes jruby_max_runtimes rackup}.each do |method_name|
51
+ %w{web_app_dir libs_dir classes_dir default_web_xml environment
52
+ jruby_min_runtimes jruby_max_runtimes rackup log}.each do |method_name|
52
53
  define_method method_name do
53
54
  sym = method_name.to_sym
54
55
  @app_config[sym] || @config[sym]
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 9
8
- - 9
9
- version: 0.9.9
8
+ - 10
9
+ version: 0.9.10
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-09-29 00:00:00 -04:00
17
+ date: 2010-10-02 00:00:00 -04:00
18
18
  default_executable: trinidad
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency