/** Closes the servlet instance. */ @Override public void destroy() { _impl.destroy(); }
/** Service. */ @Override public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { _impl.service(request, response); }
/** Returns the Quercus instance. */ private QuercusContext getQuercus() { if (_quercus == null) _quercus = _impl.getQuercus(); return _quercus; }
private void initImpl(ServletConfig config) throws ServletException { long start = CurrentTime.getCurrentTime(); Class<?> configClass = config.getClass(); _impl = getQuercusServlet(configClass.getName().startsWith("com.caucho")); log.info(L.l("QuercusServlet starting as {0}", _impl.getClass().getSimpleName())); QuercusContext quercus = getQuercus(); quercus.setCompile(_isCompile); quercus.setLazyCompile(_isLazyCompile); quercus.setCompileFailover(_isCompileFailover); quercus.setProfileProbability(_profileProbability); quercus.setRequireSource(_isRequireSource); quercus.setDatabase(_database); quercus.setStrict(_isStrict); quercus.setLooseParse(_isLooseParse); quercus.setPageCacheSize(_pageCacheSize); quercus.setRegexpCacheSize(_regexpCacheSize); quercus.setConnectionPool(_isConnectionPool); if (_dependencyCheckInterval != null) { quercus.setDependencyCheckInterval(_dependencyCheckInterval); } if (_iniPath != null) { Path path = null; if (_iniPath.startsWith("/") || _iniPath.contains(":")) { // php/2026 path = getQuercus().getPwd().lookup(_iniPath); } else { String realPath = getServletContext().getRealPath(_iniPath); if (realPath != null) { path = getQuercus().getPwd().lookup(realPath); } } if (path != null) { quercus.setIniFile(path); } } else { String realPath = getServletContext().getRealPath("WEB-INF/php.ini"); if (realPath != null) { quercus.setIniFile(getQuercus().getPwd().lookup(realPath)); } } if (_scriptEncoding != null) quercus.setScriptEncoding(_scriptEncoding); if (_mysqlVersion != null) quercus.setMysqlVersion(_mysqlVersion); if (_phpVersion != null) quercus.setPhpVersion(_phpVersion); for (QuercusModule module : _moduleList) { quercus.addInitModule(module); } for (PhpClassConfig cls : _classList) { quercus.addJavaClass(cls.getName(), cls.getType()); } for (PhpClassConfig cls : _classImplList) { quercus.addImplClass(cls.getName(), cls.getType()); } for (PhpIni ini : _phpIniList) { for (Map.Entry<String, String> entry : ini.getPropertyMap().entrySet()) { quercus.setIni(entry.getKey(), entry.getValue()); } } for (ServerEnv serverEnv : _serverEnvList) { for (Map.Entry<String, String> entry : serverEnv.getPropertyMap().entrySet()) { quercus.setServerEnv(entry.getKey(), entry.getValue()); } } _impl.init(config); long end = CurrentTime.getCurrentTime(); log.info(L.l("Quercus finished initialization in {0}ms", end - start)); }