diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml index ad37e06886..2c45288f94 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml @@ -30,6 +30,8 @@ + + @@ -399,7 +401,6 @@ - @@ -427,7 +428,6 @@ - @@ -445,7 +445,6 @@ - @@ -473,7 +472,6 @@ - diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index 0aeebecf42..930ba708fd 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -905,6 +905,7 @@ capabilities = new LinkedList();; /** Default constructor */ @@ -226,7 +234,27 @@ public abstract class RMActionExecuterAbstractBase extends ActionExecuterAbstra { this.ownableService = ownableService; } - + + /** + * Set freeze service + * + * @param freezeService freeze service + */ + public void setFreezeService(FreezeService freezeService) + { + this.freezeService = freezeService; + } + + /** + * Set record service + * + * @param recordService record service + */ + public void setRecordService(RecordService recordService) + { + this.recordService = recordService; + } + /** * Register with a single capability * @param capability diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DeclareRecordAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DeclareRecordAction.java index d37078ad1c..a7b0ab9bf2 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DeclareRecordAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DeclareRecordAction.java @@ -48,189 +48,185 @@ import org.springframework.extensions.surf.util.I18NUtil; */ public class DeclareRecordAction extends RMActionExecuterAbstractBase { - /** I18N */ - private static final String MSG_UNDECLARED_ONLY_RECORDS = "rm.action.undeclared-only-records"; - private static final String MSG_NO_DECLARE_MAND_PROP = "rm.action.no-declare-mand-prop"; - - /** Logger */ - private static Log logger = LogFactory.getLog(DeclareRecordAction.class); + /** I18N */ + private static final String MSG_UNDECLARED_ONLY_RECORDS = "rm.action.undeclared-only-records"; + private static final String MSG_NO_DECLARE_MAND_PROP = "rm.action.no-declare-mand-prop"; - /** - * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, - * org.alfresco.service.cmr.repository.NodeRef) - */ - @Override - protected void executeImpl(Action action, NodeRef actionedUponNodeRef) - { - if (recordsManagementService.isRecord(actionedUponNodeRef) == true) - { - if (recordsManagementService.isRecordDeclared(actionedUponNodeRef) == false) + /** Logger */ + private static Log logger = LogFactory.getLog(DeclareRecordAction.class); + + /** + * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) + */ + @Override + protected void executeImpl(Action action, NodeRef actionedUponNodeRef) + { + if (recordService.isRecord(actionedUponNodeRef) == true) + { + if (recordService.isDeclared(actionedUponNodeRef) == false) + { + List missingProperties = new ArrayList(5); + // Aspect not already defined - check mandatory properties then add + if (mandatoryPropertiesSet(actionedUponNodeRef, missingProperties) == true) { - List missingProperties = new ArrayList(5); - // Aspect not already defined - check mandatory properties then add - if (mandatoryPropertiesSet(actionedUponNodeRef, missingProperties) == true) - { - // Add the declared aspect - Map declaredProps = new HashMap(2); - declaredProps.put(PROP_DECLARED_AT, new Date()); - declaredProps.put(PROP_DECLARED_BY, AuthenticationUtil.getRunAsUser()); - this.nodeService.addAspect(actionedUponNodeRef, ASPECT_DECLARED_RECORD, declaredProps); - - // remove all owner related rights - this.ownableService.setOwner(actionedUponNodeRef, OwnableService.NO_OWNER); - } - else - { - throw new AlfrescoRuntimeException(buildMissingPropertiesErrorString(missingProperties)); - } - } - } - else - { - throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_UNDECLARED_ONLY_RECORDS, actionedUponNodeRef.toString())); - } - } - - private String buildMissingPropertiesErrorString(List missingProperties) - { - StringBuilder builder = new StringBuilder(255); - builder.append(I18NUtil.getMessage(MSG_NO_DECLARE_MAND_PROP)); - builder.append(" "); - for (String missingProperty : missingProperties) - { - builder.append(missingProperty) - .append(", "); - } - return builder.toString(); - } + // Add the declared aspect + Map declaredProps = new HashMap(2); + declaredProps.put(PROP_DECLARED_AT, new Date()); + declaredProps.put(PROP_DECLARED_BY, AuthenticationUtil.getRunAsUser()); + this.nodeService.addAspect(actionedUponNodeRef, ASPECT_DECLARED_RECORD, declaredProps); - /** - * Helper method to check whether all the mandatory properties of the node have been set - * - * @param nodeRef - * node reference - * @return boolean true if all mandatory properties are set, false otherwise - */ - private boolean mandatoryPropertiesSet(NodeRef nodeRef, List missingProperties) - { - boolean result = true; - - Map nodeRefProps = this.nodeService.getProperties(nodeRef); - - QName nodeRefType = this.nodeService.getType(nodeRef); - - TypeDefinition typeDef = this.dictionaryService.getType(nodeRefType); - for (PropertyDefinition propDef : typeDef.getProperties().values()) - { - if (propDef.isMandatory() == true) - { - if (nodeRefProps.get(propDef.getName()) == null) - { - logMissingProperty(propDef, missingProperties); - - result = false; - break; - } - } - } - - if (result != false) - { - Set aspects = this.nodeService.getAspects(nodeRef); - for (QName aspect : aspects) - { - AspectDefinition aspectDef = this.dictionaryService.getAspect(aspect); - for (PropertyDefinition propDef : aspectDef.getProperties().values()) - { - if (propDef.isMandatory() == true) - { - if (nodeRefProps.get(propDef.getName()) == null) - { - logMissingProperty(propDef, missingProperties); - - result = false; - break; - } - } - } - } - } - - return result; - } - - /** - * Log information about missing properties. - * - * @param propDef property definition - * @param missingProperties missing properties - */ - private void logMissingProperty(PropertyDefinition propDef, List missingProperties) - { - if (logger.isWarnEnabled()) - { - StringBuilder msg = new StringBuilder(); - msg.append("Mandatory property missing: ").append(propDef.getName()); - logger.warn(msg.toString()); - } - missingProperties.add(propDef.getName().toString()); - } - - /** - * @see org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase#getProtectedAspects() - */ - @Override - public Set getProtectedAspects() - { - HashSet qnames = new HashSet(); - qnames.add(ASPECT_DECLARED_RECORD); - return qnames; - } - - /** - * @see org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase#isExecutableImpl(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, boolean) - */ - @Override - protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) - { - if (recordsManagementService.isRecord(filePlanComponent) == true) - { - if (recordsManagementService.isRecordDeclared(filePlanComponent) == false) - { - // Aspect not already defined - check mandatory properties then add - List missingProperties = new ArrayList(10); - if (mandatoryPropertiesSet(filePlanComponent, missingProperties) == true) - { - return true; - } - else - { - if (throwException) - { - throw new AlfrescoRuntimeException(buildMissingPropertiesErrorString(missingProperties)); - } - else - { - return false; - } - } + // remove all owner related rights + this.ownableService.setOwner(actionedUponNodeRef, OwnableService.NO_OWNER); } else { - return false; + throw new AlfrescoRuntimeException(buildMissingPropertiesErrorString(missingProperties)); } - } - else - { - if (throwException) + } + } + else + { + throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_UNDECLARED_ONLY_RECORDS, actionedUponNodeRef.toString())); + } + } + + private String buildMissingPropertiesErrorString(List missingProperties) + { + StringBuilder builder = new StringBuilder(255); + builder.append(I18NUtil.getMessage(MSG_NO_DECLARE_MAND_PROP)); + builder.append(" "); + for (String missingProperty : missingProperties) + { + builder.append(missingProperty).append(", "); + } + return builder.toString(); + } + + /** + * Helper method to check whether all the mandatory properties of the node have been set + * + * @param nodeRef node reference + * @return boolean true if all mandatory properties are set, false otherwise + */ + private boolean mandatoryPropertiesSet(NodeRef nodeRef, List missingProperties) + { + boolean result = true; + + Map nodeRefProps = this.nodeService.getProperties(nodeRef); + + QName nodeRefType = this.nodeService.getType(nodeRef); + + TypeDefinition typeDef = this.dictionaryService.getType(nodeRefType); + for (PropertyDefinition propDef : typeDef.getProperties().values()) + { + if (propDef.isMandatory() == true) + { + if (nodeRefProps.get(propDef.getName()) == null) { - throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_UNDECLARED_ONLY_RECORDS, filePlanComponent.toString())); + logMissingProperty(propDef, missingProperties); + + result = false; + break; + } + } + } + + if (result != false) + { + Set aspects = this.nodeService.getAspects(nodeRef); + for (QName aspect : aspects) + { + AspectDefinition aspectDef = this.dictionaryService.getAspect(aspect); + for (PropertyDefinition propDef : aspectDef.getProperties().values()) + { + if (propDef.isMandatory() == true) + { + if (nodeRefProps.get(propDef.getName()) == null) + { + logMissingProperty(propDef, missingProperties); + + result = false; + break; + } + } + } + } + } + + return result; + } + + /** + * Log information about missing properties. + * + * @param propDef property definition + * @param missingProperties missing properties + */ + private void logMissingProperty(PropertyDefinition propDef, List missingProperties) + { + if (logger.isWarnEnabled()) + { + StringBuilder msg = new StringBuilder(); + msg.append("Mandatory property missing: ").append(propDef.getName()); + logger.warn(msg.toString()); + } + missingProperties.add(propDef.getName().toString()); + } + + /** + * @see org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase#getProtectedAspects() + */ + @Override + public Set getProtectedAspects() + { + HashSet qnames = new HashSet(); + qnames.add(ASPECT_DECLARED_RECORD); + return qnames; + } + + /** + * @see org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase#isExecutableImpl(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, boolean) + */ + @Override + protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) + { + if (recordService.isRecord(filePlanComponent) == true) + { + if (recordService.isDeclared(filePlanComponent) == false) + { + // Aspect not already defined - check mandatory properties then add + List missingProperties = new ArrayList(10); + if (mandatoryPropertiesSet(filePlanComponent, missingProperties) == true) + { + return true; } else { - return false; + if (throwException) + { + throw new AlfrescoRuntimeException(buildMissingPropertiesErrorString(missingProperties)); + } + else + { + return false; + } } - } - } - + } + else + { + return false; + } + } + else + { + if (throwException) + { + throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_UNDECLARED_ONLY_RECORDS, filePlanComponent.toString())); + } + else + { + return false; + } + } + } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/EditHoldReasonAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/EditHoldReasonAction.java index 3308e06ff0..221aff710b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/EditHoldReasonAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/EditHoldReasonAction.java @@ -25,7 +25,6 @@ import java.util.Set; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase; -import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -45,19 +44,6 @@ public class EditHoldReasonAction extends RMActionExecuterAbstractBase /** Parameter names */ public static final String PARAM_REASON = "reason"; - /** Freeze Service */ - private FreezeService freezeService; - - /** - * Set freeze service - * - * @param freezeService freeze service - */ - public void setFreezeService(FreezeService freezeService) - { - this.freezeService = freezeService; - } - /** * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) */ @@ -110,14 +96,13 @@ public class EditHoldReasonAction extends RMActionExecuterAbstractBase @Override protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) { - QName nodeType = this.nodeService.getType(filePlanComponent); - if (this.dictionaryService.isSubClass(nodeType, TYPE_HOLD) == true) + if (freezeService.isHold(filePlanComponent) == true) { return true; } else { - if(throwException) + if (throwException) { throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_HOLD_EDIT_TYPE, TYPE_HOLD.toString(), filePlanComponent.toString())); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/FreezeAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/FreezeAction.java index 0455bdea9d..8211c5890a 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/FreezeAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/FreezeAction.java @@ -25,7 +25,6 @@ import java.util.Set; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase; -import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -44,19 +43,6 @@ public class FreezeAction extends RMActionExecuterAbstractBase /** Parameter names */ public static final String PARAM_REASON = "reason"; - /** Freeze Service */ - private FreezeService freezeService; - - /** - * Set freeze service - * - * @param freezeService freeze service - */ - public void setFreezeService(FreezeService freezeService) - { - this.freezeService = freezeService; - } - /** * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) */ @@ -95,7 +81,7 @@ public class FreezeAction extends RMActionExecuterAbstractBase @Override protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) { - if (this.recordsManagementService.isRecord(filePlanComponent) == true || + if (this.recordService.isRecord(filePlanComponent) == true || this.recordsManagementService.isRecordFolder(filePlanComponent) == true) { // Get the property values diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/RelinquishHoldAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/RelinquishHoldAction.java index f0e205d088..927d336c92 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/RelinquishHoldAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/RelinquishHoldAction.java @@ -25,7 +25,6 @@ import java.util.Set; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase; -import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -41,19 +40,6 @@ public class RelinquishHoldAction extends RMActionExecuterAbstractBase /** I18N */ private static final String MSG_NOT_HOLD_TYPE = "rm.action.not-hold-type"; - /** Freeze Service */ - private FreezeService freezeService; - - /** - * Set freeze service - * - * @param freezeService freeze service - */ - public void setFreezeService(FreezeService freezeService) - { - this.freezeService = freezeService; - } - /** * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) */ @@ -87,14 +73,13 @@ public class RelinquishHoldAction extends RMActionExecuterAbstractBase @Override protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) { - QName nodeType = this.nodeService.getType(filePlanComponent); - if (this.dictionaryService.isSubClass(nodeType, TYPE_HOLD) == true) + if (freezeService.isHold(filePlanComponent) == true) { return true; } else { - if(throwException) + if (throwException) { throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_NOT_HOLD_TYPE, TYPE_HOLD.toString(), filePlanComponent.toString())); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/UnfreezeAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/UnfreezeAction.java index a3b7c71582..4836696de0 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/UnfreezeAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/UnfreezeAction.java @@ -24,7 +24,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase; -import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -36,19 +35,6 @@ import org.alfresco.service.namespace.QName; */ public class UnfreezeAction extends RMActionExecuterAbstractBase { - /** Freeze Service */ - private FreezeService freezeService; - - /** - * Set freeze service - * - * @param freezeService freeze service - */ - public void setFreezeService(FreezeService freezeService) - { - this.freezeService = freezeService; - } - /** * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) */ @@ -75,7 +61,7 @@ public class UnfreezeAction extends RMActionExecuterAbstractBase @Override protected boolean isExecutableImpl(NodeRef filePlanComponent, Map parameters, boolean throwException) { - return this.nodeService.hasAspect(filePlanComponent, ASPECT_FROZEN); + return freezeService.isFrozen(filePlanComponent); } } \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordService.java index b04c443f7e..7fda6b96b3 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordService.java @@ -39,6 +39,14 @@ public interface RecordService */ Set getRecordMetaDataAspects(); + /** + * Checks whether if the given node reference is a record or not + * + * @param nodeRef node reference to be checked + * @return boolean true if the node reference is a record, false otherwise + */ + boolean isRecord(NodeRef nodeRef); + /** * Indicates whether the record is declared * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index 73fc50b984..2dfba59757 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -158,6 +158,17 @@ public class RecordServiceImpl implements RecordService, RecordsManagementModel return recordMetaDataAspects; } + /** + * @see org.alfresco.module.org_alfresco_module_rm.record.RecordService#isRecord(org.alfresco.service.cmr.repository.NodeRef) + */ + @Override + public boolean isRecord(NodeRef nodeRef) + { + ParameterCheck.mandatory("nodeRef", nodeRef); + + return nodeService.hasAspect(nodeRef, ASPECT_RECORD); + } + /** * @see org.alfresco.module.org_alfresco_module_rm.record.RecordService#isDeclared(org.alfresco.service.cmr.repository.NodeRef) */ @@ -166,7 +177,7 @@ public class RecordServiceImpl implements RecordService, RecordsManagementModel { ParameterCheck.mandatory("record", record); - return (nodeService.hasAspect(record, ASPECT_DECLARED_RECORD)); + return nodeService.hasAspect(record, ASPECT_DECLARED_RECORD); } /** diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FreezeServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FreezeServiceImplTest.java index d5c055bd1a..629844c33b 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FreezeServiceImplTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FreezeServiceImplTest.java @@ -54,10 +54,10 @@ public class FreezeServiceImplTest extends BaseRMTestCase @Override public void test(NodeRef result) throws Exception { - assertTrue(rmService.isRecord(recordOne)); - assertTrue(rmService.isRecord(recordTwo)); - assertTrue(rmService.isRecord(recordThree)); - assertTrue(rmService.isRecord(recordFour)); + assertTrue(recordService.isRecord(recordOne)); + assertTrue(recordService.isRecord(recordTwo)); + assertTrue(recordService.isRecord(recordThree)); + assertTrue(recordService.isRecord(recordFour)); assertTrue(rmService.isFilePlanComponent(recordOne)); assertTrue(rmService.isFilePlanComponent(recordTwo)); assertTrue(rmService.isFilePlanComponent(recordThree)); diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordServiceImplTest.java index 7838611b35..aaeea5779e 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordServiceImplTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordServiceImplTest.java @@ -51,6 +51,22 @@ public class RecordServiceImplTest extends BaseRMTestCase }); } + /** + * @see RecordService#isRecord(org.alfresco.service.cmr.repository.NodeRef) + */ + public void testIsRecord() throws Exception + { + doTestInTransaction(new Test() + { + @Override + public Void run() + { + // FIXME + return null; + } + }); + } + /** * @see RecordService#isDeclared(org.alfresco.service.cmr.repository.NodeRef) */