Class: Trinidad::Server
- Inherits:
-
Object
- Object
- Trinidad::Server
- Defined in:
- lib/trinidad/server.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#tomcat ⇒ Object
readonly
Returns the value of attribute tomcat.
-
#web_apps ⇒ Object
readonly
Returns the value of attribute web_apps.
Instance Method Summary collapse
- #add_ajp_connector ⇒ Object
- #add_http_connector ⇒ Object
- #add_service_connector(options, protocol = nil) ⇒ Object
- #add_ssl_connector ⇒ Object
- #add_web_app(web_app, host = nil) ⇒ Object
- #ajp_enabled? ⇒ Boolean
- #http_configured? ⇒ Boolean
-
#initialize(config = Trinidad.configuration) ⇒ Server
constructor
A new instance of Server.
- #load_config(config) ⇒ Object
- #load_host_monitor(apps) ⇒ Object
- #load_tomcat_server ⇒ Object
- #ssl_enabled? ⇒ Boolean
- #start ⇒ Object
- #stop ⇒ Object
- #stop! ⇒ Object
Constructor Details
#initialize(config = Trinidad.configuration) ⇒ Server
Returns a new instance of Server.
5 6 7 8 9 10 11 |
# File 'lib/trinidad/server.rb', line 5 def initialize(config = Trinidad.configuration) load_config(config) configure_logging(@config[:log]) load_tomcat_server @web_apps = create_web_apps load_host_monitor(@web_apps) end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
3 4 5 |
# File 'lib/trinidad/server.rb', line 3 def config @config end |
#tomcat ⇒ Object (readonly)
Returns the value of attribute tomcat.
3 4 5 |
# File 'lib/trinidad/server.rb', line 3 def tomcat @tomcat end |
#web_apps ⇒ Object (readonly)
Returns the value of attribute web_apps.
3 4 5 |
# File 'lib/trinidad/server.rb', line 3 def web_apps @web_apps end |
Instance Method Details
#add_ajp_connector ⇒ Object
54 55 56 |
# File 'lib/trinidad/server.rb', line 54 def add_ajp_connector add_service_connector(@config[:ajp], 'AJP/1.3') end |
#add_http_connector ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/trinidad/server.rb', line 58 def add_http_connector = @config[:http] || {} [:address] ||= @config[:address] if @config[:address] != 'localhost' [:port] = @config[:port] [:protocol_handler] = 'org.apache.coyote.http11.Http11NioProtocol' if [:nio] if [:apr] @tomcat.server.add_lifecycle_listener(Trinidad::Tomcat::AprLifecycleListener.new) end connector = add_service_connector(, [:protocol_handler] || 'HTTP/1.1') @tomcat.connector = connector end |
#add_service_connector(options, protocol = nil) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/trinidad/server.rb', line 90 def add_service_connector(, protocol = nil) connector = Trinidad::Tomcat::Connector.new(protocol) opts = .dup connector.scheme = opts.delete(:scheme) if opts[:scheme] connector.secure = opts.delete(:secure) || false connector.port = opts.delete(:port).to_i connector.protocol_handler_class_name = opts.delete(:protocol_handler) if opts[:protocol_handler] opts.each do |key, value| connector.setProperty(key.to_s, value.to_s) end @tomcat.service.add_connector(connector) connector end |
#add_ssl_connector ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/trinidad/server.rb', line 72 def add_ssl_connector = @config[:ssl].merge({ :scheme => 'https', :secure => true, :SSLEnabled => 'true' }) [:keystoreFile] ||= .delete(:keystore) if ![:keystoreFile] && ![:SSLCertificateFile] [:keystoreFile] = 'ssl/keystore' [:keystorePass] = 'waduswadus42' generate_default_keystore() end add_service_connector() end |
#add_web_app(web_app, host = nil) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/trinidad/server.rb', line 108 def add_web_app(web_app, host = nil) host ||= web_app.config[:host] || @tomcat.host app_context = @tomcat.addWebapp(host, web_app.context_path, web_app.web_app_dir) Trinidad::Extensions.configure_webapp_extensions(web_app.extensions, @tomcat, app_context) app_context.add_lifecycle_listener(web_app.define_lifecycle) app_context end |
#ajp_enabled? ⇒ Boolean
46 47 48 |
# File 'lib/trinidad/server.rb', line 46 def ajp_enabled? @config[:ajp] && !@config[:ajp].empty? end |
#http_configured? ⇒ Boolean
50 51 52 |
# File 'lib/trinidad/server.rb', line 50 def http_configured? (@config[:http] && !@config[:http].empty?) || @config[:address] != 'localhost' end |
#load_config(config) ⇒ Object
13 14 15 16 |
# File 'lib/trinidad/server.rb', line 13 def load_config(config) add_default_web_app! config @config = config.freeze end |
#load_host_monitor(apps) ⇒ Object
36 37 38 39 40 |
# File 'lib/trinidad/server.rb', line 36 def load_host_monitor(apps) @tomcat.engine.find_children.each do |host| host.add_lifecycle_listener(Trinidad::Lifecycle::Host.new(self, *apps)) end end |
#load_tomcat_server ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/trinidad/server.rb', line 18 def load_tomcat_server load_default_system_properties @tomcat = Trinidad::Tomcat::Tomcat.new @tomcat.base_dir = Dir.pwd @tomcat.hostname = @config[:address] || 'localhost' @tomcat.server.address = @config[:address] @tomcat.port = @config[:port].to_i create_hosts @tomcat.enable_naming add_http_connector if http_configured? add_ssl_connector if ssl_enabled? add_ajp_connector if ajp_enabled? @tomcat = Trinidad::Extensions.configure_server_extensions(@config[:extensions], @tomcat) end |
#ssl_enabled? ⇒ Boolean
42 43 44 |
# File 'lib/trinidad/server.rb', line 42 def ssl_enabled? @config[:ssl] && !@config[:ssl].empty? end |
#start ⇒ Object
116 117 118 119 120 121 |
# File 'lib/trinidad/server.rb', line 116 def start trap_signals if trap? @tomcat.start @tomcat.server.await end |
#stop ⇒ Object
123 124 125 |
# File 'lib/trinidad/server.rb', line 123 def stop @tomcat.stop end |
#stop! ⇒ Object
127 128 129 130 |
# File 'lib/trinidad/server.rb', line 127 def stop! stop @tomcat.destroy end |