RM-2832 Revert changes for moving DoD code to enterprise.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@119024 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tom Page
2015-12-01 14:53:42 +00:00
parent 7ab928a7ae
commit 3182cedf83
23 changed files with 1710 additions and 36 deletions

View File

@@ -0,0 +1,82 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<!-- This file contains DOD specific capabilities relating to classification. -->
<!-- When we support classification they can be re-included and adjusted accordingly, for now they are deprecated -->
<!-- by making them private. -->
<beans>
<bean id="classifiedRecordsGroup"
parent="groupBase">
<property name="id" value="classifiedRecords"/>
<property name="index" value="200"/>
</bean>
<!-- Assignable Capabilities -->
<bean id="rmCreateModifyDestroyClassificationGuidesCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyDestroyClassificationGuides"/>
<property name="permission" value="CreateModifyDestroyClassificationGuides"/>
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="10" />
<property name="private" value="true" />
</bean>
<bean id="rmCreateModifyDestroyTimeframesCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyDestroyTimeframes" />
<property name="permission" value="CreateModifyDestroyTimeframes" />
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="20" />
<property name="private" value="true" />
</bean>
<bean id="rmMapClassificationGuideMetadataCapability"
parent="declarativeCapability">
<property name="name" value="MapClassificationGuideMetadata" />
<property name="permission" value="MapClassificationGuideMetadata" />
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="30" />
<property name="private" value="true" />
</bean>
<bean id="rmUpdateClassificationDatesCapability"
parent="declarativeCapability">
<property name="name" value="UpdateClassificationDates" />
<property name="permission" value="UpdateClassificationDates" />
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="40" />
<property name="private" value="true" />
</bean>
<bean id="rmUpdateExemptionCategoriesCapability"
parent="declarativeCapability">
<property name="name" value="UpdateExemptionCategories" />
<property name="permission" value="UpdateExemptionCategories" />
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="50" />
<property name="private" value="true" />
</bean>
<bean id="rmUpgradeDowngradeAndDeclassifyRecordsCapability"
parent="declarativeCapability">
<property name="name" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="permission" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
<!-- <property name="group"><ref bean="classifiedRecordsGroup"/></property> -->
<property name="index" value="60" />
<property name="private" value="true" />
</bean>
<!-- Non-Assignable Capabilities -->
</beans>

View File

