/** * Copyright (c) 2014, the Railo Company Ltd. * Copyright (c) 2015, Lucee Assosication Switzerland * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ package lucee.loader.engine; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.lang.instrument.Instrumentation; import java.net.URL; import java.util.Map; import java.util.TimeZone; import javax.script.ScriptEngineFactory; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import lucee.Info; import lucee.loader.osgi.BundleCollection; import lucee.runtime.CFMLFactory; import lucee.runtime.PageContext; import lucee.runtime.config.Config; import lucee.runtime.config.ConfigServer; import lucee.runtime.config.ConfigWeb; import lucee.runtime.config.Identification; import lucee.runtime.config.Password; import lucee.runtime.exp.PageException; import lucee.runtime.util.Cast; import lucee.runtime.util.ClassUtil; import lucee.runtime.util.Creation; import lucee.runtime.util.DBUtil; import lucee.runtime.util.Decision; import lucee.runtime.util.Excepton; import lucee.runtime.util.HTMLUtil; import lucee.runtime.util.HTTPUtil; import lucee.runtime.util.IO; import lucee.runtime.util.ListUtil; import lucee.runtime.util.ORMUtil; import lucee.runtime.util.Operation; import lucee.runtime.util.ResourceUtil; import lucee.runtime.util.Strings; import lucee.runtime.util.SystemUtil; import lucee.runtime.util.TemplateUtil; import lucee.runtime.util.ZipUtil; import lucee.runtime.video.VideoUtil; import org.osgi.framework.BundleContext; /** * wrapper for a CFMlEngine */ public class CFMLEngineWrapper implements CFMLEngine { private CFMLEngine engine; /** * constructor of the class * * @param engine */ public CFMLEngineWrapper(final CFMLEngine engine) { this.engine = engine; } @Override public void addServletConfig(final ServletConfig config) throws ServletException { engine.addServletConfig(config); } @Override public void service(final HttpServlet servlet, final HttpServletRequest req, final HttpServletResponse rsp) throws ServletException, IOException { engine.service(servlet, req, rsp); } @Override public void serviceCFML(final HttpServlet servlet, final HttpServletRequest req, final HttpServletResponse rsp) throws ServletException, IOException { engine.serviceCFML(servlet, req, rsp); } @Override public void serviceAMF(final HttpServlet servlet, final HttpServletRequest req, final HttpServletResponse rsp) throws ServletException, IOException { engine.serviceAMF(servlet, req, rsp); } @Override public void serviceFile(final HttpServlet servlet, final HttpServletRequest req, final HttpServletResponse rsp) throws ServletException, IOException { engine.serviceFile(servlet, req, rsp); } @Override public void serviceRest(final HttpServlet servlet, final HttpServletRequest req, final HttpServletResponse rsp) throws ServletException, IOException { engine.serviceRest(servlet, req, rsp); } @Override public String getVersion() { return engine.getInfo().getVersion().toString(); } @Override public String getUpdateType() { return engine.getUpdateType(); } @Override public URL getUpdateLocation() { return engine.getUpdateLocation(); } @Override public Identification getIdentification() { return engine.getIdentification(); } @Override public boolean can(final int type, final Password password) { return engine.can(type, password); } @Override public CFMLEngineFactory getCFMLEngineFactory() { return engine.getCFMLEngineFactory(); } @Override public void reset() { engine.reset(); } @Override public void reset(final String configId) { engine.reset(configId); } public void setEngine(final CFMLEngine engine) { this.engine = engine; } public boolean isIdentical(final CFMLEngine engine) { return this.engine == engine; } @Override public Cast getCastUtil() { return engine.getCastUtil(); } @Override public Operation getOperatonUtil() { return engine.getOperatonUtil(); } @Override public Decision getDecisionUtil() { return engine.getDecisionUtil(); } @Override public Excepton getExceptionUtil() { return engine.getExceptionUtil(); } @Override public Creation getCreationUtil() { return engine.getCreationUtil(); } @Override public Object getJavaProxyUtil() {// FUTURE return JavaProxyUtil return engine.getJavaProxyUtil(); } @Override public IO getIOUtil() { return engine.getIOUtil(); } @Override public CFMLFactory getCFMLFactory(final ServletConfig srvConfig, final HttpServletRequest req) throws ServletException { return engine.getCFMLFactory(srvConfig, req); } @Override public Object getFDController() { return engine.getFDController(); } @Override public HTTPUtil getHTTPUtil() { return engine.getHTTPUtil(); } @Override public ResourceUtil getResourceUtil() { return engine.getResourceUtil(); } @Override public PageContext getThreadPageContext() { return engine.getThreadPageContext(); } @Override public Config getThreadConfig() { return engine.getThreadConfig(); } @Override public VideoUtil getVideoUtil() { return engine.getVideoUtil(); } @Override public ZipUtil getZipUtil() { return engine.getZipUtil(); } @Override public Strings getStringUtil() { return engine.getStringUtil(); } /*public String getState() { return engine.getInfo().getStateAsString(); }*/ /** * this interface is new to this class and not offically part of Lucee 3.x, * do not use outside the loader * * @param other * @param checkReferenceEqualityOnly * @return is equal to given engine */ public boolean equalTo(CFMLEngine other, final boolean checkReferenceEqualityOnly) { while (other instanceof CFMLEngineWrapper) other = ((CFMLEngineWrapper) other).engine; if (checkReferenceEqualityOnly) return engine == other; return engine.equals(other); } @Override public void cli(final Map<String, String> config, final ServletConfig servletConfig) throws IOException, JspException, ServletException { engine.cli(config, servletConfig); } @Override public void registerThreadPageContext(final PageContext pc) { engine.registerThreadPageContext(pc); } @Override public ConfigServer getConfigServer(final Password password) throws PageException { return engine.getConfigServer(password); } @Override public ConfigServer getConfigServer(final String key, final long timeNonce) throws PageException { return engine.getConfigServer(key, timeNonce); } @Override public long uptime() { return engine.uptime(); } @Override public Info getInfo() { return engine.getInfo(); } @Override public BundleContext getBundleContext() { return engine.getBundleContext(); } @Override public ClassUtil getClassUtil() { return engine.getClassUtil(); } /*@Override public XMLUtil getXMLUtil() { return engine.getXMLUtil(); }*/ @Override public ScriptEngineFactory getScriptEngineFactory(final int dialect) { return engine.getScriptEngineFactory(dialect); } @Override public ScriptEngineFactory getTagEngineFactory(final int dialect) { return engine.getTagEngineFactory(dialect); } @Override public ServletConfig[] getServletConfigs() { return engine.getServletConfigs(); } @Override public ListUtil getListUtil() { return engine.getListUtil(); } @Override public DBUtil getDBUtil() { return engine.getDBUtil(); } @Override public ORMUtil getORMUtil() { return engine.getORMUtil(); } @Override public TemplateUtil getTemplateUtil() { return engine.getTemplateUtil(); } @Override public PageContext createPageContext(final File contextRoot, final String host, final String scriptName, final String queryString, final Cookie[] cookies, final Map<String, Object> headers, final Map<String, String> parameters, final Map<String, Object> attributes, final OutputStream os, final long timeout, final boolean register) throws ServletException { return engine.createPageContext(contextRoot, host, scriptName, queryString, cookies, headers, parameters, attributes, os, timeout, register); } @Override public void releasePageContext(final PageContext pc, final boolean unregister) { engine.releasePageContext(pc, unregister); } @Override public ConfigWeb createConfig(final File contextRoot, final String host, final String scriptName) throws ServletException { return engine.createConfig(contextRoot, host, scriptName); } @Override public BundleCollection getBundleCollection() { return engine.getBundleCollection(); } @Override public HTMLUtil getHTMLUtil() { return engine.getHTMLUtil(); } @Override public TimeZone getThreadTimeZone() { return engine.getThreadTimeZone(); } @Override public SystemUtil getSystemUtil() { return engine.getSystemUtil(); } @Override public Instrumentation getInstrumentation() { return engine.getInstrumentation(); } }