private String getHomeFolderPrefix() { final String homeFolderPath = _homeFolder.getQualifiedPath(); if ("/".equals(homeFolderPath)) { return homeFolderPath; } return homeFolderPath + "/"; }
private RepositoryFile createOrUpdateFile(final RepositoryFolder folder, final String filename, final Action<OutputStream> writeAction) { RepositoryFile file = folder.getFile(filename); if (file == null) { file = folder.createFile(filename, writeAction); } else { file.writeFile(writeAction); } return file; } }
private void deleteChildren(RepositoryFolder folder) { List<RepositoryFile> files = folder.getFiles(); for (RepositoryFile file : files) { file.delete(); } List<RepositoryFolder> folders = folder.getFolders(); for (RepositoryFolder subFolder : folders) { deleteChildren(subFolder); subFolder.delete(); } }
private RepositoryFolder getFolder(RepositoryFolder folder, String substring) { String[] directoryNames = substring.split("/"); for (String directoryName : directoryNames) { RepositoryFolder existingFolder = folder.getFolder(directoryName); if (existingFolder == null) { folder = folder.createFolder(directoryName); } else { folder = existingFolder; } } return folder; }
public static void main(final String[] args) { final DCModuleImpl module = new DCModuleImpl(DataCleanerHome.get()); final DataCleanerConfiguration configuration = Guice.createInjector(module).getInstance(DataCleanerConfiguration.class); final ComponentReferenceDocumentationBuilder docBuilder = new ComponentReferenceDocumentationBuilder(configuration.getEnvironment().getDescriptorProvider()); final RepositoryFolder folder = configuration.getHomeFolder().toRepositoryFolder().getOrCreateFolder("documentation"); // clean up the directory final List<RepositoryFile> htmlFiles = folder.getFiles(null, ".html"); for (final RepositoryFile file : htmlFiles) { file.delete(); } docBuilder.writeDocumentationToRepositoryFolder(folder); System.out.println("Documentation written to: " + folder.getQualifiedPath()); } }
@Override public final boolean containsJob(TenantContext tenantContext, String jobName) { if (!jobName.endsWith(_fileExtension)) { jobName = jobName + _fileExtension; } final RepositoryFile file = tenantContext.getJobFolder().getFile(jobName); if (file == null) { return false; } return true; } }
@Override public RepositoryNode getRepositoryNode(final String path) { RepositoryFolder folder = this; final String[] pathParts = path.split("/"); for (int i = 0; i < pathParts.length - 1; i++) { final String pathPart = pathParts[i]; if (!pathPart.isEmpty()) { folder = folder.getFolder(pathPart); if (folder == null) { return null; } } } final String lastPart = pathParts[pathParts.length - 1]; if (lastPart.isEmpty()) { return folder; } final RepositoryFile file = folder.getFile(lastPart); if (file == null) { return folder.getFolder(lastPart); } return file; } }
@Override public List<DashboardGroup> getDashboardGroups(final TenantIdentifier tenant) { final RepositoryFolder timelinesFolder = _tenantContextFactory.getContext(tenant).getTimelineFolder(); final List<RepositoryFolder> folders = timelinesFolder.getFolders(); final List<DashboardGroup> groups = new ArrayList<DashboardGroup>(); for (RepositoryFolder folder : folders) { final DashboardGroup group = new DashboardGroup(folder.getName()); final RepositoryFile descriptionFile = folder.getFile("description.txt"); if (descriptionFile == null) { logger.debug("No description file for timeline group: {}", group);
if (resultName.endsWith("-latest" + EXTENSION)) { final String jobName = resultName.substring(0, resultName.length() - ("-latest" + EXTENSION).length()); resultFile = resultsFolder.getLatestFile(jobName, EXTENSION); if (resultFile == null) { JobContext job = context.getJob(jobName); resultFile = resultsFolder.getFile(resultName);
/** * Read all files from repository * * @return */ @Override public List<ComponentStoreHolder> getList() { readLock.lock(); final List<ComponentStoreHolder> holderList = new ArrayList<>(); try { List<RepositoryFile> files = componentsFolder.getFiles(); for (RepositoryFile file : files) { file.readFile(new Action<InputStream>() { @Override public void run(InputStream arg) throws Exception { String theString = IOUtils.toString(arg); holderList.add(objectMapper.readValue(theString, ComponentStoreHolder.class)); } }); } } finally { readLock.unlock(); } return holderList; } }
int itemsCount = 0; final List<RepositoryFile> files = folder.getFiles(); for (RepositoryFile file : files) { logger.info("File: " + path + file.getName()); final List<RepositoryFolder> folders = folder.getFolders(); for (RepositoryFolder subFolder : folders) { String name = subFolder.getName(); logger.info("Directory: " + path + name + "/"); addToZipOutput(path + name + "/", subFolder, zipOutput);
@Override public List<TimelineIdentifier> getTimelines(final TenantIdentifier tenant, final DashboardGroup group) { final RepositoryFolder timelinesFolder = _tenantContextFactory.getContext(tenant).getTimelineFolder(); final List<RepositoryFile> files; final String groupName = (group == null ? null : group.getName()); if (group == null || groupName == null || "".equals(groupName)) { files = timelinesFolder.getFiles(); } else { RepositoryFolder groupFolder = timelinesFolder.getFolder(groupName); files = groupFolder.getFiles(); } final List<TimelineIdentifier> result = new ArrayList<TimelineIdentifier>(); for (RepositoryFile file : files) { if (file.getType() == Type.TIMELINE_SPEC) { String timelineName = file.getName().substring(0, file.getName().length() - FileFilters.ANALYSIS_TIMELINE_XML.getExtension().length()); TimelineIdentifier timeline = new TimelineIdentifier(timelineName, file.getQualifiedPath(), group); result.add(timeline); } } return result; }
final RepositoryFile resultFile = resultsFolder.createFile(filename, new Action<OutputStream>() { @Override public void run(OutputStream out) throws Exception {
@Override public TimelineIdentifier createTimelineDefinition(final TenantIdentifier tenant, final TimelineIdentifier timelineIdentifier, final TimelineDefinition timelineDefinition) { final String name = timelineIdentifier.getName(); final DashboardGroup group = timelineIdentifier.getGroup(); final RepositoryFolder timelinesFolder = _tenantContextFactory.getContext(tenant).getTimelineFolder(); final RepositoryFolder folder; if (group == null) { folder = timelinesFolder; } else { folder = timelinesFolder.getFolder(group.getName()); } final String fileName = name + FileFilters.ANALYSIS_TIMELINE_XML.getExtension(); final RepositoryFile file = folder.createFile(fileName, new WriteTimelineAction(timelineDefinition)); logger.info("Created timeline definition in file: {}", file); return new TimelineIdentifier(timelineIdentifier.getName(), file.getQualifiedPath(), group); }
@Override public Boolean removeDashboardGroup(TenantIdentifier tenant, DashboardGroup timelineGroup) { final RepositoryFolder timelineFolder = _tenantContextFactory.getContext(tenant).getTimelineFolder(); final RepositoryFolder groupFolder = timelineFolder.getFolder(timelineGroup.getName()); if (groupFolder == null) { throw new IllegalArgumentException("Timeline group '" + timelineGroup.getName() + "' does not exist."); } try { groupFolder.delete(); return true; } catch (Exception e) { logger.warn("Failed to delete timeline group folder: " + timelineGroup.getName(), e); return false; } } }
public ComponentStoreImpl(Repository repository, String tenantId) { RepositoryFolder tenantFolder = repository.getFolder(tenantId); componentsFolder = tenantFolder.getOrCreateFolder(FOLDER_NAME); }
@Override public RepositoryFolder getTenantRootFolder() { RepositoryFolder tenantFolder = _repository.getFolder(_tenantId); if (tenantFolder == null) { logger.info("Creating tenant folder '{}' for tenant '{}'", _tenantId, _tenantId); tenantFolder = _repository.createFolder(_tenantId); tenantFolder.createFolder(PATH_JOBS); tenantFolder.createFolder(PATH_RESULTS); tenantFolder.createFolder(PATH_TIMELINES); } return tenantFolder; }
/** * Delete file from repository * * @param instanceId * @return */ public boolean remove(String instanceId) { writeLock.lock(); try { RepositoryFile configFile = componentsFolder.getFile(instanceId); if (configFile == null) { logger.info("Component with id: {} is not in store.", instanceId); return false; } configFile.delete(); logger.info("Component {} was removed.", instanceId); } finally { writeLock.unlock(); } return true; }
if (resultName.endsWith("-latest" + EXTENSION)) { final String jobName = resultName.substring(0, resultName.length() - ("-latest" + EXTENSION).length()); resultFile = resultsFolder.getLatestFile(jobName, EXTENSION); if (resultFile == null) { JobContext job = context.getJob(jobName); resultFile = resultsFolder.getFile(resultName);
private void addTimelines(List<TimelineIdentifier> result, DashboardGroup group, RepositoryFolder repositoryFolder) { final String extension = FileFilters.ANALYSIS_TIMELINE_XML.getExtension(); final List<RepositoryFile> files = repositoryFolder.getFiles(null, extension); for (RepositoryFile file : files) { final String timelineName = file.getName().substring(0, file.getName().length() - extension.length()); final TimelineIdentifier timelineIdentifier = new TimelineIdentifier(timelineName, file.getQualifiedPath(), group); result.add(timelineIdentifier); } }