private static WebAppServletHost getServletHost(final WebContextConfigurator configurator) throws ServletException { ExtensionPointRegistry registry = factory.getExtensionPointRegistry(); WebAppServletHost host = (WebAppServletHost)org.apache.tuscany.sca.host.http.ServletHostHelper.getServletHost(registry); host.init(new ServletConfig() { public String getInitParameter(String name) { return configurator.getInitParameter(name); } public Enumeration<?> getInitParameterNames() { return configurator.getInitParameterNames(); } public ServletContext getServletContext() { return configurator.getServletContext(); } public String getServletName() { return configurator.getServletContext().getServletContextName(); } }); return host; }
/** * Bootstrap the Tuscany runtime for the given scope * @param configurator */ private synchronized static void bootstrapRuntime(final WebContextConfigurator configurator) { if (host == null) { try { String configValue = configurator.getInitParameter("org.apache.tuscany.sca.config"); if (configValue != null) { factory = NodeFactory.newInstance(configValue); } else { factory = NodeFactory.newInstance(); } // Add ServletContext as a utility ExtensionPointRegistry registry = factory.getExtensionPointRegistry(); UtilityExtensionPoint utilityExtensionPoint = registry.getExtensionPoint(UtilityExtensionPoint.class); utilityExtensionPoint.addUtility(ServletContext.class, configurator.getServletContext()); ServletHostExtensionPoint servletHosts = registry.getExtensionPoint(ServletHostExtensionPoint.class); servletHosts.setWebApp(true); host = getServletHost(configurator); } catch (ServletException e) { throw new ServiceRuntimeException(e); } } }