trinidad 0.9.9 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
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