package org.apache.struts2.osgi; import org.apache.struts2.StrutsException; import javax.servlet.ServletContextListener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContext; /** * ServletContextListener that starts Apache Felix */ public class StrutsOsgiListener implements ServletContextListener { public static final String OSGI_HOST = "__struts_osgi_host"; private FelixOsgiHost osgiHost; public void contextInitialized(ServletContextEvent sce) { ServletContext servletContext = sce.getServletContext(); osgiHost = new FelixOsgiHost(); servletContext.setAttribute(OSGI_HOST, osgiHost); try { osgiHost.init(servletContext); } catch (Exception e) { throw new StrutsException("Apache Felix failed to start", e); } } public void contextDestroyed(ServletContextEvent sce) { try { osgiHost.destroy(); } catch (Exception e) { throw new StrutsException("Apache Felix failed to stop", e); } } }