@@ -2,24 +2,60 @@
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Bootstrap Records Management Models -->
<!-- Bootstrap Records Management Models -->
<bean id="org_alfresco_module_dod5015_dod5015dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/module/org_alfresco_module_rm/dod5015/dod5015Model.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/module/org_alfresco_module_rm/dod5015/messages/dod5015-model</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/module/org_alfresco_module_rm/dod5015/messages/dod5015-model</value>
</list>
</property>
</bean>
<!-- Bootstrap DoD record metadata aspects -->
<bean id="dod.recordMetadataAspectBootstrap" parent="recordMetadataAspectBootstrap">
<property name="recordMetadataAspects">
<map>
<entry key="dod:dod5015record" value="dod:filePlan" />
<entry key="dod:scannedRecord" value="dod:filePlan" />
<entry key="dod:pdfRecord" value="dod:filePlan" />
<entry key="dod:digitalPhotographRecord" value="dod:filePlan" />
<entry key="dod:webRecord" value="dod:filePlan" />
</map>
</property>
</bean>
<!-- Bootstap the message property files -->
<bean id="org_alfresco_module_rm_resourceBundles.dod5015" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
<property name="resourceBundles">
<list>
<value>alfresco.module.org_alfresco_module_rm.dod5015.messages.dod5015</value>
</list>
</property>
</bean>
<!-- Bootstrap DOD file plan type -->
<bean id="org_alfresco_module_rm_filePlanBootstrap.dod5015" class="org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015FilePlanTypeBootstrap" init-method="init">
<property name="rmSiteType" ref="rma.rmSite"/>
</bean>
<!-- add publication date as a disposition property -->
<bean id="disposition.properties.publicationdate" parent="disposition.properties.base">
<property name="name" value="dod:publicationDate" />
<property name="appliesToFolderLevel" value="false"/>
</bean>
<!-- Include classification capabilities, deprecated for now -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/dod5015/dod5015-capabilities-classification-context.xml"/>
<!-- Model behaviour -->
<bean id="dod.dod5015RecordAspect" class="org.alfresco.module.org_alfresco_module_rm.dod5015.model.dod.aspect.DOD5015RecordAspect" parent="rm.baseBehaviour">
<property name="filePlanService" ref="filePlanService"/>
</bean>
</beans>

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Classified Records
capability.UpdateClassificationDates.title=Update Classification Dates
capability.CreateModifyDestroyClassificationGuides.title=Create Modify Destroy Classification Guides
capability.UpgradeDowngradeAndDeclassifyRecords.title=Upgrade Downgrade and Declassify Records
capability.UpdateExemptionCategories.title=Update Exemption Categories
capability.MapClassificationGuideMetadata.title=Map Classification Guide Metadata
capability.CreateModifyDestroyTimeframes.title=Create Modify Destroy Time Frames

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Klassifizierte Records
capability.UpdateClassificationDates.title=Klassifizierungsdaten aktualisieren
capability.CreateModifyDestroyClassificationGuides.title=Klassifizierungsleitfaden erstellen/\u00e4ndern/vernichten
capability.UpgradeDowngradeAndDeclassifyRecords.title=Records h\u00f6her-/herunterstufen und ihre Klassifizierung aufheben
capability.UpdateExemptionCategories.title=Ausnahmekategorien aktualisieren
capability.MapClassificationGuideMetadata.title=Metadaten f\u00fcr Klassifizierungsleitfaden zuordnen
capability.CreateModifyDestroyTimeframes.title=Zeitrahmen erstellen/\u00e4ndern/vernichten

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Documentos de archivo clasificados
capability.UpdateClassificationDates.title=Actualizar fechas de clasificaci\u00f3n
capability.CreateModifyDestroyClassificationGuides.title=Crear Modificar Destruir gu\u00edas de clasificaci\u00f3n
capability.UpgradeDowngradeAndDeclassifyRecords.title=Actualizar, degradar y desclasificar documentos de archivo
capability.UpdateExemptionCategories.title=Actualizar categor\u00edas de exenci\u00f3n
capability.MapClassificationGuideMetadata.title=Asignar metadatos de gu\u00eda de clasificaci\u00f3n
capability.CreateModifyDestroyTimeframes.title=Crear Modificar Destruir plazos de tiempo

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Document d'archives class\u00e9s
capability.UpdateClassificationDates.title=Mettre \u00e0 jour les dates de classement
capability.CreateModifyDestroyClassificationGuides.title=Cr\u00e9er Modifier D\u00e9truire des guides de classement
capability.UpgradeDowngradeAndDeclassifyRecords.title=Mettre \u00e0 jour R\u00e9trograder et D\u00e9classer des documents d'archives
capability.UpdateExemptionCategories.title=Mettre \u00e0 jour les cat\u00e9gories d'exemption
capability.MapClassificationGuideMetadata.title=Mapper les m\u00e9tadonn\u00e9es de guides de classement
capability.CreateModifyDestroyTimeframes.title=Cr\u00e9er Modifier D\u00e9truire des d\u00e9lais

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Record classificati
capability.UpdateClassificationDates.title=Aggiorna date di classificazione
capability.CreateModifyDestroyClassificationGuides.title=Crea Modifica Elimina definitivamente guide di classificazione
capability.UpgradeDowngradeAndDeclassifyRecords.title=Upgrade Downgrade e Declassifica record
capability.UpdateExemptionCategories.title=Aggiorna categorie di esenzione
capability.MapClassificationGuideMetadata.title=Esegui il mapping dei metadati della guida di classificazione
capability.CreateModifyDestroyTimeframes.title=Crea Modifica Elimina definitivamente intervalli di tempo

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=\u5206\u985e\u6e08\u307f\u30ec\u30b3\u30fc\u30c9
capability.UpdateClassificationDates.title=\u5206\u985e\u65e5\u306e\u66f4\u65b0
capability.CreateModifyDestroyClassificationGuides.title=\u5206\u985e\u30ac\u30a4\u30c9\u306e\u4f5c\u6210/\u5909\u66f4/\u7834\u68c4
capability.UpgradeDowngradeAndDeclassifyRecords.title=\u30c0\u30a6\u30f3\u30b0\u30ec\u30fc\u30c9\u306e\u66f4\u65b0\u3068\u30ec\u30b3\u30fc\u30c9\u306e\u5206\u985e\u89e3\u9664
capability.UpdateExemptionCategories.title=\u9664\u5916\u30ab\u30c6\u30b4\u30ea\u306e\u66f4\u65b0
capability.MapClassificationGuideMetadata.title=\u5206\u985e\u30ac\u30a4\u30c9\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u30de\u30c3\u30d4\u30f3\u30b0
capability.CreateModifyDestroyTimeframes.title=\u30bf\u30a4\u30e0\u30d5\u30ec\u30fc\u30e0\u306e\u4f5c\u6210/\u5909\u66f4/\u7834\u68c4

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Klassifiserte oppf\u00f8ringer
capability.UpdateClassificationDates.title=Oppdater klassifiseringdatoer
capability.CreateModifyDestroyClassificationGuides.title=Opprett Endre Destruer klassifiseringeveiledninger
capability.UpgradeDowngradeAndDeclassifyRecords.title=Oppgrader, last ned og deklassifiser oppf\u00f8ringer
capability.UpdateExemptionCategories.title=Oppdater unntakskategorier
capability.MapClassificationGuideMetadata.title=Koble klassifiseringsveiledning metadata
capability.CreateModifyDestroyTimeframes.title=Opprett Endre Destruer tidsrammer

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Niet geclassificeerde records
capability.UpdateClassificationDates.title=Classificatiedata bijwerken
capability.CreateModifyDestroyClassificationGuides.title=Classificatiegidsen maken aanpassen vernietigen
capability.UpgradeDowngradeAndDeclassifyRecords.title=Records upgraden, downgraden en declassificeren
capability.UpdateExemptionCategories.title=Uitzonderingscategorie\u00ebn bijwerken
capability.MapClassificationGuideMetadata.title=Metagegevens classificatiegids toewijzen
capability.CreateModifyDestroyTimeframes.title=Tijdsperiodes maken aanpassen vernietigen

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=Documentos arquiv\u00edsticos classificados
capability.UpdateClassificationDates.title=Atualizar datas de classifica\u00e7\u00e3o
capability.CreateModifyDestroyClassificationGuides.title=Criar Modificar Destruir guias de classifica\u00e7\u00e3o
capability.UpgradeDowngradeAndDeclassifyRecords.title=Atualizar Downgrade e Desclassificar documentos arquiv\u00edsticos
capability.UpdateExemptionCategories.title=Atualizar categorias de isen\u00e7\u00e3o
capability.MapClassificationGuideMetadata.title=Mapear metadados do guia de classifica\u00e7\u00e3o
capability.CreateModifyDestroyTimeframes.title=Criar Modificar Destruir per\u00edodos de tempo

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
capability.UpdateClassificationDates.title=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438
capability.CreateModifyDestroyClassificationGuides.title=\u0421\u043e\u0437\u0434\u0430\u0442\u044c, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438
capability.UpgradeDowngradeAndDeclassifyRecords.title=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c, \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043a \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u043c \u0438 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0437\u0430\u043f\u0438\u0441\u0435\u0439
capability.UpdateExemptionCategories.title=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
capability.MapClassificationGuideMetadata.title=\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438
capability.CreateModifyDestroyTimeframes.title=\u0421\u043e\u0437\u0434\u0430\u0442\u044c, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b

