mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-1757: Record is not renamed when filed by rule
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@90353 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1101,7 +1101,8 @@
|
|||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isDeclared=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isDeclared=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isFiled=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isFiled=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecord=RM_ALLOW
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecord=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromContent=RM.Create.0
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromContent=RM.Create.0
|
||||||
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromCopy=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.file=RM_ALLOW
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.file=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isPropertyEditable=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isPropertyEditable=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isMetadataStub=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isMetadataStub=RM.Read.0
|
||||||
|
@@ -15,12 +15,9 @@
|
|||||||
<!-- extended version service bean definition -->
|
<!-- extended version service bean definition -->
|
||||||
<bean id="rm.versionService" abstract="true" class="org.alfresco.module.org_alfresco_module_rm.version.RecordableVersionServiceImpl">
|
<bean id="rm.versionService" abstract="true" class="org.alfresco.module.org_alfresco_module_rm.version.RecordableVersionServiceImpl">
|
||||||
<property name="filePlanService" ref="FilePlanService" />
|
<property name="filePlanService" ref="FilePlanService" />
|
||||||
<property name="fileFolderService" ref="fileFolderService" />
|
|
||||||
<property name="extendedPermissionService" ref="ExtendedPermissionService" />
|
|
||||||
<property name="ownableService" ref="OwnableService" />
|
|
||||||
<property name="extendedSecurityService" ref="ExtendedSecurityService" />
|
|
||||||
<property name="authenticationUtil" ref="rm.authenticationUtil" />
|
<property name="authenticationUtil" ref="rm.authenticationUtil" />
|
||||||
<property name="relationshipService" ref="RelationshipService" />
|
<property name="relationshipService" ref="RelationshipService" />
|
||||||
|
<property name="recordService" ref="RecordService" />
|
||||||
</bean>
|
</bean>
|
||||||
<bean class="org.alfresco.util.BeanExtender">
|
<bean class="org.alfresco.util.BeanExtender">
|
||||||
<property name="beanName" value="versionService" />
|
<property name="beanName" value="versionService" />
|
||||||
|
@@ -164,6 +164,14 @@ public interface RecordService
|
|||||||
* @see #createRecord(NodeRef, NodeRef, boolean)
|
* @see #createRecord(NodeRef, NodeRef, boolean)
|
||||||
*/
|
*/
|
||||||
void createRecord(NodeRef filePlan, NodeRef nodeRef);
|
void createRecord(NodeRef filePlan, NodeRef nodeRef);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a record from a copy of the node reference provided.
|
||||||
|
*
|
||||||
|
* @param filePlan file plan
|
||||||
|
* @param nodeRef node reference
|
||||||
|
*/
|
||||||
|
NodeRef createRecordFromCopy(NodeRef filePlan, NodeRef nodeRef);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new document in the unfiled records container if the given node reference is a file plan
|
* Creates a new document in the unfiled records container if the given node reference is a file plan
|
||||||
|
@@ -77,7 +77,9 @@ import org.alfresco.service.cmr.dictionary.ClassDefinition;
|
|||||||
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
|
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
|
||||||
import org.alfresco.service.cmr.model.FileExistsException;
|
import org.alfresco.service.cmr.model.FileExistsException;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
import org.alfresco.service.cmr.model.FileNotFoundException;
|
import org.alfresco.service.cmr.model.FileNotFoundException;
|
||||||
|
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ContentData;
|
import org.alfresco.service.cmr.repository.ContentData;
|
||||||
import org.alfresco.service.cmr.repository.ContentReader;
|
import org.alfresco.service.cmr.repository.ContentReader;
|
||||||
@@ -849,6 +851,9 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
// get the documents primary parent assoc
|
// get the documents primary parent assoc
|
||||||
ChildAssociationRef parentAssoc = nodeService.getPrimaryParent(nodeRef);
|
ChildAssociationRef parentAssoc = nodeService.getPrimaryParent(nodeRef);
|
||||||
|
|
||||||
|
// get the latest version record, if there is one
|
||||||
|
NodeRef latestVersionRecord = getLatestVersionRecord(nodeRef);
|
||||||
|
|
||||||
behaviourFilter.disableBehaviour();
|
behaviourFilter.disableBehaviour();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -867,9 +872,6 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
aspectProperties.put(PROP_RECORD_ORIGINATING_CREATION_DATE, new Date());
|
aspectProperties.put(PROP_RECORD_ORIGINATING_CREATION_DATE, new Date());
|
||||||
nodeService.addAspect(nodeRef, ASPECT_RECORD_ORIGINATING_DETAILS, aspectProperties);
|
nodeService.addAspect(nodeRef, ASPECT_RECORD_ORIGINATING_DETAILS, aspectProperties);
|
||||||
|
|
||||||
// get the latest version record, if there is one
|
|
||||||
NodeRef latestVersionRecord = getLatestVersionRecord(nodeRef);
|
|
||||||
|
|
||||||
// make the document a record
|
// make the document a record
|
||||||
makeRecord(nodeRef);
|
makeRecord(nodeRef);
|
||||||
|
|
||||||
@@ -918,6 +920,92 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.alfresco.module.org_alfresco_module_rm.record.RecordService#createRecordFromCopy(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public NodeRef createRecordFromCopy(final NodeRef filePlan, final NodeRef nodeRef)
|
||||||
|
{
|
||||||
|
return authenticationUtil.runAsSystem(new RunAsWork<NodeRef>()
|
||||||
|
{
|
||||||
|
public NodeRef doWork() throws Exception
|
||||||
|
{
|
||||||
|
// get the unfiled record folder
|
||||||
|
final NodeRef unfiledRecordFolder = filePlanService.getUnfiledContainer(filePlan);
|
||||||
|
|
||||||
|
// get the documents readers
|
||||||
|
Long aclId = nodeService.getNodeAclId(nodeRef);
|
||||||
|
Set<String> readers = extendedPermissionService.getReaders(aclId);
|
||||||
|
Set<String> writers = extendedPermissionService.getWriters(aclId);
|
||||||
|
|
||||||
|
// add the current owner to the list of extended writers
|
||||||
|
Set<String> modifiedWrtiers = new HashSet<String>(writers);
|
||||||
|
if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_OWNABLE))
|
||||||
|
{
|
||||||
|
String owner = ownableService.getOwner(nodeRef);
|
||||||
|
if (owner != null && !owner.isEmpty() && !owner.equals(OwnableService.NO_OWNER))
|
||||||
|
{
|
||||||
|
modifiedWrtiers.add(owner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the current user as extended writer
|
||||||
|
modifiedWrtiers.add(authenticationUtil.getFullyAuthenticatedUser());
|
||||||
|
|
||||||
|
// copy version state and create record
|
||||||
|
NodeRef record = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<AssociationRef> originalAssocs = null;
|
||||||
|
if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM))
|
||||||
|
{
|
||||||
|
// take a note of any copyFrom information already on the node
|
||||||
|
originalAssocs = nodeService.getTargetAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a copy of the original state and add it to the unfiled record container
|
||||||
|
FileInfo recordInfo = fileFolderService.copy(nodeRef, unfiledRecordFolder, null);
|
||||||
|
record = recordInfo.getNodeRef();
|
||||||
|
|
||||||
|
// make record
|
||||||
|
makeRecord(record);
|
||||||
|
|
||||||
|
// remove added copy assocs
|
||||||
|
List<AssociationRef> recordAssocs = nodeService.getTargetAssocs(record, ContentModel.ASSOC_ORIGINAL);
|
||||||
|
for (AssociationRef recordAssoc : recordAssocs)
|
||||||
|
{
|
||||||
|
nodeService.removeAssociation(
|
||||||
|
recordAssoc.getSourceRef(),
|
||||||
|
recordAssoc.getTargetRef(),
|
||||||
|
ContentModel.ASSOC_ORIGINAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// re-add origional assocs or remove aspect
|
||||||
|
if (originalAssocs == null)
|
||||||
|
{
|
||||||
|
nodeService.removeAspect(record, ContentModel.ASPECT_COPIEDFROM);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (AssociationRef originalAssoc : originalAssocs)
|
||||||
|
{
|
||||||
|
nodeService.createAssociation(originalAssoc.getSourceRef(), originalAssoc.getTargetRef(), ContentModel.ASSOC_ORIGINAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException e)
|
||||||
|
{
|
||||||
|
throw new AlfrescoRuntimeException("Can't create recorded version, because copy fails.", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set extended security on record
|
||||||
|
extendedSecurityService.addExtendedSecurity(record, readers, writers);
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper to get the latest version record for a given document (ie non-record)
|
* Helper to get the latest version record for a given document (ie non-record)
|
||||||
*
|
*
|
||||||
|
@@ -24,30 +24,21 @@ import java.io.Serializable;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
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.record.RecordService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
|
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService;
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil;
|
import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil;
|
||||||
import org.alfresco.repo.policy.PolicyScope;
|
import org.alfresco.repo.policy.PolicyScope;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||||
import org.alfresco.repo.security.permissions.impl.ExtendedPermissionService;
|
|
||||||
import org.alfresco.repo.version.Version2Model;
|
import org.alfresco.repo.version.Version2Model;
|
||||||
import org.alfresco.repo.version.Version2ServiceImpl;
|
import org.alfresco.repo.version.Version2ServiceImpl;
|
||||||
import org.alfresco.repo.version.VersionModel;
|
import org.alfresco.repo.version.VersionModel;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
|
||||||
import org.alfresco.service.cmr.model.FileInfo;
|
|
||||||
import org.alfresco.service.cmr.model.FileNotFoundException;
|
|
||||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
|
||||||
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.security.OwnableService;
|
|
||||||
import org.alfresco.service.cmr.version.ReservedVersionNameException;
|
import org.alfresco.service.cmr.version.ReservedVersionNameException;
|
||||||
import org.alfresco.service.cmr.version.Version;
|
import org.alfresco.service.cmr.version.Version;
|
||||||
import org.alfresco.service.cmr.version.VersionHistory;
|
import org.alfresco.service.cmr.version.VersionHistory;
|
||||||
@@ -77,25 +68,16 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
public static final String PROP_VERSION_RECORD = "RecordVersion";
|
public static final String PROP_VERSION_RECORD = "RecordVersion";
|
||||||
|
|
||||||
/** file plan service */
|
/** file plan service */
|
||||||
protected FilePlanService filePlanService;
|
private FilePlanService filePlanService;
|
||||||
|
|
||||||
/** file folder service */
|
|
||||||
protected FileFolderService fileFolderService;
|
|
||||||
|
|
||||||
/** extended permission service */
|
|
||||||
protected ExtendedPermissionService extendedPermissionService;
|
|
||||||
|
|
||||||
/** ownable service */
|
|
||||||
protected OwnableService ownableService;
|
|
||||||
|
|
||||||
/** extended security service */
|
|
||||||
protected ExtendedSecurityService extendedSecurityService;
|
|
||||||
|
|
||||||
/** authentication util helper */
|
/** authentication util helper */
|
||||||
protected AuthenticationUtil authenticationUtil;
|
private AuthenticationUtil authenticationUtil;
|
||||||
|
|
||||||
/** relationship service */
|
/** relationship service */
|
||||||
protected RelationshipService relationshipService;
|
private RelationshipService relationshipService;
|
||||||
|
|
||||||
|
/** record service */
|
||||||
|
private RecordService recordService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param filePlanService file plan service
|
* @param filePlanService file plan service
|
||||||
@@ -105,38 +87,6 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
this.filePlanService = filePlanService;
|
this.filePlanService = filePlanService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param fileFolderService file folder service
|
|
||||||
*/
|
|
||||||
public void setFileFolderService(FileFolderService fileFolderService)
|
|
||||||
{
|
|
||||||
this.fileFolderService = fileFolderService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param extendedPermissionService extended permission service
|
|
||||||
*/
|
|
||||||
public void setExtendedPermissionService(ExtendedPermissionService extendedPermissionService)
|
|
||||||
{
|
|
||||||
this.extendedPermissionService = extendedPermissionService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ownableService ownable service
|
|
||||||
*/
|
|
||||||
public void setOwnableService(OwnableService ownableService)
|
|
||||||
{
|
|
||||||
this.ownableService = ownableService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param extendedSecurityService extended security service
|
|
||||||
*/
|
|
||||||
public void setExtendedSecurityService(ExtendedSecurityService extendedSecurityService)
|
|
||||||
{
|
|
||||||
this.extendedSecurityService = extendedSecurityService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param authenticationUtil authentication util helper
|
* @param authenticationUtil authentication util helper
|
||||||
*/
|
*/
|
||||||
@@ -152,6 +102,14 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
{
|
{
|
||||||
this.relationshipService = relationshipService;
|
this.relationshipService = relationshipService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param recordService record service
|
||||||
|
*/
|
||||||
|
public void setRecordService(RecordService recordService)
|
||||||
|
{
|
||||||
|
this.recordService = recordService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int)
|
* @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int)
|
||||||
@@ -329,7 +287,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF);
|
final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF);
|
||||||
|
|
||||||
// create record
|
// create record
|
||||||
final NodeRef record = createRecord(nodeRef, filePlan);
|
final NodeRef record = recordService.createRecordFromCopy(filePlan, nodeRef);
|
||||||
|
|
||||||
// apply version record aspect to record
|
// apply version record aspect to record
|
||||||
PropertyMap versionRecordProps = new PropertyMap(3);
|
PropertyMap versionRecordProps = new PropertyMap(3);
|
||||||
@@ -441,92 +399,6 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
return versionRecord;
|
return versionRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Create record from current version
|
|
||||||
*
|
|
||||||
* @param nodeRef state to freeze
|
|
||||||
* @param filePlan destination file plan
|
|
||||||
* @return {@link NodeRef} versioned record
|
|
||||||
*/
|
|
||||||
private NodeRef createRecord(final NodeRef nodeRef, final NodeRef filePlan)
|
|
||||||
{
|
|
||||||
return authenticationUtil.runAs(new RunAsWork<NodeRef>()
|
|
||||||
{
|
|
||||||
public NodeRef doWork() throws Exception
|
|
||||||
{
|
|
||||||
// get the unfiled record folder
|
|
||||||
final NodeRef unfiledRecordFolder = filePlanService.getUnfiledContainer(filePlan);
|
|
||||||
|
|
||||||
// get the documents readers
|
|
||||||
Long aclId = dbNodeService.getNodeAclId(nodeRef);
|
|
||||||
Set<String> readers = extendedPermissionService.getReaders(aclId);
|
|
||||||
Set<String> writers = extendedPermissionService.getWriters(aclId);
|
|
||||||
|
|
||||||
// add the current owner to the list of extended writers
|
|
||||||
Set<String> modifiedWrtiers = new HashSet<String>(writers);
|
|
||||||
if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_OWNABLE))
|
|
||||||
{
|
|
||||||
String owner = ownableService.getOwner(nodeRef);
|
|
||||||
if (owner != null && !owner.isEmpty() && !owner.equals(OwnableService.NO_OWNER))
|
|
||||||
{
|
|
||||||
modifiedWrtiers.add(owner);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// add the current user as extended writer
|
|
||||||
modifiedWrtiers.add(authenticationUtil.getFullyAuthenticatedUser());
|
|
||||||
|
|
||||||
// copy version state and create record
|
|
||||||
NodeRef record = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
List<AssociationRef> originalAssocs = null;
|
|
||||||
if (dbNodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM))
|
|
||||||
{
|
|
||||||
// take a note of any copyFrom information already on the node
|
|
||||||
originalAssocs = dbNodeService.getTargetAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// create a copy of the original state and add it to the unfiled record container
|
|
||||||
FileInfo recordInfo = fileFolderService.copy(nodeRef, unfiledRecordFolder, null);
|
|
||||||
record = recordInfo.getNodeRef();
|
|
||||||
|
|
||||||
// remove added copy assocs
|
|
||||||
List<AssociationRef> recordAssocs = dbNodeService.getTargetAssocs(record, ContentModel.ASSOC_ORIGINAL);
|
|
||||||
for (AssociationRef recordAssoc : recordAssocs)
|
|
||||||
{
|
|
||||||
dbNodeService.removeAssociation(
|
|
||||||
recordAssoc.getSourceRef(),
|
|
||||||
recordAssoc.getTargetRef(),
|
|
||||||
ContentModel.ASSOC_ORIGINAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// re-add origional assocs or remove aspect
|
|
||||||
if (originalAssocs == null)
|
|
||||||
{
|
|
||||||
dbNodeService.removeAspect(record, ContentModel.ASPECT_COPIEDFROM);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (AssociationRef originalAssoc : originalAssocs)
|
|
||||||
{
|
|
||||||
dbNodeService.createAssociation(originalAssoc.getSourceRef(), originalAssoc.getTargetRef(), ContentModel.ASSOC_ORIGINAL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (FileNotFoundException e)
|
|
||||||
{
|
|
||||||
throw new AlfrescoRuntimeException("Can't create recorded version, because copy fails.", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// set extended security on record
|
|
||||||
extendedSecurityService.addExtendedSecurity(record, readers, writers);
|
|
||||||
|
|
||||||
return record;
|
|
||||||
}
|
|
||||||
}, authenticationUtil.getAdminUserName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Freezes audit aspect properties.
|
* Freezes audit aspect properties.
|
||||||
*
|
*
|
||||||
|
@@ -29,7 +29,6 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -199,33 +198,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(filePlan);
|
verify(mockedRecordService, times(1)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method that verifies that a recorded version was created.
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
private void verifyRecordedVersion(NodeRef filePlan) throws Exception
|
|
||||||
{
|
|
||||||
// then unfiled container is retrieved for file plan
|
|
||||||
verify(mockedFilePlanService, times(1)).getUnfiledContainer(filePlan);
|
|
||||||
|
|
||||||
// then the node is copied into the file plan
|
|
||||||
verify(mockedFileFolderService, times(1)).copy(eq(nodeRef),
|
|
||||||
eq(unfiledRecordContainer),
|
|
||||||
anyString());
|
|
||||||
|
|
||||||
// then the version is created
|
|
||||||
verify(mockedDbNodeService, times(1)).createNode(any(NodeRef.class),
|
|
||||||
eq(Version2Model.CHILD_QNAME_VERSIONS),
|
|
||||||
any(QName.class),
|
|
||||||
eq(TYPE_CONTENT),
|
|
||||||
anyMap());
|
|
||||||
verify(mockedNodeService, times(1)).addAspect(eq(version), eq(Version2Model.ASPECT_VERSION), anyMap());
|
|
||||||
verify(mockedNodeService, times(1)).addAspect(eq(version), eq(RecordableVersionModel.ASPECT_RECORDED_VERSION),
|
|
||||||
eq(Collections.singletonMap(RecordableVersionModel.PROP_RECORD_NODE_REF, (Serializable)record)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -267,7 +240,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(filePlan);
|
verify(mockedRecordService, times(1)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,7 +281,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(filePlan);
|
verify(mockedRecordService, times(1)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -355,7 +328,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(anotherFilePlan);
|
verify(mockedRecordService, times(0)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -380,7 +353,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(anotherFilePlan);
|
verify(mockedRecordService, times(0)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -395,7 +368,7 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(filePlan);
|
verify(mockedRecordService, times(1)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -411,6 +384,6 @@ public class RecordableVersionServiceImplUnitTest extends BaseUnitTest
|
|||||||
recordableVersionService.createVersion(nodeRef, versionProperties);
|
recordableVersionService.createVersion(nodeRef, versionProperties);
|
||||||
|
|
||||||
// then the recorded version is created
|
// then the recorded version is created
|
||||||
verifyRecordedVersion(filePlan);
|
verify(mockedRecordService, times(1)).createRecordFromCopy(filePlan, nodeRef);
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user