private ProjectManager(KylinConfig config) throws IOException { logger.info("Initializing ProjectManager with metadata url " + config); this.config = config; this.projectMap = new CaseInsensitiveStringCache<ProjectInstance>(config, "project"); this.l2Cache = new ProjectL2Cache(this); this.crud = new CachedCrudAssist<ProjectInstance>(getStore(), ResourceStore.PROJECT_RESOURCE_ROOT, ProjectInstance.class, projectMap) { @Override protected ProjectInstance initEntityAfterReload(ProjectInstance prj, String resourceName) { prj.init(); return prj; } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ProjectSyncListener(), "project"); }
private ProjectInstance reloadProjectAt(String path) throws IOException { ResourceStore store = getStore(); ProjectInstance projectInstance = store.getResource(path, ProjectInstance.class, PROJECT_SERIALIZER); if (projectInstance == null) { logger.warn("reload project at path:" + path + " not found, this:" + this.toString()); return null; } projectInstance.init(); projectMap.putLocal(projectInstance.getName(), projectInstance); clearL2Cache(); return projectInstance; }
private void reloadAllProjects() throws IOException { ResourceStore store = getStore(); List<String> paths = store.collectResourceRecursively(ResourceStore.PROJECT_RESOURCE_ROOT, ".json"); logger.debug("Loading Project from folder " + store.getReadableResourcePath(ResourceStore.PROJECT_RESOURCE_ROOT)); for (String path : paths) { reloadProjectAt(path); } wireProjectAndRealizations(projectMap.values()); logger.debug("Loaded " + projectMap.size() + " Project(s)"); }
private void deleteResource(ProjectInstance proj) throws IOException { ResourceStore store = getStore(); store.deleteResource(proj.getResourcePath()); projectMap.remove(norm(proj.getName())); clearL2Cache(); }
private void saveResource(ProjectInstance prj) throws IOException { ResourceStore store = getStore(); store.putResource(prj.getResourcePath(), prj, PROJECT_SERIALIZER); prj = reloadProjectAt(prj.getResourcePath()); projectMap.put(norm(prj.getName()), prj); // triggers update broadcast clearL2Cache(); }
private ProjectInstance reloadProjectAt(String path) throws IOException { ResourceStore store = getStore(); ProjectInstance projectInstance = store.getResource(path, ProjectInstance.class, PROJECT_SERIALIZER); if (projectInstance == null) { logger.warn("reload project at path:" + path + " not found, this:" + this.toString()); return null; } projectInstance.init(); projectMap.putLocal(projectInstance.getName(), projectInstance); clearL2Cache(); return projectInstance; }
private void reloadAllProjects() throws IOException { ResourceStore store = getStore(); List<String> paths = store.collectResourceRecursively(ResourceStore.PROJECT_RESOURCE_ROOT, ".json"); logger.debug("Loading Project from folder " + store.getReadableResourcePath(ResourceStore.PROJECT_RESOURCE_ROOT)); for (String path : paths) { reloadProjectAt(path); } wireProjectAndRealizations(projectMap.values()); logger.debug("Loaded " + projectMap.size() + " Project(s)"); }
private ProjectManager(KylinConfig config) throws IOException { logger.info("Initializing ProjectManager with metadata url " + config); this.config = config; this.projectMap = new CaseInsensitiveStringCache<ProjectInstance>(config, "project"); this.l2Cache = new ProjectL2Cache(this); this.crud = new CachedCrudAssist<ProjectInstance>(getStore(), ResourceStore.PROJECT_RESOURCE_ROOT, ProjectInstance.class, projectMap) { @Override protected ProjectInstance initEntityAfterReload(ProjectInstance prj, String resourceName) { prj.init(); return prj; } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ProjectSyncListener(), "project"); }
private void deleteResource(ProjectInstance proj) throws IOException { ResourceStore store = getStore(); store.deleteResource(proj.getResourcePath()); projectMap.remove(norm(proj.getName())); clearL2Cache(); }
private void saveResource(ProjectInstance prj) throws IOException { ResourceStore store = getStore(); store.putResource(prj.getResourcePath(), prj, PROJECT_SERIALIZER); prj = reloadProjectAt(prj.getResourcePath()); projectMap.put(norm(prj.getName()), prj); // triggers update broadcast clearL2Cache(); }