diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/recordsCustomModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/recordsCustomModel.xml
index 46f9d6b45c..14a993882a 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/recordsCustomModel.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/recordsCustomModel.xml
@@ -154,6 +154,15 @@
+
+
+
+ d:text
+ true
+
+
+
+
\ No newline at end of file
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 605bf9ea47..0c79e30fe0 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
@@ -379,6 +379,8 @@
+
+
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
index 8e9302b59a..335d48cdd6 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
@@ -4,6 +4,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.io.Serializable;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -30,6 +32,7 @@ import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.view.ImporterService;
import org.alfresco.service.cmr.view.Location;
+import org.alfresco.service.namespace.QName;
import org.alfresco.util.ParameterCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -234,6 +237,9 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
// Patch data
patchLoadedData();
+
+ // Set the data set id into the file plan's custom aspect
+ setDataSetIdIntoFilePlan(dataSetId, filePlan);
}
catch (Exception ex)
{
@@ -256,6 +262,38 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
}
}
+ /**
+ * Helper method for setting the id of the imported data set into the file plan's custom aspect
+ *
+ * @param dataSetId The id of the imported data set
+ * @param filePlan The file plan into which the data set has been imported
+ */
+ @SuppressWarnings("unchecked")
+ private void setDataSetIdIntoFilePlan(String dataSetId, NodeRef filePlan)
+ {
+ ArrayList loadedDataSetIds;
+ Serializable dataSetIds = nodeService.getProperty(filePlan, PROP_LOADED_DATA_SET_IDS);
+
+ // Check if any data set has been imported
+ if (dataSetIds == null)
+ {
+ Map aspectProperties = new HashMap(1);
+ aspectProperties.put(PROP_LOADED_DATA_SET_IDS, (Serializable) new ArrayList());
+ nodeService.addAspect(filePlan, ASPECT_LOADED_DATA_SET_IDS, aspectProperties);
+ loadedDataSetIds = (ArrayList) nodeService.getProperty(filePlan, PROP_LOADED_DATA_SET_IDS);
+ }
+ else
+ {
+ loadedDataSetIds = (ArrayList) dataSetIds;
+ }
+
+ // Add the new loaded data set id
+ loadedDataSetIds.add(dataSetId);
+ Map aspectProperties = new HashMap(1);
+ aspectProperties.put(PROP_LOADED_DATA_SET_IDS, (Serializable) loadedDataSetIds);
+ nodeService.addAspect(filePlan, ASPECT_LOADED_DATA_SET_IDS, aspectProperties);
+ }
+
/**
* Temp method to patch AMP'ed data
*
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementCustomModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementCustomModel.java
index 8751493a3a..fc8f9307b2 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementCustomModel.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementCustomModel.java
@@ -49,4 +49,10 @@ public interface RecordsManagementCustomModel
// Some Custom references which are present on system startup.
public static QName CUSTOM_REF_VERSIONS = QName.createQName(RecordsManagementCustomModel.RM_CUSTOM_URI, "versions");
public static QName CUSTOM_REF_SUPERSEDES = QName.createQName(RecordsManagementCustomModel.RM_CUSTOM_URI, "supersedes");
+
+ // Custom property for loaded data set ids
+ public static QName PROP_LOADED_DATA_SET_IDS = QName.createQName(RM_CUSTOM_URI, "loadedDataSetIds");
+
+ // Loaded data set ids aspect
+ public static QName ASPECT_LOADED_DATA_SET_IDS = QName.createQName(RM_CUSTOM_URI, "customLoadedDataSetIds");
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java
index 7abba67ed5..cafbb7354d 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java
@@ -1,5 +1,6 @@
package org.alfresco.module.org_alfresco_module_rm.script;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -7,17 +8,28 @@ import java.util.Map;
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.model.RecordsManagementCustomModel;
+import org.alfresco.module.org_alfresco_module_rm.model.RmSiteType;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
+import org.alfresco.service.cmr.site.SiteService;
import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptRequest;
-public class DataSetsGet extends DeclarativeWebScript
+public class DataSetsGet extends DeclarativeWebScript implements RecordsManagementCustomModel
{
/** Data set service */
private DataSetService dataSetService;
+ /** Node service */
+ private NodeService nodeService;
+
+ /** Site service */
+ private SiteService siteService;
+
/**
* Set data set service
*
@@ -28,6 +40,26 @@ public class DataSetsGet extends DeclarativeWebScript
this.dataSetService = dataSetService;
}
+ /**
+ * Set node service
+ *
+ * @param nodeService the node service
+ */
+ public void setNodeService(NodeService nodeService)
+ {
+ this.nodeService = nodeService;
+ }
+
+ /**
+ * Set site service
+ *
+ * @param siteService the site service
+ */
+ public void setSiteService(SiteService siteService)
+ {
+ this.siteService = siteService;
+ }
+
/**
* @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest,
* org.springframework.extensions.webscripts.Status,
@@ -36,10 +68,14 @@ public class DataSetsGet extends DeclarativeWebScript
@Override
protected Map executeImpl(WebScriptRequest req, Status status, Cache cache)
{
+ // Get the list of data sets
Map dataSets = dataSetService.getDataSets();
- List