mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-263: Issue when we set disposition schedule based on Publication Date
* refactored the way disposition properties work * now additional disposition date properties are sprung in and registered in the disposition service * each disposition property bean looks after updating the disposition asof date when the date property changes * defaults to null date if can not be calculated * unit test for new method and this issue * also updated build scripts to successfully run unit test .. will gradually add in other unit tests as their reliability is improved git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0@36222 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
17
build.gradle
17
build.gradle
@@ -50,7 +50,7 @@ subprojects {
|
|||||||
sourceJavaDir = 'source/java'
|
sourceJavaDir = 'source/java'
|
||||||
sourceWebDir = 'source/web'
|
sourceWebDir = 'source/web'
|
||||||
testJavaDir = 'test/java'
|
testJavaDir = 'test/java'
|
||||||
testResourceDir = 'test/resource'
|
testResourceDir = 'test/resources'
|
||||||
configDir = 'config'
|
configDir = 'config'
|
||||||
configModuleDir = "config/alfresco/module/${moduleid}"
|
configModuleDir = "config/alfresco/module/${moduleid}"
|
||||||
moduleProperties = 'module.properties'
|
moduleProperties = 'module.properties'
|
||||||
@@ -98,13 +98,6 @@ subprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** --- Compile tasks --- */
|
/** --- Compile tasks --- */
|
||||||
|
|
||||||
task fetchWarFile(type:Copy) {
|
|
||||||
from configurations.testRuntime
|
|
||||||
into '.'
|
|
||||||
include '*.war'
|
|
||||||
rename { String filename -> warFile }
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure that the dependancies have been unpacked before compiling the Java
|
// make sure that the dependancies have been unpacked before compiling the Java
|
||||||
compileJava.doFirst {
|
compileJava.doFirst {
|
||||||
@@ -114,6 +107,13 @@ subprojects {
|
|||||||
jar.archiveName = jarFile
|
jar.archiveName = jarFile
|
||||||
|
|
||||||
/** --- Dependancy tasks --- */
|
/** --- Dependancy tasks --- */
|
||||||
|
|
||||||
|
task fetchWarFile(type:Copy) {
|
||||||
|
from configurations.testRuntime
|
||||||
|
into '.'
|
||||||
|
include '*.war'
|
||||||
|
rename { String filename -> warFile }
|
||||||
|
}
|
||||||
|
|
||||||
task explodeDeps << {
|
task explodeDeps << {
|
||||||
|
|
||||||
@@ -122,6 +122,7 @@ subprojects {
|
|||||||
explodedConfigDir = file("${explodedDepsDir}/config")
|
explodedConfigDir = file("${explodedDepsDir}/config")
|
||||||
warFileObj = file(warFile)
|
warFileObj = file(warFile)
|
||||||
|
|
||||||
|
// if the WAR file still isn't there raise an error
|
||||||
if (warFileObj.exists() == true) {
|
if (warFileObj.exists() == true) {
|
||||||
|
|
||||||
logger.lifecycle "${warFile} was found. Checking dependancies ..."
|
logger.lifecycle "${warFile} was found. Checking dependancies ..."
|
||||||
|
@@ -281,5 +281,269 @@
|
|||||||
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-repository-4.0.1.jar" sourcepath="C:/mywork/projects/v4/code/root/projects/repository/source/java"/>
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-repository-4.0.1.jar" sourcepath="C:/mywork/projects/v4/code/root/projects/repository/source/java"/>
|
||||||
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-web-client-4.0.1.jar"/>
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-web-client-4.0.1.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-web-framework-commons-4.0.1.jar"/>
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/alfresco-web-framework-commons-4.0.1.jar"/>
|
||||||
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/activiti-engine-5.7.jar"/>
|
||||||
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/activiti-spring-5.7.jar"/>
|
||||||
|
<classpathentry exported="true" kind="lib" path="explodedDeps/lib/activiti-webapp-explorer2-5.7-ui-jar.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/abdera-client-0.4.0-incubating.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/abdera-core-0.4.0-incubating.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/abdera-extensions-json-0.4.0-incubating.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/abdera-i18n-0.4.0-incubating.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/abdera-parser-0.4.0-incubating.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/acegi-security-0.8.2_patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/activation-1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/addressing-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/alfresco-opencmis-extension-0.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/alfresco-wdr-deployment.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/ant-1.7.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/antlr-3.3-complete.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/aopalliance.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/apache-mime4j-0.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/apache-solr-solrj-1.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/asm-3.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/avalon-framework-4.2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/axiom-api-1.2.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/axiom-impl-1.2.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/axis-1.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/batik-all-1.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bcel.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bcmail-jdk15-1.45.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bcprov-jdk15-1.45.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bliki-3.0.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/boilerpipe-1.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bsf-2.4.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/bsh-1.3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/cglib-2.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-abdera-0.1-incubating-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-client-api-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-client-bindings-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-client-impl-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-commons-api-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-commons-impl-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-server-bindings-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-server-support-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-test-browser-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-opencmis-test-tck-0.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chemistry-tck-atompub-0.1-incubating-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/chiba-1.3.0-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-beanutils-1.7.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-codec-1.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-collections-3.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-compress-1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-csv-20110211.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-dbcp-1.4-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-digester-1.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-discovery-0.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-el.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-fileupload-1.2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-httpclient-3.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-io-1.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-jxpath-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-lang-2.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-logging-1.1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-modeler.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-net-2.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-pool-1.5.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/commons-validator-1.4.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/concurrentlinkedhashmap-lru-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/cxf-2.2.2-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/dom4j-1.6.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/drew-image-metadata-extractor-2.4.0-beta-1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/ehcache-core-2.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/facebook_070716.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/FastInfoset-1.2.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/fontbox-1.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/fop-0.94.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/freemarker-2.3.18-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-analytics-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-analytics-meta-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-appsforyourdomain-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-appsforyourdomain-meta-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-base-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-blogger-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-blogger-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-books-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-books-meta-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-calendar-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-calendar-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-client-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-client-meta-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-codesearch-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-codesearch-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-contacts-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-contacts-meta-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-core-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-docs-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-docs-meta-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-finance-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-finance-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-gtt-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-gtt-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-health-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-health-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-maps-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-maps-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-media-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-photos-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-photos-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-projecthosting-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-projecthosting-meta-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-sidewiki-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-sidewiki-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-sites-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-sites-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-spreadsheet-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-spreadsheet-meta-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-webmastertools-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-webmastertools-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-youtube-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/gdata-youtube-meta-2.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/geronimo-activation_1.1_spec-1.0.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/geronimo-annotation_1.0_spec-1.1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/geronimo-jaxws_2.1_spec-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/geronimo-stax-api_1.0_spec-1.0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/google-collect-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/greenmail-1.3-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/groovy-1.7.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/guessencoding-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/hazelcast-1.9.4.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/hazelcast-spring-1.9.4.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/hibernate-3.2.6-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/hrtlib.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/htmlparser-1.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/httpclient-4.1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/httpclient-cache-4.1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/httpcore-4.1.3.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/icu4j_3_6_1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/isoparser-1.0-beta-5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jackson-core-asl-1.8.3.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jackson-mapper-asl-1.8.3.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jakarta-oro-2.0.8.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/javassist-3.6.0.GA.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxb-api-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxb-impl-2.1.11.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxb-xjc-2.1.7.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxen-1.1-beta-8.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxrpc.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxws-api-2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jaxws-rt-2.1.7.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jbpm-identity-3.3.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jbpm-jpdl-3.3.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jcr-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jempbox-1.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jgroups-2.11.1.Final.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jibx-bind.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jibx-run.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jid3lib-0.5.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/JMagick.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/joda-time-1.2.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jodconverter-core-3.0-beta-3-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jooconverter-2.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/JSlideShare-0.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/json-simple-1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/json.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jsr107cache-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jsr181-api-1.0-MR1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jsr250-api-1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jstl-1.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jta.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jtds-1.2.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jug-asl-2.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/junit-4.8.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jut.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/jutf7-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/livetribe-jsr223-2.0.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/log4j-1.2.15.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/lucene-analyzers-2.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/lucene-core-2.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/lucene-regex-2.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/lucene-snowball-2.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/mail.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/mimepull-1.3.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/mockito-all-1.8.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/mybatis-3.0.4-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/mybatis-spring-1.0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/myfaces-api-1.1.8.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/myfaces-impl-1.1.8.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/neethi-2.0.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/netcdf-4.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/odmg-3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/ooxml-schemas-1.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/openoffice-juh-3.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/openoffice-jurt-3.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/openoffice-ridl-3.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/openoffice-sandbox-2.0.3.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/openoffice-unoil-3.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/opensaml-1.0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.aop-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.asm-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.beans-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.context-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.context.support-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.core-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.expression-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.jdbc-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.orm-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.transaction-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.web-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/org.springframework.web.servlet-3.0.5.RELEASE.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/pdfbox-1.6.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/PDFRenderer-0.9.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/poi-3.8-beta6-20120124.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/poi-ooxml-3.8-beta6-20120124.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/poi-scratchpad-3.8-beta6-20120124.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/quartz-1.8.3-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/resolver-20050927.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/rhino-js-1.6R7.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/rome-0.9.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/saxpath.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/scannotation-1.0.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/shale-test-1.0.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/slf4j-api-1.5.11.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/slf4j-log4j12-1.5.11.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-cmis-framework-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-security-core-3.1.0.RC2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-core-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-facebook-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-facebook-web-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-linkedin-1.0.0.BUILD-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-test-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-twitter-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-social-web-1.0.0.RC1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-surf-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-surf-api-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-surf-core-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-surf-core-configservice-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-webscripts-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/spring-webscripts-api-1.0.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/springmodules-jbpm31.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/standard.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/stax-api-1.0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/stax-ex-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/stax-utils-20060502.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/streambuffer-0.9.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/subethasmtp-3.1.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/tagsoup-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/tika-core-1.1-20120208.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/tika-parsers-1.1-20120208.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/truelicense-1_29-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/truexml-1_29-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/truezip.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/urlrewritefilter-3.1.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/vaadin-6.5.6.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/vorbis-java-core-0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/vorbis-java-tika-0.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/wsdl4j-1.6.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/wss4j-1.5.4-patched.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/wstx-asl-3.2.4.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xercesImpl-2.8.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xml-resolver-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xmlbeans-2.3.0.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xmlgraphics-commons-1.2.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xmlrpc.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/XmlSchema-1.4.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xmlsec-1.4.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xpp3-1.1.3_8.jar"/>
|
||||||
|
<classpathentry kind="lib" path="explodedDeps/lib/xstream-1.2.2.jar"/>
|
||||||
<classpathentry kind="output" path="build/classes"/>
|
<classpathentry kind="output" path="build/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@@ -7,18 +7,19 @@ dependencies {
|
|||||||
|
|
||||||
testRuntime files(explodedConfigDir)
|
testRuntime files(explodedConfigDir)
|
||||||
testRuntime files(configDir)
|
testRuntime files(configDir)
|
||||||
|
testRuntime files(testResourceDir)
|
||||||
|
|
||||||
testRuntime group: 'org.alfresco.enterprise', name: 'alfresco', version: alfrescoBaseVersion, type: 'war'
|
testRuntime group: 'org.alfresco.enterprise', name: 'alfresco', version: alfrescoBaseVersion, type: 'war'
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
test {
|
||||||
//makes the standard streams (err and out) visible at console when running tests
|
|
||||||
|
include '**/DispositionServiceImplTest.class'
|
||||||
|
|
||||||
testLogging.showStandardStreams = true
|
testLogging.showStandardStreams = true
|
||||||
|
|
||||||
//tweaking memory settings for the forked vm that runs tests
|
|
||||||
jvmArgs '-Xms256M', '-Xmx1024M', '-XX:MaxPermSize=256M'
|
jvmArgs '-Xms256M', '-Xmx1024M', '-XX:MaxPermSize=256M'
|
||||||
|
|
||||||
//listening to test execution events
|
|
||||||
beforeTest { descriptor ->
|
beforeTest { descriptor ->
|
||||||
logger.lifecycle("Running test: " + descriptor)
|
logger.lifecycle("Running test: " + descriptor)
|
||||||
}
|
}
|
||||||
|
@@ -96,6 +96,9 @@
|
|||||||
<!-- Import RM UI evaluators -->
|
<!-- Import RM UI evaluators -->
|
||||||
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml"/>
|
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml"/>
|
||||||
|
|
||||||
|
<!-- Import disposition properties -->
|
||||||
|
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-disposition-properties-context.xml"/>
|
||||||
|
|
||||||
<!-- RM Script API -->
|
<!-- RM Script API -->
|
||||||
|
|
||||||
<bean id="scriptRecordsManagementService" parent="baseJavaScriptExtension" class="org.alfresco.module.org_alfresco_module_rm.jscript.ScriptRecordsManagmentService">
|
<bean id="scriptRecordsManagementService" parent="baseJavaScriptExtension" class="org.alfresco.module.org_alfresco_module_rm.jscript.ScriptRecordsManagmentService">
|
||||||
|
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||||
|
|
||||||
|
<beans>
|
||||||
|
|
||||||
|
<bean
|
||||||
|
id="disposition.properties.base"
|
||||||
|
abstract="true"
|
||||||
|
class="org.alfresco.module.org_alfresco_module_rm.disposition.property.DispositionProperty"
|
||||||
|
init-method="init">
|
||||||
|
<property name="namespaceService" ref="NamespaceService" />
|
||||||
|
<property name="dictionaryService" ref="DictionaryService" />
|
||||||
|
<property name="nodeService" ref="NodeService" />
|
||||||
|
<property name="policyComponent" ref="policyComponent" />
|
||||||
|
<property name="dispositionService" ref="dispositionService" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="disposition.properties.cutoffdate" parent="disposition.properties.base">
|
||||||
|
<property name="name" value="rma:cutOffDate" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="disposition.properties.dispositionasof" parent="disposition.properties.base">
|
||||||
|
<property name="name" value="rma:dispositionAsOf" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="disposition.properties.datefiled" parent="disposition.properties.base">
|
||||||
|
<property name="name" value="rma:dateFiled" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="disposition.properties.publicationdate" parent="disposition.properties.base">
|
||||||
|
<property name="name" value="rma:publicationDate" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</beans>
|
@@ -205,6 +205,8 @@
|
|||||||
<property name="objectDefinitionSource">
|
<property name="objectDefinitionSource">
|
||||||
<value>
|
<value>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.registerDispositionProperty=RM_ALLOW
|
||||||
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getDispositionProperties=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getDispositionSchedule=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getDispositionSchedule=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getAssociatedDispositionSchedule=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getAssociatedDispositionSchedule=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getAssociatedRecordsManagementContainer=RM_ALLOW
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getAssociatedRecordsManagementContainer=RM_ALLOW
|
||||||
@@ -218,8 +220,7 @@
|
|||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isNextDispositionActionEligible=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isNextDispositionActionEligible=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getNextDispositionAction=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getNextDispositionAction=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getCompletedDispositionActions=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getCompletedDispositionActions=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getLastCompletedDispostionAction=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getLastCompletedDispostionAction=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getDispositionPeriodProperties=RM.Read.0
|
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.*=RM_DENY
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.*=RM_DENY
|
||||||
]]>
|
]]>
|
||||||
</value>
|
</value>
|
||||||
@@ -1000,17 +1001,4 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- Period Properties -->
|
|
||||||
|
|
||||||
<bean id="DispositionPeriodProperties" class="org.alfresco.module.org_alfresco_module_rm.disposition.DispositionPeriodProperties">
|
|
||||||
<property name="propertyList">
|
|
||||||
<list>
|
|
||||||
<value>{http://www.alfresco.org/model/recordsmanagement/1.0}cutOffDate</value>
|
|
||||||
<value>{http://www.alfresco.org/model/recordsmanagement/1.0}dispositionAsOf</value>
|
|
||||||
<value>{http://www.alfresco.org/model/recordsmanagement/1.0}dateFiled</value>
|
|
||||||
<value>{http://www.alfresco.org/model/recordsmanagement/1.0}publicationDate</value>
|
|
||||||
</list>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@@ -492,25 +492,28 @@ public abstract class RMActionExecuterAbstractBase extends ActionExecuterAbstra
|
|||||||
Period period = nextDispositionActionDefinition.getPeriod();
|
Period period = nextDispositionActionDefinition.getPeriod();
|
||||||
if (period != null)
|
if (period != null)
|
||||||
{
|
{
|
||||||
// Use NOW as the default context date
|
Date contextDate = null;
|
||||||
Date contextDate = new Date();
|
|
||||||
|
|
||||||
// Get the period properties value
|
// Get the period properties value
|
||||||
QName periodProperty = nextDispositionActionDefinition.getPeriodProperty();
|
QName periodProperty = nextDispositionActionDefinition.getPeriodProperty();
|
||||||
if (periodProperty != null)
|
if (periodProperty != null)
|
||||||
{
|
{
|
||||||
contextDate = (Date)this.nodeService.getProperty(nodeRef, periodProperty);
|
// doesn't matter if the period property isn't set ... the asOfDate will get updated later
|
||||||
|
// when the value of the period property is set
|
||||||
if (contextDate == null)
|
contextDate = (Date)this.nodeService.getProperty(nodeRef, periodProperty);
|
||||||
{
|
}
|
||||||
// TODO For now we will use NOW to resolve MOB-1184
|
else
|
||||||
//throw new AlfrescoRuntimeException("Date used to calculate disposition action asOf date is not set for property " + periodProperty.toString());
|
{
|
||||||
contextDate = new Date();
|
// for now use 'NOW' as the default context date
|
||||||
}
|
// TODO set the default period property ... cut off date or last disposition date depending on context
|
||||||
|
contextDate = new Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate the as of date
|
// Calculate the as of date
|
||||||
asOfDate = period.getNextDate(contextDate);
|
if (contextDate != null)
|
||||||
|
{
|
||||||
|
asOfDate = period.getNextDate(contextDate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the property values
|
// Set the property values
|
||||||
|
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2005-2011 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.disposition;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.alfresco.service.namespace.QName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Spring bean to allow configuration of properties used for calculating
|
|
||||||
* dates in disposition schedules.
|
|
||||||
*
|
|
||||||
* @author Gavin Cornwell
|
|
||||||
*/
|
|
||||||
public class DispositionPeriodProperties
|
|
||||||
{
|
|
||||||
public static final String BEAN_NAME = "DispositionPeriodProperties";
|
|
||||||
|
|
||||||
private List<QName> periodProperties;
|
|
||||||
|
|
||||||
public void setPropertyList(List<String> propertyList)
|
|
||||||
{
|
|
||||||
periodProperties = new ArrayList<QName>(propertyList.size());
|
|
||||||
for (String property : propertyList)
|
|
||||||
{
|
|
||||||
periodProperties.add(QName.createQName(property));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<QName> getPeriodProperties()
|
|
||||||
{
|
|
||||||
return periodProperties;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -19,9 +19,11 @@
|
|||||||
package org.alfresco.module.org_alfresco_module_rm.disposition;
|
package org.alfresco.module.org_alfresco_module_rm.disposition;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.disposition.property.DispositionProperty;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
@@ -33,6 +35,23 @@ import org.alfresco.service.namespace.QName;
|
|||||||
*/
|
*/
|
||||||
public interface DispositionService
|
public interface DispositionService
|
||||||
{
|
{
|
||||||
|
/** ========= Disposition Property Methods ========= */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a disposition property.
|
||||||
|
*
|
||||||
|
* @param dispositionProperty disposition property
|
||||||
|
*/
|
||||||
|
void registerDispositionProperty(DispositionProperty dispositionProperty);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the list of disposition period properties
|
||||||
|
*
|
||||||
|
* @return list of disposition period properties
|
||||||
|
*/
|
||||||
|
Collection<DispositionProperty> getDispositionProperties();
|
||||||
|
|
||||||
|
|
||||||
/** ========= Disposition Schedule Methods ========= */
|
/** ========= Disposition Schedule Methods ========= */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -175,14 +194,5 @@ public interface DispositionService
|
|||||||
* @return DispositionAction last completed disposition action, null if none
|
* @return DispositionAction last completed disposition action, null if none
|
||||||
*/
|
*/
|
||||||
DispositionAction getLastCompletedDispostionAction(NodeRef nodeRef);
|
DispositionAction getLastCompletedDispostionAction(NodeRef nodeRef);
|
||||||
|
|
||||||
/** ========= ========= */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the list of disposition period properties
|
|
||||||
*
|
|
||||||
* @return list of disposition period properties
|
|
||||||
*/
|
|
||||||
List<QName> getDispositionPeriodProperties();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -20,14 +20,16 @@ package org.alfresco.module.org_alfresco_module_rm.disposition;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry;
|
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.disposition.property.DispositionProperty;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.repo.policy.BehaviourFilter;
|
import org.alfresco.repo.policy.BehaviourFilter;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
@@ -75,6 +77,9 @@ public class DispositionServiceImpl implements DispositionService, RecordsManage
|
|||||||
/** Application context */
|
/** Application context */
|
||||||
private ApplicationContext applicationContext;
|
private ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
/** Disposition properties */
|
||||||
|
private Map<QName, DispositionProperty> dispositionProperties = new HashMap<QName, DispositionProperty>(4);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set node service
|
* Set node service
|
||||||
*
|
*
|
||||||
@@ -149,6 +154,26 @@ public class DispositionServiceImpl implements DispositionService, RecordsManage
|
|||||||
this.dispositionSelectionStrategy = dispositionSelectionStrategy;
|
this.dispositionSelectionStrategy = dispositionSelectionStrategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** ========= Disposition Property Methods ========= */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService#registerDispositionProperty(org.alfresco.module.org_alfresco_module_rm.disposition.property.DispositionProperty)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void registerDispositionProperty(DispositionProperty dispositionProperty)
|
||||||
|
{
|
||||||
|
dispositionProperties.put(dispositionProperty.getQName(), dispositionProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService#getDispositionProperties()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Collection<DispositionProperty> getDispositionProperties()
|
||||||
|
{
|
||||||
|
return dispositionProperties.values();
|
||||||
|
}
|
||||||
|
|
||||||
/** ========= Disposition Schedule Methods ========= */
|
/** ========= Disposition Schedule Methods ========= */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -606,21 +631,5 @@ public class DispositionServiceImpl implements DispositionService, RecordsManage
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<QName> getDispositionPeriodProperties()
|
|
||||||
{
|
|
||||||
DispositionPeriodProperties dpp = (DispositionPeriodProperties)applicationContext.getBean(DispositionPeriodProperties.BEAN_NAME);
|
|
||||||
|
|
||||||
if (dpp == null)
|
|
||||||
{
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return dpp.getPeriodProperties();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,223 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.alfresco.module.org_alfresco_module_rm.disposition.property;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
|
import org.alfresco.repo.node.NodeServicePolicies;
|
||||||
|
import org.alfresco.repo.policy.JavaBehaviour;
|
||||||
|
import org.alfresco.repo.policy.PolicyComponent;
|
||||||
|
import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||||
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
|
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
|
import org.alfresco.service.cmr.repository.Period;
|
||||||
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Roy Wetherall
|
||||||
|
*/
|
||||||
|
public class DispositionProperty implements NodeServicePolicies.OnUpdatePropertiesPolicy,
|
||||||
|
RecordsManagementModel
|
||||||
|
{
|
||||||
|
/** Property QName */
|
||||||
|
private QName propertyName;
|
||||||
|
|
||||||
|
private JavaBehaviour behaviour;
|
||||||
|
|
||||||
|
/** Namespace service */
|
||||||
|
private NamespaceService namespaceService;
|
||||||
|
|
||||||
|
/** Disposition service */
|
||||||
|
private DispositionService dispositionService;
|
||||||
|
|
||||||
|
/** Policy component */
|
||||||
|
private PolicyComponent policyComponent;
|
||||||
|
|
||||||
|
/** Dictionary service */
|
||||||
|
private DictionaryService dictionaryService;
|
||||||
|
|
||||||
|
/** Node service */
|
||||||
|
private NodeService nodeService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param namespaceService namespace service
|
||||||
|
*/
|
||||||
|
public void setNamespaceService(NamespaceService namespaceService)
|
||||||
|
{
|
||||||
|
this.namespaceService = namespaceService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dispositionService disposition service
|
||||||
|
*/
|
||||||
|
public void setDispositionService(DispositionService dispositionService)
|
||||||
|
{
|
||||||
|
this.dispositionService = dispositionService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param policyComponent policy component
|
||||||
|
*/
|
||||||
|
public void setPolicyComponent(PolicyComponent policyComponent)
|
||||||
|
{
|
||||||
|
this.policyComponent = policyComponent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dictionaryService dictionary service
|
||||||
|
*/
|
||||||
|
public void setDictionaryService(DictionaryService dictionaryService)
|
||||||
|
{
|
||||||
|
this.dictionaryService = dictionaryService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param nodeService node service
|
||||||
|
*/
|
||||||
|
public void setNodeService(NodeService nodeService)
|
||||||
|
{
|
||||||
|
this.nodeService = nodeService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param propertyName property name (as string)
|
||||||
|
*/
|
||||||
|
public void setName(String propertyName)
|
||||||
|
{
|
||||||
|
this.propertyName = QName.createQName(propertyName, namespaceService);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return property QName
|
||||||
|
*/
|
||||||
|
public QName getQName()
|
||||||
|
{
|
||||||
|
return this.propertyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return property definition
|
||||||
|
*/
|
||||||
|
public PropertyDefinition getPropertyDefinition()
|
||||||
|
{
|
||||||
|
return dictionaryService.getProperty(propertyName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bean initialisation method
|
||||||
|
*/
|
||||||
|
public void init()
|
||||||
|
{
|
||||||
|
// register with disposition service
|
||||||
|
dispositionService.registerDispositionProperty(this);
|
||||||
|
|
||||||
|
// register interest in the update properties policy for disposition
|
||||||
|
behaviour = new JavaBehaviour(this, "onUpdateProperties", NotificationFrequency.TRANSACTION_COMMIT);
|
||||||
|
policyComponent.bindClassBehaviour(
|
||||||
|
NodeServicePolicies.OnUpdatePropertiesPolicy.QNAME,
|
||||||
|
ASPECT_DISPOSITION_LIFECYCLE,
|
||||||
|
behaviour);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdateProperties(
|
||||||
|
final NodeRef nodeRef,
|
||||||
|
final Map<QName, Serializable> before,
|
||||||
|
final Map<QName, Serializable> after)
|
||||||
|
{
|
||||||
|
if (nodeService.exists(nodeRef) == true)
|
||||||
|
{
|
||||||
|
// has the property we care about changed?
|
||||||
|
if (isPropertyUpdated(before, after) == true)
|
||||||
|
{
|
||||||
|
behaviour.disable();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
AuthenticationUtil.runAs(new RunAsWork<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void doWork() throws Exception
|
||||||
|
{
|
||||||
|
Date updatedDateValue = (Date)after.get(propertyName);
|
||||||
|
if (updatedDateValue != null)
|
||||||
|
{
|
||||||
|
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(nodeRef);
|
||||||
|
if (dispositionAction != null)
|
||||||
|
{
|
||||||
|
DispositionActionDefinition daDefinition = dispositionAction.getDispositionActionDefinition();
|
||||||
|
if (daDefinition != null)
|
||||||
|
{
|
||||||
|
// check whether the next disposition action matches this disposition property
|
||||||
|
if (propertyName.equals(daDefinition.getPeriodProperty()) == true)
|
||||||
|
{
|
||||||
|
Period period = daDefinition.getPeriod();
|
||||||
|
Date updatedAsOf = period.getNextDate(updatedDateValue);
|
||||||
|
|
||||||
|
// update asOf date on the disposition action based on the new property value
|
||||||
|
NodeRef daNodeRef = dispositionAction.getNodeRef();
|
||||||
|
nodeService.setProperty(daNodeRef, PROP_DISPOSITION_AS_OF, updatedAsOf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// throw an exception if the property is being 'cleared'
|
||||||
|
if (before.get(propertyName) != null)
|
||||||
|
{
|
||||||
|
throw new AlfrescoRuntimeException(
|
||||||
|
"Error updating property " + propertyName.toPrefixString(namespaceService) +
|
||||||
|
" to null, because property is being used to determine a disposition date.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}, AuthenticationUtil.getSystemUserName());
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
behaviour.enable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isPropertyUpdated(Map<QName, Serializable> before, Map<QName, Serializable> after)
|
||||||
|
{
|
||||||
|
boolean result = false;
|
||||||
|
|
||||||
|
Serializable beforeValue = before.get(propertyName);
|
||||||
|
Serializable afterValue = after.get(propertyName);
|
||||||
|
|
||||||
|
if (beforeValue == null && afterValue != null)
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else if (beforeValue != null && afterValue == null)
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else if (beforeValue != null && afterValue != null &&
|
||||||
|
beforeValue.equals(afterValue) == false)
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
@@ -19,6 +19,7 @@
|
|||||||
package org.alfresco.module.org_alfresco_module_rm.script;
|
package org.alfresco.module.org_alfresco_module_rm.script;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,6 +31,7 @@ import org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction
|
|||||||
import org.alfresco.module.org_alfresco_module_rm.audit.AuditEvent;
|
import org.alfresco.module.org_alfresco_module_rm.audit.AuditEvent;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
|
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
|
||||||
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.event.RecordsManagementEvent;
|
import org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEvent;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService;
|
import org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
@@ -247,11 +249,12 @@ public class ListOfValuesGet extends DeclarativeWebScript
|
|||||||
protected Map<String, Object> createPeriodPropertiesModel(String baseUrl)
|
protected Map<String, Object> createPeriodPropertiesModel(String baseUrl)
|
||||||
{
|
{
|
||||||
// iterate over all period properties and get the label from their type definition
|
// iterate over all period properties and get the label from their type definition
|
||||||
List<QName> periodProperties = dispositionService.getDispositionPeriodProperties();
|
Collection<DispositionProperty> dispositionProperties = dispositionService.getDispositionProperties();
|
||||||
List<Map<String, String>> items = new ArrayList<Map<String, String>>(periodProperties.size());
|
List<Map<String, String>> items = new ArrayList<Map<String, String>>(dispositionProperties.size());
|
||||||
for (QName periodProperty : periodProperties)
|
for (DispositionProperty dispositionProperty : dispositionProperties)
|
||||||
{
|
{
|
||||||
PropertyDefinition propDef = this.ddService.getProperty(periodProperty);
|
PropertyDefinition propDef = dispositionProperty.getPropertyDefinition();
|
||||||
|
QName propName = dispositionProperty.getQName();
|
||||||
|
|
||||||
if (propDef != null)
|
if (propDef != null)
|
||||||
{
|
{
|
||||||
@@ -259,10 +262,10 @@ public class ListOfValuesGet extends DeclarativeWebScript
|
|||||||
String propTitle = propDef.getTitle();
|
String propTitle = propDef.getTitle();
|
||||||
if (propTitle == null || propTitle.length() == 0)
|
if (propTitle == null || propTitle.length() == 0)
|
||||||
{
|
{
|
||||||
propTitle = StringUtils.capitalize(periodProperty.getLocalName());
|
propTitle = StringUtils.capitalize(propName.getLocalName());
|
||||||
}
|
}
|
||||||
item.put("label", propTitle);
|
item.put("label", propTitle);
|
||||||
item.put("value", periodProperty.toPrefixString(this.namespaceService));
|
item.put("value", propName.toPrefixString(this.namespaceService));
|
||||||
items.add(item);
|
items.add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
@@ -32,6 +33,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
|
|||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
|
||||||
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.event.EventCompletionDetails;
|
import org.alfresco.module.org_alfresco_module_rm.event.EventCompletionDetails;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutor;
|
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutor;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutorRegistry;
|
import org.alfresco.module.org_alfresco_module_rm.job.publish.PublishExecutorRegistry;
|
||||||
@@ -54,6 +56,28 @@ public class DispositionServiceImplTest extends BaseRMTestCase
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetDispositionProperties() throws Exception
|
||||||
|
{
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
public Void run()
|
||||||
|
{
|
||||||
|
Collection<DispositionProperty> properties = dispositionService.getDispositionProperties();
|
||||||
|
|
||||||
|
assertNotNull(properties);
|
||||||
|
assertEquals(4, properties.size());
|
||||||
|
|
||||||
|
for (DispositionProperty property : properties)
|
||||||
|
{
|
||||||
|
assertNotNull(property.getQName());
|
||||||
|
assertNotNull(property.getPropertyDefinition());
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DispositionService#getDispositionSchedule(org.alfresco.service.cmr.repository.NodeRef)
|
* @see DispositionService#getDispositionSchedule(org.alfresco.service.cmr.repository.NodeRef)
|
||||||
*/
|
*/
|
||||||
@@ -797,5 +821,81 @@ public class DispositionServiceImplTest extends BaseRMTestCase
|
|||||||
// TODO DispositionAction getLastCompletedDispostionAction(NodeRef nodeRef);
|
// TODO DispositionAction getLastCompletedDispostionAction(NodeRef nodeRef);
|
||||||
|
|
||||||
// TODO List<QName> getDispositionPeriodProperties();
|
// TODO List<QName> getDispositionPeriodProperties();
|
||||||
|
|
||||||
|
/* === 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 = rmService.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, PROP_PUBLICATION_DATE.toString());
|
||||||
|
|
||||||
|
dispositionService.addDispositionActionDefinition(testRM263DispositionSchedule, adParams);
|
||||||
|
|
||||||
|
NodeRef recordFolder = rmService.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, 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, PROP_PUBLICATION_DATE, new Date());
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void test(Void result) throws Exception
|
||||||
|
{
|
||||||
|
Date pubDate = (Date)nodeService.getProperty(testRM263Record, 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());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user