List of usage examples for javax.transaction UserTransaction commit
void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, SystemException;
From source file:org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoMethodHandler.java
/** * @see org.alfresco.module.vti.handler.MethodHandler#createDirectory(java.lang.String, org.alfresco.module.vti.metadata.model.DocMetaInfo) */// w ww . ja v a2 s . c om public boolean createDirectory(String serviceName, DocMetaInfo dir) { if (logger.isDebugEnabled()) { logger.debug("Creating directory: '" + dir.getPath() + "' in site: " + serviceName); } for (String urlPart : dir.getPath().split("/")) { if (VtiUtils.hasIllegalCharacter(urlPart)) { throw new VtiHandlerException(VtiError.V_HAS_ILLEGAL_CHARACTERS); } } Pair<String, String> parentChildPaths = VtiPathHelper .splitPathParentChild(serviceName + "/" + dir.getPath()); String parentName = parentChildPaths.getFirst(); String childFolderName = parentChildPaths.getSecond(); if (childFolderName.length() == 0) { if (logger.isDebugEnabled()) { logger.debug("Invalid name for new directory. Name should not be empty."); } throw new VtiHandlerException(VtiError.V_BAD_URL); } FileInfo parentFileInfo = getPathHelper().resolvePathFileInfo(parentName); if (parentFileInfo == null) { if (logger.isDebugEnabled()) { logger.debug("Parent folder not exists."); } throw new VtiHandlerException(VtiHandlerException.PRIMARY_PARENT_NOT_EXIST); } AlfrescoMethodHandler.assertFolder(parentFileInfo); UserTransaction tx = getTransactionService().getUserTransaction(false); try { tx.begin(); getFileFolderService().create(parentFileInfo.getNodeRef(), childFolderName, ContentModel.TYPE_FOLDER); tx.commit(); if (logger.isDebugEnabled()) { logger.debug("Folder successfully was created."); } } catch (Throwable e) { try { tx.rollback(); } catch (Exception tex) { } if (e instanceof FileExistsException) { throw new VtiHandlerException(VtiHandlerException.FOLDER_ALREADY_EXISTS); } throw VtiExceptionUtils.createRuntimeException(e); } return true; }
From source file:org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoMethodHandler.java
/** * @see org.alfresco.module.vti.handler.MethodHandler#moveDocument(java.lang.String, java.lang.String, java.lang.String, java.util.List, java.util.EnumSet, java.util.EnumSet, * boolean, boolean)/*from w w w.j a va 2 s . co m*/ */ public DocsMetaInfo moveDocument(String serviceName, String oldURL, String newURL, List<String> urlList, EnumSet<RenameOption> renameOptionSet, EnumSet<PutOption> putOptionSet, boolean docopy, boolean validateWelcomeNames) { // urlList ignored // validateWelcomeNames ignored FileInfo sourceFileInfo = getPathHelper().resolvePathFileInfo(serviceName + "/" + oldURL); AlfrescoMethodHandler.assertValidFileInfo(sourceFileInfo); if (docopy == false) { if (sourceFileInfo.isFolder() == false) { AlfrescoMethodHandler.assertRemovableDocument( getDocumentHelper().getDocumentStatus(sourceFileInfo.getNodeRef())); } } for (String urlPart : newURL.split("/")) { if (VtiUtils.hasIllegalCharacter(urlPart)) { throw new VtiHandlerException(VtiHandlerException.HAS_ILLEGAL_CHARACTERS); } } Pair<String, String> parentChildPaths = VtiPathHelper.splitPathParentChild(serviceName + "/" + newURL); String destName = parentChildPaths.getSecond(); if (destName.length() == 0) { throw new VtiHandlerException(VtiError.V_BAD_URL); } UserTransaction tx = getTransactionService().getUserTransaction(false); try { tx.begin(); // determining existence of parent folder for newURL String parentPath = parentChildPaths.getFirst(); FileInfo destParentFolder = getPathHelper().resolvePathFileInfo(parentPath); if (destParentFolder == null) { // if "createdir" option presents then create only primary parent of new location if (putOptionSet.contains(PutOption.createdir) || renameOptionSet.contains(RenameOption.createdir)) { destParentFolder = createOnlyLastFolder(parentPath); } if (destParentFolder == null) { throw new VtiHandlerException(VtiHandlerException.PRIMARY_PARENT_NOT_EXIST); } } // determining existence of folder or file with newURL FileInfo destFileInfo = getPathHelper().resolvePathFileInfo(destParentFolder, destName); if (destFileInfo != null) { // if "overwrite" option presents then overwrite existing file or folder if (putOptionSet.contains(PutOption.overwrite)) { if (destFileInfo.isFolder() == false) { DocumentStatus destDocumentStatus = getDocumentHelper() .getDocumentStatus(destFileInfo.getNodeRef()); AlfrescoMethodHandler.assertRemovableDocument(destDocumentStatus); // if destination document is long-term checked out then delete working copy if (destDocumentStatus.equals(DocumentStatus.LONG_CHECKOUT_OWNER)) { NodeRef workingCopyNodeRef = getCheckOutCheckInService() .getWorkingCopy(destFileInfo.getNodeRef()); getFileFolderService().delete(workingCopyNodeRef); // beforeDeleteNode policy unlocks original node } } getFileFolderService().delete(destFileInfo.getNodeRef()); } else { throw new VtiHandlerException(VtiHandlerException.FILE_ALREADY_EXISTS); } } if (docopy) { if (logger.isDebugEnabled()) { logger.debug("Copy document: " + oldURL + " to new location: " + newURL + " in site: " + serviceName); } destFileInfo = getFileFolderService().copy(sourceFileInfo.getNodeRef(), destParentFolder.getNodeRef(), destName); } else { if (sourceFileInfo.isFolder() == false) { DocumentStatus sourceDocumentStatus = getDocumentHelper() .getDocumentStatus(sourceFileInfo.getNodeRef()); // if source document is long-term checked out then delete working copy if (sourceDocumentStatus.equals(DocumentStatus.LONG_CHECKOUT_OWNER)) { NodeRef workingCopyNodeRef = getCheckOutCheckInService() .getWorkingCopy(sourceFileInfo.getNodeRef()); getFileFolderService().delete(workingCopyNodeRef); // beforeDeleteNode policy unlocks original node } } NodeRef sourceParentRef = null; if (oldURL != null) { // current parent Pair<String, String> sourceParentPaths = VtiPathHelper .splitPathParentChild(serviceName + "/" + oldURL); String sourceParentPath = sourceParentPaths.getFirst(); FileInfo sourceParent = getPathHelper().resolvePathFileInfo(sourceParentPath); if (sourceParent != null) { sourceParentRef = sourceParent.getNodeRef(); } } if (logger.isDebugEnabled()) { logger.debug("Move document: " + oldURL + " to new location: " + newURL + " in site: " + serviceName); } destFileInfo = getFileFolderService().moveFrom(sourceFileInfo.getNodeRef(), sourceParentRef, destParentFolder.getNodeRef(), destName); } tx.commit(); DocMetaInfo docMetaInfo = new DocMetaInfo(destFileInfo.isFolder()); docMetaInfo.setPath(newURL); setDocMetaInfo(destFileInfo, docMetaInfo); DocsMetaInfo result = new DocsMetaInfo(); if (destFileInfo.isFolder()) { result.getFolderMetaInfoList().add(docMetaInfo); addFileFoldersRecursive(destFileInfo, result); } else { result.getFileMetaInfoList().add(docMetaInfo); } return result; } catch (Throwable e) { try { tx.rollback(); } catch (Exception tex) { } if (e instanceof FileNotFoundException) { throw new VtiHandlerException(VtiError.V_BAD_URL); } if (e instanceof NodeLockedException) { // only if source or destination folder is locked throw new VtiHandlerException(VtiHandlerException.REMOVE_DIRECTORY); } throw VtiExceptionUtils.createRuntimeException(e); } }
From source file:org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoMethodHandler.java
/** * @see org.alfresco.module.vti.handler.MethodHandler#putDocument(java.lang.String, org.alfresco.module.vti.metadata.model.Document, java.util.EnumSet, java.lang.String, * boolean, boolean)//from w w w . j a v a 2 s . c om */ public DocMetaInfo putDocument(String serviceName, Document document, EnumSet<PutOption> putOptionSet, String comment, boolean keepCheckedOut, boolean validateWelcomeNames) { // keepCheckedOut ignored // validateWelcomeNames // 'atomic' put-option : ignored // 'checkin' put-option : ignored // 'checkout' put-option : ignored // 'createdir' put-option : implemented // 'edit' put-option : implemented // 'forceversions' put-option : ignored // 'migrationsemantics' put-option : ignored // 'noadd' put-option : ignored // 'overwrite' put-option : implemented // 'thicket' put-option : ignored if (logger.isDebugEnabled()) { logger.debug("Saving document: '" + document.getPath() + "' to the site: " + serviceName); } for (String urlPart : document.getPath().split("/")) { if (VtiUtils.hasIllegalCharacter(urlPart)) { throw new VtiHandlerException(VtiHandlerException.HAS_ILLEGAL_CHARACTERS); } } Pair<String, String> parentChildPaths = VtiPathHelper .splitPathParentChild(serviceName + "/" + document.getPath()); String documentName = parentChildPaths.getSecond(); if (documentName.length() == 0) { throw new VtiHandlerException(VtiError.V_BAD_URL); } FileInfo curDocumentFileInfo; // file info for document for put_document method UserTransaction tx = getTransactionService().getUserTransaction(false); try { tx.begin(); String parentPath = parentChildPaths.getFirst(); FileInfo parentFileInfo = getPathHelper().resolvePathFileInfo(parentPath); if (parentFileInfo == null) { if (putOptionSet.contains(PutOption.createdir)) { parentFileInfo = createOnlyLastFolder(parentPath); } if (parentFileInfo == null) { if (logger.isDebugEnabled()) { logger.debug("The folder where file should be placed not exists."); } throw new VtiHandlerException(VtiHandlerException.PRIMARY_PARENT_NOT_EXIST); } } DocumentStatus documentStatus = DocumentStatus.NORMAL; // default status for new document curDocumentFileInfo = getPathHelper().resolvePathFileInfo(parentFileInfo, documentName); boolean docExisted = curDocumentFileInfo != null; if (docExisted) { documentStatus = getDocumentHelper().getDocumentStatus(curDocumentFileInfo.getNodeRef()); if (documentStatus.equals(DocumentStatus.READONLY)) { // document is readonly throw new VtiHandlerException(VtiHandlerException.FILE_OPEN_FOR_WRITE); } if (VtiDocumentHelper.isCheckedout(documentStatus) && VtiDocumentHelper.isCheckoutOwner(documentStatus) == false) { // document already checked out by another user if (logger.isDebugEnabled()) { logger.debug("Document is checked out by another user"); } throw new VtiHandlerException(VtiHandlerException.DOC_CHECKED_OUT); } if (VtiDocumentHelper.isLongCheckedout(documentStatus)) { NodeRef workingCopyNodeRef = getCheckOutCheckInService() .getWorkingCopy(curDocumentFileInfo.getNodeRef()); curDocumentFileInfo = getFileFolderService().getFileInfo(workingCopyNodeRef); } if ((putOptionSet.contains(PutOption.overwrite) == false && putOptionSet.contains(PutOption.edit) == false) || (!getFileFolderService().isHidden(curDocumentFileInfo.getNodeRef()) && putOptionSet.contains(PutOption.edit) && VtiUtils.compare(curDocumentFileInfo.getModifiedDate(), document.getTimelastmodified()) == false)) { if (logger.isDebugEnabled()) { logger.debug("ModifiedDate for document on server = '" + VtiUtils.formatDate(curDocumentFileInfo.getModifiedDate()) + "', " + "ModifiedDate for client document = '" + document.getTimelastmodified() + "'"); } throw new VtiHandlerException(VtiHandlerException.FILE_ALREADY_EXISTS); } NodeRef existedNodeRef = curDocumentFileInfo.getNodeRef(); // ALF-17662, hidden node is the same as non-existed node for SPP if (getFileFolderService().isHidden(existedNodeRef)) { // make it visible for client getFileFolderService().setHidden(existedNodeRef, false); } } else { curDocumentFileInfo = getFileFolderService().create(parentFileInfo.getNodeRef(), documentName, ContentModel.TYPE_CONTENT); } NodeRef curDocumentNodeRef = curDocumentFileInfo.getNodeRef(); Map<String, Serializable> versionProps = Collections .<String, Serializable>singletonMap(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR); // If document already exist but is not versionable, we must version it so it is not lost. // The first version must be 1.0 rather than 0.1. if (docExisted) { if (getNodeService().hasAspect(curDocumentNodeRef, ContentModel.ASPECT_VERSIONABLE) == false) { versionService.createVersion(curDocumentNodeRef, versionProps); } versionProps = Collections.<String, Serializable>singletonMap(VersionModel.PROP_VERSION_TYPE, VersionType.MINOR); } else { // The document is new: Set the author to the current user getNodeService().setProperty(curDocumentNodeRef, ContentModel.PROP_AUTHOR, getAuthenticationService().getCurrentUserName()); } ContentWriter writer = getContentService().getWriter(curDocumentNodeRef, ContentModel.PROP_CONTENT, true); String mimetype = getMimetypeService().guessMimetype(documentName); writer.setMimetype(mimetype); writer.putContent(document.getInputStream()); // Create new version (from SPP) after content is written. versionService.createVersion(curDocumentNodeRef, versionProps); tx.commit(); } catch (Throwable e) { try { // set the inputStream in null for correct answer from server document.setInputStream(null); tx.rollback(); } catch (Exception tex) { } throw VtiExceptionUtils.createRuntimeException(e); } // refresh file info for new document curDocumentFileInfo = getFileFolderService().getFileInfo(curDocumentFileInfo.getNodeRef()); DocMetaInfo result = new DocMetaInfo(false); result.setPath(document.getPath()); setDocMetaInfo(curDocumentFileInfo, result); return result; }
From source file:org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoMethodHandler.java
/** * @see org.alfresco.module.vti.handler.MethodHandler#removeDocuments(java.lang.String, java.util.List, java.util.List, boolean) *//*from w w w . j a va 2 s . c om*/ public DocsMetaInfo removeDocuments(String serviceName, List<String> urlList, List<Date> timeTokens, boolean validateWelcomeNames) { // timeTokens ignored // validateWelcomeNames ignored DocsMetaInfo docsMetaInfo = new DocsMetaInfo(); UserTransaction tx = getTransactionService().getUserTransaction(false); try { tx.begin(); for (String url : urlList) { if (logger.isDebugEnabled()) { logger.debug("Removing item: '" + url + "' from site: " + serviceName); } FileInfo fileInfo = getPathHelper().resolvePathFileInfo(serviceName + "/" + url); AlfrescoMethodHandler.assertValidFileInfo(fileInfo); DocMetaInfo docMetaInfo = new DocMetaInfo(fileInfo.isFolder()); docMetaInfo.setPath(url); setDocMetaInfo(fileInfo, docMetaInfo); if (fileInfo.isFolder()) { // add nested files and folders to meta info list addFileFoldersRecursive(fileInfo, docsMetaInfo); docsMetaInfo.getFolderMetaInfoList().add(docMetaInfo); } else { DocumentStatus documentStatus = getDocumentHelper().getDocumentStatus(fileInfo.getNodeRef()); AlfrescoMethodHandler.assertRemovableDocument(documentStatus); if (documentStatus.equals(DocumentStatus.LONG_CHECKOUT_OWNER)) { NodeRef workingCopyNodeRef = getCheckOutCheckInService() .getWorkingCopy(fileInfo.getNodeRef()); getFileFolderService().delete(workingCopyNodeRef); // beforeDeletePolicy unlocks original document } docsMetaInfo.getFileMetaInfoList().add(docMetaInfo); } getFileFolderService().delete(fileInfo.getNodeRef()); } tx.commit(); } catch (Throwable e) { try { tx.rollback(); } catch (Exception tex) { } throw VtiExceptionUtils.createRuntimeException(e); } return docsMetaInfo; }
From source file:org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoMethodHandler.java
/** * Helper method for short-term or long-term checkouts * // w w w . j a v a2 s . com * @param documentFileInfo file info for document ({@link FileInfo}) * @param timeout timeout in minutes for short-term checkout, if equals 0, then uses long-term checkout * @return FileInfo checked out document file info */ public FileInfo checkout(FileInfo documentFileInfo, int timeout) { DocumentStatus documentStatus = getDocumentHelper().getDocumentStatus(documentFileInfo.getNodeRef()); if (documentStatus.equals(DocumentStatus.READONLY)) { // document is readonly if (logger.isDebugEnabled()) { logger.debug("Unable to perform checked out operation!!! Document is read only."); } throw new VtiHandlerException(VtiHandlerException.FILE_OPEN_FOR_WRITE); } if (VtiDocumentHelper.isCheckedout(documentStatus) && VtiDocumentHelper.isCheckoutOwner(documentStatus) == false) { // document already checked out by another user if (logger.isDebugEnabled()) { logger.debug("Unable to perform checked out operation!!! Document is already checked out."); } throw new VtiHandlerException(VtiHandlerException.DOC_CHECKED_OUT); } FileInfo checkedoutDocumentFileInfo; if (documentStatus.equals(DocumentStatus.LONG_CHECKOUT_OWNER) == false) { UserTransaction tx = getTransactionService().getUserTransaction(false); try { tx.begin(); if (timeout == 0) { NodeRef workingCopyNodeRef = getCheckOutCheckInService() .checkout(documentFileInfo.getNodeRef()); checkedoutDocumentFileInfo = getFileFolderService().getFileInfo(workingCopyNodeRef); if (logger.isDebugEnabled()) { logger.debug("Long-term checkout."); } } else { getLockService().lock(documentFileInfo.getNodeRef(), getUserName(), VtiUtils.toAlfrescoLockTimeout(timeout)); // refresh file info checkedoutDocumentFileInfo = getFileFolderService().getFileInfo(documentFileInfo.getNodeRef()); if (logger.isDebugEnabled()) { logger.debug("Short-term checkout."); } } tx.commit(); } catch (Throwable e) { try { tx.rollback(); } catch (Exception tex) { } throw VtiExceptionUtils.createRuntimeException(e); } } else { // document already checked out by same user, just returns file info for working copy checkedoutDocumentFileInfo = getFileFolderService() .getFileInfo(getCheckOutCheckInService().getWorkingCopy(documentFileInfo.getNodeRef())); } return checkedoutDocumentFileInfo; }
From source file:org.alfresco.module.vti.handler.alfresco.AlfrescoDwsServiceHandler.java
/** * @see org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoDwsServiceHandler#doUpdateDwsDataDelete(org.alfresco.module.vti.metadata.model.LinkBean, java.lang.String) *///from ww w . ja v a2 s . c o m @Override protected void doUpdateDwsDataDelete(LinkBean linkBean, String dws) { NodeRef linksContainer = null; linksContainer = siteService.getContainer(dws, "links"); if (linksContainer == null) { throw new VtiHandlerException(VtiHandlerException.LIST_NOT_FOUND); } NodeRef linkRef = nodeService.getChildByName(linksContainer, ContentModel.ASSOC_CONTAINS, linkBean.getId()); if (linkRef == null) { throw new VtiHandlerException(VtiHandlerException.ITEM_NOT_FOUND); } UserTransaction tx = transactionService.getUserTransaction(false); try { tx.begin(); nodeService.deleteNode(linkRef); tx.commit(); } catch (Throwable t) { try { tx.rollback(); } catch (Exception e) { } if (t instanceof AccessDeniedException) { throw new VtiHandlerException(VtiHandlerException.NO_PERMISSIONS); } throw VtiExceptionUtils.createRuntimeException(t); } if (logger.isDebugEnabled()) { logger.debug("Link with name '" + linkBean.getDescription() + "' was deleted."); } }
From source file:org.alfresco.module.vti.handler.alfresco.AlfrescoDwsServiceHandler.java
/** * @see org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoDwsServiceHandler#doUpdateDwsDataNew(org.alfresco.module.vti.metadata.model.LinkBean, java.lang.String) *///from w w w. j a va 2 s . c om protected LinkBean doUpdateDwsDataNew(LinkBean linkBean, String dws) { LinkBean result = null; NodeRef linksContainer = null; if (siteService.hasContainer(dws, "links")) { linksContainer = siteService.getContainer(dws, "links"); } else { linksContainer = siteService.createContainer(dws, "links", ContentModel.TYPE_FOLDER, null); } if (linksContainer == null) { throw new VtiHandlerException(VtiHandlerException.LIST_NOT_FOUND); } Map<QName, Serializable> props = new HashMap<QName, Serializable>(); String name = getUniqueName(linksContainer); props.put(ContentModel.PROP_NAME, name); props.put(PROP_LINK_URL, linkBean.getUrl()); props.put(PROP_LINK_TITLE, linkBean.getDescription()); props.put(PROP_LINK_DESCRIPTION, linkBean.getComments()); UserTransaction tx = transactionService.getUserTransaction(false); try { tx.begin(); ChildAssociationRef association = nodeService.createNode(linksContainer, ContentModel.ASSOC_CONTAINS, QName.createQName(NamespaceService.CONTENT_MODEL_PREFIX, name), TYPE_LINK, props); ContentWriter writer = contentService.getWriter(association.getChildRef(), ContentModel.PROP_CONTENT, true); writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN); writer.setEncoding("UTF-8"); String text = linkBean.getUrl(); writer.putContent(text); result = buildLinkBean(association.getChildRef()); tx.commit(); } catch (Exception e) { try { tx.rollback(); } catch (Exception tex) { } if (e instanceof AccessDeniedException) { throw new VtiHandlerException(VtiHandlerException.NO_PERMISSIONS); } throw VtiExceptionUtils.createRuntimeException(e); } if (logger.isDebugEnabled()) { logger.debug("Link with name '" + linkBean.getDescription() + "' was created."); } return result; }
From source file:org.alfresco.module.vti.handler.alfresco.AlfrescoDwsServiceHandler.java
/** * @see org.alfresco.module.vti.handler.alfresco.AbstractAlfrescoDwsServiceHandler#doUpdateDwsDataUpdate(org.alfresco.module.vti.metadata.model.LinkBean, java.lang.String) *//*from w ww . ja va 2 s . com*/ protected void doUpdateDwsDataUpdate(LinkBean linkBean, String dws) { NodeRef linksContainer = null; linksContainer = siteService.getContainer(dws, "links"); if (linksContainer == null) { throw new VtiHandlerException(VtiHandlerException.LIST_NOT_FOUND); } NodeRef linkRef = nodeService.getChildByName(linksContainer, ContentModel.ASSOC_CONTAINS, linkBean.getId()); if (linkRef == null) { throw new VtiHandlerException(VtiHandlerException.ITEM_NOT_FOUND); } UserTransaction tx = transactionService.getUserTransaction(false); try { tx.begin(); nodeService.setProperty(linkRef, PROP_LINK_URL, linkBean.getUrl()); nodeService.setProperty(linkRef, PROP_LINK_TITLE, linkBean.getDescription()); nodeService.setProperty(linkRef, PROP_LINK_DESCRIPTION, linkBean.getComments()); ContentWriter writer = contentService.getWriter(linkRef, ContentModel.PROP_CONTENT, true); writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN); writer.setEncoding("UTF-8"); String text = linkBean.getUrl(); writer.putContent(text); tx.commit(); } catch (Throwable t) { try { tx.rollback(); } catch (Exception e) { } if (t instanceof AccessDeniedException) { throw new VtiHandlerException(VtiHandlerException.NO_PERMISSIONS); } throw VtiExceptionUtils.createRuntimeException(t); } if (logger.isDebugEnabled()) { logger.debug("Link with name '" + linkBean.getDescription() + "' was updated."); } }
From source file:org.alfresco.module.vti.handler.alfresco.AlfrescoMeetingServiceHandler.java
protected void renameDocumentsFolder(String siteName, MeetingBean meeting, String folderNodeRef) { NodeRef docLibraryContainer = null;//from w w w . j ava 2 s.com docLibraryContainer = siteService.getContainer(siteName, DOCUMENT_LIBRARY_CONTAINER_NAME); if (docLibraryContainer == null) { throw new VtiHandlerException(getMessage("vti.meeting.error.no_site_update")); } if (folderNodeRef == null) { throw new VtiHandlerException(getMessage("vti.meeting.error.no_meeting_update")); } NodeRef folderRef = new NodeRef(folderNodeRef); UserTransaction tx = transactionService.getUserTransaction(false); try { tx.begin(); fileFolderService.rename(folderRef, getFolderName(meeting)); if (meeting.getSubject() != null && meeting.getSubject().length() > 0) { nodeService.setProperty(folderRef, ContentModel.PROP_DESCRIPTION, new MLText(meeting.getSubject())); } tx.commit(); if (logger.isDebugEnabled()) { logger.debug("Folder successfully renamed."); } } catch (Throwable e) { try { tx.rollback(); } catch (Exception tex) { } if (e instanceof FileExistsException) { throw new VtiHandlerException(VtiHandlerException.ITEM_NOT_FOUND); } throw VtiExceptionUtils.createRuntimeException(e); } }
From source file:org.alfresco.module.vti.handler.alfresco.AlfrescoUserGroupServiceHandler.java
/** * @see org.alfresco.module.vti.handler.UserGroupServiceHandler#addUserCollectionToRole(java.lang.String, java.lang.String, java.util.List) *///from w w w.jav a2 s . co m public void addUserCollectionToRole(String dws, String roleName, List<UserBean> usersList) { dws = VtiPathHelper.removeSlashes(dws); if (logger.isDebugEnabled()) logger.debug("Method with name 'addUserCollectionToRole' is started."); if (logger.isDebugEnabled()) logger.debug("Getting siteInfo for '" + dws + "'."); SiteInfo siteInfo = siteService.getSite(dws); if (siteInfo == null) { if (logger.isDebugEnabled()) logger.debug("Error: Site info not found."); throw new VtiHandlerException(VtiHandlerException.NOT_FOUND); } for (UserBean userBean : usersList) { NodeRef person = personService.getPerson(userBean.getLoginName().substring("ALFRESCO\\".length())); if (person != null) { String userName = (String) nodeService.getProperty(person, ContentModel.PROP_USERNAME); if (AuthorityType.getAuthorityType(userName) == AuthorityType.GUEST) { if (logger.isDebugEnabled()) logger.debug("Error: Not allowed operation: guest can not be added."); throw new RuntimeException("Not allowed operation: guest can not be added."); } UserTransaction tx = transactionService.getUserTransaction(false); try { if (logger.isDebugEnabled()) logger.debug("Setting membership [" + dws + ", " + userName + "]."); tx.begin(); siteService.setMembership(dws, userName, roleName); tx.commit(); } catch (Exception e) { try { tx.rollback(); } catch (Exception tex) { } if (logger.isDebugEnabled()) logger.debug("Error: The user does not have sufficient rights.", e); throw new VtiHandlerException(VtiHandlerException.NO_PERMISSIONS); } } else { if (logger.isDebugEnabled()) logger.debug("Error: The user does not have sufficient rights."); throw new VtiHandlerException(VtiHandlerException.NO_PERMISSIONS); } } if (logger.isDebugEnabled()) logger.debug("Method with name 'addUserCollectionToRole' is finished."); }