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-4921_ExceptionsDoneOnTransactionCommit
This commit is contained in:
12
README.txt
12
README.txt
@@ -95,9 +95,6 @@ Follow these instructions install licence and Outlook plugin:
|
|||||||
- http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html
|
- http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SNAPSHOT dependencies:
|
SNAPSHOT dependencies:
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
@@ -114,6 +111,7 @@ Code Formatting:
|
|||||||
|
|
||||||
This project follows the usual Alfresco Coding Standards. If you use Eclipse or IntelliJ, there are settings inside the ide-config directory for you to import.
|
This project follows the usual Alfresco Coding Standards. If you use Eclipse or IntelliJ, there are settings inside the ide-config directory for you to import.
|
||||||
|
|
||||||
|
|
||||||
Surf build errors:
|
Surf build errors:
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
@@ -121,3 +119,11 @@ If you get:
|
|||||||
[ERROR] Failed to execute goal on project alfresco-rm-community-share: Could not resolve dependencies for project org.alfresco:alfresco-rm-community-share:amp:2.6-SNAPSHOT: Failed to collect dependencies at org.alfresco.surf:spring-surf-api:jar:6.3 -> org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Failed to read artifact descriptor for org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Could not transfer artifact org.alfresco.surf:spring-surf:pom:${dependency.surf.version} from/to alfresco-internal (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
|
[ERROR] Failed to execute goal on project alfresco-rm-community-share: Could not resolve dependencies for project org.alfresco:alfresco-rm-community-share:amp:2.6-SNAPSHOT: Failed to collect dependencies at org.alfresco.surf:spring-surf-api:jar:6.3 -> org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Failed to read artifact descriptor for org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Could not transfer artifact org.alfresco.surf:spring-surf:pom:${dependency.surf.version} from/to alfresco-internal (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
|
||||||
|
|
||||||
then please re-run with -Ddependency.surf.version=6.3
|
then please re-run with -Ddependency.surf.version=6.3
|
||||||
|
|
||||||
|
|
||||||
|
Install lombok plugin for IDEs:
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
To allow automation and benchmark projects to be built within an IDE the lombok 'plugin' needs to be installed.
|
||||||
|
|
||||||
|
Execute lombok.jar (doubleclick it, or run java -jar lombok.jar). Follow instructions.
|
||||||
|
@@ -134,7 +134,7 @@ public class RecordCategoryChildProperties extends TestModel
|
|||||||
private Boolean recordSearchDispositionEventsEligible;
|
private Boolean recordSearchDispositionEventsEligible;
|
||||||
|
|
||||||
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS)
|
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS)
|
||||||
private String recordSearchDispositionInstructions;
|
private String recordSearchDispositionInstructions;
|
||||||
|
|
||||||
@JsonProperty (PROPERTIES_OWNER)
|
@JsonProperty (PROPERTIES_OWNER)
|
||||||
private Owner owner;
|
private Owner owner;
|
||||||
|
@@ -52,6 +52,7 @@ import static org.testng.Assert.assertTrue;
|
|||||||
import static org.testng.Assert.fail;
|
import static org.testng.Assert.fail;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
@@ -66,7 +67,10 @@ import org.alfresco.rest.rm.community.model.recordfolder.RecordFolder;
|
|||||||
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
|
||||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
|
||||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
||||||
|
import org.alfresco.rest.v0.RecordCategoriesAPI;
|
||||||
|
import org.alfresco.rest.core.v0.BaseAPI.RETENTION_SCHEDULE;
|
||||||
import org.alfresco.utility.report.Bug;
|
import org.alfresco.utility.report.Bug;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.testng.annotations.DataProvider;
|
import org.testng.annotations.DataProvider;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
@@ -83,6 +87,9 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
private static final int NUMBER_OF_CHILDREN = 10;
|
private static final int NUMBER_OF_CHILDREN = 10;
|
||||||
private static final int NUMBER_OF_FOLDERS = 5;
|
private static final int NUMBER_OF_FOLDERS = 5;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RecordCategoriesAPI recordCategoriesAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invalid containers that cannot be deleted with record category end-point
|
* Invalid containers that cannot be deleted with record category end-point
|
||||||
*/
|
*/
|
||||||
@@ -287,6 +294,7 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
assertEquals(folderProperties.getTitle(), TITLE_PREFIX + RECORD_FOLDER_NAME);
|
assertEquals(folderProperties.getTitle(), TITLE_PREFIX + RECORD_FOLDER_NAME);
|
||||||
assertNotNull(folderProperties.getIdentifier());
|
assertNotNull(folderProperties.getIdentifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* Given that a record category exists
|
* Given that a record category exists
|
||||||
@@ -294,17 +302,37 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
* When I ask the API to get me the children of the record category
|
* When I ask the API to get me the children of the record category
|
||||||
* Then I am returned the contained record categories and record folders and their details
|
* Then I am returned the contained record categories and record folders and their details
|
||||||
* </pre>
|
* </pre>
|
||||||
|
* <pre>
|
||||||
|
* Given that a record category with a disposition schedule exists
|
||||||
|
* And contains a number of record categories and record folders
|
||||||
|
* When I ask the API to get me the children of the record category
|
||||||
|
* Then I am returned the contained record categories and record folders but not the disposition schedule
|
||||||
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
(
|
(
|
||||||
description = "Get children of a record category"
|
description = "Get children of a record category excluding the disposition schedule"
|
||||||
)
|
)
|
||||||
|
@Bug (id="RM-5115")
|
||||||
public void getRecordCategoryChildren() throws Exception
|
public void getRecordCategoryChildren() throws Exception
|
||||||
{
|
{
|
||||||
// Create root level category
|
// Create root level category
|
||||||
RecordCategory rootRecordCategory = createRootCategory(getRandomAlphanumeric());
|
RecordCategory rootRecordCategory = createRootCategory(getRandomAlphanumeric());
|
||||||
assertNotNull(rootRecordCategory.getId());
|
assertNotNull(rootRecordCategory.getId());
|
||||||
|
|
||||||
|
// Create disposition schedule
|
||||||
|
String userName = getAdminUser().getUsername();
|
||||||
|
String userPassword = getAdminUser().getPassword();
|
||||||
|
String categoryName = rootRecordCategory.getName();
|
||||||
|
recordCategoriesAPI.createRetentionSchedule(userName, userPassword, categoryName);
|
||||||
|
|
||||||
|
// Add disposition schedule cut off step
|
||||||
|
HashMap<RETENTION_SCHEDULE, String> cutOffStep = new HashMap<>();
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.NAME, "cutoff");
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.RETENTION_PERIOD, "day|2");
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.DESCRIPTION, "Cut off after 2 days");
|
||||||
|
recordCategoriesAPI.addDispositionScheduleSteps(userName, userPassword, categoryName, cutOffStep);
|
||||||
|
|
||||||
// Add record category children
|
// Add record category children
|
||||||
List<RecordCategoryChild> children = new ArrayList<RecordCategoryChild>();
|
List<RecordCategoryChild> children = new ArrayList<RecordCategoryChild>();
|
||||||
for (int i=0; i < NUMBER_OF_CHILDREN; i++)
|
for (int i=0; i < NUMBER_OF_CHILDREN; i++)
|
||||||
|
@@ -198,8 +198,8 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read
|
|||||||
for (RecordCategory nodeInfo : nodeInfos)
|
for (RecordCategory nodeInfo : nodeInfos)
|
||||||
{
|
{
|
||||||
// Create the node
|
// Create the node
|
||||||
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo.getName(), RECORD_CATEGORY_TYPE,
|
nodeInfo.setNodeType(RECORD_CATEGORY_TYPE);
|
||||||
nodeInfo.getProperties(), nodeInfo.getAspectNames());
|
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo, parameters);
|
||||||
createdNodes.add(newNodeRef);
|
createdNodes.add(newNodeRef);
|
||||||
}
|
}
|
||||||
return createdNodes;
|
return createdNodes;
|
||||||
|
@@ -134,6 +134,12 @@ public class FilePlanComponentsApiUtils
|
|||||||
RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER,
|
RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER,
|
||||||
RecordsManagementModel.TYPE_HOLD_CONTAINER);
|
RecordsManagementModel.TYPE_HOLD_CONTAINER);
|
||||||
|
|
||||||
|
public static final List<QName> TYPES_CAN_USE_AUTORENAME = Arrays.asList(
|
||||||
|
RecordsManagementModel.TYPE_RECORD_CATEGORY,
|
||||||
|
RecordsManagementModel.TYPE_RECORD_FOLDER,
|
||||||
|
RecordsManagementModel.TYPE_UNFILED_RECORD_CONTAINER,
|
||||||
|
RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER);
|
||||||
|
|
||||||
/** RM Nodes API */
|
/** RM Nodes API */
|
||||||
private Nodes nodes;
|
private Nodes nodes;
|
||||||
private FileFolderService fileFolderService;
|
private FileFolderService fileFolderService;
|
||||||
@@ -598,27 +604,43 @@ public class FilePlanComponentsApiUtils
|
|||||||
* Create an RM node
|
* Create an RM node
|
||||||
*
|
*
|
||||||
* @param parentNodeRef the parent of the node
|
* @param parentNodeRef the parent of the node
|
||||||
* @param name the name of the new node
|
* @param nodeInfo the node infos to create
|
||||||
* @param type the type of the node
|
* @param parameters the object to get the parameters passed into the request
|
||||||
* @param properties properties to set on the new node
|
|
||||||
* @param aspects aspects to set on the new node
|
|
||||||
* @return the new node
|
* @return the new node
|
||||||
*/
|
*/
|
||||||
public NodeRef createRMNode(NodeRef parentNodeRef, String name, String type, Map<String, Object> properties, List<String> aspects)
|
public NodeRef createRMNode(NodeRef parentNodeRef, RMNode nodeInfo, Parameters parameters)
|
||||||
{
|
{
|
||||||
mandatory("parentNodeRef", parentNodeRef);
|
mandatory("parentNodeRef", parentNodeRef);
|
||||||
checkNotBlank(RMNode.PARAM_NAME, name);
|
mandatory("nodeInfo", nodeInfo);
|
||||||
checkNotBlank(RMNode.PARAM_NODE_TYPE, type);
|
mandatory("parameters", parameters);
|
||||||
|
|
||||||
|
String nodeName = nodeInfo.getName();
|
||||||
|
String nodeType = nodeInfo.getNodeType();
|
||||||
|
checkNotBlank(RMNode.PARAM_NAME, nodeName);
|
||||||
|
checkNotBlank(RMNode.PARAM_NODE_TYPE, nodeType);
|
||||||
|
|
||||||
// Create the node
|
// Create the node
|
||||||
NodeRef newNodeRef = null;
|
NodeRef newNodeRef = null;
|
||||||
|
boolean autoRename = Boolean.valueOf(parameters.getParameter(RMNode.PARAM_AUTO_RENAME));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
QName typeQName = nodes.createQName(type);
|
QName typeQName = nodes.createQName(nodeType);
|
||||||
newNodeRef = fileFolderService.create(parentNodeRef, name, typeQName).getNodeRef();
|
|
||||||
|
// Existing file/folder name handling
|
||||||
|
if (TYPES_CAN_USE_AUTORENAME.contains(typeQName) && autoRename)
|
||||||
|
{
|
||||||
|
NodeRef existingNode = nodeService.getChildByName(parentNodeRef, ContentModel.ASSOC_CONTAINS, nodeName);
|
||||||
|
if (existingNode != null)
|
||||||
|
{
|
||||||
|
// File already exists, find a unique name
|
||||||
|
nodeName = findUniqueName(parentNodeRef, nodeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newNodeRef = fileFolderService.create(parentNodeRef, nodeName, typeQName).getNodeRef();
|
||||||
|
|
||||||
// Set the provided properties if any
|
// Set the provided properties if any
|
||||||
Map<QName, Serializable> qnameProperties = mapToNodeProperties(properties);
|
Map<QName, Serializable> qnameProperties = mapToNodeProperties(nodeInfo.getProperties());
|
||||||
if (qnameProperties != null)
|
if (qnameProperties != null)
|
||||||
{
|
{
|
||||||
nodeService.addProperties(newNodeRef, qnameProperties);
|
nodeService.addProperties(newNodeRef, qnameProperties);
|
||||||
@@ -628,18 +650,19 @@ public class FilePlanComponentsApiUtils
|
|||||||
if (!typeQName.equals(RecordsManagementModel.TYPE_NON_ELECTRONIC_DOCUMENT)
|
if (!typeQName.equals(RecordsManagementModel.TYPE_NON_ELECTRONIC_DOCUMENT)
|
||||||
&& dictionaryService.isSubClass(typeQName, ContentModel.TYPE_CONTENT))
|
&& dictionaryService.isSubClass(typeQName, ContentModel.TYPE_CONTENT))
|
||||||
{
|
{
|
||||||
writeContent(newNodeRef, name, new ByteArrayInputStream("".getBytes()), false);
|
writeContent(newNodeRef, nodeName, new ByteArrayInputStream("".getBytes()), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the provided aspects if any
|
// Add the provided aspects if any
|
||||||
if (aspects != null)
|
List<String> aspectNames = nodeInfo.getAspectNames();
|
||||||
|
if (aspectNames != null)
|
||||||
{
|
{
|
||||||
nodes.addCustomAspects(newNodeRef, aspects, ApiNodesModelFactory.EXCLUDED_ASPECTS);
|
nodes.addCustomAspects(newNodeRef, aspectNames, ApiNodesModelFactory.EXCLUDED_ASPECTS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (InvalidTypeException ex)
|
catch (InvalidTypeException ex)
|
||||||
{
|
{
|
||||||
throw new InvalidArgumentException("The given type:'" + type + "' is invalid '");
|
throw new InvalidArgumentException("The given type:'" + nodeType + "' is invalid '");
|
||||||
}
|
}
|
||||||
|
|
||||||
return newNodeRef;
|
return newNodeRef;
|
||||||
@@ -955,7 +978,45 @@ public class FilePlanComponentsApiUtils
|
|||||||
activityPoster.postFileFolderActivity(activityType, null, TenantUtil.getCurrentDomain(), activityInfo.getSiteId(),
|
activityPoster.postFileFolderActivity(activityType, null, TenantUtil.getCurrentDomain(), activityInfo.getSiteId(),
|
||||||
activityInfo.getParentNodeRef(), activityInfo.getNodeRef(), activityInfo.getFileName(), Activities.APP_TOOL,
|
activityInfo.getParentNodeRef(), activityInfo.getNodeRef(), activityInfo.getFileName(), Activities.APP_TOOL,
|
||||||
Activities.RESTAPI_CLIENT, activityInfo.getFileInfo());
|
Activities.RESTAPI_CLIENT, activityInfo.getFileInfo());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Creates a unique file name, if the upload component was configured to
|
||||||
|
* find a new unique name for clashing filenames.
|
||||||
|
*
|
||||||
|
* @param parentNodeRef the parent node
|
||||||
|
* @param fileName the original fileName
|
||||||
|
* @return a new file name
|
||||||
|
*/
|
||||||
|
private String findUniqueName(NodeRef parentNodeRef, String fileName)
|
||||||
|
{
|
||||||
|
int counter = 1;
|
||||||
|
String tmpFilename;
|
||||||
|
NodeRef existingFile;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
int dotIndex = fileName.lastIndexOf('.');
|
||||||
|
if (dotIndex == 0)
|
||||||
|
{
|
||||||
|
// File didn't have a proper 'name' instead it
|
||||||
|
// had just a suffix and started with a ".", create "1.txt"
|
||||||
|
tmpFilename = counter + fileName;
|
||||||
|
}
|
||||||
|
else if (dotIndex > 0)
|
||||||
|
{
|
||||||
|
// Filename contained ".", create "fileName-1.txt"
|
||||||
|
tmpFilename = fileName.substring(0, dotIndex) + "-" + counter + fileName.substring(dotIndex);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Filename didn't contain a dot at all, create "fileName-1"
|
||||||
|
tmpFilename = fileName + "-" + counter;
|
||||||
|
}
|
||||||
|
existingFile = nodeService.getChildByName(parentNodeRef, ContentModel.ASSOC_CONTAINS, tmpFilename);
|
||||||
|
counter++;
|
||||||
|
|
||||||
|
} while (existingFile != null);
|
||||||
|
|
||||||
|
return tmpFilename;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -198,6 +198,7 @@ public class SearchTypesFactory
|
|||||||
Boolean isRecordFolder = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_FOLDER,
|
Boolean isRecordFolder = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_FOLDER,
|
||||||
WhereClauseParser.EQUALS, Boolean.class);
|
WhereClauseParser.EQUALS, Boolean.class);
|
||||||
Boolean isRecordCategory = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_CATEGORY, WhereClauseParser.EQUALS, Boolean.class);
|
Boolean isRecordCategory = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_CATEGORY, WhereClauseParser.EQUALS, Boolean.class);
|
||||||
|
|
||||||
if ((isRecordFolder != null && isRecordFolder.booleanValue()) || (isRecordCategory != null && !isRecordCategory.booleanValue()))
|
if ((isRecordFolder != null && isRecordFolder.booleanValue()) || (isRecordCategory != null && !isRecordCategory.booleanValue()))
|
||||||
{
|
{
|
||||||
includeRecordFolders = true;
|
includeRecordFolders = true;
|
||||||
@@ -221,6 +222,7 @@ public class SearchTypesFactory
|
|||||||
if (nodeTypeQNameStr.equals(RecordsManagementModel.TYPE_RECORD_FOLDER))
|
if (nodeTypeQNameStr.equals(RecordsManagementModel.TYPE_RECORD_FOLDER))
|
||||||
{
|
{
|
||||||
includeRecordFolders = true;
|
includeRecordFolders = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (filterNodeTypeQName.equals(RecordsManagementModel.TYPE_RECORD_CATEGORY))
|
else if (filterNodeTypeQName.equals(RecordsManagementModel.TYPE_RECORD_CATEGORY))
|
||||||
{
|
{
|
||||||
|
@@ -57,6 +57,7 @@ public abstract class RMNode
|
|||||||
public static final String PARAM_PROPERTIES = "properties";
|
public static final String PARAM_PROPERTIES = "properties";
|
||||||
public static final String PARAM_PATH = "path";
|
public static final String PARAM_PATH = "path";
|
||||||
public static final String PARAM_ALLOWABLE_OPERATIONS = "allowableOperations";
|
public static final String PARAM_ALLOWABLE_OPERATIONS = "allowableOperations";
|
||||||
|
public static final String PARAM_AUTO_RENAME = "autoRename";
|
||||||
|
|
||||||
public static final String PARAM_ISPRIMARY = "isPrimary";
|
public static final String PARAM_ISPRIMARY = "isPrimary";
|
||||||
|
|
||||||
|
@@ -33,6 +33,7 @@ import static org.alfresco.util.ParameterCheck.mandatory;
|
|||||||
import java.util.AbstractList;
|
import java.util.AbstractList;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -40,6 +41,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.query.PagingResults;
|
import org.alfresco.query.PagingResults;
|
||||||
import org.alfresco.repo.node.getchildren.FilterProp;
|
import org.alfresco.repo.node.getchildren.FilterProp;
|
||||||
@@ -123,10 +125,11 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
|||||||
|
|
||||||
// list record categories and record folders
|
// list record categories and record folders
|
||||||
Set<QName> searchTypeQNames = searchTypesFactory.buildSearchTypesCategoriesEndpoint(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
Set<QName> searchTypeQNames = searchTypesFactory.buildSearchTypesCategoriesEndpoint(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
||||||
|
Set<QName> assocTypeQNames = Collections.singleton(ContentModel.ASSOC_CONTAINS);
|
||||||
List<FilterProp> filterProps = apiUtils.getListChildrenFilterProps(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
List<FilterProp> filterProps = apiUtils.getListChildrenFilterProps(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
||||||
|
|
||||||
final PagingResults<FileInfo> pagingResults = fileFolderService.list(parentNodeRef,
|
final PagingResults<FileInfo> pagingResults = fileFolderService.list(parentNodeRef,
|
||||||
null,
|
assocTypeQNames,
|
||||||
searchTypeQNames,
|
searchTypeQNames,
|
||||||
null,
|
null,
|
||||||
apiUtils.getSortProperties(parameters),
|
apiUtils.getSortProperties(parameters),
|
||||||
@@ -189,8 +192,7 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
|||||||
RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||||
}
|
}
|
||||||
// Create the node
|
// Create the node
|
||||||
NodeRef newNode = apiUtils.createRMNode(nodeParent, nodeInfo.getName(), nodeInfo.getNodeType(),
|
NodeRef newNode = apiUtils.createRMNode(nodeParent, nodeInfo, parameters);
|
||||||
nodeInfo.getProperties(), nodeInfo.getAspectNames());
|
|
||||||
createdNodes.add(newNode);
|
createdNodes.add(newNode);
|
||||||
}
|
}
|
||||||
return createdNodes;
|
return createdNodes;
|
||||||
|
@@ -167,7 +167,7 @@ public class RecordFolderChildrenRelation implements RelationshipResourceAction.
|
|||||||
List<NodeRef> createdNodes = new LinkedList<>();
|
List<NodeRef> createdNodes = new LinkedList<>();
|
||||||
for (Record nodeInfo : nodeInfos)
|
for (Record nodeInfo : nodeInfos)
|
||||||
{
|
{
|
||||||
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo.getName(), nodeInfo.getNodeType(), nodeInfo.getProperties(), nodeInfo.getAspectNames());
|
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo, parameters);
|
||||||
createdNodes.add(newNodeRef);
|
createdNodes.add(newNodeRef);
|
||||||
}
|
}
|
||||||
return createdNodes;
|
return createdNodes;
|
||||||
|
@@ -186,7 +186,7 @@ public class UnfiledContainerChildrenRelation implements RelationshipResourceAct
|
|||||||
List<NodeRef> createdNodes = new LinkedList<>();
|
List<NodeRef> createdNodes = new LinkedList<>();
|
||||||
for (UnfiledContainerChild nodeInfo : nodeInfos)
|
for (UnfiledContainerChild nodeInfo : nodeInfos)
|
||||||
{
|
{
|
||||||
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo.getName(), nodeInfo.getNodeType(), nodeInfo.getProperties(), nodeInfo.getAspectNames());
|
NodeRef newNodeRef = apiUtils.createRMNode(parentNodeRef, nodeInfo, parameters);
|
||||||
createdNodes.add(newNodeRef);
|
createdNodes.add(newNodeRef);
|
||||||
}
|
}
|
||||||
return createdNodes;
|
return createdNodes;
|
||||||
|
@@ -174,7 +174,7 @@ public class UnfiledRecordFolderChildrenRelation implements RelationshipResource
|
|||||||
mandatory("parameters", parameters);
|
mandatory("parameters", parameters);
|
||||||
|
|
||||||
NodeRef parentNodeRef = apiUtils.lookupAndValidateNodeType(unfiledRecordFolderId, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER);
|
NodeRef parentNodeRef = apiUtils.lookupAndValidateNodeType(unfiledRecordFolderId, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER);
|
||||||
|
|
||||||
// Create the children
|
// Create the children
|
||||||
RetryingTransactionCallback<List<NodeRef>> callback = new RetryingTransactionCallback<List<NodeRef>>()
|
RetryingTransactionCallback<List<NodeRef>> callback = new RetryingTransactionCallback<List<NodeRef>>()
|
||||||
{
|
{
|
||||||
@@ -193,7 +193,7 @@ public class UnfiledRecordFolderChildrenRelation implements RelationshipResource
|
|||||||
nodeParent = parentNodeRef;
|
nodeParent = parentNodeRef;
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeRef newNodeRef = apiUtils.createRMNode(nodeParent, nodeInfo.getName(), nodeInfo.getNodeType(), nodeInfo.getProperties(), nodeInfo.getAspectNames());
|
NodeRef newNodeRef = apiUtils.createRMNode(nodeParent, nodeInfo, parameters);
|
||||||
createdNodes.add(newNodeRef);
|
createdNodes.add(newNodeRef);
|
||||||
}
|
}
|
||||||
return createdNodes;
|
return createdNodes;
|
||||||
|
Reference in New Issue
Block a user