mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-1633: Recorded Version Configuration Action
* Prevent copy of recorded version configuration, therefore it is not stored on frozen record state. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@84187 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -34,5 +34,9 @@
|
|||||||
<property name="beanName" value="versionNodeService" />
|
<property name="beanName" value="versionNodeService" />
|
||||||
<property name="extendingBeanName" value="rm.versionNodeService" />
|
<property name="extendingBeanName" value="rm.versionNodeService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<!-- rmv:versionable aspect behaviour bean -->
|
||||||
|
<bean id="rm.versionableAspect" class="org.alfresco.module.org_alfresco_module_rm.version.model.VersionableAspect" parent="rm.baseBehaviour">
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
@@ -171,15 +171,17 @@ public abstract class RecordableVersionsBaseTest extends BaseRMTestCase implemen
|
|||||||
Map<QName, Serializable> cloneFrozenProperties = new HashMap<QName, Serializable>(frozenProperties);
|
Map<QName, Serializable> cloneFrozenProperties = new HashMap<QName, Serializable>(frozenProperties);
|
||||||
for (Map.Entry<QName, Serializable> entry : beforeProperies.entrySet())
|
for (Map.Entry<QName, Serializable> entry : beforeProperies.entrySet())
|
||||||
{
|
{
|
||||||
if (frozenProperties.containsKey(entry.getKey()))
|
QName beforePropertyName = entry.getKey();
|
||||||
|
if (frozenProperties.containsKey(beforePropertyName))
|
||||||
{
|
{
|
||||||
Serializable frozenValue = frozenProperties.get(entry.getKey());
|
Serializable frozenValue = frozenProperties.get(beforePropertyName);
|
||||||
assertEquals("Frozen property " + entry.getKey().getLocalName() + " value is incorrect.", entry.getValue(), frozenValue);
|
assertEquals("Frozen property " + beforePropertyName.getLocalName() + " value is incorrect.", entry.getValue(), frozenValue);
|
||||||
cloneFrozenProperties.remove(entry.getKey());
|
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
|
// compare origional and frozen aspects
|
||||||
Set<QName> frozenAspects = nodeService.getAspects(frozen);
|
Set<QName> frozenAspects = nodeService.getAspects(frozen);
|
||||||
cloneBeforeAspects.removeAll(frozenAspects);
|
cloneBeforeAspects.removeAll(frozenAspects);
|
||||||
|
cloneBeforeAspects.remove(RecordableVersionModel.ASPECT_VERSIONABLE);
|
||||||
if (!cloneBeforeAspects.isEmpty())
|
if (!cloneBeforeAspects.isEmpty())
|
||||||
{
|
{
|
||||||
fail("Aspects not present in frozen state. " + cloneBeforeAspects.toString());
|
fail("Aspects not present in frozen state. " + cloneBeforeAspects.toString());
|
||||||
|
Reference in New Issue
Block a user