View File

@@ -0,0 +1,8 @@
# Classified Records Capabilities
capability.group.classifiedRecords.title=\u5206\u7c7b\u7684\u8bb0\u5f55
capability.UpdateClassificationDates.title=\u66f4\u65b0\u5206\u7c7b\u65e5\u671f
capability.CreateModifyDestroyClassificationGuides.title=\u521b\u5efa\u4fee\u6539\u9500\u6bc1\u5206\u7c7b\u6307\u5357
capability.UpgradeDowngradeAndDeclassifyRecords.title=\u8bb0\u5f55\u7684\u5347\u7ea7\u3001\u964d\u7ea7\u4ee5\u53ca\u53d6\u6d88\u5206\u7c7b
capability.UpdateExemptionCategories.title=\u66f4\u65b0\u8c41\u514d\u7c7b\u522b
capability.MapClassificationGuideMetadata.title=\u6620\u5c04\u5206\u7c7b\u6307\u5357\u5143\u6570\u636e
capability.CreateModifyDestroyTimeframes.title=\u521b\u5efa\u4fee\u6539\u9500\u6bc1\u65f6\u95f4\u8303\u56f4

View File

@@ -97,7 +97,7 @@
<!-- Import the RM service's -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-service-context.xml"/>
<!-- Import DOD 5015 -->
<!-- Import DOD 5015 -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/dod5015/dod5015-context.xml"/>
<!-- Import the RM identifier service's -->

