RM-1540: Event is displayed for record moved to category with no disposition

RM-1345: Edit Disposition Date is not working for moved items



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@74311 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2014-06-20 05:02:06 +00:00
parent 4c9673a762
commit 59cc87b1e8
9 changed files with 427 additions and 96 deletions

View File

@@ -105,6 +105,8 @@
<bean id="rma.record" class="org.alfresco.module.org_alfresco_module_rm.model.rma.aspect.RecordAspect" parent="rm.baseBehaviour">
<property name="scriptService" ref="ScriptService" />
<property name="extendedSecurityService" ref="ExtendedSecurityService" />
<property name="recordService" ref="RecordService" />
<property name="dispositionService" ref="DispositionService" />
</bean>
<bean id="rma.recordComponentIdentifier" class="org.alfresco.module.org_alfresco_module_rm.model.rma.aspect.RecordComponentIdentifierAspect" parent="rm.baseBehaviour">

View File

@@ -472,28 +472,33 @@ public class DispositionActionImpl implements DispositionAction,
if (!events.isEmpty())
{
if (!getDispositionActionDefinition().eligibleOnFirstCompleteEvent())
// get the disposition action definition
DispositionActionDefinition dispositionActionDefinition = getDispositionActionDefinition();
if (dispositionActionDefinition != null)
{
// if one event is complete then the disposition action is eligible
eligible = true;
for (EventCompletionDetails event : events)
if (!dispositionActionDefinition.eligibleOnFirstCompleteEvent())
{
if (!event.isEventComplete())
// if one event is complete then the disposition action is eligible
eligible = true;
for (EventCompletionDetails event : events)
{
eligible = false;
break;
if (!event.isEventComplete())
{
eligible = false;
break;
}
}
}
}
else
{
// all events must be complete for the disposition action to be eligible
for (EventCompletionDetails event : events)
else
{
if (event.isEventComplete())
// all events must be complete for the disposition action to be eligible
for (EventCompletionDetails event : events)
{
eligible = true;
break;
if (event.isEventComplete())
{
eligible = true;
break;
}
}
}
}

View File

@@ -0,0 +1,65 @@
/**
*
*/
package org.alfresco.module.org_alfresco_module_rm.model.behaviour;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
/**
* Abstract disposable item, containing commonality between record and record folder.
*
* @author Roy Wetherall
* @since 2.2
*/
public abstract class AbstractDisposableItem extends BaseBehaviourBean
{
/** unwanted aspects */
protected QName[] unwantedAspects =
{
ASPECT_VITAL_RECORD,
ASPECT_DISPOSITION_LIFECYCLE,
RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH
};
/** disposition service */
protected DispositionService dispositionService;
/**
* @param dispositionService disposition service
*/
public void setDispositionService(DispositionService dispositionService)
{
this.dispositionService = dispositionService;
}
/**
* Removes unwanted aspects
*
* @param nodeService
* @param nodeRef
*/
protected void cleanDisposableItem(NodeService nodeService, NodeRef nodeRef)
{
// Remove unwanted aspects
for (QName aspect : unwantedAspects)
{
if (nodeService.hasAspect(nodeRef, aspect))
{
nodeService.removeAspect(nodeRef, aspect);
}
}
// remove the current disposition action (if there is one)
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(nodeRef);
if (dispositionAction != null)
{
nodeService.deleteNode(dispositionAction.getNodeRef());
}
}
}

View File

@@ -25,9 +25,9 @@ import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies;
import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementCustomModel;
import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour;
import org.alfresco.module.org_alfresco_module_rm.model.behaviour.AbstractDisposableItem;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService;
import org.alfresco.repo.copy.CopyBehaviourCallback;
import org.alfresco.repo.copy.CopyDetails;
@@ -54,7 +54,7 @@ import org.alfresco.service.namespace.QName;
(
defaultType = "rma:record"
)
public class RecordAspect extends BaseBehaviourBean
public class RecordAspect extends AbstractDisposableItem
implements NodeServicePolicies.OnCreateChildAssociationPolicy,
RecordsManagementPolicies.OnCreateReference,
RecordsManagementPolicies.OnRemoveReference,
@@ -70,6 +70,9 @@ public class RecordAspect extends BaseBehaviourBean
/** script service */
protected ScriptService scriptService;
/** record service */
protected RecordService recordService;
/**
* @param extendedSecurityService extended security service
*/
@@ -86,6 +89,14 @@ public class RecordAspect extends BaseBehaviourBean
this.scriptService = scriptService;
}
/**
* @param recordService record service
*/
public void setRecordService(RecordService recordService)
{
this.recordService = recordService;
}
/**
* Behaviour to ensure renditions have the appropriate extended security.
*
@@ -219,15 +230,18 @@ public class RecordAspect extends BaseBehaviourBean
// check the records parent has actually changed
if (!oldChildAssocRef.getParentRef().equals(newChildAssocRef.getParentRef()))
{
final NodeRef newNodeRef = newChildAssocRef.getChildRef();
final NodeRef record = newChildAssocRef.getChildRef();
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Object>()
{
public Object doWork()
{
if (nodeService.exists(newNodeRef))
if (nodeService.exists(record))
{
// only remove the search details .. the rest will be resolved automatically
nodeService.removeAspect(newNodeRef, RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH);
// clean record
cleanDisposableItem(nodeService, record);
// re-file in the new folder
recordService.file(record);
}
return null;
@@ -239,10 +253,10 @@ public class RecordAspect extends BaseBehaviourBean
/**
* Executes a reference script if present
*
* @param policy
* @param reference
* @param from
* @param to
* @param policy policy
* @param reference reference
* @param from reference from
* @param to reference to
*/
private void executeReferenceScript(String policy, QName reference, NodeRef from, NodeRef to)
{

View File

@@ -22,10 +22,7 @@ import java.io.Serializable;
import java.util.Map;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean;
import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour;
import org.alfresco.module.org_alfresco_module_rm.model.behaviour.AbstractDisposableItem;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordService;
@@ -41,7 +38,6 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.lang.ArrayUtils;
@@ -55,27 +51,16 @@ import org.apache.commons.lang.ArrayUtils;
(
defaultType = "rma:recordFolder"
)
public class RecordFolderType extends BaseBehaviourBean
public class RecordFolderType extends AbstractDisposableItem
implements NodeServicePolicies.OnMoveNodePolicy,
NodeServicePolicies.OnCreateChildAssociationPolicy
{
/** unwanted aspects */
private QName[] unwantedAspects =
{
ASPECT_VITAL_RECORD,
ASPECT_DISPOSITION_LIFECYCLE,
RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH
};
/** record service */
private RecordService recordService;
/** record folder service */
private RecordFolderService recordFolderService;
/** disposition service */
private DispositionService dispositionService;
/** vital record service */
protected VitalRecordService vitalRecordService;
@@ -95,14 +80,6 @@ public class RecordFolderType extends BaseBehaviourBean
this.recordFolderService = recordFolderService;
}
/**
* @param dispositionService disposition service
*/
public void setDispositionService(DispositionService dispositionService)
{
this.dispositionService = dispositionService;
}
/**
* @param vitalRecordService vital record service
*/
@@ -273,29 +250,4 @@ public class RecordFolderType extends BaseBehaviourBean
behaviourFilter.enableBehaviour();
}
}
/**
* Removes unwanted aspects
*
* @param nodeService
* @param nodeRef
*/
private void cleanDisposableItem(NodeService nodeService, NodeRef nodeRef)
{
// Remove unwanted aspects
for (QName aspect : unwantedAspects)
{
if (nodeService.hasAspect(nodeRef, aspect))
{
nodeService.removeAspect(nodeRef, aspect);
}
}
// remove the current disposition action (if there is one)
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(nodeRef);
if (dispositionAction != null)
{
nodeService.deleteNode(dispositionAction.getNodeRef());
}
}
}

