trinidad 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
data/History.txt
CHANGED
data/lib/trinidad.rb
CHANGED
@@ -0,0 +1,75 @@
|
|
1
|
+
module Trinidad
|
2
|
+
module Lifecycle
|
3
|
+
class Base
|
4
|
+
include Trinidad::Tomcat::LifecycleListener
|
5
|
+
|
6
|
+
def initialize(webapp)
|
7
|
+
@webapp = webapp
|
8
|
+
@configured_logger = false
|
9
|
+
end
|
10
|
+
|
11
|
+
def lifecycleEvent(event)
|
12
|
+
if Trinidad::Tomcat::Lifecycle::BEFORE_START_EVENT == event.type
|
13
|
+
context = event.lifecycle
|
14
|
+
configure_defaults(context)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def configure_defaults(context)
|
19
|
+
remove_defaults(context)
|
20
|
+
configure_logging
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_defaults(context)
|
24
|
+
context.remove_welcome_file('index.jsp')
|
25
|
+
context.remove_welcome_file('index.htm')
|
26
|
+
context.remove_welcome_file('index.html')
|
27
|
+
|
28
|
+
jsp_servlet = context.find_child('jsp')
|
29
|
+
context.remove_child(jsp_servlet) if jsp_servlet
|
30
|
+
|
31
|
+
context.remove_servlet_mapping('*.jspx')
|
32
|
+
context.remove_servlet_mapping('*.jsp')
|
33
|
+
|
34
|
+
context.process_tlds = false
|
35
|
+
context.xml_validation = false
|
36
|
+
end
|
37
|
+
|
38
|
+
def configure_logging
|
39
|
+
return if @configured_logger
|
40
|
+
|
41
|
+
log_path = File.join(@webapp.work_dir, 'log', "#{@webapp.environment}.log")
|
42
|
+
log_file = java.io.File.new(log_path)
|
43
|
+
|
44
|
+
unless log_file.exists
|
45
|
+
log_file.parent_file.mkdirs
|
46
|
+
log_file.create_new_file
|
47
|
+
end
|
48
|
+
|
49
|
+
jlogging = java.util.logging
|
50
|
+
|
51
|
+
log_handler = jlogging.FileHandler.new(log_path, true)
|
52
|
+
logger = jlogging.Logger.get_logger("")
|
53
|
+
|
54
|
+
log_level = @webapp.log
|
55
|
+
unless %w{ALL CONFIG FINE FINER FINEST INFO OFF SEVERE WARNING}.include?(log_level)
|
56
|
+
puts "Invalid log level #{log_level}, using default: INFO"
|
57
|
+
log_level = 'INFO'
|
58
|
+
end
|
59
|
+
|
60
|
+
level = jlogging.Level.parse(log_level)
|
61
|
+
|
62
|
+
logger.handlers.each do |handler|
|
63
|
+
handler.level = level
|
64
|
+
end
|
65
|
+
|
66
|
+
logger.level = level
|
67
|
+
|
68
|
+
log_handler.formatter = jlogging.SimpleFormatter.new
|
69
|
+
logger.add_handler(log_handler)
|
70
|
+
|
71
|
+
@configured_logger = true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Trinidad
|
2
|
+
module Lifecycle
|
3
|
+
class Default < Base
|
4
|
+
def configure_defaults(context)
|
5
|
+
super
|
6
|
+
deployment_descriptor = configure_deployment_descriptor(context)
|
7
|
+
unless deployment_descriptor
|
8
|
+
configure_rack_servlet(context)
|
9
|
+
configure_rack_listener(context)
|
10
|
+
end
|
11
|
+
configure_init_params(context)
|
12
|
+
configure_context_loader(context)
|
13
|
+
end
|
14
|
+
|
15
|
+
def configure_deployment_descriptor(context)
|
16
|
+
if descriptor = @webapp.default_deployment_descriptor
|
17
|
+
context.setDefaultWebXml(descriptor)
|
18
|
+
|
19
|
+
context_config = Trinidad::Tomcat::ContextConfig.new
|
20
|
+
context_config.setDefaultWebXml(descriptor)
|
21
|
+
|
22
|
+
context.addLifecycleListener(context_config)
|
23
|
+
end
|
24
|
+
descriptor
|
25
|
+
end
|
26
|
+
|
27
|
+
def configure_rack_servlet(context)
|
28
|
+
wrapper = context.create_wrapper
|
29
|
+
wrapper.servlet_class = @webapp.servlet[:class]
|
30
|
+
wrapper.name = @webapp.servlet[:name]
|
31
|
+
|
32
|
+
context.add_child(wrapper)
|
33
|
+
context.add_servlet_mapping('/*', wrapper.name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def configure_rack_listener(context)
|
37
|
+
context.addApplicationListener(@webapp.rack_listener)
|
38
|
+
end
|
39
|
+
|
40
|
+
def configure_init_params(context)
|
41
|
+
@webapp.init_params.each do |name, value|
|
42
|
+
context.addParameter(name, value)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def configure_context_loader(context)
|
47
|
+
class_loader = @webapp.class_loader
|
48
|
+
|
49
|
+
add_application_jars(class_loader)
|
50
|
+
add_application_java_classes(class_loader)
|
51
|
+
|
52
|
+
loader = Trinidad::Tomcat::WebappLoader.new(class_loader)
|
53
|
+
loader.container = context
|
54
|
+
context.loader = loader
|
55
|
+
end
|
56
|
+
|
57
|
+
def add_application_jars(class_loader)
|
58
|
+
return unless @webapp.libs_dir
|
59
|
+
|
60
|
+
resources_dir = File.join(@webapp.web_app_dir, @webapp.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_java_classes(class_loader)
|
68
|
+
return unless @webapp.classes_dir
|
69
|
+
|
70
|
+
resources_dir = File.join(@webapp.web_app_dir, @webapp.classes_dir)
|
71
|
+
class_loader.addURL(java.io.File.new(resources_dir).to_url)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Trinidad
|
2
|
+
module Lifecycle
|
3
|
+
class War < Base
|
4
|
+
def configure_defaults(context)
|
5
|
+
super
|
6
|
+
configure_class_loader(context)
|
7
|
+
end
|
8
|
+
|
9
|
+
def configure_class_loader(context)
|
10
|
+
loader = Trinidad::Tomcat::WebappLoader.new(@webapp.class_loader)
|
11
|
+
loader.container = context
|
12
|
+
context.loader = loader
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 1
|
9
|
+
version: 1.0.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David Calavera
|
@@ -104,6 +104,9 @@ files:
|
|
104
104
|
- lib/trinidad/server.rb
|
105
105
|
- lib/trinidad/war_web_app.rb
|
106
106
|
- lib/trinidad/web_app.rb
|
107
|
+
- lib/trinidad/lifecycle/lifecycle_listener_base.rb
|
108
|
+
- lib/trinidad/lifecycle/lifecycle_listener_default.rb
|
109
|
+
- lib/trinidad/lifecycle/lifecycle_listener_war.rb
|
107
110
|
has_rdoc: true
|
108
111
|
homepage: http://github.com/calavera/trinidad
|
109
112
|
licenses: []
|