View File

@@ -380,10 +380,10 @@
<!-- File Plan Service -->
<bean id="rootContainerCache" class="org.alfresco.repo.cache.DefaultSimpleCache" />
<bean id="rootContainerCache" class="org.alfresco.repo.cache.DefaultSimpleCache" />
<bean id="filePlanService"
parent="baseService"
<bean id="filePlanService"
parent="baseService"
class="org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanServiceImpl">
<property name="rootContainerCache" ref="rootContainerCache" />
</bean>
@@ -1063,8 +1063,8 @@
</bean>
<bean id="recordMetadataAspectBootstrap" class="org.alfresco.module.org_alfresco_module_rm.record.RecordMetadataBootstrap" init-method="init" abstract="true">
<property name="recordService" ref="recordService"/>
<property name="namespaceService" ref="namespaceService"/>
<property name="recordService" ref="recordService"/>
<property name="namespaceService" ref="namespaceService"/>
</bean>
<bean id="RecordService" class="org.springframework.aop.framework.ProxyFactoryBean">
@@ -1484,6 +1484,11 @@
<property name="dataSetService" ref="dataSetService"/>
</bean>
<bean id="dataSetDOD5015" parent="dataSetBase">
<property name="id" value="dod5015"/>
<property name="path" value="alfresco/module/org_alfresco_module_rm/dod5015/DODExampleFilePlan.xml" />
</bean>
<!-- Hold Service -->
<bean id="holdService"
@@ -1520,20 +1525,20 @@
<property name="objectDefinitionSource">
<value>
<![CDATA[
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.isHold=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHolds=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHold=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.heldBy=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHeld=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.createHold=RM_CAP.0.rma:filePlanComponent.CreateHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHoldReason=RM.Read.0
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.setHoldReason=RM_CAP.0.rma:filePlanComponent.EditHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.deleteHold=RM_CAP.0.rma:filePlanComponent.DeleteHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.addToHold=RM_CAP.0.rma:filePlanComponent.AddToHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.addToHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromHold=RM_CAP.0.rma:filePlanComponent.RemoveFromHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromAllHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.isHold=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHolds=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHold=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.heldBy=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHeld=RM.Read.0,AFTER_RM.FilterNode
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.createHold=RM_CAP.0.rma:filePlanComponent.CreateHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.getHoldReason=RM.Read.0
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.setHoldReason=RM_CAP.0.rma:filePlanComponent.EditHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.deleteHold=RM_CAP.0.rma:filePlanComponent.DeleteHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.addToHold=RM_CAP.0.rma:filePlanComponent.AddToHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.addToHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromHold=RM_CAP.0.rma:filePlanComponent.RemoveFromHold
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.removeFromAllHolds=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.hold.HoldService.*=RM_DENY
]]>
</value>

View File

@@ -0,0 +1,51 @@
/*
* 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.dod5015;
import org.alfresco.module.org_alfresco_module_rm.model.rma.type.RmSiteType;
/**
* Bootstrap bean that registers the dod:filePlan for creation when
* a dod:site is created.
*
* @author Roy Wetherall
* @since 2.2
*/
public class DOD5015FilePlanTypeBootstrap implements DOD5015Model
{
/** RM site type bean */
private RmSiteType rmSiteType;
/**
* @param rmSiteType RM site type bean
*/
public void setRmSiteType(RmSiteType rmSiteType)
{
this.rmSiteType = rmSiteType;
}
/**
* Init method
*/
public void init()
{
// register dod file plan type for the dod site type
rmSiteType.registerFilePlanType(TYPE_DOD_5015_SITE, TYPE_DOD_5015_FILE_PLAN);
}
}

View File

