private void uploadJsonFile(String baseFileName, String jsonSource, Folder workflowDefinitionFolder) { LOGGER.info("Upload json source..."); String jsonSrcFileName = baseFileName + ".json"; ContentStream jsonSrcContentStream = new ContentStreamImpl(jsonSrcFileName, null, "application/json", new ByteArrayInputStream(jsonSource.getBytes())); Document jsonDocument = getDocumentFromFolder(workflowDefinitionFolder.getPath(), jsonSrcFileName); if (jsonDocument == null) { HashMap<String, Object> jsonSrcProperties = new HashMap<String, Object>(); jsonSrcProperties.put(PropertyIds.NAME, jsonSrcFileName); jsonSrcProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); workflowDefinitionFolder.createDocument(jsonSrcProperties, jsonSrcContentStream, VersioningState.MAJOR); } else { jsonDocument.setContentStream(jsonSrcContentStream, true); } }
/** * Gets or creates a folder named folderName in the parentFolder. * @param cmisSession * @param parentFolder * @param folderName * @return */ public Folder createFolder(Session cmisSession, Folder parentFolder, String folderName) { Folder subFolder = null; try { // Making an assumption here that you probably wouldn't normally do subFolder = (Folder) cmisSession.getObjectByPath(parentFolder.getPath() + "/" + folderName); System.out.println("Folder already existed!"); } catch (CmisObjectNotFoundException onfe) { Map<String, Object> props = new HashMap<String, Object>(); props.put("cmis:objectTypeId", "cmis:folder"); props.put("cmis:name", folderName); subFolder = parentFolder.createFolder(props); String subFolderId = subFolder.getId(); System.out.println("Created new folder: " + subFolderId); } return subFolder; }
private int countChildren(Folder folder) { int count = 0; ItemIterable<CmisObject> children = folder.getChildren(SELECT_ALL_NO_CACHE_OC); for (CmisObject child : children) { if (child instanceof Folder) { count++; } } return count; } }
Folder currentFolder = root; Folder parentFolder = null; for(int i=0;i<folderNamesLength; i++){ // because root is folderNames[i] String folderName = folderNames[i]; int currentFolderSize = currentFolder.getChildren.getSize(); for(int o=1; o<currentFolderSize ; o++){ if(currentFolder.getChildren().get(o) instanceof Folder){ Folder childFolder = currentFolder.getChildren().get(o); if(folderName.equals(childFolder.getFolderName())){ parentFolder = currentFolder; currentFolder = childFolder; if (i == counter){ currentFolder.getChildren.add(newFolder); // reorganize parentFolder.getChildren() or whatever } } } } }
private String createFolderInRepository(String fileName, String parentFolderId) { Folder parentFolder; String id = null; if (null == parentFolderId) { parentFolder = session.getRootFolder(); } else { parentFolder = (Folder) session.getObject(parentFolderId); } Map<String, Object> properties = new HashMap<String, Object>(); File f = new File(fileName); properties.put(PropertyIds.NAME, f.getName().replaceAll(" ", "_")); properties.put(PropertyIds.OBJECT_TYPE_ID, CFG.getDefaultFolderType()); try { Folder folder = parentFolder.createFolder(properties); id = folder.getId(); LOG.debug("New folder created with id: " + folder.getId() + ", path: " + folder.getPaths().get(0)); } catch (Exception e) { LOG.error("Failed to create CMIS document.", e); } LOG.info("New folder created with id: " + id + ", name: " + properties.get(PropertyIds.NAME) + " in parent folder: " + parentFolder.getId()); return id; }
private Document createDocumentWithoutChecks(Folder parent, String name) { // prepare properties Map<String, Object> properties = new HashMap<String, Object>(); properties.put(PropertyIds.NAME, name); properties.put(PropertyIds.OBJECT_TYPE_ID, getDocumentTestTypeId()); // prepare empty content ContentStream contentStream = new ContentStreamImpl(name, BigInteger.ZERO, "text/plain", new ByteArrayInputStream(new byte[0])); // create the document return parent.createDocument(properties, contentStream, null, null, null, null, SELECT_ALL_NO_CACHE_OC); } }
String path = parent.getPath() + "/" + name.getLocalName(); case CMIS_FOLDER: params.put(PropertyIds.PATH, path); return ObjectId.toString(ObjectId.Type.OBJECT, parent.createFolder(params).getId()); case CMIS_DOCUMENT: return ObjectId.toString(ObjectId.Type.OBJECT, parent.createDocument(params, null, VersioningState.NONE).getId()); default: return null;
result = parent.createFolder(properties, null, null, null, SELECT_ALL_NO_CACHE_OC); } catch (CmisBaseException e) { addResult(createResult(UNEXPECTED_EXCEPTION, "Folder could not be created! Exception: " + e.getMessage(), e, addResult(assertEquals(name, result.getName(), null, f)); String[] propertiesToCheck = new String[result.getType().getPropertyDefinitions().size()]; for (String propId : result.getType().getPropertyDefinitions().keySet()) { propertiesToCheck[i++] = propId; List<Folder> objectParents = result.getParents(); f = createResult(FAILURE, "Newly created folder has no or more than one parent! ID: " + result.getId(), true); addResult(assertEquals(1, objectParents.size(), null, f)); "First object parent of the newly created folder does not match parent! ID: " + result.getId(), true); assertShallowEquals(parent, objectParents.get(0), null, f); Folder folderParent = result.getFolderParent(); f = createResult(FAILURE, "Newly created folder has no folder parent! ID: " + result.getId(), true); addResult(assertNotNull(folderParent, null, f)); "Folder parent of the newly created folder does not match parent! ID: " + result.getId(), true); assertShallowEquals(parent, folderParent, null, f); for (CmisObject child : parent.getChildren(SELECT_ALL_NO_CACHE_OC)) {
BigInteger.valueOf(contentBytes.length), "text/plain", new ByteArrayInputStream(contentBytes)); testFolder.createDocument(properties, contentStream, null); properties.put(PropertyIds.OBJECT_TYPE_ID, getDocumentTestTypeId()); testFolder.createFolder(properties);
Document doc = parentFolder.createDocument(properties, contentStream, VersioningState.NONE); is.close(); + " in folder: " + parentFolder.getId()); LOG.debug("total number of creations : " + ++totalNum); } catch (IOException e) {
ItemIterable<CmisObject> children = folder.getChildren(orderContext); session.getRepositoryInfo().getId(), folder.getId(), "cmis:objectId,cmis:name", null, null, null, null, Boolean.TRUE, BigInteger.valueOf(10), BigInteger.ZERO, null); addResult(results, createResult(FAILURE, "getChildren omitted path segement! ID: " + objectId)); } else { CmisObject pathSegementChild = session.getObjectByPath(folder.getPath(), pathSegement); List<Tree<FileableCmisObject>> descendants = folder.getDescendants(1, SELECT_ALL_NO_CACHE_OC); List<Tree<FileableCmisObject>> folderTree = folder.getFolderTree(1, SELECT_ALL_NO_CACHE_OC);
Folder folder = (Folder) object; doc = new FolderSummary(object.getName(), object.getId(), folder.getPath()); Folder parent = ((Folder) object).getParents().get(0); // for now, parent.getName(), parent.getId(), parent.getPath()); if (parentFolder != null && parentFolder.getParents().size() > 0) { Folder grandParent = parentFolder.getParents().get(0); parentFolderSummary .setParent(new FolderSummary(grandParent.getName(), grandParent.getId(), grandParent.getPath())); parent.getName(), parent.getId(), parent.getPath()); if (parentFolder != null && parentFolder.getParents().size() > 0) { Folder grandParent = parentFolder.getParents().get(0); parentFolderSummary .setParent(new FolderSummary(grandParent.getName(), grandParent.getId(), grandParent.getPath()));
Map<Integer, Folder> data = new HashMap<Integer, Folder>(); ... loop through your result set getting folder data... Folder newFolder = new Folder(nameString, id, parentId); data.put(newFolder.getId(), newFolder);
private Folder createFolder(String path) throws Exception { String[] subFolderNames = path.split("/"); Folder folder = getCmisSession().getRootFolder(); for (String subfolder : subFolderNames){ String folderPath = folder.getPath(); if (folder.getPath().equals("/")){ folderPath = ""; } try{ folder = FileUtils.getFolder(folderPath + "/" + subfolder, getCmisSession()); logger.debug("Parent folder already exists, new folder value is: " + folder.getPath()); } catch (CmisObjectNotFoundException e){ // The folder does not existe, we create it here folder = FileUtils.createFolder(folder, subfolder, null); logger.debug("New folder created, new folder value is: " + folder.getPath()); } } return folder; }
/** * Creates a child folder with the name specified of the type specified. If * type is null then will default to cmis:folder. * * @param parentFolder * the parent folder * @param name * the folder name * @param type * the folder type (defaults to <code>cmis:folder</code>) * @return the newly created folder * * @throws CmisBaseException * if something go wrong, for example the parent folder doesn't * exist */ public static Folder createFolder(Folder parentFolder, String name, String type) { if (type == null) { type = BaseTypeId.CMIS_FOLDER.value(); } Map<String, Object> properties = new HashMap<String, Object>(); properties.put(PropertyIds.OBJECT_TYPE_ID, type); properties.put(PropertyIds.NAME, name); return parentFolder.createFolder(properties); }
ItemIterable<CmisObject> children = folder.getChildren(); if (children.iterator().hasNext()) { for (CmisObject o : children) { properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); properties.put(PropertyIds.NAME, fileName); folder.createDocument(properties, contentStream, VersioningState.NONE); log.info("Document at path '{}' created!", path.toString());
folders.put(newFolder.getId(), newFolder); Document newDocument = createDocument(session, newFolder, "budoc" + i + ".txt", CONTENT); documents.put(newDocument.getId(), newDocument); for (CmisObject child : folder.getChildren(SELECT_ALL_NO_CACHE_OC)) { children.add(child); folder.deleteTree(true, null, true);
addResult(assertEquals(ri.getRootFolderId(), rootFolder.getId(), null, failure)); addResult(assertEquals(BaseTypeId.CMIS_FOLDER, rootFolder.getBaseTypeId(), null, failure)); addResult(assertEquals("/", rootFolder.getPath(), null, failure)); addResult(assertEquals(0, rootFolder.getParents().size(), null, failure));
/** * look for a child folder of the parent folder, if not found, create it and return it. */ private static Folder getOrCreateFolder(final Folder parentFolder, final String folderName) throws IOException { Folder childFolder = null; // get existing if any ItemIterable<CmisObject> children = parentFolder.getChildren(); if (children.iterator().hasNext()) { for (CmisObject cmisObject : children) { if (cmisObject instanceof Folder && cmisObject.getName().equals(folderName)) { log.debug("Found '{}' folder.", folderName); return childFolder = (Folder)cmisObject; } } } // Create new folder (requires at least type id and name of the folder) log.debug("'{}' folder not found, about to create...", folderName); Map<String, String> folderProps = new HashMap<String, String>(); folderProps.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder"); folderProps.put(PropertyIds.NAME, folderName); childFolder = parentFolder.createFolder(folderProps); log.info("'{}' folder created!", folderName); return childFolder; }
@Override public void loadData(BpmTask task) { sessionFacade = new CmisAtomSessionFacade(repositoryUser, repositoryPassword, repositoryAtomUrl, repositoryId); mainFolder = sessionFacade.createFolderIfNecessary(newFolderPrefix + task.getProcessInstance().getInternalId(), rootFolderPath); if (StringUtil.hasText(subFolder)) mainFolder = sessionFacade.createFolderIfNecessary(subFolder, mainFolder.getPath()); folderId = mainFolder.getId(); }