mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
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:
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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>
|
@@ -17,6 +17,42 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</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 -->
|
<!-- Model behaviour -->
|
||||||
<bean id="dod.dod5015RecordAspect" class="org.alfresco.module.org_alfresco_module_rm.dod5015.model.dod.aspect.DOD5015RecordAspect" parent="rm.baseBehaviour">
|
<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"/>
|
<property name="filePlanService" ref="filePlanService"/>
|
||||||
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -1484,6 +1484,11 @@
|
|||||||
<property name="dataSetService" ref="dataSetService"/>
|
<property name="dataSetService" ref="dataSetService"/>
|
||||||
</bean>
|
</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 -->
|
<!-- Hold Service -->
|
||||||
|
|
||||||
<bean id="holdService"
|
<bean id="holdService"
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
@@ -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));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@@ -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());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@@ -224,9 +224,8 @@ public class DataSetServiceImplTest extends BaseRMTestCase
|
|||||||
assertTrue(loadedDataSets.size() == 1);
|
assertTrue(loadedDataSets.size() == 1);
|
||||||
assertTrue(loadedDataSets.containsKey(DATA_SET_ID));
|
assertTrue(loadedDataSets.containsKey(DATA_SET_ID));
|
||||||
assertTrue(dataSetService.isLoadedDataSet(filePlan, 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, true).size() > 0);
|
assertTrue(dataSetService.getDataSets(filePlan, false).size() > 1);
|
||||||
assertTrue(dataSetService.getDataSets(filePlan, false).size() > 0);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,7 @@ import java.io.Serializable;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
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.DispositionSchedule;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
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.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.event.EventCompletionDetails;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.job.PublishUpdatesJobExecuter;
|
import org.alfresco.module.org_alfresco_module_rm.job.PublishUpdatesJobExecuter;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutor;
|
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();
|
Collection<DispositionProperty> properties = dispositionService.getDispositionProperties();
|
||||||
|
|
||||||
assertNotNull(properties);
|
assertNotNull(properties);
|
||||||
assertEquals(4, properties.size());
|
assertEquals(5, properties.size());
|
||||||
|
|
||||||
for (DispositionProperty property : properties)
|
for (DispositionProperty property : properties)
|
||||||
{
|
{
|
||||||
@@ -824,6 +826,80 @@ public class DispositionServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
/* === Issues === */
|
/* === 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 NodeRef testRM386RecordCategory;
|
||||||
private DispositionSchedule testRM386DispositionSchedule;
|
private DispositionSchedule testRM386DispositionSchedule;
|
||||||
private NodeRef testRM386Record;
|
private NodeRef testRM386Record;
|
||||||
|
@@ -428,7 +428,7 @@ public class DispositionRestApiTest extends BaseRMWebScriptTestCase implements R
|
|||||||
JSONObject periodProperties = data.getJSONObject("periodProperties");
|
JSONObject periodProperties = data.getJSONObject("periodProperties");
|
||||||
assertEquals(SERVICE_URL_PREFIX + GET_LIST_URL + "/periodproperties", periodProperties.getString("url"));
|
assertEquals(SERVICE_URL_PREFIX + GET_LIST_URL + "/periodproperties", periodProperties.getString("url"));
|
||||||
items = periodProperties.getJSONArray("items");
|
items = periodProperties.getJSONArray("items");
|
||||||
assertEquals(4, items.length());
|
assertEquals(5, items.length());
|
||||||
assertTrue(items.length() > 0);
|
assertTrue(items.length() > 0);
|
||||||
item = items.getJSONObject(0);
|
item = items.getJSONObject(0);
|
||||||
assertTrue(item.length() == 2);
|
assertTrue(item.length() == 2);
|
||||||
|
Reference in New Issue
Block a user