@@ -0,0 +1,176 @@
/*
* 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.dod;
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.alfresco.util.GUID;
/**
* Integration test for RM1147 - A user can create a 'vanilla' or DOD compliant records management site.
*
* @author Roy Wetherall
* @since 2.2
*/
public class RM1147DODRMSiteTest extends BaseRMTestCase implements DOD5015Model
{
/**
* Don't create a RM test site in setup
*/
@Override
protected boolean isRMSiteTest()
{
return false;
}
/**
* Test the creation of a DOD file plan via the file plan service
*/
public void testCreateDODFilePlan()
{
doTestInTransaction(new Test<NodeRef>()
{
@Override
public NodeRef run() throws Exception
{
return filePlanService.createFilePlan(folder, "myDODfileplan", TYPE_DOD_5015_FILE_PLAN);
}
@Override
public void test(NodeRef filePlan) throws Exception
{
assertNotNull(filePlan);
assertEquals(TYPE_DOD_5015_FILE_PLAN, nodeService.getType(filePlan));
assertTrue(filePlanService.isFilePlanComponent(filePlan));
assertTrue(filePlanService.isFilePlan(filePlan));
assertEquals(FilePlanComponentKind.FILE_PLAN, filePlanService.getFilePlanComponentKind(filePlan));
assertNotNull(filePlanService.getUnfiledContainer(filePlan));
assertNotNull(filePlanService.getHoldContainer(filePlan));
assertNotNull(filePlanService.getTransferContainer(filePlan));
assertTrue(filePlanService.getFilePlans().contains(filePlan));
assertFalse(filePlanRoleService.getRoles(filePlan).isEmpty());
}
});
}
/**
* Test the creation of a DOD site via the site service
*/
public void testCreateDODRMSite()
{
doTestInTransaction(new Test<SiteInfo>()
{
String siteId = GUID.generate();
@Override
public SiteInfo run() throws Exception
{
return siteService.createSite("dodrmsite", siteId, "title", "description", SiteVisibility.PUBLIC, TYPE_DOD_5015_SITE);
}
@Override
public void test(SiteInfo siteInfo) throws Exception
{
assertNotNull(siteInfo);
assertEquals(TYPE_DOD_5015_SITE, nodeService.getType(siteInfo.getNodeRef()));
NodeRef filePlan = siteService.getContainer(siteId, "documentLibrary");
assertNotNull(filePlan);
assertEquals(TYPE_DOD_5015_FILE_PLAN, nodeService.getType(filePlan));
assertTrue(filePlanService.isFilePlanComponent(filePlan));
assertTrue(filePlanService.isFilePlan(filePlan));
assertEquals(FilePlanComponentKind.FILE_PLAN, filePlanService.getFilePlanComponentKind(filePlan));
assertNotNull(filePlanService.getUnfiledContainer(filePlan));
assertNotNull(filePlanService.getHoldContainer(filePlan));
assertNotNull(filePlanService.getTransferContainer(filePlan));
assertTrue(filePlanService.getFilePlans().contains(filePlan));
assertFalse(filePlanRoleService.getRoles(filePlan).isEmpty());
}
});
}
/**
* Test to ensure that a record created in the a DOD site does have the DOD meta-data attached
*/
public void testDODRecord()
{
doTestInTransaction(new Test<NodeRef>()
{
String siteId = GUID.generate();
@Override
public NodeRef run() throws Exception
{
siteService.createSite("dodrmsite", siteId, "title", "description", SiteVisibility.PUBLIC, TYPE_DOD_5015_SITE);
NodeRef filePlan = siteService.getContainer(siteId, "documentlibrary");
assertNotNull(filePlan);
NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, "testOne");
NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, "testOne");
NodeRef record = utils.createRecord(recordFolder, "testOne.txt", "Test One");
return record;
}
@Override
public void test(NodeRef record) throws Exception
{
assertNotNull(record);
assertTrue(nodeService.hasAspect(record, ASPECT_DOD_5015_RECORD));
}
});
}
/**
* Test to ensure a record created in a vanilla site does not have the DOD meta-data attached
*/
public void testVanillaRecord()
{
doTestInTransaction(new Test<NodeRef>()
{
String siteId = GUID.generate();
@Override
public NodeRef run() throws Exception
{
siteService.createSite("rmsite", siteId, "title", "description", SiteVisibility.PUBLIC, TYPE_RM_SITE);
NodeRef filePlan = siteService.getContainer(siteId, "documentlibrary");
assertNotNull(filePlan);
NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, "testOne");
NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, "testOne");
NodeRef record = utils.createRecord(recordFolder, "testOne.txt", "Test One");
return record;
}
@Override
public void test(NodeRef record) throws Exception
{
assertNotNull(record);
assertFalse(nodeService.hasAspect(record, ASPECT_DOD_5015_RECORD));
}
});
}
}

