use of lucee.commons.io.res.Resource in project Lucee by lucee.
the class ResourceUtil method toResourceExisting.
public static Resource toResourceExisting(Config config, String path) throws ExpressionException {
path = path.replace('\\', '/');
Resource res = config.getResource(path);
if (res.exists())
return res;
throw new ExpressionException("file or directory " + path + " not exist");
}
use of lucee.commons.io.res.Resource in project Lucee by lucee.
the class ResourceUtil method toResourceExisting.
public static Resource toResourceExisting(PageContext pc, String path, boolean allowRealpath) throws ExpressionException {
path = path.replace('\\', '/');
Resource res = pc.getConfig().getResource(path);
if (res.exists())
return res;
else if (!allowRealpath)
throw new ExpressionException("file or directory " + path + " not exist");
if (res.isAbsolute() && res.exists()) {
return res;
}
if (StringUtil.startsWith(path, '/')) {
PageContextImpl pci = (PageContextImpl) pc;
ConfigWebImpl cwi = (ConfigWebImpl) pc.getConfig();
PageSource[] sources = cwi.getPageSources(pci, pc.getApplicationContext().getMappings(), path, false, pci.useSpecialMappings(), true);
if (!ArrayUtil.isEmpty(sources)) {
for (int i = 0; i < sources.length; i++) {
if (sources[i].exists())
return sources[i].getResource();
}
}
}
res = getRealResource(pc, path, res);
if (res.exists())
return res;
throw new ExpressionException("file or directory " + path + " not exist");
}
use of lucee.commons.io.res.Resource in project Lucee by lucee.
the class ResourceUtil method toResourceNotExisting.
public static Resource toResourceNotExisting(PageContext pc, String destination, boolean allowRealpath, boolean checkComponentMappings) {
destination = destination.replace('\\', '/');
Resource res = pc.getConfig().getResource(destination);
if (!allowRealpath || res.exists()) {
return res;
}
boolean isUNC;
if (!(isUNC = isUNCPath(destination)) && StringUtil.startsWith(destination, '/')) {
PageContextImpl pci = (PageContextImpl) pc;
ConfigWebImpl cwi = (ConfigWebImpl) pc.getConfig();
PageSource[] sources = cwi.getPageSources(pci, pc.getApplicationContext().getMappings(), destination, false, pci.useSpecialMappings(), SystemUtil.isWindows(), checkComponentMappings);
if (!ArrayUtil.isEmpty(sources)) {
for (int i = 0; i < sources.length; i++) {
res = sources[i].getResource();
if (res != null)
return res;
}
}
// Resource res2 = pc.getPhysical(destination,SystemUtil.isWindows());
// if(res2!=null) return res2;
}
if (isUNC) {
res = pc.getConfig().getResource(destination.replace('/', '\\'));
} else if (!destination.startsWith(".."))
res = pc.getConfig().getResource(destination);
if (res != null && res.isAbsolute())
return res;
return getRealResource(pc, destination, res);
}
use of lucee.commons.io.res.Resource in project Lucee by lucee.
the class ResourceUtil method toResourceExistingParent.
public static Resource toResourceExistingParent(PageContext pc, String destination, boolean allowRealpath) throws ExpressionException {
destination = destination.replace('\\', '/');
Resource res = pc.getConfig().getResource(destination);
// not allow realpath
if (!allowRealpath) {
if (res.exists() || parentExists(res))
return res;
throw new ExpressionException("parent directory " + res.getParent() + " for file " + destination + " doesn't exist");
}
// allow realpath
if (res.isAbsolute() && (res.exists() || parentExists(res))) {
return res;
}
if (StringUtil.startsWith(destination, '/')) {
PageContextImpl pci = (PageContextImpl) pc;
ConfigWebImpl cwi = (ConfigWebImpl) pc.getConfig();
PageSource[] sources = cwi.getPageSources(pci, pc.getApplicationContext().getMappings(), destination, false, pci.useSpecialMappings(), true);
// Resource[] reses = cwi.getPhysicalResourcesX(pc,pc.getApplicationContext().getMappings(),destination,false,pci.useSpecialMappings(),true);
if (!ArrayUtil.isEmpty(sources)) {
for (int i = 0; i < sources.length; i++) {
if (sources[i].exists() || parentExists(sources[i])) {
res = sources[i].getResource();
if (res != null)
return res;
}
}
}
}
res = getRealResource(pc, destination, res);
if (res != null && (res.exists() || parentExists(res)))
return res;
throw new ExpressionException("parent directory " + res.getParent() + " for file " + destination + " doesn't exist");
}
use of lucee.commons.io.res.Resource in project Lucee by lucee.
the class ResourceUtil method _check.
private static Resource _check(Resource file) {
// todo cascade durch while ersetzten
Resource parent = file.getParentResource();
if (parent == null)
return file;
if (!parent.exists()) {
Resource op = parent;
parent = _check(parent);
if (op == parent)
return file;
if ((file = parent.getRealResource(file.getName())).exists())
return file;
}
String[] files = parent.list();
if (files == null)
return file;
String name = file.getName();
for (int i = 0; i < files.length; i++) {
if (name.equalsIgnoreCase(files[i]))
return parent.getRealResource(files[i]);
}
return file;
}
Aggregations