diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
index b6dc650014..605bf9ea47 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
@@ -381,4 +381,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.desc.xml
new file mode 100644
index 0000000000..f8a8fb9f1e
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.desc.xml
@@ -0,0 +1,9 @@
+
+ Import data set into a file plan
+ WebScript to import a given data set into a given file plan
+ /api/rma/datasets/{dataSetId}?site={site}
+ argument
+ admin
+ required
+ internal
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.json.ftl
new file mode 100644
index 0000000000..beda2de343
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/dataset.post.json.ftl
@@ -0,0 +1,5 @@
+<#escape x as jsonUtils.encodeJSONString(x)>
+{
+ "success": ${success?string}
+}
+#escape>
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java
index a0571bf0d5..20afd82928 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java
@@ -60,6 +60,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
/**
* BootstrapTestData GET WebScript implementation.
*/
+@Deprecated
public class BootstrapTestDataGet extends DeclarativeWebScript
implements RecordsManagementModel
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetPost.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetPost.java
new file mode 100644
index 0000000000..5a132b582f
--- /dev/null
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetPost.java
@@ -0,0 +1,95 @@
+package org.alfresco.module.org_alfresco_module_rm.script;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService;
+import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
+import org.alfresco.module.org_alfresco_module_rm.model.RmSiteType;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.site.SiteService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.extensions.webscripts.Cache;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptException;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+public class DataSetPost extends DeclarativeWebScript implements RecordsManagementModel
+{
+ /** Constant for the site name parameter */
+ private static final String ARG_SITE_NAME = "site";
+
+ /** Constant for the data set id parameter */
+ private static final String ARG_DATA_SET_ID = "dataSetId";
+
+ /** Site service */
+ private SiteService siteService;
+
+ /** Data set service */
+ private DataSetService dataSetService;
+
+ /**
+ * Set site service
+ *
+ * @param siteService the site service
+ */
+ public void setSiteService(SiteService siteService)
+ {
+ this.siteService = siteService;
+ }
+
+ /**
+ * Data set service
+ *
+ * @param dataSetService the data set service
+ */
+ public void setDataSetService(DataSetService dataSetService)
+ {
+ this.dataSetService = dataSetService;
+ }
+
+ /**
+ * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest,
+ * org.springframework.extensions.webscripts.Status,
+ * org.springframework.extensions.webscripts.Cache)
+ */
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status, Cache cache)
+ {
+ // Resolve data set id
+ String dataSetId = req.getServiceMatch().getTemplateVars().get(ARG_DATA_SET_ID);
+ if (StringUtils.isBlank(dataSetId))
+ {
+ throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A data set id was not provided.");
+ }
+
+ // Resolve RM site
+ String siteName = req.getParameter(ARG_SITE_NAME);
+ if (StringUtils.isBlank(siteName))
+ {
+ siteName = RmSiteType.DEFAULT_SITE_NAME;
+ }
+
+ if (siteService.getSite(siteName) == null)
+ {
+ throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A Records Management site with the name '"
+ + siteName + "' does not exist.");
+ }
+
+ // Resolve documentLibrary (filePlan) container
+ NodeRef filePlan = siteService.getContainer(siteName, RmSiteType.COMPONENT_DOCUMENT_LIBRARY);
+ if (filePlan == null)
+ {
+ filePlan = siteService.createContainer(siteName, RmSiteType.COMPONENT_DOCUMENT_LIBRARY,
+ TYPE_FILE_PLAN, null);
+ }
+
+ dataSetService.loadDataSet(dataSetId, filePlan);
+
+ Map model = new HashMap(1, 1.0f);
+ model.put("success", true);
+
+ return model;
+ }
+}