hostexpanddeploygenerator.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 269 行
JAVA
269 行
/* * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Scott Ferguson */package com.caucho.server.host;import com.caucho.config.Config;import com.caucho.config.ConfigELContext;import com.caucho.config.ConfigException;import com.caucho.config.types.RawString;import com.caucho.el.EL;import com.caucho.el.MapVariableResolver;import com.caucho.log.Log;import com.caucho.server.deploy.DeployContainer;import com.caucho.server.deploy.ExpandDeployGenerator;import com.caucho.vfs.Path;import javax.el.ELContext;import javax.el.ELResolver;import java.util.ArrayList;import java.util.logging.Level;import java.util.logging.Logger;/** * The generator for the host deploy */public class HostExpandDeployGenerator extends ExpandDeployGenerator<HostController>{ private static final Logger log = Logger.getLogger(HostExpandDeployGenerator.class.getName()); private final HostExpandDeployGeneratorAdmin _admin = new HostExpandDeployGeneratorAdmin(this); private HostContainer _container; private ArrayList<HostConfig> _hostDefaults = new ArrayList<HostConfig>(); private String _hostName; /** * Creates the new host deploy. */ public HostExpandDeployGenerator(DeployContainer<HostController> container, HostContainer hostContainer) { super(container, hostContainer.getRootDirectory()); _container = hostContainer; } /** * Gets the host container. */ public HostContainer getContainer() { return _container; } /** * Sets the host name. */ public void setHostName(RawString name) { _hostName = name.getValue(); } /** * Gets the host name. */ public String getHostName() { return _hostName; } /** * Sets true for a lazy-init. */ public void setLazyInit(boolean lazyInit) throws ConfigException { log.config("lazy-init is deprecated. Use <startup>lazy</startup> instead."); if (lazyInit) setStartupMode("lazy"); else setStartupMode("automatic"); } /** * Adds a default. */ public void addHostDefault(HostConfig config) { _hostDefaults.add(config); } @Override protected void initImpl() throws ConfigException { super.initImpl(); } @Override protected void startImpl() throws ConfigException { super.startImpl(); _admin.register(); } /** * Returns the log. */ protected Logger getLog() { return log; } /** * Returns the current array of application entries. */ public HostController createController(String name) { // server/13g3 if (name.equals("")) return null; /* if (! isDeployedKey(name)) return null; */ Path rootDirectory = getExpandDirectory().lookup("./" + name); String hostName = name; if ("default".equals(hostName)) hostName = ""; HostController controller = new HostController(hostName, rootDirectory, _container); Path jarPath = getArchiveDirectory().lookup("./" + name + ".jar"); controller.setArchivePath(jarPath); if (rootDirectory.isDirectory() && ! isValidDirectory(rootDirectory, name)) return null; else if (! rootDirectory.isDirectory() && ! jarPath.isFile()) return null; try { String hostNamePattern = getHostName(); if (hostNamePattern != null) { ELContext parentEnv = Config.getEnvironment(); ELResolver resolver = new MapVariableResolver(controller.getVariableMap()); ELContext env = new ConfigELContext(resolver); controller.setHostName(EL.evalString(hostNamePattern, env)); } else controller.setHostName(hostName); controller.addDepend(jarPath); } catch (Throwable e) { log.log(Level.WARNING, e.toString(), e); controller.setConfigException(e); } return controller; } /** * Adds configuration to the current controller */ protected HostController mergeController(HostController controller, String key) { try { Path expandDirectory = getExpandDirectory(); Path rootDirectory = controller.getRootDirectory(); if (! expandDirectory.equals(rootDirectory.getParent())) return controller; controller = super.mergeController(controller, key); controller.setStartupMode(getStartupMode()); for (int i = 0; i < _hostDefaults.size(); i++) controller.addConfigDefault(_hostDefaults.get(i)); } catch (ConfigException e) { log.warning(e.toString()); log.log(Level.FINER, e.toString(), e); controller.setConfigException(e); } catch (Throwable e) { log.log(Level.WARNING, e.toString(), e); controller.setConfigException(e); } return controller; } @Override protected void destroyImpl() { _admin.unregister(); super.destroyImpl(); } public boolean equals(Object o) { if (o == null || ! getClass().equals(o.getClass())) return false; HostExpandDeployGenerator deploy = (HostExpandDeployGenerator) o; Path expandPath = getExpandDirectory(); Path deployExpandPath = deploy.getExpandDirectory(); if (expandPath != deployExpandPath && (expandPath == null || ! expandPath.equals(deployExpandPath))) return false; return true; } public String toString() { return "HostExpandDeployGenerator[" + getExpandDirectory() + "]"; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?