View File

@@ -0,0 +1,115 @@
/*
* 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.dod;
import java.util.Set;
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
/**
* Integration test for RM1147 - A user can create a 'vanilla' or DOD compliant records management site.
*
* @author Roy Wetherall
* @since 2.2
*/
public class RM1194ExcludeDoDRecordTypesTest extends BaseRMTestCase implements DOD5015Model
{
/**
* Don't create a RM test site in setup
*/
@Override
protected boolean isRMSiteTest()
{
return false;
}
/**
* Ensure that the correct record metadata aspects are available for a DoD record.
*/
public void testDODRecord()
{
doTestInTransaction(new Test<NodeRef>()
{
String siteId = GUID.generate();
@Override
public NodeRef run() throws Exception
{
siteService.createSite("dodrmsite", siteId, "title", "description", SiteVisibility.PUBLIC, TYPE_DOD_5015_SITE);
NodeRef filePlan = siteService.getContainer(siteId, "documentlibrary");
assertNotNull(filePlan);
NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, "testOne");
NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, "testOne");
NodeRef record = utils.createRecord(recordFolder, "testOne.txt", "Test One");
return record;
}
@Override
public void test(NodeRef record) throws Exception
{
assertNotNull(record);
Set<QName> aspects = recordService.getRecordMetadataAspects(record);
assertNotNull(aspects);
assertEquals(5, aspects.size());
}
});
}
/**
* Ensure that the correct record metadata aspects are available for a vanilla record.
*/
public void testVanillaRecord()
{
doTestInTransaction(new Test<NodeRef>()
{
String siteId = GUID.generate();
@Override
public NodeRef run() throws Exception
{
siteService.createSite("rmsite", siteId, "title", "description", SiteVisibility.PUBLIC, TYPE_RM_SITE);
NodeRef filePlan = siteService.getContainer(siteId, "documentlibrary");
assertNotNull(filePlan);
NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, "testOne");
NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, "testOne");
NodeRef record = utils.createRecord(recordFolder, "testOne.txt", "Test One");
return record;
}
@Override
public void test(NodeRef record) throws Exception
{
assertNotNull(record);
Set<QName> aspects = recordService.getRecordMetadataAspects(record);
assertNotNull(aspects);
assertEquals(2, aspects.size());
}
});
}
}

View File

