public int compare(FileObject o1, FileObject o2) { if (o1.getLastModifiedTime() > o2.getLastModifiedTime()) { return -1; } else if (o1.getLastModifiedTime() < o2.getLastModifiedTime()) { return 1; } return 0; }
private void resolverScanPath() { List<FileObject> classPaths = new ArrayList<FileObject>(); for (String filePath : allScanningPath) { FileObject fileObject = VFS.resolveFile(filePath); classPaths.add(fileObject); long modifiedTime = fileObject.getLastModifiedTime(); fileDateMap.put(fileObject.getAbsolutePath(), modifiedTime); } resolveClassPaths(classPaths); }
public long getLastModified(Resource resource) { long lastModifiedTime = VFS.resolveFile(resource.getName()) .getLastModifiedTime(); resourceModifiedTimeMap.put(resource.getName(), lastModifiedTime); return lastModifiedTime; }
public long getLastModified(Resource resource) { long lastModifiedTime = VFS.resolveFile(resource.getName()) .getLastModifiedTime(); resourceModifiedTimeMap.put(resource.getName(), lastModifiedTime); return lastModifiedTime; }
public boolean isSourceModified(Resource resource) { Long oldTime = resourceModifiedTimeMap.get(resource.getName()); if (oldTime == null || oldTime != getLastModified(resource)) { return true; } long lastModifiedTime = VFS.resolveFile(resource.getName()) .getLastModifiedTime(); return oldTime == lastModifiedTime; }
public boolean isSourceModified(Resource resource) { Long oldTime = resourceModifiedTimeMap.get(resource.getName()); if (oldTime == null || oldTime != getLastModified(resource)) { return true; } long lastModifiedTime = VFS.resolveFile(resource.getName()) .getLastModifiedTime(); return oldTime == lastModifiedTime; }
private synchronized long getJsLastModifiedSign(boolean isDebug) { long time = 0; for (UIComponent component : uiComponentManager.getHealthUiComponents()) { String[] paths = uiComponentManager.getComponentJsArray(component, isDebug); if (paths != null) { for (String path : paths) { FileObject fileObject = fullContextFileRepository.getFileObject(path); if (fileObject.isExist()) { time += fileObject.getLastModifiedTime(); time += path.hashCode(); } else { throw new RuntimeException("不能找到资源文件:" + path); } } } } return time; }
String ims = request.getHeader("If-Modified-Since"); if (ims != null && ims.length() > 0) { if (ims.equals(new Date(fileObject.getLastModifiedTime()) .toGMTString())) { response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); String dateString = new Date(fileObject.getLastModifiedTime()) .toGMTString(); response.setStatus(HttpServletResponse.SC_OK);
private long getCssLastModifiedSign(boolean isDebug) { long time = 0; for (UIComponent component : uiComponentManager.getHealthUiComponents()) { String[] paths = uiComponentManager.getComponentCssArray(component, isDebug); if (paths != null) { for (String path : paths) { FileObject fileObject = fullContextFileRepository.getFileObject(path); if (fileObject.isExist()) { time += fileObject.getLastModifiedTime(); time += path.hashCode(); } else { throw new RuntimeException("不能找到资源文件:" + path); } } } } return time; } }
private void refreshScanPath() { List<FileObject> classPaths = new ArrayList<FileObject>(); for (String filePath : allScanningPath) { FileObject fileObject = VFS.resolveFile(filePath); Long lastModifiedTime = fileDateMap.get(fileObject .getAbsolutePath()); long modifiedTime = fileObject.getLastModifiedTime(); if (lastModifiedTime.longValue() != modifiedTime || !fileObject.isInPackage()) { fileDateMap.put(fileObject.getAbsolutePath(), modifiedTime); if (fileObject.isExist()) { classPaths.add(fileObject); } } } resolveClassPaths(classPaths); change(); }
/** * 文件存在并且不在忽略处理列表中,再交给各个文件处理器进行处理。 * * @param fileObject */ private synchronized void processFile(FileObject fileObject) { if (fileObject.isExist()) { for (FileProcessor fileProcessor : fileProcessorList) { if (fileProcessor.isMatch(fileObject)) { Long lastModifiedTime = fileDateMap.get(fileObject.getAbsolutePath().toString()); long modifiedTime = fileObject.getLastModifiedTime(); if (lastModifiedTime == null) {// 说明是第一次发现 fileDateMap.put(fileObject, modifiedTime); addFile(fileObject, fileProcessor); } else if (lastModifiedTime.longValue() != modifiedTime) { changeFile(fileObject, fileProcessor); fileDateMap.put(fileObject, modifiedTime); } else { noChangeFile(fileObject, fileProcessor); } } } } }
String ims = request.getHeader("If-Modified-Since"); if (ims != null && ims.length() > 0) { if (ims.equals(new Date(fileObject.getLastModifiedTime()) .toGMTString())) { response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); String dateString = new Date(fileObject.getLastModifiedTime()) .toGMTString(); response.setStatus(HttpServletResponse.SC_OK);
public static Template loadComponent(TemplateEngineDefault engine, FileObject fileObject) throws Exception { InputStream inputStream = fileObject.getInputStream(); try { String content = IOUtils.readFromInputStream(inputStream, engine.getEncode()); return loadComponent(engine, fileObject.getPath(), fileObject.getAbsolutePath(), fileObject.getLastModifiedTime(), content); } finally { if (inputStream != null) { inputStream.close(); } } } }
/** * 文件存在并且不在忽略处理列表中,再交给各个文件处理器进行处理。 * * @param fileObject */ private synchronized void processFile(FileObject fileObject) { if (fileObject.isExist()) { String absolutePath = fileObject.getAbsolutePath(); Long lastModifiedTime = fileDateMap.get(absolutePath); long modifiedTime = fileObject.getLastModifiedTime(); for (FileProcessor fileProcessor : fileProcessorList) { if (fileProcessor.isMatch(fileObject)) { if (lastModifiedTime == null) {// 说明是第一次发现 addFile(fileObject, fileProcessor); } else if (lastModifiedTime.longValue() != modifiedTime) { changeFile(absolutePath, fileObject, fileProcessor); } else { noChangeFile(fileObject, fileProcessor); } } } fileDateMap.put(absolutePath, modifiedTime); fileObjectCaches.put(absolutePath, fileObject); } }
initDataProcessor.addInitDatas(initDatas); caches.put(fileObject.getAbsolutePath(), initDatas); initDataProcessor.registerModifiedTime(initDatas, fileObject.getLastModifiedTime()); LOGGER.logMessage(LogLevel.INFO, "读取表格初始化数据init文件{0}完毕", fileObject.getAbsolutePath().toString());
public void process() { XStream stream = XStreamFactory .getXStream(DataBaseUtil.DATABASE_XSTREAM); for (FileObject fileObject : deleteList) { LOGGER.logMessage(LogLevel.INFO, "正在移除table文件[{0}]", fileObject.getAbsolutePath()); Tables tables = (Tables) caches.get(fileObject.getAbsolutePath()); if (tables != null) { tableProcessor.removeTables(tables); caches.remove(fileObject.getAbsolutePath()); } LOGGER.logMessage(LogLevel.INFO, "移除table文件[{0}]结束", fileObject.getAbsolutePath()); } for (FileObject fileObject : changeList) { LOGGER.logMessage(LogLevel.INFO, "正在加载table文件[{0}]", fileObject.getAbsolutePath()); Tables oldTables = (Tables) caches.get(fileObject.getAbsolutePath()); if (oldTables != null) { tableProcessor.removeTables(oldTables); } Tables tables = convertFromXml(stream, fileObject); tableProcessor.addTables(tables); caches.put(fileObject.getAbsolutePath(), tables); tableProcessor.registerModifiedTime(tables, fileObject.getLastModifiedTime()); LOGGER.logMessage(LogLevel.INFO, "加载table文件[{0}]结束", fileObject.getAbsolutePath()); } }
customSqlProcessor.registerModifiedTime(customsqls, fileObject.getLastModifiedTime()); LOGGER.logMessage(LogLevel.INFO, "加载customsql文件[{0}]结束", fileObject.getAbsolutePath());
private Template loadTemplate(FileObject fileObject) throws TemplateException { try { Template templateFromContext = TemplateLoadUtil.loadComponent((TemplateEngineDefault) getTemplateEngine(), fileObject.getPath(), fileObject.getAbsolutePath(), fileObject.getLastModifiedTime(), getResourceContent(fileObject.getPath(), getTemplateEngine().getEncode())); addTemplate(templateFromContext); return templateFromContext; } catch (Exception e) { throw new TemplateException(e); } }
public void process() { XStream stream = XStreamFactory .getXStream(DataBaseUtil.DATABASE_XSTREAM); for (FileObject fileObject : deleteList) { LOGGER.logMessage(LogLevel.INFO, "正在移除view文件[{0}]", fileObject.getAbsolutePath()); Views views = (Views) caches.get(fileObject.getAbsolutePath()); if (views != null) { viewProcessor.removeViews(views); caches.remove(fileObject.getAbsolutePath()); } LOGGER.logMessage(LogLevel.INFO, "移除view文件[{0}]结束", fileObject.getAbsolutePath()); } for (FileObject fileObject : changeList) { LOGGER.logMessage(LogLevel.INFO, "正在加载view文件[{0}]", fileObject.getAbsolutePath()); Views oldViews = (Views) caches.get(fileObject.getAbsolutePath()); if (oldViews != null) { viewProcessor.removeViews(oldViews); } Views views = convertFromXml(stream, fileObject); viewProcessor.addViews(views); caches.put(fileObject.getAbsolutePath(), views); viewProcessor.registerModifiedTime(views, fileObject.getLastModifiedTime()); LOGGER.logMessage(LogLevel.INFO, "加载view文件[{0}]结束", fileObject.getAbsolutePath()); } viewProcessor.dependencyInit(); }