def check_monitors @contexts.each do |c| #... c[:context] = create_takeover(c) Thread.new { c[:context].start } end end def create_takeover(c) web_app = c[:app] old_context = c[:context] context = Trinidad::Tomcat::StandardContext.new context.name = rand.to_s context.path = old_context.path context.doc_base = web_app.web_app_dir context.add_lifecycle_listener Trinidad::Tomcat::Tomcat::DefaultWebXmlListener.new config = Trinidad::Tomcat::ContextConfig.new config.default_web_xml = 'org/apache/catalina/startup/NO_DEFAULT_XML' context.add_lifecycle_listener config Trinidad::Extensions.configure_webapp_extensions(web_app.extensions, @tomcat, context) web_app.generate_class_loader context.add_lifecycle_listener(web_app.define_lifecycle) context.add_lifecycle_listener(Trinidad::Lifecycle::Takeover.new(c)) old_context.parent.add_child context context end