mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-1078: RMv2SavedSearchPatch is not applying if save a search befare upgrade
* saved search patch no longer hangs when moving from 3.4 to 2.1 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@56859 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -93,7 +93,7 @@ public abstract class ModulePatchComponent extends AbstractModuleComponent
|
||||
|
||||
if (logger.isInfoEnabled() == true)
|
||||
{
|
||||
logger.info(" ... completed module patch '" + getName() + "'");
|
||||
logger.info(" ... completed module patch '" + getName() + "'");
|
||||
}
|
||||
}
|
||||
catch (Throwable exception)
|
||||
|
@@ -20,10 +20,14 @@ package org.alfresco.module.org_alfresco_module_rm.patch;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails;
|
||||
import org.alfresco.service.cmr.repository.ContentService;
|
||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.site.SiteService;
|
||||
import org.springframework.beans.factory.BeanNameAware;
|
||||
|
||||
@@ -45,6 +49,9 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
|
||||
/** Site service */
|
||||
private SiteService siteService;
|
||||
|
||||
/** Content service */
|
||||
private ContentService contentService;
|
||||
|
||||
/**
|
||||
* @param recordsManagementSearchService records management search service
|
||||
*/
|
||||
@@ -61,6 +68,14 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
|
||||
this.siteService = siteService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param contentService content service
|
||||
*/
|
||||
public void setContentService(ContentService contentService)
|
||||
{
|
||||
this.contentService = contentService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal()
|
||||
*/
|
||||
@@ -74,19 +89,26 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
|
||||
|
||||
if (logger.isDebugEnabled() == true)
|
||||
{
|
||||
logger.debug(" ... updating " + savedSearches.size() + " saved searches");
|
||||
logger.debug(" ... updating " + savedSearches.size() + " saved searches");
|
||||
}
|
||||
|
||||
for (SavedSearchDetails savedSearchDetails : savedSearches)
|
||||
{
|
||||
// re-save each search so that the query is regenerated correctly
|
||||
recordsManagementSearchService.deleteSavedSearch(RM_SITE_ID, savedSearchDetails.getName());
|
||||
recordsManagementSearchService.saveSearch(RM_SITE_ID,
|
||||
savedSearchDetails.getName(),
|
||||
savedSearchDetails.getDescription(),
|
||||
savedSearchDetails.getSearch(),
|
||||
savedSearchDetails.getSearchParameters(),
|
||||
savedSearchDetails.isPublic());
|
||||
// refresh the query
|
||||
String refreshedJSON = savedSearchDetails.toJSONString();
|
||||
NodeRef nodeRef = savedSearchDetails.getNodeRef();
|
||||
|
||||
if (nodeRef != null)
|
||||
{
|
||||
ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);
|
||||
writer.putContent(refreshedJSON);
|
||||
|
||||
|
||||
if (logger.isDebugEnabled() == true)
|
||||
{
|
||||
logger.debug(" ... updated saved search " + savedSearchDetails.getName() + " (nodeRef=" + nodeRef.toString() + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -402,7 +402,7 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear
|
||||
{
|
||||
ContentReader reader = fileFolderService.getReader(searchNode);
|
||||
String jsonString = reader.getContentString();
|
||||
SavedSearchDetails savedSearchDetails = SavedSearchDetails.createFromJSON(jsonString, namespaceService, this);
|
||||
SavedSearchDetails savedSearchDetails = SavedSearchDetails.createFromJSON(jsonString, namespaceService, this, searchNode);
|
||||
searches.add(savedSearchDetails);
|
||||
}
|
||||
|
||||
@@ -428,7 +428,7 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear
|
||||
String jsonString = reader.getContentString();
|
||||
|
||||
// create the saved search details
|
||||
result = SavedSearchDetails.createFromJSON(jsonString, namespaceService, this);
|
||||
result = SavedSearchDetails.createFromJSON(jsonString, namespaceService, this, searchNode);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@@ -20,6 +20,7 @@ package org.alfresco.module.org_alfresco_module_rm.search;
|
||||
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.json.JSONException;
|
||||
@@ -100,6 +101,9 @@ public class SavedSearchDetails extends ReportDetails
|
||||
|
||||
/** Indicates whether the saved search is a report */
|
||||
private boolean isReport = false;
|
||||
|
||||
/** Helper method to link to search node ref if provided */
|
||||
private NodeRef nodeRef = null;
|
||||
|
||||
/** Namespace service */
|
||||
NamespaceService namespaceService;
|
||||
@@ -115,7 +119,7 @@ public class SavedSearchDetails extends ReportDetails
|
||||
* @param jsonString
|
||||
* @return
|
||||
*/
|
||||
/*package*/ static SavedSearchDetails createFromJSON(String jsonString, NamespaceService namespaceService, RecordsManagementSearchServiceImpl searchService)
|
||||
/*package*/ static SavedSearchDetails createFromJSON(String jsonString, NamespaceService namespaceService, RecordsManagementSearchServiceImpl searchService, NodeRef nodeRef)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -197,7 +201,9 @@ public class SavedSearchDetails extends ReportDetails
|
||||
}
|
||||
|
||||
// Create the saved search details object
|
||||
return new SavedSearchDetails(siteId, name, description, query, searchParameters, isPublic, isReport, namespaceService, searchService);
|
||||
SavedSearchDetails savedSearchDetails = new SavedSearchDetails(siteId, name, description, query, searchParameters, isPublic, isReport, namespaceService, searchService);
|
||||
savedSearchDetails.nodeRef = nodeRef;
|
||||
return savedSearchDetails;
|
||||
}
|
||||
catch (JSONException exception)
|
||||
{
|
||||
@@ -265,10 +271,18 @@ public class SavedSearchDetails extends ReportDetails
|
||||
return compatibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return NodeRef search node ref, null if not set
|
||||
*/
|
||||
public NodeRef getNodeRef()
|
||||
{
|
||||
return nodeRef;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
/*package*/ String toJSONString()
|
||||
public String toJSONString()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
Reference in New Issue
Block a user