Search in sources :

Example 1 with RHExtension

use of lucee.runtime.extension.RHExtension in project Lucee by lucee.

the class Admin method doGetLocalExtensions.

private void doGetLocalExtensions() throws PageException {
    List<RHExtension> locals = RHExtension.toRHExtensions(DeployHandler.getLocalExtensions(config));
    Query qry = RHExtension.toQuery(config, locals.toArray(new RHExtension[locals.size()]));
    pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
}
Also used : RHExtension(lucee.runtime.extension.RHExtension) Query(lucee.runtime.type.Query)

Example 2 with RHExtension

use of lucee.runtime.extension.RHExtension in project Lucee by lucee.

the class XMLConfigAdmin method updateRHExtension.

public void updateRHExtension(Config config, RHExtension rhext, boolean reload) throws PageException {
    ConfigImpl ci = (ConfigImpl) config;
    Log logger = ci.getLog("deploy");
    String type = ci instanceof ConfigWeb ? "web" : "server";
    // load already installed previous version and uninstall the parts no longer needed
    RHExtension existingRH = getRHExtension(ci, rhext.getId(), null);
    if (existingRH != null) {
        // same version
        if (existingRH.getVersion().compareTo(rhext.getVersion()) == 0) {
            removeRHExtension(config, existingRH, rhext, false);
        } else
            removeRHExtension(config, existingRH, rhext, true);
    }
    // INSTALL
    try {
        // boolean clearTags=false,clearFunction=false;
        boolean reloadNecessary = false;
        // store to xml
        BundleDefinition[] existing = _updateExtension(ci, rhext);
        // _storeAndReload();
        // this must happen after "store"
        // clean after populating the new ones
        cleanBundles(rhext, ci, existing);
        // ConfigWebAdmin.updateRHExtension(ci,rhext);
        ZipInputStream zis = new ZipInputStream(IOUtil.toBufferedInputStream(rhext.getExtensionFile().getInputStream()));
        ZipEntry entry;
        String path;
        String fileName;
        while ((entry = zis.getNextEntry()) != null) {
            path = entry.getName();
            fileName = fileName(entry);
            // jars
            if (!entry.isDirectory() && (startsWith(path, type, "jars") || startsWith(path, type, "jar") || startsWith(path, type, "bundles") || startsWith(path, type, "bundle") || startsWith(path, type, "lib") || startsWith(path, type, "libs")) && StringUtil.endsWithIgnoreCase(path, ".jar")) {
                Object obj = XMLConfigAdmin.installBundle(config, zis, fileName, rhext.getVersion(), false, false);
                // jar is not a bundle, only a regular jar
                if (!(obj instanceof BundleFile)) {
                    Resource tmp = (Resource) obj;
                    Resource tmpJar = tmp.getParentResource().getRealResource(ListUtil.last(path, "\\/"));
                    tmp.moveTo(tmpJar);
                    XMLConfigAdmin.updateJar(config, tmpJar, false);
                }
            }
            // flds
            if (!entry.isDirectory() && startsWith(path, type, "flds") && (StringUtil.endsWithIgnoreCase(path, ".fld") || StringUtil.endsWithIgnoreCase(path, ".fldx"))) {
                logger.log(Log.LEVEL_INFO, "extension", "deploy fld " + fileName);
                updateFLD(zis, fileName, false);
                reloadNecessary = true;
            }
            // tlds
            if (!entry.isDirectory() && startsWith(path, type, "tlds") && (StringUtil.endsWithIgnoreCase(path, ".tld") || StringUtil.endsWithIgnoreCase(path, ".tldx"))) {
                logger.log(Log.LEVEL_INFO, "extension", "deploy tld/tldx " + fileName);
                updateTLD(zis, fileName, false);
                reloadNecessary = true;
            }
            // tags
            if (!entry.isDirectory() && startsWith(path, type, "tags")) {
                String sub = subFolder(entry);
                logger.log(Log.LEVEL_INFO, "extension", "deploy tag " + sub);
                updateTag(zis, sub, false);
                // clearTags=true;
                reloadNecessary = true;
            }
            // functions
            if (!entry.isDirectory() && startsWith(path, type, "functions")) {
                String sub = subFolder(entry);
                logger.log(Log.LEVEL_INFO, "extension", "deploy function " + sub);
                updateFunction(zis, sub, false);
                // clearFunction=true;
                reloadNecessary = true;
            }
            // mappings
            if (!entry.isDirectory() && (startsWith(path, type, "archives") || startsWith(path, type, "mappings"))) {
                String sub = subFolder(entry);
                logger.log(Log.LEVEL_INFO, "extension", "deploy mapping " + sub);
                updateArchive(zis, sub, false);
                reloadNecessary = true;
            // clearFunction=true;
            }
            // event-gateway
            if (!entry.isDirectory() && (startsWith(path, type, "event-gateways") || startsWith(path, type, "eventGateways")) && (StringUtil.endsWithIgnoreCase(path, "." + Constants.getCFMLComponentExtension()) || StringUtil.endsWithIgnoreCase(path, "." + Constants.getLuceeComponentExtension()))) {
                String sub = subFolder(entry);
                logger.log(Log.LEVEL_INFO, "extension", "deploy event-gateway " + sub);
                updateEventGateway(zis, sub, false);
            }
            // context
            String realpath;
            if (!entry.isDirectory() && startsWith(path, type, "context") && !StringUtil.startsWith(fileName(entry), '.')) {
                realpath = path.substring(8);
                logger.log(Log.LEVEL_INFO, "extension", "deploy context " + realpath);
                updateContext(zis, realpath, false, false);
            }
            // web contextS
            boolean first;
            if (!entry.isDirectory() && ((first = startsWith(path, type, "webcontexts")) || startsWith(path, type, "web.contexts")) && !StringUtil.startsWith(fileName(entry), '.')) {
                realpath = path.substring(first ? 12 : 13);
                logger.log(Log.LEVEL_INFO, "extension", "deploy webcontext " + realpath);
                updateWebContexts(zis, realpath, false, false);
            }
            // applications
            if (!entry.isDirectory() && (startsWith(path, type, "applications") || startsWith(path, type, "web.applications") || startsWith(path, type, "web")) && !StringUtil.startsWith(fileName(entry), '.')) {
                int index;
                if (startsWith(path, type, "applications"))
                    index = 13;
                else if (startsWith(path, type, "web.applications"))
                    index = 17;
                else
                    // web
                    index = 4;
                realpath = path.substring(index);
                logger.log(Log.LEVEL_INFO, "extension", "deploy application " + realpath);
                updateApplication(zis, realpath, false);
            }
            // configs
            if (!entry.isDirectory() && (startsWith(path, type, "config")) && !StringUtil.startsWith(fileName(entry), '.')) {
                realpath = path.substring(7);
                logger.log(Log.LEVEL_INFO, "extension", "deploy config " + realpath);
                updateConfigs(zis, realpath, false, false);
            }
            // components
            if (!entry.isDirectory() && (startsWith(path, type, "components")) && !StringUtil.startsWith(fileName(entry), '.')) {
                realpath = path.substring(11);
                logger.log(Log.LEVEL_INFO, "extension", "deploy component " + realpath);
                updateComponent(zis, realpath, false, false);
            }
            // plugins
            if (!entry.isDirectory() && (startsWith(path, type, "plugins")) && !StringUtil.startsWith(fileName(entry), '.')) {
                realpath = path.substring(8);
                logger.log(Log.LEVEL_INFO, "extension", "deploy plugin " + realpath);
                updatePlugin(zis, realpath, false);
            }
            zis.closeEntry();
        }
        // load the bundles
        if (rhext.getStartBundles()) {
            rhext.deployBundles(ci);
            BundleInfo[] bfs = rhext.getBundles();
            for (BundleInfo bf : bfs) {
                OSGiUtil.loadBundleFromLocal(bf.getSymbolicName(), bf.getVersion(), false, null);
            }
        }
        // update cache
        if (!ArrayUtil.isEmpty(rhext.getCaches())) {
            Iterator<Map<String, String>> itl = rhext.getCaches().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                if (cd != null && cd.isBundle()) {
                    _updateCache(cd);
                    reloadNecessary = true;
                }
                logger.info("extension", "update cache [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update cache handler
        if (!ArrayUtil.isEmpty(rhext.getCacheHandlers())) {
            Iterator<Map<String, String>> itl = rhext.getCacheHandlers().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                String _id = map.get("id");
                if (!StringUtil.isEmpty(_id) && cd != null && cd.hasClass()) {
                    _updateCacheHandler(_id, cd);
                    reloadNecessary = true;
                }
                logger.info("extension", "update cache handler [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update AMF
        if (!ArrayUtil.isEmpty(rhext.getAMFs())) {
            Iterator<Map<String, String>> itl = rhext.getAMFs().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                if (cd != null && cd.hasClass()) {
                    _updateAMFEngine(cd, map.get("caster"), map.get("configuration"));
                    reloadNecessary = true;
                }
                logger.info("extension", "update AMF engine [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update Search
        if (!ArrayUtil.isEmpty(rhext.getSearchs())) {
            Iterator<Map<String, String>> itl = rhext.getSearchs().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                if (cd != null && cd.hasClass()) {
                    _updateSearchEngine(cd);
                    reloadNecessary = true;
                }
                logger.info("extension", "update search engine [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update Resource
        if (!ArrayUtil.isEmpty(rhext.getResources())) {
            Iterator<Map<String, String>> itl = rhext.getResources().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                String scheme = map.get("scheme");
                if (cd != null && cd.hasClass() && !StringUtil.isEmpty(scheme)) {
                    Struct args = new StructImpl();
                    copyButIgnoreClassDef(map, args);
                    args.remove("scheme");
                    _updateResourceProvider(scheme, cd, args);
                    reloadNecessary = true;
                }
                logger.info("extension", "update resource provider [" + scheme + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update orm
        if (!ArrayUtil.isEmpty(rhext.getOrms())) {
            Iterator<Map<String, String>> itl = rhext.getOrms().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                if (cd != null && cd.hasClass()) {
                    _updateORMEngine(cd);
                    reloadNecessary = true;
                }
                logger.info("extension", "update orm engine [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update monitor
        if (!ArrayUtil.isEmpty(rhext.getMonitors())) {
            Iterator<Map<String, String>> itl = rhext.getMonitors().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                if (cd != null && cd.hasClass()) {
                    _updateMonitorEnabled(true);
                    _updateMonitor(cd, map.get("type"), map.get("name"), true);
                    reloadNecessary = true;
                }
                logger.info("extension", "update monitor engine [" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update jdbc
        if (!ArrayUtil.isEmpty(rhext.getJdbcs())) {
            Iterator<Map<String, String>> itl = rhext.getJdbcs().iterator();
            Map<String, String> map;
            while (itl.hasNext()) {
                map = itl.next();
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                String _label = map.get("label");
                if (cd != null && cd.isBundle()) {
                    _updateJDBCDriver(_label, cd);
                    reloadNecessary = true;
                }
                logger.info("extension", "update JDBC Driver [" + _label + ":" + cd + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // update mapping
        if (!ArrayUtil.isEmpty(rhext.getMappings())) {
            Iterator<Map<String, String>> itl = rhext.getMappings().iterator();
            Map<String, String> map;
            String virtual, physical, archive, primary;
            short inspect;
            int lmode, ltype;
            boolean toplevel, readonly;
            while (itl.hasNext()) {
                map = itl.next();
                virtual = map.get("virtual");
                physical = map.get("physical");
                archive = map.get("archive");
                primary = map.get("primary");
                inspect = ConfigWebUtil.inspectTemplate(map.get("inspect"), Config.INSPECT_UNDEFINED);
                lmode = ConfigWebUtil.toListenerMode(map.get("listener-mode"), -1);
                ltype = ConfigWebUtil.toListenerType(map.get("listener-type"), -1);
                toplevel = Caster.toBooleanValue(map.get("toplevel"), false);
                readonly = Caster.toBooleanValue(map.get("readonly"), false);
                _updateMapping(virtual, physical, archive, primary, inspect, toplevel, lmode, ltype, readonly);
                reloadNecessary = true;
                logger.info("extension", "update Mapping [" + virtual + "]");
            }
        }
        if (!ArrayUtil.isEmpty(rhext.getEventGatewayInstances())) {
            Iterator<Map<String, Object>> itl = rhext.getEventGatewayInstances().iterator();
            Map<String, Object> map;
            while (itl.hasNext()) {
                map = itl.next();
                // id
                String id = Caster.toString(map.get("id"), null);
                // class
                ClassDefinition cd = RHExtension.toClassDefinition(config, map, null);
                // component path
                String cfcPath = Caster.toString(map.get("cfc-path"), null);
                if (StringUtil.isEmpty(cfcPath))
                    cfcPath = Caster.toString(map.get("component-path"), null);
                // listener component path
                String listenerCfcPath = Caster.toString(map.get("listener-cfc-path"), null);
                if (StringUtil.isEmpty(listenerCfcPath))
                    listenerCfcPath = Caster.toString(map.get("listener-component-path"), null);
                // startup mode
                String strStartupMode = Caster.toString(map.get("startup-mode"), "automatic");
                int startupMode = GatewayEntryImpl.toStartup(strStartupMode, GatewayEntryImpl.STARTUP_MODE_AUTOMATIC);
                // read only
                boolean readOnly = Caster.toBooleanValue(map.get("read-only"), false);
                // custom
                Struct custom = Caster.toStruct(map.get("custom"), null);
                if (!StringUtil.isEmpty(id) && (!StringUtil.isEmpty(cfcPath) || (cd != null && cd.hasClass()))) {
                    _updateGatewayEntry(id, cd, cfcPath, listenerCfcPath, startupMode, custom, readOnly);
                }
                logger.info("extension", "update event gateway entry [" + id + "] from extension [" + rhext.getName() + ":" + rhext.getVersion() + "]");
            }
        }
        // reload
        // if(reloadNecessary){
        reloadNecessary = true;
        if (reload && reloadNecessary)
            _storeAndReload();
        else
            _store();
    // }
    } catch (Throwable t) {
        ExceptionUtil.rethrowIfNecessary(t);
        DeployHandler.moveToFailedFolder(rhext.getExtensionFile().getParentResource(), rhext.getExtensionFile());
        try {
            XMLConfigAdmin.removeRHExtension((ConfigImpl) config, rhext.getId(), false);
        } catch (Throwable t2) {
            ExceptionUtil.rethrowIfNecessary(t2);
        }
        throw Caster.toPageException(t);
    }
}
Also used : ZipEntry(java.util.zip.ZipEntry) ClassDefinition(lucee.runtime.db.ClassDefinition) Struct(lucee.runtime.type.Struct) BundleInfo(lucee.runtime.osgi.BundleInfo) BundleFile(lucee.runtime.osgi.BundleFile) Log(lucee.commons.io.log.Log) Resource(lucee.commons.io.res.Resource) BundleDefinition(lucee.runtime.osgi.OSGiUtil.BundleDefinition) RHExtension(lucee.runtime.extension.RHExtension) ZipInputStream(java.util.zip.ZipInputStream) StructImpl(lucee.runtime.type.StructImpl) CreateObject(lucee.runtime.functions.other.CreateObject) Map(java.util.Map) HashMap(java.util.HashMap)

Example 3 with RHExtension

use of lucee.runtime.extension.RHExtension in project Lucee by lucee.

the class XMLConfigAdmin method removeRHExtension.

public void removeRHExtension(String id) throws PageException {
    checkWriteAccess();
    if (StringUtil.isEmpty(id, true))
        return;
    Element extensions = _getRootElement("extensions");
    Element[] children = XMLConfigWebFactory.getChildren(extensions, "rhextension");
    Element child;
    RHExtension rhe;
    for (int i = 0; i < children.length; i++) {
        child = children[i];
        try {
            rhe = new RHExtension(config, child);
        // ed=ExtensionDefintion.getInstance(config,child);
        } catch (Throwable t) {
            ExceptionUtil.rethrowIfNecessary(t);
            continue;
        }
        if (id.equalsIgnoreCase(rhe.getId())) {
            removeRHExtension(config, rhe, null, true);
            extensions.removeChild(child);
        // bundles=RHExtension.toBundleDefinitions(child.getAttribute("bundles"));
        }
    }
}
Also used : RHExtension(lucee.runtime.extension.RHExtension) Element(org.w3c.dom.Element)

Example 4 with RHExtension

use of lucee.runtime.extension.RHExtension in project Lucee by lucee.

the class XMLConfigAdmin method _hasRHExtensions.

private RHExtension _hasRHExtensions(ConfigImpl config, ExtensionDefintion ed) throws PageException {
    Element extensions = _getRootElement("extensions");
    // LuceeHandledExtensions
    Element[] children = XMLConfigWebFactory.getChildren(extensions, "rhextension");
    RHExtension tmp;
    try {
        for (int i = 0; i < children.length; i++) {
            tmp = new RHExtension(config, children[i]);
            if (tmp != null && ed.equals(tmp))
                return tmp;
        }
        return null;
    } catch (Exception e) {
        throw Caster.toPageException(e);
    }
}
Also used : RHExtension(lucee.runtime.extension.RHExtension) Element(org.w3c.dom.Element) FunctionLibException(lucee.transformer.library.function.FunctionLibException) PageException(lucee.runtime.exp.PageException) ConverterException(lucee.runtime.converter.ConverterException) SecurityException(lucee.runtime.exp.SecurityException) TagLibException(lucee.transformer.library.tag.TagLibException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) CFXTagException(lucee.runtime.cfx.CFXTagException) BundleException(org.osgi.framework.BundleException) SAXException(org.xml.sax.SAXException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ClassException(lucee.commons.lang.ClassException) DOMException(org.w3c.dom.DOMException) MalformedURLException(java.net.MalformedURLException) ExpressionException(lucee.runtime.exp.ExpressionException) ApplicationException(lucee.runtime.exp.ApplicationException) HTTPException(lucee.runtime.exp.HTTPException)

Example 5 with RHExtension

use of lucee.runtime.extension.RHExtension in project Lucee by lucee.

the class CFMLEngineImpl method deployBundledExtension.

private void deployBundledExtension(ConfigServerImpl cs) {
    Resource dir = cs.getLocalExtensionProviderDirectory();
    List<ExtensionDefintion> existing = DeployHandler.getLocalExtensions(cs);
    Map<String, ExtensionDefintion> existingMap = new HashMap<String, ExtensionDefintion>();
    {
        Iterator<ExtensionDefintion> it = existing.iterator();
        ExtensionDefintion ed;
        while (it.hasNext()) {
            ed = it.next();
            try {
                existingMap.put(ed.getSource().getName(), ed);
            } catch (ApplicationException e) {
            }
        }
    }
    Log log = cs.getLog("deploy");
    // get the index
    ClassLoader cl = CFMLEngineFactory.getInstance().getCFMLEngineFactory().getClass().getClassLoader();
    InputStream is = cl.getResourceAsStream("extensions/.index");
    if (is == null)
        is = cl.getResourceAsStream("/extensions/.index");
    if (is == null)
        is = SystemUtil.getResourceAsStream(null, "/extensions/.index");
    if (is == null) {
        log.error("extract-extension", "could not found [/extensions/.index] defined in the index in the lucee.jar");
        return;
    }
    try {
        String index = IOUtil.toString(is, CharsetUtil.UTF8);
        log.info("extract-extension", "the following extensions are bundled with the lucee.jar [" + index + "]");
        String[] names = lucee.runtime.type.util.ListUtil.listToStringArray(index, ';');
        String name;
        Resource temp = null;
        RHExtension rhe;
        ExtensionDefintion exist;
        Iterator<ExtensionDefintion> it;
        for (int i = 0; i < names.length; i++) {
            name = names[i];
            if (StringUtil.isEmpty(name, true))
                continue;
            name = name.trim();
            // does it already exist?
            if (existingMap.containsKey(name)) {
                continue;
            }
            is = cl.getResourceAsStream("extensions/" + name);
            if (is == null)
                is = cl.getResourceAsStream("/extensions/" + name);
            if (is == null) {
                log.error("extract-extension", "could not found extension [" + name + "] defined in the index in the lucee.jar");
                continue;
            }
            try {
                temp = SystemUtil.getTempDirectory().getRealResource(name);
                ResourceUtil.touch(temp);
                Util.copy(is, temp.getOutputStream(), false, true);
                rhe = new RHExtension(cs, temp, false);
                ExtensionDefintion alreadyExists = null;
                it = existing.iterator();
                while (it.hasNext()) {
                    exist = it.next();
                    if (exist.equals(rhe)) {
                        alreadyExists = exist;
                        break;
                    }
                }
                String trgName = rhe.getId() + "-" + rhe.getVersion() + ".lex";
                if (alreadyExists == null) {
                    temp.moveTo(dir.getRealResource(trgName));
                    log.info("extract-extension", "added [" + name + "] to [" + dir + "]");
                } else if (!alreadyExists.getSource().getName().equals(trgName)) {
                    log.info("extract-extension", "rename [" + alreadyExists.getSource() + "] to [" + trgName + "]");
                    alreadyExists.getSource().moveTo(alreadyExists.getSource().getParentResource().getRealResource(trgName));
                }
                // now we check all extension name (for extension no longer delivered by lucee)
                it = existing.iterator();
                while (it.hasNext()) {
                    exist = it.next();
                    trgName = exist.getId() + "-" + exist.getVersion() + ".lex";
                    if (!trgName.equals(exist.getSource().getName())) {
                        exist.getSource().moveTo(exist.getSource().getParentResource().getRealResource(trgName));
                        log.info("extract-extension", "rename [" + exist.getSource() + "] to [" + trgName + "]");
                    }
                }
            } finally {
                if (temp != null && temp.exists())
                    temp.delete();
            }
        }
    } catch (Throwable t) {
        ExceptionUtil.rethrowIfNecessary(t);
        log.error("extract-extension", t);
    }
    return;
}
Also used : LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) Log(lucee.commons.io.log.Log) ByteArrayInputStream(java.io.ByteArrayInputStream) ZipInputStream(java.util.zip.ZipInputStream) InputStream(java.io.InputStream) Resource(lucee.commons.io.res.Resource) RHExtension(lucee.runtime.extension.RHExtension) ApplicationException(lucee.runtime.exp.ApplicationException) ExtensionDefintion(lucee.runtime.extension.ExtensionDefintion) Iterator(java.util.Iterator)

Aggregations

RHExtension (lucee.runtime.extension.RHExtension)15 ApplicationException (lucee.runtime.exp.ApplicationException)7 IOException (java.io.IOException)6 HashMap (java.util.HashMap)6 Resource (lucee.commons.io.res.Resource)5 ExpressionException (lucee.runtime.exp.ExpressionException)5 PageException (lucee.runtime.exp.PageException)5 FunctionLibException (lucee.transformer.library.function.FunctionLibException)5 TagLibException (lucee.transformer.library.tag.TagLibException)5 MalformedURLException (java.net.MalformedURLException)4 ClassException (lucee.commons.lang.ClassException)4 SecurityException (lucee.runtime.exp.SecurityException)4 ExtensionDefintion (lucee.runtime.extension.ExtensionDefintion)4 BundleInfo (lucee.runtime.osgi.BundleInfo)4 BundleException (org.osgi.framework.BundleException)4 Element (org.w3c.dom.Element)4 ZipInputStream (java.util.zip.ZipInputStream)3 BundleDefinition (lucee.runtime.osgi.OSGiUtil.BundleDefinition)3 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 UnknownHostException (java.net.UnknownHostException)2