mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge branch 'master' into feature/RM-5087_UpdateNotesForGETEndpoints
This commit is contained in:
@@ -33,12 +33,15 @@ import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
import java.util.AbstractList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.query.PagingResults;
|
||||
import org.alfresco.repo.activities.ActivityType;
|
||||
import org.alfresco.repo.node.getchildren.FilterProp;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.api.impl.Util;
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
@@ -51,11 +54,13 @@ import org.alfresco.rm.rest.api.impl.ApiNodesModelFactory;
|
||||
import org.alfresco.rm.rest.api.impl.FilePlanComponentsApiUtils;
|
||||
import org.alfresco.rm.rest.api.impl.SearchTypesFactory;
|
||||
import org.alfresco.rm.rest.api.model.FilePlan;
|
||||
import org.alfresco.rm.rest.api.model.Record;
|
||||
import org.alfresco.rm.rest.api.model.RecordCategory;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
@@ -76,6 +81,7 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private SearchTypesFactory searchTypesFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -97,6 +103,11 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read
|
||||
this.searchTypesFactory = searchTypesFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -173,22 +184,38 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
QName filePlanType = apiUtils.getFilePlanType();
|
||||
if(filePlanType == null)// rm site not created
|
||||
if (filePlanType == null)// rm site not created
|
||||
{
|
||||
throw new EntityNotFoundException(filePlanId);
|
||||
}
|
||||
NodeRef parentNodeRef = apiUtils.lookupAndValidateNodeType(filePlanId, filePlanType);
|
||||
|
||||
RetryingTransactionCallback<List<NodeRef>> callback = new RetryingTransactionCallback<List<NodeRef>>()
|
||||
{
|
||||
public List<NodeRef> execute()
|
||||
{
|
||||
List<NodeRef> createdNodes = new LinkedList<>();
|
||||
for (RecordCategory nodeInfo : nodeInfos)
|
||||
{
|
||||
// Create the node
|
||||
nodeInfo.setNodeType(RECORD_CATEGORY_TYPE);
|
||||
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo, parameters);
|
||||
createdNodes.add(newNodeRef);
|
||||
}
|
||||
return createdNodes;
|
||||
}
|
||||
};
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get the nodes info
|
||||
List<RecordCategory> result = new ArrayList<>(nodeInfos.size());
|
||||
Map<String, UserInfo> mapUserInfo = new HashMap<>();
|
||||
for (RecordCategory nodeInfo : nodeInfos)
|
||||
for (NodeRef newNodeRef : createdNodes)
|
||||
{
|
||||
// Create the node
|
||||
nodeInfo.setNodeType(RECORD_CATEGORY_TYPE);
|
||||
NodeRef newNode = apiUtils.createRMNode(parentNodeRef, nodeInfo, parameters);
|
||||
FileInfo info = fileFolderService.getFileInfo(newNode);
|
||||
FileInfo info = fileFolderService.getFileInfo(newNodeRef);
|
||||
result.add(nodesModelFactory.createRecordCategory(info, parameters, mapUserInfo, false));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -30,6 +30,7 @@ package org.alfresco.rm.rest.api.fileplans;
|
||||
import static org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck.checkNotBlank;
|
||||
import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException;
|
||||
@@ -43,6 +44,7 @@ import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
@@ -60,6 +62,7 @@ public class FilePlanEntityResource
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -76,6 +79,11 @@ public class FilePlanEntityResource
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -117,9 +125,26 @@ public class FilePlanEntityResource
|
||||
throw new EntityNotFoundException(filePlanId);
|
||||
}
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(filePlanId, filePlanType);
|
||||
apiUtils.updateNode(nodeRef, filePlanInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
RetryingTransactionCallback<Void> updateCallback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(nodeRef, filePlanInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(updateCallback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
return nodesModelFactory.createFilePlan(info, parameters, null, false);
|
||||
}
|
||||
}
|
||||
|
@@ -628,7 +628,7 @@ public class FilePlanComponentsApiUtils
|
||||
QName typeQName = nodes.createQName(nodeType);
|
||||
|
||||
// Existing file/folder name handling
|
||||
if (TYPES_CAN_CREATE.contains(typeQName) && autoRename)
|
||||
if (TYPES_CAN_USE_AUTORENAME.contains(typeQName) && autoRename)
|
||||
{
|
||||
NodeRef existingNode = nodeService.getChildByName(parentNodeRef, ContentModel.ASSOC_CONTAINS, nodeName);
|
||||
if (existingNode != null)
|
||||
|
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.rm.rest.api.model;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
|
||||
@@ -50,6 +51,8 @@ public class UploadInfo
|
||||
|
||||
public UploadInfo(FormData formData)
|
||||
{
|
||||
properties = new HashMap<>();
|
||||
|
||||
for (FormData.FormField field : formData.getFields())
|
||||
{
|
||||
switch (field.getName().toLowerCase())
|
||||
|
@@ -31,6 +31,7 @@ import static org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck.c
|
||||
import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
@@ -43,6 +44,7 @@ import org.alfresco.rm.rest.api.model.RecordCategory;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
@@ -62,6 +64,7 @@ public class RecordCategoriesEntityResource implements
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -78,6 +81,11 @@ public class RecordCategoriesEntityResource implements
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -111,9 +119,26 @@ public class RecordCategoriesEntityResource implements
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(recordCategoryId, RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
apiUtils.updateNode(nodeRef, recordCategoryInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(nodeRef, recordCategoryInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
return nodesModelFactory.createRecordCategory(info, parameters, null, false);
|
||||
}
|
||||
|
||||
|
@@ -36,6 +36,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -44,6 +45,7 @@ import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.query.PagingResults;
|
||||
import org.alfresco.repo.node.getchildren.FilterProp;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.api.impl.Util;
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
@@ -62,6 +64,7 @@ import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -83,6 +86,7 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
||||
private SearchTypesFactory searchTypesFactory;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -104,6 +108,11 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@WebApiDescription(title = "Return a paged list of record category children for the container identified by 'recordCategoryId'")
|
||||
public CollectionWithPagingInfo<RecordCategoryChild> readAll(String recordCategoryId, Parameters parameters)
|
||||
@@ -167,18 +176,33 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
||||
|
||||
List<RecordCategoryChild> result = new ArrayList<>(nodeInfos.size());
|
||||
Map<String, UserInfo> mapUserInfo = new HashMap<>();
|
||||
for (RecordCategoryChild nodeInfo : nodeInfos)
|
||||
{
|
||||
// Resolve the parent node
|
||||
NodeRef nodeParent = parentNodeRef;
|
||||
if(StringUtils.isNoneBlank(nodeInfo.getRelativePath()))
|
||||
{
|
||||
nodeParent = apiUtils.lookupAndValidateRelativePath(parentNodeRef, nodeInfo.getRelativePath(), RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
}
|
||||
|
||||
// Create the node
|
||||
NodeRef newNode = apiUtils.createRMNode(nodeParent, nodeInfo, parameters);
|
||||
FileInfo info = fileFolderService.getFileInfo(newNode);
|
||||
RetryingTransactionCallback<List<NodeRef>> callback = new RetryingTransactionCallback<List<NodeRef>>()
|
||||
{
|
||||
public List<NodeRef> execute()
|
||||
{
|
||||
List<NodeRef> createdNodes = new LinkedList<>();
|
||||
for (RecordCategoryChild nodeInfo : nodeInfos)
|
||||
{
|
||||
// Resolve the parent node
|
||||
NodeRef nodeParent = parentNodeRef;
|
||||
if (StringUtils.isNoneBlank(nodeInfo.getRelativePath()))
|
||||
{
|
||||
nodeParent = apiUtils.lookupAndValidateRelativePath(parentNodeRef, nodeInfo.getRelativePath(),
|
||||
RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
}
|
||||
// Create the node
|
||||
NodeRef newNode = apiUtils.createRMNode(nodeParent, nodeInfo, parameters);
|
||||
createdNodes.add(newNode);
|
||||
}
|
||||
return createdNodes;
|
||||
}
|
||||
};
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
for (NodeRef nodeInfo : createdNodes)
|
||||
{
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeInfo);
|
||||
result.add(nodesModelFactory.createRecordCategoryChild(info, parameters, mapUserInfo, false));
|
||||
}
|
||||
|
||||
|
@@ -173,7 +173,7 @@ public class RecordFolderChildrenRelation implements RelationshipResourceAction.
|
||||
return createdNodes;
|
||||
}
|
||||
};
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get the nodes info
|
||||
List<Record> result = new LinkedList<>();
|
||||
@@ -211,7 +211,7 @@ public class RecordFolderChildrenRelation implements RelationshipResourceAction.
|
||||
uploadInfo.getContent().getInputStream());
|
||||
}
|
||||
};
|
||||
NodeRef newNode = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
NodeRef newNode = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get file info for response
|
||||
FileInfo info = fileFolderService.getFileInfo(newNode);
|
||||
|
@@ -31,6 +31,7 @@ import static org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck.c
|
||||
import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
import org.alfresco.rest.framework.resource.EntityResource;
|
||||
@@ -42,6 +43,7 @@ import org.alfresco.rm.rest.api.model.RecordFolder;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
@@ -59,6 +61,7 @@ public class RecordFolderEntityResource implements EntityResourceAction.ReadById
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -75,6 +78,11 @@ public class RecordFolderEntityResource implements EntityResourceAction.ReadById
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -106,9 +114,26 @@ public class RecordFolderEntityResource implements EntityResourceAction.ReadById
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(recordFolderId, RecordsManagementModel.TYPE_RECORD_FOLDER);
|
||||
apiUtils.updateNode(nodeRef, recordFolderInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(nodeRef, recordFolderInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
return nodesModelFactory.createRecordFolder(info, parameters, null, false);
|
||||
}
|
||||
|
||||
|
@@ -34,6 +34,7 @@ import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||
import org.alfresco.repo.activities.ActivityType;
|
||||
import org.alfresco.repo.node.integrity.IntegrityException;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.framework.BinaryProperties;
|
||||
import org.alfresco.rest.framework.Operation;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
@@ -56,6 +57,7 @@ import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.model.FileNotFoundException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.dao.ConcurrencyFailureException;
|
||||
@@ -80,6 +82,7 @@ public class RecordsEntityResource implements BinaryResourceAction.Read,
|
||||
private FileFolderService fileFolderService;
|
||||
private RecordService recordService;
|
||||
private NodeService nodeService;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setNodesModelFactory(ApiNodesModelFactory nodesModelFactory)
|
||||
{
|
||||
@@ -105,6 +108,12 @@ public class RecordsEntityResource implements BinaryResourceAction.Read,
|
||||
{
|
||||
this.fileFolderService = fileFolderService;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Download content
|
||||
*
|
||||
@@ -197,10 +206,26 @@ public class RecordsEntityResource implements BinaryResourceAction.Read,
|
||||
NodeRef record = apiUtils.validateRecord(recordId);
|
||||
|
||||
// update info
|
||||
apiUtils.updateNode(record, recordInfo, parameters);
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(record, recordInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// return record state
|
||||
FileInfo info = fileFolderService.getFileInfo(record);
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(record);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
apiUtils.postActivity(info, recordInfo.getParentId(), ActivityType.FILE_UPDATED);
|
||||
return nodesModelFactory.createRecord(info, parameters, null, false);
|
||||
}
|
||||
|
@@ -31,6 +31,7 @@ import static org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck.c
|
||||
import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException;
|
||||
@@ -43,6 +44,7 @@ import org.alfresco.rm.rest.api.model.TransferContainer;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
@@ -60,6 +62,7 @@ public class TransferContainerEntityResource implements
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -76,6 +79,11 @@ public class TransferContainerEntityResource implements
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -108,9 +116,27 @@ public class TransferContainerEntityResource implements
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(transferContainerId, RecordsManagementModel.TYPE_TRANSFER_CONTAINER);
|
||||
apiUtils.updateTransferContainer(nodeRef, transferContainerInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
// update info
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateTransferContainer(nodeRef, transferContainerInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
return nodesModelFactory.createTransferContainer(info, parameters, null, false);
|
||||
}
|
||||
}
|
||||
|
@@ -192,7 +192,7 @@ public class UnfiledContainerChildrenRelation implements RelationshipResourceAct
|
||||
return createdNodes;
|
||||
}
|
||||
};
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get the nodes info
|
||||
List<UnfiledContainerChild> result = new LinkedList<>();
|
||||
@@ -226,7 +226,7 @@ public class UnfiledContainerChildrenRelation implements RelationshipResourceAct
|
||||
return apiUtils.uploadRecord(parentNodeRef, uploadInfo.getFileName(), uploadInfo.getNodeType(), uploadInfo.getProperties(), uploadInfo.getContent().getInputStream());
|
||||
}
|
||||
};
|
||||
NodeRef newNode = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
NodeRef newNode = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get file info for response
|
||||
FileInfo info = fileFolderService.getFileInfo(newNode);
|
||||
|
@@ -32,6 +32,7 @@ import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.activities.ActivityType;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
import org.alfresco.rest.framework.resource.EntityResource;
|
||||
@@ -43,6 +44,7 @@ import org.alfresco.rm.rest.api.model.UnfiledContainer;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
@@ -60,6 +62,7 @@ public class UnfiledContainerEntityResource
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
@@ -76,6 +79,11 @@ public class UnfiledContainerEntityResource
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -107,9 +115,26 @@ public class UnfiledContainerEntityResource
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(unfiledContainerId, RecordsManagementModel.TYPE_UNFILED_RECORD_CONTAINER);
|
||||
apiUtils.updateNode(nodeRef, unfiledContainerInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(nodeRef, unfiledContainerInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
apiUtils.postActivity(info, unfiledContainerInfo.getParentId(), ActivityType.FILE_UPDATED);
|
||||
return nodesModelFactory.createUnfiledContainer(info, parameters, null, false);
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.Pair;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.extensions.webscripts.servlet.FormData;
|
||||
|
||||
@@ -198,7 +199,7 @@ public class UnfiledRecordFolderChildrenRelation implements RelationshipResource
|
||||
return createdNodes;
|
||||
}
|
||||
};
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
List<NodeRef> createdNodes = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
// Get the nodes info
|
||||
List<UnfiledRecordFolderChild> result = new LinkedList<>();
|
||||
@@ -224,21 +225,25 @@ public class UnfiledRecordFolderChildrenRelation implements RelationshipResource
|
||||
|
||||
// Retrieve the input data and resolve the parent node
|
||||
final UploadInfo uploadInfo = new UploadInfo(formData);
|
||||
final NodeRef parentNodeRef = apiUtils.lookupAndValidateNodeType(unfiledRecordFolderId, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER, uploadInfo.getRelativePath());
|
||||
|
||||
// Create the record
|
||||
RetryingTransactionCallback<NodeRef> callback = new RetryingTransactionCallback<NodeRef>()
|
||||
// Create the record - returns pair(newNode,parentNode)
|
||||
RetryingTransactionCallback<Pair<NodeRef,NodeRef>> callback = new RetryingTransactionCallback<Pair<NodeRef,NodeRef>>()
|
||||
{
|
||||
public NodeRef execute()
|
||||
public Pair<NodeRef,NodeRef> execute()
|
||||
{
|
||||
return apiUtils.uploadRecord(parentNodeRef, uploadInfo.getFileName(), uploadInfo.getNodeType(), uploadInfo.getProperties(), uploadInfo.getContent().getInputStream());
|
||||
final NodeRef parentNodeRef = apiUtils.lookupAndValidateNodeType(unfiledRecordFolderId, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER, uploadInfo.getRelativePath());
|
||||
NodeRef newNode = apiUtils.uploadRecord(parentNodeRef, uploadInfo.getFileName(), uploadInfo.getNodeType(), uploadInfo.getProperties(), uploadInfo.getContent().getInputStream());
|
||||
return new Pair<NodeRef, NodeRef>(newNode, parentNodeRef);
|
||||
}
|
||||
};
|
||||
NodeRef newNode = transactionService.getRetryingTransactionHelper().doInTransaction(callback);
|
||||
Pair<NodeRef,NodeRef> nodeAndParentInfo = transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
NodeRef newNode = nodeAndParentInfo.getFirst();
|
||||
NodeRef parent = nodeAndParentInfo.getSecond();
|
||||
|
||||
// Get file info for response
|
||||
// Get file info for response
|
||||
FileInfo info = fileFolderService.getFileInfo(newNode);
|
||||
apiUtils.postActivity(info, parentNodeRef, ActivityType.FILE_ADDED);
|
||||
apiUtils.postActivity(info, parent, ActivityType.FILE_ADDED);
|
||||
|
||||
return nodesModelFactory.createUnfiledRecordFolderChild(info, parameters, null, false);
|
||||
}
|
||||
}
|
||||
|
@@ -32,6 +32,7 @@ import static org.alfresco.util.ParameterCheck.mandatory;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.activities.ActivityType;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
@@ -44,6 +45,7 @@ import org.alfresco.rm.rest.api.model.UnfiledRecordFolder;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
@@ -61,6 +63,8 @@ public class UnfiledRecordFolderEntityResource implements EntityResourceAction.R
|
||||
private FilePlanComponentsApiUtils apiUtils;
|
||||
private FileFolderService fileFolderService;
|
||||
private ApiNodesModelFactory nodesModelFactory;
|
||||
private TransactionService transactionService;
|
||||
|
||||
public void setApiUtils(FilePlanComponentsApiUtils apiUtils)
|
||||
{
|
||||
this.apiUtils = apiUtils;
|
||||
@@ -76,6 +80,11 @@ public class UnfiledRecordFolderEntityResource implements EntityResourceAction.R
|
||||
this.nodesModelFactory = nodesModelFactory;
|
||||
}
|
||||
|
||||
public void setTransactionService(TransactionService transactionService)
|
||||
{
|
||||
this.transactionService = transactionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
@@ -110,9 +119,26 @@ public class UnfiledRecordFolderEntityResource implements EntityResourceAction.R
|
||||
mandatory("parameters", parameters);
|
||||
|
||||
NodeRef nodeRef = apiUtils.lookupAndValidateNodeType(unfiledRecordFolderId, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER);
|
||||
apiUtils.updateNode(nodeRef, unfiledRecordFolderInfo, parameters);
|
||||
|
||||
FileInfo info = fileFolderService.getFileInfo(nodeRef);
|
||||
RetryingTransactionCallback<Void> callback = new RetryingTransactionCallback<Void>()
|
||||
{
|
||||
public Void execute()
|
||||
{
|
||||
apiUtils.updateNode(nodeRef, unfiledRecordFolderInfo, parameters);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
|
||||
|
||||
RetryingTransactionCallback<FileInfo> readCallback = new RetryingTransactionCallback<FileInfo>()
|
||||
{
|
||||
public FileInfo execute()
|
||||
{
|
||||
return fileFolderService.getFileInfo(nodeRef);
|
||||
}
|
||||
};
|
||||
FileInfo info = transactionService.getRetryingTransactionHelper().doInTransaction(readCallback, false, true);
|
||||
|
||||
apiUtils.postActivity(info, unfiledRecordFolderInfo.getParentId(), ActivityType.FILE_UPDATED);
|
||||
return nodesModelFactory.createUnfiledRecordFolder(info, parameters, null, false);
|
||||
}
|
||||
|
Reference in New Issue
Block a user