@@ -40,7 +40,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
public class DataSetServiceImplTest extends BaseRMTestCase
{
/** Id of the test data set*/
private static final String DATA_SET_ID = "testExampleData";
private static final String DATA_SET_ID = "testExampleData";
/**
* @see DataSetService#getDataSets()
@@ -211,7 +211,7 @@ public class DataSetServiceImplTest extends BaseRMTestCase
DispositionSchedule recCat22DispositionSchedule = dispositionService.getDispositionSchedule(recCat22);
assertNotNull(recCat22DispositionSchedule);
// After loading the data set into the file plan the custom aspect should contain the id of the loaded data set
// After loading the data set into the file plan the custom aspect should contain the id of the loaded data set
Serializable nodeProperty = nodeService.getProperty(filePlan, PROP_LOADED_DATA_SET_IDS);
assertNotNull(nodeProperty);
@SuppressWarnings("unchecked")
@@ -224,9 +224,8 @@ public class DataSetServiceImplTest extends BaseRMTestCase
assertTrue(loadedDataSets.size() == 1);
assertTrue(loadedDataSets.containsKey(DATA_SET_ID));
assertTrue(dataSetService.isLoadedDataSet(filePlan, DATA_SET_ID));
// TODO Evaluate the necessity of the next assertion.
// assertTrue(dataSetService.getDataSets(filePlan, true).size() > 0);
assertTrue(dataSetService.getDataSets(filePlan, false).size() > 0);
assertTrue(dataSetService.getDataSets(filePlan, true).size() > 0);
assertTrue(dataSetService.getDataSets(filePlan, false).size() > 1);
}
});
}

View File

@@ -22,6 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -33,6 +34,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionD
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.disposition.property.DispositionProperty;
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
import org.alfresco.module.org_alfresco_module_rm.event.EventCompletionDetails;
import org.alfresco.module.org_alfresco_module_rm.job.PublishUpdatesJobExecuter;
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutor;
@@ -65,7 +67,7 @@ public class DispositionServiceImplTest extends BaseRMTestCase
Collection<DispositionProperty> properties = dispositionService.getDispositionProperties();
assertNotNull(properties);
assertEquals(4, properties.size());
assertEquals(5, properties.size());
for (DispositionProperty property : properties)
{
@@ -824,6 +826,80 @@ public class DispositionServiceImplTest extends BaseRMTestCase
/* === Issues === */
private NodeRef testRM263RecordCategory;
private DispositionSchedule testRM263DispositionSchedule;
private NodeRef testRM263Record;
/**
* https://issues.alfresco.com/jira/browse/RM-263
*/
public void testRM_263() throws Exception
{
doTestInTransaction(new Test<Void>()
{
@Override
public Void run() throws Exception
{
testRM263RecordCategory = filePlanService.createRecordCategory(rmContainer, "rm263");
testRM263DispositionSchedule = utils.createBasicDispositionSchedule(
testRM263RecordCategory,
"test",
"test",
true,
false);
Map<QName, Serializable> adParams = new HashMap<QName, Serializable>(3);
adParams.put(PROP_DISPOSITION_ACTION_NAME, "cutoff");
adParams.put(PROP_DISPOSITION_DESCRIPTION, "test");
adParams.put(PROP_DISPOSITION_PERIOD, "week|1");
adParams.put(PROP_DISPOSITION_PERIOD_PROPERTY, DOD5015Model.PROP_PUBLICATION_DATE.toString());
dispositionService.addDispositionActionDefinition(testRM263DispositionSchedule, adParams);
NodeRef recordFolder = recordFolderService.createRecordFolder(testRM263RecordCategory, "testRM263RecordFolder");
testRM263Record = utils.createRecord(recordFolder, "testRM263Record", "testRM263Record");
return null;
}
});
doTestInTransaction(new Test<Void>()
{
private final QName PROP_SEARCH_ASOF = QName.createQName(RM_URI, "recordSearchDispositionActionAsOf");
@Override
public Void run() throws Exception
{
Date pubDate = (Date)nodeService.getProperty(testRM263Record, DOD5015Model.PROP_PUBLICATION_DATE);
assertNull(pubDate);
Date asOfDate = (Date)nodeService.getProperty(testRM263Record, PROP_SEARCH_ASOF);
assertNull(asOfDate);
DispositionAction da = dispositionService.getNextDispositionAction(testRM263Record);
assertNotNull(da);
assertNull(da.getAsOfDate());
//rma:recordSearchDispositionActionAsOf"
nodeService.setProperty(testRM263Record, DOD5015Model.PROP_PUBLICATION_DATE, new Date());
return null;
}
@Override
public void test(Void result) throws Exception
{
Date pubDate = (Date)nodeService.getProperty(testRM263Record, DOD5015Model.PROP_PUBLICATION_DATE);
assertNotNull(pubDate);
Date asOfDate = (Date)nodeService.getProperty(testRM263Record, PROP_SEARCH_ASOF);
assertNotNull(asOfDate);
DispositionAction da = dispositionService.getNextDispositionAction(testRM263Record);
assertNotNull(da);
assertNotNull(da.getAsOfDate());
}
});
}
private NodeRef testRM386RecordCategory;
private DispositionSchedule testRM386DispositionSchedule;
private NodeRef testRM386Record;

View File

@@ -428,7 +428,7 @@ public class DispositionRestApiTest extends BaseRMWebScriptTestCase implements R
JSONObject periodProperties = data.getJSONObject("periodProperties");
assertEquals(SERVICE_URL_PREFIX + GET_LIST_URL + "/periodproperties", periodProperties.getString("url"));
items = periodProperties.getJSONArray("items");
assertEquals(4, items.length());
assertEquals(5, items.length());
assertTrue(items.length() > 0);
item = items.getJSONObject(0);
assertTrue(item.length() == 2);