mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
APPS-659
[Upgrade] Search Result points to incorrect link to Folder on Hold
This commit is contained in:
@@ -26,6 +26,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.module.org_alfresco_module_rm.patch.v35;
|
package org.alfresco.module.org_alfresco_module_rm.patch.v35;
|
||||||
|
|
||||||
|
import static org.alfresco.model.ContentModel.ASSOC_CONTAINS;
|
||||||
|
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_CONTENT;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
|
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
|
||||||
@@ -34,13 +39,13 @@ import org.alfresco.repo.policy.BehaviourFilter;
|
|||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
|
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Patch to create new hold child association to link the record to the hold
|
* Patch to create new hold child association to link the record to the hold
|
||||||
*
|
* <p>
|
||||||
* See: https://alfresco.atlassian.net/browse/APPS-659
|
* See: https://alfresco.atlassian.net/browse/APPS-659
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* @since 3.5
|
* @since 3.5
|
||||||
*/
|
*/
|
||||||
public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
||||||
@@ -64,6 +69,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter for fileplanservice
|
* Setter for fileplanservice
|
||||||
|
*
|
||||||
* @param filePlanService File plan service interface
|
* @param filePlanService File plan service interface
|
||||||
*/
|
*/
|
||||||
public void setFilePlanService(FilePlanService filePlanService)
|
public void setFilePlanService(FilePlanService filePlanService)
|
||||||
@@ -73,6 +79,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter for hold service
|
* Setter for hold service
|
||||||
|
*
|
||||||
* @param holdService Hold service interface.
|
* @param holdService Hold service interface.
|
||||||
*/
|
*/
|
||||||
public void setHoldService(HoldService holdService)
|
public void setHoldService(HoldService holdService)
|
||||||
@@ -82,6 +89,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter for node service
|
* Setter for node service
|
||||||
|
*
|
||||||
* @param nodeService Interface for public and internal node and store operations.
|
* @param nodeService Interface for public and internal node and store operations.
|
||||||
*/
|
*/
|
||||||
public void setNodeService(NodeService nodeService)
|
public void setNodeService(NodeService nodeService)
|
||||||
@@ -110,15 +118,21 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
|
|||||||
{
|
{
|
||||||
for (NodeRef hold : holdService.getHolds(filePlan))
|
for (NodeRef hold : holdService.getHolds(filePlan))
|
||||||
{
|
{
|
||||||
for (ChildAssociationRef ref : nodeService.getChildAssocs(hold))
|
List<ChildAssociationRef> frozenAssoc = nodeService.getChildAssocs(hold,
|
||||||
|
ASSOC_FROZEN_CONTENT, RegexQNamePattern.MATCH_ALL);
|
||||||
|
for (ChildAssociationRef ref : frozenAssoc)
|
||||||
{
|
{
|
||||||
holdService.removeFromHold(hold, ref.getChildRef());
|
//search the second parent
|
||||||
holdService.addToHold(hold, ref.getChildRef());
|
List<ChildAssociationRef> parentAssoc = nodeService.getParentAssocs(ref.getChildRef(), ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
|
||||||
|
if (parentAssoc.isEmpty())
|
||||||
|
{
|
||||||
|
ChildAssociationRef primaryParentAssoc = nodeService.getPrimaryParent(hold);
|
||||||
|
nodeService.addChild(hold, hold, ASSOC_CONTAINS, primaryParentAssoc.getQName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} finally
|
||||||
finally
|
|
||||||
{
|
{
|
||||||
behaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
|
behaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
|
||||||
behaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);
|
behaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);
|
||||||
|
Reference in New Issue
Block a user