Class: Trinidad::WebAppLifecycleListener
- Inherits:
-
Object
- Object
- Trinidad::WebAppLifecycleListener
- Includes:
- LifecycleListener
- Defined in:
- lib/trinidad/web_app_lifecycle_listener.rb
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Instance Method Summary collapse
- #add_application_jars(class_loader) ⇒ Object
- #add_application_java_classes(class_loader) ⇒ Object
- #configure_context_loader ⇒ Object
- #configure_deployment_descriptor ⇒ Object
- #configure_init_params ⇒ Object
- #configure_rack_listener ⇒ Object
- #configure_rack_servlet ⇒ Object
- #init_defaults(context) ⇒ Object
-
#initialize(webapp) ⇒ WebAppLifecycleListener
constructor
A new instance of WebAppLifecycleListener.
- #lifecycleEvent(event) ⇒ Object
Constructor Details
#initialize(webapp) ⇒ WebAppLifecycleListener
Returns a new instance of WebAppLifecycleListener.
10 11 12 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 10 def initialize(webapp) @webapp = webapp end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
8 9 10 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 8 def context @context end |
Instance Method Details
#add_application_jars(class_loader) ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 74 def add_application_jars(class_loader) return unless @webapp.libs_dir resources_dir = File.join(@webapp.web_app_dir, @webapp.libs_dir, '**', '*.jar') Dir[resources_dir].each do |resource| class_loader.addURL(java.io.File.new(resource).to_url) end end |
#add_application_java_classes(class_loader) ⇒ Object
84 85 86 87 88 89 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 84 def add_application_java_classes(class_loader) return unless @webapp.classes_dir resources_dir = File.join(@webapp.web_app_dir, @webapp.classes_dir) class_loader.addURL(java.io.File.new(resources_dir).to_url) end |
#configure_context_loader ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 63 def configure_context_loader class_loader = @webapp.class_loader add_application_jars(class_loader) add_application_java_classes(class_loader) loader = Trinidad::Tomcat::WebappLoader.new(class_loader) loader.container = @context @context.loader = loader end |
#configure_deployment_descriptor ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 32 def configure_deployment_descriptor if descriptor = @webapp.default_deployment_descriptor @context.setDefaultWebXml(descriptor) context_config = Trinidad::Tomcat::ContextConfig.new context_config.setDefaultWebXml(descriptor) @context.addLifecycleListener(context_config) end descriptor end |
#configure_init_params ⇒ Object
57 58 59 60 61 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 57 def configure_init_params @webapp.init_params.each do |name, value| @context.addParameter(name, value) end end |
#configure_rack_listener ⇒ Object
53 54 55 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 53 def configure_rack_listener @context.addApplicationListener(@webapp.rack_listener) end |
#configure_rack_servlet ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 44 def configure_rack_servlet wrapper = @context.create_wrapper wrapper.servlet_class = @webapp.servlet[:class] wrapper.name = @webapp.servlet[:name] @context.add_child(wrapper) @context.add_servlet_mapping('/*', wrapper.name) end |
#init_defaults(context) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 20 def init_defaults(context) @context = context deployment_descriptor = configure_deployment_descriptor unless deployment_descriptor configure_rack_servlet configure_rack_listener end configure_init_params configure_context_loader end |
#lifecycleEvent(event) ⇒ Object
14 15 16 17 18 |
# File 'lib/trinidad/web_app_lifecycle_listener.rb', line 14 def lifecycleEvent(event) if Lifecycle::BEFORE_START_EVENT == event.type init_defaults(event.lifecycle) end end |