diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml
index b1f7894a64..9571419fd0 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml
@@ -34,5 +34,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/version/model/VersionableAspect.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/version/model/VersionableAspect.java
new file mode 100644
index 0000000000..b8d6a51e30
--- /dev/null
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/version/model/VersionableAspect.java
@@ -0,0 +1,56 @@
+/*
+ * 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 .
+ */
+package org.alfresco.module.org_alfresco_module_rm.version.model;
+
+import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean;
+import org.alfresco.repo.copy.CopyBehaviourCallback;
+import org.alfresco.repo.copy.CopyDetails;
+import org.alfresco.repo.copy.DoNothingCopyBehaviourCallback;
+import org.alfresco.repo.policy.annotation.Behaviour;
+import org.alfresco.repo.policy.annotation.BehaviourBean;
+import org.alfresco.repo.policy.annotation.BehaviourKind;
+import org.alfresco.service.namespace.QName;
+
+/**
+ * rmv:versionsable aspect behaviour bean implementation
+ *
+ * @author Roy Wetherall
+ * @since 2.3
+ */
+@BehaviourBean
+(
+ defaultType="rmv:versionable"
+)
+public class VersionableAspect extends BaseBehaviourBean
+{
+ /**
+ * Copy callback.
+ *
+ * Cutoff aspect should not be copied.
+ */
+ @Behaviour
+ (
+ kind = BehaviourKind.CLASS,
+ policy = "alf:getCopyCallback"
+ )
+ public CopyBehaviourCallback getCopyCallback(QName classRef, CopyDetails copyDetails)
+ {
+ return new DoNothingCopyBehaviourCallback();
+ }
+}
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/version/RecordableVersionsBaseTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/version/RecordableVersionsBaseTest.java
index a7dd545955..f7a42b1960 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/version/RecordableVersionsBaseTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/version/RecordableVersionsBaseTest.java
@@ -171,15 +171,17 @@ public abstract class RecordableVersionsBaseTest extends BaseRMTestCase implemen
Map cloneFrozenProperties = new HashMap(frozenProperties);
for (Map.Entry entry : beforeProperies.entrySet())
{
- if (frozenProperties.containsKey(entry.getKey()))
+ QName beforePropertyName = entry.getKey();
+ if (frozenProperties.containsKey(beforePropertyName))
{
- Serializable frozenValue = frozenProperties.get(entry.getKey());
- assertEquals("Frozen property " + entry.getKey().getLocalName() + " value is incorrect.", entry.getValue(), frozenValue);
- cloneFrozenProperties.remove(entry.getKey());
+ Serializable frozenValue = frozenProperties.get(beforePropertyName);
+ assertEquals("Frozen property " + beforePropertyName.getLocalName() + " value is incorrect.", entry.getValue(), frozenValue);
+ cloneFrozenProperties.remove(beforePropertyName);
}
- else
+ else if (!PROP_FILE_PLAN.equals(beforePropertyName) &&
+ !PROP_RECORDABLE_VERSION_POLICY.equals(beforePropertyName))
{
- fail("Property missing from frozen state .. " + entry.getKey());
+ fail("Property missing from frozen state .. " + beforePropertyName);
}
}
@@ -197,6 +199,7 @@ public abstract class RecordableVersionsBaseTest extends BaseRMTestCase implemen
// compare origional and frozen aspects
Set frozenAspects = nodeService.getAspects(frozen);
cloneBeforeAspects.removeAll(frozenAspects);
+ cloneBeforeAspects.remove(RecordableVersionModel.ASPECT_VERSIONABLE);
if (!cloneBeforeAspects.isEmpty())
{
fail("Aspects not present in frozen state. " + cloneBeforeAspects.toString());