View File

@@ -0,0 +1,278 @@
/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.module.org_alfresco_module_rm.test.integration.record;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.module.org_alfresco_module_rm.action.impl.CutOffAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
import org.springframework.extensions.webscripts.GUID;
/**
* Move record tests.
*
* @author Roy Wetherall
* @since 2.2
*/
@SuppressWarnings("unchecked")
public class MoveRecordTest extends BaseRMTestCase
{
private static final String OTHER_EVENT = "abolished";
/**
* Given a record is filed in a event disposition and moved then the
* record no longer has any disposition.
*
* @see https://issues.alfresco.com/jira/browse/RM-1540
*/
public void testMoveRecordEventDispositinoToNoDisposition() throws Exception
{
doBehaviourDrivenTest(new BehaviourDrivenTest()
{
NodeRef sourceCategory;
NodeRef sourceRecordFolder;
NodeRef destinationCategory;
NodeRef destinationRecordFolder;
NodeRef record;
public void given()
{
// create test data
sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true);
sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate());
destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());;
destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate());
// create record
record = utils.createRecord(sourceRecordFolder, GUID.generate());
// check for the lifecycle aspect
assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE));
assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
assertNotNull(dispositionAction);
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
assertNull(dispositionAction.getAsOfDate());
assertFalse(dispositionService.isNextDispositionActionEligible(record));
assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME));
}
public void when() throws Exception
{
// check the search aspect details
assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME));
assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF));
assertTrue(((List<String>)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME));
// move record
fileFolderService.move(record, destinationRecordFolder, null);
}
public void then()
{
// check for the lifecycle aspect
assertFalse(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
assertNull(dispositionService.getNextDispositionAction(record));
// check the search aspect properties
assertFalse(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
}
});
}
/**
* Given a record in a event disposition, when it moved to another event disposition then the record should have the
* new events, rather than the old ones.
*/
public void testMoveRecordEventDisToEventDis()
{
doBehaviourDrivenTest(new BehaviourDrivenTest()
{
NodeRef sourceCategory;
NodeRef sourceRecordFolder;
NodeRef destinationCategory;
NodeRef destinationRecordFolder;
NodeRef record;
public void given()
{
// create test data
sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true);
sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate());
destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
utils.createDispositionSchedule(destinationCategory, GUID.generate(), GUID.generate(), true, true, false, OTHER_EVENT);
destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate());
// create record
record = utils.createRecord(sourceRecordFolder, GUID.generate());
// check for the lifecycle aspect
assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE));
assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
assertNotNull(dispositionAction);
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
assertNull(dispositionAction.getAsOfDate());
assertFalse(dispositionService.isNextDispositionActionEligible(record));
assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME));
assertNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT));
}
public void when() throws Exception
{
// check the search aspect details
assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME));
assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF));
assertTrue(((List<String>)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME));
// move record
fileFolderService.move(record, destinationRecordFolder, null);
}
public void then()
{
// check for the lifecycle aspect
assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
assertNotNull(dispositionAction);
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
assertNull(dispositionAction.getAsOfDate());
assertFalse(dispositionService.isNextDispositionActionEligible(record));
assertNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME));
assertNotNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT));
// check the search aspect details
assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME));
assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF));
assertTrue(((List<String>)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(OTHER_EVENT));
}
});
}
/**
* Given a record in a event disposition, when it moved to a time disposition then the record should have the correct as of
* date and no longer have the events.
*/
public void testMoveRecordEventDisToTimeDis()
{
doBehaviourDrivenTest(new BehaviourDrivenTest()
{
NodeRef sourceCategory;
NodeRef sourceRecordFolder;
NodeRef destinationCategory;
NodeRef destinationRecordFolder;
NodeRef record;
public void given()
{
// create test data
sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true);
sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate());
destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
DispositionSchedule dis = utils.createBasicDispositionSchedule(destinationCategory, GUID.generate(), GUID.generate(), true, false);
Map<QName, Serializable> adParams = new HashMap<QName, Serializable>(3);
adParams.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME);
adParams.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate());
adParams.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY);
dispositionService.addDispositionActionDefinition(dis, adParams);
destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate());
// create record
record = utils.createRecord(sourceRecordFolder, GUID.generate());
// check for the lifecycle aspect
assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE));
assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
assertNotNull(dispositionAction);
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
assertNull(dispositionAction.getAsOfDate());
assertFalse(dispositionService.isNextDispositionActionEligible(record));
assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME));
assertNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT));
}
public void when() throws Exception
{
// check the search aspect details
assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME));
assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF));
assertTrue(((List<String>)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME));
// move record
fileFolderService.move(record, destinationRecordFolder, null);
}
public void then()
{
// check for the lifecycle aspect
assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE));
// check the disposition action details
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
assertNotNull(dispositionAction);
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
assertNotNull(dispositionAction.getAsOfDate());
assertTrue(dispositionService.isNextDispositionActionEligible(record));
assertNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME));
// check the search aspect details
assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH));
assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME));
assertNotNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF));
assertNull(((List<String>)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)));
}
});
}
// TODO moveRecordNoDisToEventDis
// TODO moveRecordRecordDisToFolderDis
}

