Class: Trinidad::Lifecycle::Default

Inherits:
Base
  • Object
show all
Defined in:
lib/trinidad/lifecycle/lifecycle_listener_default.rb

Instance Attribute Summary

Attributes inherited from Base

#webapp

Instance Method Summary collapse

Methods inherited from Base

#configure_logging, #initialize, #lifecycleEvent, #remove_defaults

Constructor Details

This class inherits a constructor from Trinidad::Lifecycle::Base

Instance Method Details

#add_application_jars(class_loader) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 57

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



67
68
69
70
71
72
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 67

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(context) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 46

def configure_context_loader(context)
  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_defaults(context) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 4

def configure_defaults(context)
  super
  deployment_descriptor = configure_deployment_descriptor(context)
  unless deployment_descriptor
    configure_rack_servlet(context)
    configure_rack_listener(context)
  end
  configure_init_params(context)
  configure_context_loader(context)
end

#configure_deployment_descriptor(context) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 15

def configure_deployment_descriptor(context)
  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(context) ⇒ Object



40
41
42
43
44
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 40

def configure_init_params(context)
  @webapp.init_params.each do |name, value|
    context.addParameter(name, value)
  end
end

#configure_rack_listener(context) ⇒ Object



36
37
38
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 36

def configure_rack_listener(context)
  context.addApplicationListener(@webapp.rack_listener)
end

#configure_rack_servlet(context) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/trinidad/lifecycle/lifecycle_listener_default.rb', line 27

def configure_rack_servlet(context)
  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