private ResourceAPI createResource(String name, InputStream inputStream) throws RRepositoryException { try { String folderPath = name.substring(0, name.lastIndexOf("/")); Node node = checkFolder(session.getRootNode(), folderPath, true); ArtefactAPI artefact = createArtefactAPI(node, folderPath); if (!(artefact instanceof FolderAPI)) { throw new RepositoryException("Incorrect node type"); } FolderAPI folder = (FolderAPI) artefact; return folder.addResource(name.substring(name.lastIndexOf("/") + 1), inputStream); } catch (RepositoryException e) { throw new RRepositoryException("Cannot add resource " + name, e); } catch (ProjectException e) { throw new RRepositoryException("Cannot add resource " + name, e); } }
for (ArtefactAPI artefactAPI : deployment.getArtefacts()) { if (artefactAPI instanceof FolderAPI) { result.add(createFileData(path + "/" + deployment.getName() + "/" + artefactAPI.getName(), artefactAPI)); } else { for (FolderAPI project : projects) { result.add(createFileData(path + "/" + project.getName(), project));
@Override public List<FileData> listHistory(String name) throws IOException { try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return Collections.emptyList(); } FolderAPI project = (FolderAPI) artefact; List<FileData> result = new ArrayList<>(); if (project.getVersionsCount() > 0) { for (ProjectVersion version : project.getVersions()) { FolderAPI history = project.getVersion(version); result.add(createFileData(name, history)); } } return result; } catch (CommonException e) { throw new IOException(e); } }
comment = ""; Map<String, Object> projectProps = project.getProps(); projectProps.put(ArtefactProperties.VERSION_COMMENT, comment); project.setProps(projectProps); artefact = createResource(resourceName, in); artefact.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1); String folder = foldersIterator.next(); ArtefactAPI artefact = getArtefact(name + "/" + folder); artefact.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1); project.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1);
private void writeFolderToZip(FolderAPI folder, ZipOutputStream zipOutputStream, String pathPrefix) throws IOException, ProjectException { Collection<? extends ArtefactAPI> artefacts = folder.getArtefacts(); for (ArtefactAPI artefact : artefacts) { if (artefact instanceof ResourceAPI) { ZipEntry entry = new ZipEntry(pathPrefix + artefact.getName()); zipOutputStream.putNextEntry(entry); InputStream content = ((ResourceAPI) artefact).getContent(); IOUtils.copy(content, zipOutputStream); content.close(); zipOutputStream.closeEntry(); } else { writeFolderToZip((FolderAPI) artefact, zipOutputStream, pathPrefix + artefact.getName() + "/"); } } }
@Override public FileData checkHistory(String name, String version) throws IOException { if (version == null) { return check(name); } try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return null; } FolderAPI project = (FolderAPI) artefact; FolderAPI history = project.getVersion(new CommonVersionImpl(Integer.parseInt(version))); return createFileData(name, history); } catch (CommonException e) { throw new IOException(e); } }
comment = ""; Map<String, Object> projectProps = project.getProps(); projectProps.put(ArtefactProperties.VERSION_COMMENT, comment); project.setProps(projectProps); artefact = createResource(resourceName, in); artefact.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1); String folder = foldersIterator.next(); ArtefactAPI artefact = getArtefact(name + "/" + folder); artefact.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1); project.commit(user, Integer.parseInt(project.getVersion().getRevision()) + 1);
private void writeFolderToZip(FolderAPI folder, ZipOutputStream zipOutputStream, String pathPrefix) throws IOException, ProjectException { Collection<? extends ArtefactAPI> artefacts = folder.getArtefacts(); for (ArtefactAPI artefact : artefacts) { if (artefact instanceof ResourceAPI) { ZipEntry entry = new ZipEntry(pathPrefix + artefact.getName()); zipOutputStream.putNextEntry(entry); InputStream content = ((ResourceAPI) artefact).getContent(); IOUtils.copy(content, zipOutputStream); content.close(); zipOutputStream.closeEntry(); } else { writeFolderToZip((FolderAPI) artefact, zipOutputStream, pathPrefix + artefact.getName() + "/"); } } }
@Override public FileData checkHistory(String name, String version) throws IOException { if (version == null) { return check(name); } try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return null; } FolderAPI project = (FolderAPI) artefact; FolderAPI history = project.getVersion(new CommonVersionImpl(Integer.parseInt(version))); return createFileData(name, history); } catch (CommonException e) { throw new IOException(e); } }
@Override public List<FileData> listHistory(String name) throws IOException { try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return Collections.emptyList(); } FolderAPI project = (FolderAPI) artefact; List<FileData> result = new ArrayList<FileData>(); if (project.getVersionsCount() > 0) { for (ProjectVersion version : project.getVersions()) { FolderAPI history = project.getVersion(version); result.add(createFileData(name, history)); } } return result; } catch (CommonException e) { throw new IOException(e); } }
for (ArtefactAPI artefactAPI : deployment.getArtefacts()) { if (artefactAPI instanceof FolderAPI) { result.add(createFileData(path + "/" + deployment.getName() + "/" + artefactAPI.getName(), artefactAPI)); } else { for (FolderAPI project : projects) { result.add(createFileData(path + "/" + project.getName(), project));
private void deleteAbsentFiles(List<String> newFiles, FolderAPI folder, String prefix, CommonUser user) throws ProjectException { for (ArtefactAPI artefact : folder.getArtefacts()) { if (artefact instanceof ResourceAPI) { if (!newFiles.contains(prefix + artefact.getName())) { artefact.delete(user); } } else { deleteAbsentFiles(newFiles, (FolderAPI) artefact, prefix + artefact.getName() + "/", user); } } }
@Override public FileItem readHistory(String name, String version) throws IOException { if (version == null) { return read(name); } try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return null; } FolderAPI project = (FolderAPI) artefact; FolderAPI history = project.getVersion(new CommonVersionImpl(Integer.parseInt(version))); return createFileItem(history, createFileData(name, history)); } catch (CommonException e) { throw new IOException(e); } }
private ResourceAPI createResource(String name, InputStream inputStream) throws RRepositoryException { try { String folderPath = name.substring(0, name.lastIndexOf("/")); Node node = checkFolder(session.getRootNode(), folderPath, true); ArtefactAPI artefact = createArtefactAPI(node, folderPath); if (!(artefact instanceof FolderAPI)) { throw new RepositoryException("Incorrect node type"); } FolderAPI folder = (FolderAPI) artefact; return folder.addResource(name.substring(name.lastIndexOf("/") + 1), inputStream); } catch (RepositoryException e) { throw new RRepositoryException("Cannot add resource " + name, e); } catch (ProjectException e) { throw new RRepositoryException("Cannot add resource " + name, e); } }
private void deleteAbsentFiles(List<String> newFiles, FolderAPI folder, String prefix) throws ProjectException { for (ArtefactAPI artefact : folder.getArtefacts()) { if (artefact instanceof ResourceAPI) { if (!newFiles.contains(prefix + artefact.getName())) { artefact.delete(getUser()); } } else { deleteAbsentFiles(newFiles, (FolderAPI) artefact, prefix + artefact.getName() + "/"); } } }
@Override public FileItem readHistory(String name, String version) throws IOException { if (version == null) { return read(name); } try { ArtefactAPI artefact = getArtefact(name); if (artefact == null || artefact instanceof ResourceAPI) { return null; } FolderAPI project = (FolderAPI) artefact; FolderAPI history = project.getVersion(new CommonVersionImpl(Integer.parseInt(version))); return createFileItem(history, createFileData(name, history)); } catch (CommonException e) { throw new IOException(e); } }
private FileData createFileData(String name, ArtefactAPI project) throws PropertyException { FileData fileData = new FileData(); fileData.setName(name); // It's impossible to calculate zip size if project contains artefacts if (((FolderAPI) project).getArtefacts().size() == 0) { fileData.setSize(0); } fileData.setDeleted(project.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)); if (project.hasProperty(ArtefactProperties.VERSION_COMMENT)) { Property property = project.getProperty(ArtefactProperties.VERSION_COMMENT); fileData.setComment(property.getString()); } ProjectVersion version = project.getVersion(); fileData.setAuthor(version.getVersionInfo().getCreatedBy()); fileData.setModifiedAt(version.getVersionInfo().getCreatedAt()); fileData.setVersion(String.valueOf(version.getRevision())); return fileData; }
private FileData createFileData(String name, ArtefactAPI project) throws PropertyException { FileData fileData = new FileData(); fileData.setName(name); // It's impossible to calculate zip size if project contains artefacts if (((FolderAPI) project).getArtefacts().size() == 0) { fileData.setSize(0); } fileData.setDeleted(project.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)); if (project.hasProperty(ArtefactProperties.VERSION_COMMENT)) { Property property = project.getProperty(ArtefactProperties.VERSION_COMMENT); fileData.setComment(property.getString()); } ProjectVersion version = project.getVersion(); fileData.setAuthor(version.getVersionInfo().getCreatedBy()); fileData.setModifiedAt(version.getVersionInfo().getCreatedAt()); fileData.setVersion(String.valueOf(version.getRevision())); return fileData; }