View File

@@ -32,7 +32,8 @@ import org.junit.runners.Suite.SuiteClasses;
@SuiteClasses(
{
RejectRecordTest.class,
CreateRecordTest.class
CreateRecordTest.class,
MoveRecordTest.class
})
public class RecordTestSuite
{

View File

@@ -38,7 +38,7 @@ import org.alfresco.service.namespace.QName;
import org.springframework.extensions.webscripts.GUID;
/**
* Move record tests.
* Move record folder tests.
*
* @author Roy Wetherall
* @since 2.2

View File

@@ -76,6 +76,11 @@ public class CommonRMTestUtils implements RecordsManagementModel
public static final String PERIOD_NONE = "none|0";
public static final String PERIOD_IMMEDIATELY = "immediately|0";
/**
* Constructor
*
* @param applicationContext application context
*/
public CommonRMTestUtils(ApplicationContext applicationContext)
{
dispositionService = (DispositionService)applicationContext.getBean("DispositionService");
@@ -99,14 +104,8 @@ public class CommonRMTestUtils implements RecordsManagementModel
}
/**
*
* @param container
* @param dispositionInstructions
* @param dispositionAuthority
* @param isRecordLevel
* @param defaultDispositionActions
* @return
*/
* Create test disposition schedule
*/
public DispositionSchedule createBasicDispositionSchedule(
NodeRef container,
String dispositionInstructions,
@@ -118,14 +117,7 @@ public class CommonRMTestUtils implements RecordsManagementModel
}
/**
*
* @param container
* @param dispositionInstructions
* @param dispositionAuthority
* @param isRecordLevel
* @param defaultDispositionActions
* @param extendedDispositionSchedule
* @return
* Create test disposition schedule
*/
public DispositionSchedule createDispositionSchedule(
NodeRef container,
@@ -134,6 +126,28 @@ public class CommonRMTestUtils implements RecordsManagementModel
boolean isRecordLevel,
boolean defaultDispositionActions,
boolean extendedDispositionSchedule)
{
return createDispositionSchedule(
container,
dispositionInstructions,
dispositionAuthority,
isRecordLevel,
defaultDispositionActions,
extendedDispositionSchedule,
DEFAULT_EVENT_NAME);
}
/**
* Create test disposition schedule
*/
public DispositionSchedule createDispositionSchedule(
NodeRef container,
String dispositionInstructions,
String dispositionAuthority,
boolean isRecordLevel,
boolean defaultDispositionActions,
boolean extendedDispositionSchedule,
String defaultEvent)
{
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
dsProps.put(PROP_DISPOSITION_AUTHORITY, dispositionAuthority);
@@ -148,7 +162,7 @@ public class CommonRMTestUtils implements RecordsManagementModel
adParams.put(PROP_DISPOSITION_DESCRIPTION, DEFAULT_DISPOSITION_DESCRIPTION);
List<String> events = new ArrayList<String>(1);
events.add(DEFAULT_EVENT_NAME);
events.add(defaultEvent);
adParams.put(PROP_DISPOSITION_EVENT, (Serializable)events);
dispositionService.addDispositionActionDefinition(dispositionSchedule, adParams);