Search in sources :

Example 1 with CacheException

use of lucee.commons.io.cache.exp.CacheException in project Lucee by lucee.

the class CacheUtil method getDefault.

/**
 * get the default cache for a certain type, also check definitions in application context (application . cfc/cfapplication)
 * @param pc current PageContext
 * @param type default type -> Config.CACHE_DEFAULT_...
 * @return matching cache
 * @throws IOException
 */
public static Cache getDefault(PageContext pc, int type) throws IOException {
    // get default from application conetxt
    String name = pc != null ? pc.getApplicationContext().getDefaultCacheName(type) : null;
    if (!StringUtil.isEmpty(name)) {
        Cache cc = getCache(pc, name, null);
        if (cc != null)
            return cc;
    }
    // get default from config
    Config config = ThreadLocalPageContext.getConfig(pc);
    CacheConnection cc = ((ConfigImpl) config).getCacheDefaultConnection(type);
    if (cc == null)
        throw new CacheException("there is no default " + toStringType(type, "") + " cache defined, you need to define this default cache in the Lucee Administrator");
    return cc.getInstance(config);
}
Also used : CacheException(lucee.commons.io.cache.exp.CacheException) Config(lucee.runtime.config.Config) ConfigImpl(lucee.runtime.config.ConfigImpl) Cache(lucee.commons.io.cache.Cache)

Example 2 with CacheException

use of lucee.commons.io.cache.exp.CacheException in project Lucee by lucee.

the class CacheSetProperties method getCaches.

private static CacheConnection[] getCaches(PageContext pc, String cacheName) throws CacheException {
    ConfigImpl config = (ConfigImpl) pc.getConfig();
    if (StringUtil.isEmpty(cacheName)) {
        return new CacheConnection[] { config.getCacheDefaultConnection(Config.CACHE_TYPE_OBJECT), config.getCacheDefaultConnection(Config.CACHE_TYPE_TEMPLATE) };
    // MUST which one is first
    }
    ArrayList<CacheConnection> list = new ArrayList<CacheConnection>();
    String name;
    String[] names = ListUtil.listToStringArray(cacheName, ',');
    for (int i = 0; i < names.length; i++) {
        name = names[i].trim().toLowerCase();
        if (name.equalsIgnoreCase("template"))
            list.add(config.getCacheDefaultConnection(Config.CACHE_TYPE_TEMPLATE));
        else if (name.equalsIgnoreCase("object"))
            list.add(config.getCacheDefaultConnection(Config.CACHE_TYPE_OBJECT));
        else {
            CacheConnection cc = config.getCacheConnections().get(name);
            if (cc == null)
                throw new CacheException("there is no cache defined with name [" + name + "]");
            list.add(cc);
        }
    }
    return list.toArray(new CacheConnection[list.size()]);
}
Also used : CacheException(lucee.commons.io.cache.exp.CacheException) ArrayList(java.util.ArrayList) CacheConnection(lucee.runtime.cache.CacheConnection) ConfigImpl(lucee.runtime.config.ConfigImpl)

Aggregations

CacheException (lucee.commons.io.cache.exp.CacheException)2 ConfigImpl (lucee.runtime.config.ConfigImpl)2 ArrayList (java.util.ArrayList)1 Cache (lucee.commons.io.cache.Cache)1 CacheConnection (lucee.runtime.cache.CacheConnection)1 Config (lucee.runtime.config.Config)1