package org.ocpsoft.rewrite.transform.markup.impl; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import org.jruby.embed.ScriptingContainer; import org.ocpsoft.rewrite.servlet.spi.ContextListener; public class MarkupContextListener implements ContextListener { @Override public int priority() { return 0; } @Override public void contextInitialized(ServletContextEvent event) {} @Override @SuppressWarnings("unchecked") public void contextDestroyed(ServletContextEvent event) { ServletContext context = event.getServletContext(); Map<Class<?>, ScriptingContainer> storage = (Map<Class<?>, ScriptingContainer>) context .getAttribute(JRubyTransformer.CONTAINER_STORE_KEY); if (storage != null) { for (ScriptingContainer scriptingContainer : storage.values()) { if (scriptingContainer != null) scriptingContainer.terminate(); } } } }