コード例 #1
0
ファイル: QuercusServlet.java プロジェクト: ckaestne/varex2
 /** Closes the servlet instance. */
 @Override
 public void destroy() {
   _impl.destroy();
 }
コード例 #2
0
ファイル: QuercusServlet.java プロジェクト: ckaestne/varex2
 /** Service. */
 @Override
 public void service(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   _impl.service(request, response);
 }
コード例 #3
0
ファイル: QuercusServlet.java プロジェクト: ckaestne/varex2
  /** Returns the Quercus instance. */
  private QuercusContext getQuercus() {
    if (_quercus == null) _quercus = _impl.getQuercus();

    return _quercus;
  }
コード例 #4
0
ファイル: QuercusServlet.java プロジェクト: ckaestne/varex2
  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));
  }