mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Code refactoring and bug fixing for:
* RM-486 (RM Data Set Service) * RM-487 (REST API to retrieve details of available RM data sets) * RM-488 (REST API to import a RM data set into a file plan) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@41341 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -5,5 +5,5 @@
|
|||||||
<format default="json">argument</format>
|
<format default="json">argument</format>
|
||||||
<authentication>admin</authentication>
|
<authentication>admin</authentication>
|
||||||
<transaction>required</transaction>
|
<transaction>required</transaction>
|
||||||
<lifecycle>internal</lifecycle>
|
<lifecycle>deprecated</lifecycle>
|
||||||
</webscript>
|
</webscript>
|
@@ -1,5 +1,14 @@
|
|||||||
<#escape x as jsonUtils.encodeJSONString(x)>
|
|
||||||
{
|
{
|
||||||
"data": ${data}
|
"data":
|
||||||
|
{
|
||||||
|
"datasets":
|
||||||
|
[
|
||||||
|
<#list datasets as item>
|
||||||
|
{
|
||||||
|
"label": "${item.label}",
|
||||||
|
"id": "${item.id}"
|
||||||
|
}<#if item_has_next>,</#if>
|
||||||
|
</#list>
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</#escape>
|
|
@@ -29,4 +29,12 @@ public interface DataSetService
|
|||||||
*/
|
*/
|
||||||
void loadDataSet(String dataSetId, NodeRef filePlan);
|
void loadDataSet(String dataSetId, NodeRef filePlan);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a data set exists with the given data set id
|
||||||
|
*
|
||||||
|
* @param dataSetId the id of the data set which will be checked
|
||||||
|
* @return true if the data set exists, false otherwise
|
||||||
|
*/
|
||||||
|
boolean existsDataSet(String dataSetId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ import org.alfresco.service.cmr.security.AuthorityType;
|
|||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
import org.alfresco.service.cmr.view.ImporterService;
|
import org.alfresco.service.cmr.view.ImporterService;
|
||||||
import org.alfresco.service.cmr.view.Location;
|
import org.alfresco.service.cmr.view.Location;
|
||||||
|
import org.alfresco.util.ParameterCheck;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
@@ -187,6 +188,8 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
@Override
|
@Override
|
||||||
public void register(DataSet dataSet)
|
public void register(DataSet dataSet)
|
||||||
{
|
{
|
||||||
|
ParameterCheck.mandatory("dataSet", dataSet);
|
||||||
|
|
||||||
this.dataSets.put(dataSet.getId(), dataSet);
|
this.dataSets.put(dataSet.getId(), dataSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,6 +209,9 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
@Override
|
@Override
|
||||||
public void loadDataSet(String dataSetId, NodeRef filePlan)
|
public void loadDataSet(String dataSetId, NodeRef filePlan)
|
||||||
{
|
{
|
||||||
|
ParameterCheck.mandatoryString("dataSetId", dataSetId);
|
||||||
|
ParameterCheck.mandatory("filePlan", filePlan);
|
||||||
|
|
||||||
// Get the data set
|
// Get the data set
|
||||||
DataSet dataSet = getDataSets().get(dataSetId);
|
DataSet dataSet = getDataSets().get(dataSetId);
|
||||||
|
|
||||||
@@ -224,10 +230,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
importerService.importView(viewReader, location, null, null);
|
importerService.importView(viewReader, location, null, null);
|
||||||
|
|
||||||
// Patch data
|
// Patch data
|
||||||
DataSetServiceImpl.patchLoadedData(searchService, nodeService, recordsManagementService,
|
patchLoadedData();
|
||||||
recordsManagementActionService, permissionService, authorityService,
|
|
||||||
recordsManagementSecurityService, recordsManagementSearchBehaviour,
|
|
||||||
dispositionService);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -238,13 +241,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
* @param recordsManagementService
|
* @param recordsManagementService
|
||||||
* @param recordsManagementActionService
|
* @param recordsManagementActionService
|
||||||
*/
|
*/
|
||||||
private static void patchLoadedData(final SearchService searchService,
|
private void patchLoadedData()
|
||||||
final NodeService nodeService, final RecordsManagementService recordsManagementService,
|
|
||||||
final RecordsManagementActionService recordsManagementActionService,
|
|
||||||
final PermissionService permissionService, final AuthorityService authorityService,
|
|
||||||
final RecordsManagementSecurityService recordsManagementSecurityService,
|
|
||||||
final RecordsManagementSearchBehaviour recordManagementSearchBehaviour,
|
|
||||||
final DispositionService dispositionService)
|
|
||||||
{
|
{
|
||||||
AuthenticationUtil.RunAsWork<Object> runAsWork = new AuthenticationUtil.RunAsWork<Object>()
|
AuthenticationUtil.RunAsWork<Object> runAsWork = new AuthenticationUtil.RunAsWork<Object>()
|
||||||
{
|
{
|
||||||
@@ -349,7 +346,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
|
|
||||||
// fixup the search behaviour aspect for the record folder
|
// fixup the search behaviour aspect for the record folder
|
||||||
logger.info("Setting up search aspect for record folder: " + folderName);
|
logger.info("Setting up search aspect for record folder: " + folderName);
|
||||||
recordManagementSearchBehaviour.fixupSearchAspect(recordFolder);
|
recordsManagementSearchBehaviour.fixupSearchAspect(recordFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@@ -365,4 +362,15 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService#existsDataSet(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean existsDataSet(String dataSetId)
|
||||||
|
{
|
||||||
|
ParameterCheck.mandatoryString("dataSetId", dataSetId);
|
||||||
|
|
||||||
|
return getDataSets().containsKey(dataSetId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -63,6 +63,11 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
|||||||
{
|
{
|
||||||
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A data set id was not provided.");
|
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A data set id was not provided.");
|
||||||
}
|
}
|
||||||
|
if (!dataSetService.existsDataSet(dataSetId))
|
||||||
|
{
|
||||||
|
throw new WebScriptException(Status.STATUS_NOT_FOUND, "A data set with the id '" + dataSetId + "'"
|
||||||
|
+ " does not exist.");
|
||||||
|
}
|
||||||
|
|
||||||
// Resolve RM site
|
// Resolve RM site
|
||||||
String siteName = req.getParameter(ARG_SITE_NAME);
|
String siteName = req.getParameter(ARG_SITE_NAME);
|
||||||
@@ -71,6 +76,7 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
|||||||
siteName = RmSiteType.DEFAULT_SITE_NAME;
|
siteName = RmSiteType.DEFAULT_SITE_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check the site if it exists
|
||||||
if (siteService.getSite(siteName) == null)
|
if (siteService.getSite(siteName) == null)
|
||||||
{
|
{
|
||||||
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A Records Management site with the name '"
|
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A Records Management site with the name '"
|
||||||
@@ -85,6 +91,7 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
|||||||
TYPE_FILE_PLAN, null);
|
TYPE_FILE_PLAN, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load data set in to the file plan
|
||||||
dataSetService.loadDataSet(dataSetId, filePlan);
|
dataSetService.loadDataSet(dataSetId, filePlan);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
|
@@ -1,17 +1,15 @@
|
|||||||
package org.alfresco.module.org_alfresco_module_rm.script;
|
package org.alfresco.module.org_alfresco_module_rm.script;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.dataset.DataSet;
|
import org.alfresco.module.org_alfresco_module_rm.dataset.DataSet;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService;
|
import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService;
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONException;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
import org.springframework.extensions.webscripts.Cache;
|
import org.springframework.extensions.webscripts.Cache;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
public class DataSetsGet extends DeclarativeWebScript
|
public class DataSetsGet extends DeclarativeWebScript
|
||||||
@@ -38,33 +36,23 @@ public class DataSetsGet extends DeclarativeWebScript
|
|||||||
@Override
|
@Override
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
||||||
{
|
{
|
||||||
try
|
Map<String, DataSet> dataSets = dataSetService.getDataSets();
|
||||||
{
|
List<Map<String, String>> dataSetList = new ArrayList<Map<String, String>>(dataSets.size());
|
||||||
JSONObject data = new JSONObject();
|
|
||||||
JSONArray dataSets = new JSONArray();
|
|
||||||
|
|
||||||
for (Map.Entry<String, DataSet> entry : dataSetService.getDataSets().entrySet())
|
for (Map.Entry<String, DataSet> entry : dataSets.entrySet())
|
||||||
{
|
{
|
||||||
|
Map<String, String> dataSet = new HashMap<String, String>(2);
|
||||||
DataSet value = entry.getValue();
|
DataSet value = entry.getValue();
|
||||||
JSONObject dataSet = new JSONObject();
|
|
||||||
|
|
||||||
dataSet.put("label", value.getLabel());
|
dataSet.put("label", value.getLabel());
|
||||||
dataSet.put("id", value.getId());
|
dataSet.put("id", value.getId());
|
||||||
|
|
||||||
dataSets.put(dataSet);
|
dataSetList.add(dataSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
data.put("datasets", dataSets);
|
Map<String, Object> model = new HashMap<String, Object>(1);
|
||||||
|
model.put("datasets", dataSetList);
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
|
||||||
model.put("data", data.toString());
|
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
catch (JSONException error)
|
|
||||||
{
|
|
||||||
throw new WebScriptException(Status.STATUS_BAD_REQUEST,
|
|
||||||
"Cannot convert data set details into JSON.", error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user