Search in sources :

Example 36 with PageContext

use of lucee.runtime.PageContext in project Lucee by lucee.

the class GatewayEngineImpl method call.

public Object call(String cfcPath, String id, String functionName, Struct arguments, boolean cfcPeristent, Object defaultValue) throws PageException {
    String requestURI = toRequestURI(cfcPath);
    PageContext oldPC = ThreadLocalPageContext.get();
    PageContextImpl pc = null;
    try {
        pc = createPageContext(requestURI, id, functionName, arguments, cfcPeristent, true);
        String ext = ResourceUtil.getExtension(cfcPath, null);
        ConfigWeb config = (ConfigWeb) ThreadLocalPageContext.getConfig();
        int dialect = ext == null ? CFMLEngine.DIALECT_CFML : config.getFactory().toDialect(ext);
        // ThreadLocalPageContext.register(pc);
        Component cfc = getCFC(pc, requestURI);
        if (cfc.containsKey(functionName)) {
            if (dialect == CFMLEngine.DIALECT_LUCEE)
                pc.execute(requestURI, true, false);
            else
                pc.executeCFML(requestURI, true, false);
            // Result
            return pc.variablesScope().get(AMF_FORWARD, null);
        }
    } finally {
        CFMLFactory f = config.getFactory();
        f.releaseLuceePageContext(pc, true);
        ThreadLocalPageContext.register(oldPC);
    }
    return defaultValue;
}
Also used : ThreadLocalPageContext(lucee.runtime.engine.ThreadLocalPageContext) PageContext(lucee.runtime.PageContext) CFMLFactory(lucee.runtime.CFMLFactory) PageContextImpl(lucee.runtime.PageContextImpl) Component(lucee.runtime.Component) ConfigWeb(lucee.runtime.config.ConfigWeb)

Example 37 with PageContext

use of lucee.runtime.PageContext in project Lucee by lucee.

the class GatewayEngineImpl method getComponent.

public Object getComponent(String cfcPath, String id) throws PageException {
    String requestURI = toRequestURI(cfcPath);
    PageContext oldPC = ThreadLocalPageContext.get();
    PageContextImpl pc = null;
    try {
        pc = createPageContext(requestURI, id, "init", null, false, true);
        // ThreadLocalPageContext.register(pc);
        return getCFC(pc, requestURI);
    } finally {
        CFMLFactory f = config.getFactory();
        f.releaseLuceePageContext(pc, true);
        ThreadLocalPageContext.register(oldPC);
    }
}
Also used : ThreadLocalPageContext(lucee.runtime.engine.ThreadLocalPageContext) PageContext(lucee.runtime.PageContext) CFMLFactory(lucee.runtime.CFMLFactory) PageContextImpl(lucee.runtime.PageContextImpl)

Example 38 with PageContext

use of lucee.runtime.PageContext in project Lucee by lucee.

the class ComponentProvider method invokeMethod.

@Override
protected Object invokeMethod(MessageContext mc, Method method, Object trg, Object[] args) throws Exception {
    PageContext pc = (PageContext) mc.getProperty(Constants.PAGE_CONTEXT);
    Component c = (Component) mc.getProperty(Constants.COMPONENT);
    RPCServer server = RPCServer.getInstance(pc.getId(), pc, pc.getServletContext());
    // TypeMappingUtil.getServerTypeMapping(server.getEngine().getTypeMappingRegistry());
    TypeMapping tm = mc.getTypeMapping();
    return AxisCaster.toAxisType(tm, c.call(pc, method.getName(), toLuceeType(pc, args)), null);
}
Also used : TypeMapping(javax.xml.rpc.encoding.TypeMapping) PageContext(lucee.runtime.PageContext) Component(lucee.runtime.Component)

Example 39 with PageContext

use of lucee.runtime.PageContext in project Lucee by lucee.

the class CreationImpl method createPageContext.

@Override
public PageContext createPageContext(HttpServletRequest req, HttpServletResponse rsp, OutputStream out) {
    Config config = ThreadLocalPageContext.getConfig();
    if (!(config instanceof ConfigWeb))
        throw new RuntimeException("need a web context to create a PageContext");
    CFMLFactory factory = ((ConfigWeb) config).getFactory();
    return (PageContext) factory.getPageContext(factory.getServlet(), req, rsp, null, false, -1, false);
}
Also used : ServletConfig(javax.servlet.ServletConfig) Config(lucee.runtime.config.Config) CFMLFactory(lucee.runtime.CFMLFactory) PageContext(lucee.runtime.PageContext) ThreadLocalPageContext(lucee.runtime.engine.ThreadLocalPageContext) ConfigWeb(lucee.runtime.config.ConfigWeb)

Example 40 with PageContext

use of lucee.runtime.PageContext in project Lucee by lucee.

the class FTPResource method setLastModified.

@Override
public boolean setLastModified(long time) {
    // if(isRoot()) return false;
    FTPResourceClient client = null;
    try {
        provider.lock(this);
        client = provider.getClient(data);
        PageContext pc = ThreadLocalPageContext.get();
        Calendar c = JREDateTimeUtil.getThreadCalendar();
        if (pc != null)
            c.setTimeZone(pc.getTimeZone());
        c.setTimeInMillis(time);
        FTPFile file = client.getFTPFile(this);
        if (file == null)
            return false;
        file.setTimestamp(c);
        client.unregisterFTPFile(this);
        return true;
    } catch (IOException e) {
    } finally {
        provider.returnClient(client);
        provider.unlock(this);
    }
    return false;
}
Also used : Calendar(java.util.Calendar) PageContext(lucee.runtime.PageContext) ThreadLocalPageContext(lucee.runtime.engine.ThreadLocalPageContext) FTPFile(org.apache.commons.net.ftp.FTPFile) IOException(java.io.IOException)

Aggregations

PageContext (lucee.runtime.PageContext)44 ThreadLocalPageContext (lucee.runtime.engine.ThreadLocalPageContext)32 PageException (lucee.runtime.exp.PageException)11 Component (lucee.runtime.Component)7 PageContextImpl (lucee.runtime.PageContextImpl)6 IOException (java.io.IOException)5 Key (lucee.runtime.type.Collection.Key)5 Pair (lucee.commons.lang.Pair)4 ConfigWeb (lucee.runtime.config.ConfigWeb)4 Entry (java.util.Map.Entry)3 CFMLEngine (lucee.loader.engine.CFMLEngine)3 CFMLFactory (lucee.runtime.CFMLFactory)3 CFMLFactoryImpl (lucee.runtime.CFMLFactoryImpl)3 ConfigWebImpl (lucee.runtime.config.ConfigWebImpl)3 ArrayList (java.util.ArrayList)2 Cookie (javax.servlet.http.Cookie)2 TypeMapping (javax.xml.rpc.encoding.TypeMapping)2 DevNullOutputStream (lucee.commons.io.DevNullOutputStream)2 ComponentScope (lucee.runtime.ComponentScope)2 Config (lucee.runtime.config.Config)2