trinidad 1.0.0 → 1.0.1
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/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: []
|