Compare commits

..

2 Commits

Author SHA1 Message Date
Marcello Teodori
4a3def2c7f format java code 2021-10-19 19:00:30 +02:00
Marcello Teodori
45eb22e67d Apply autoformat with prettier 2021-10-19 19:00:12 +02:00
7246 changed files with 1595951 additions and 1375490 deletions

View File

@@ -38,6 +38,27 @@ updates:
- dependency-name: org.activiti:activiti-spring - dependency-name: org.activiti:activiti-spring
versions: versions:
- ">= 7.1.a, < 7.2" - ">= 7.1.a, < 7.2"
- dependency-name: org.apache.camel:camel-activemq
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-amqp
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-direct
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-directvm
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-jackson
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-mock
versions:
- "> 3.7.1"
- dependency-name: org.apache.camel:camel-spring
versions:
- "> 3.7.1"
- dependency-name: org.apache.chemistry.opencmis:chemistry-opencmis-client-impl - dependency-name: org.apache.chemistry.opencmis:chemistry-opencmis-client-impl
versions: versions:
- "> 1.0.0" - "> 1.0.0"
@@ -158,9 +179,3 @@ updates:
- "8.16" - "8.16"
registries: registries:
- maven-repository-artifacts-alfresco-com-nexus-content-groups-int - maven-repository-artifacts-alfresco-com-nexus-content-groups-int
- package-ecosystem: "docker"
directory: "packaging/docker-alfresco/"
schedule:
interval: "daily"
time: "22:00"
timezone: Africa/Abidjan

5
.gitignore vendored
View File

@@ -24,17 +24,16 @@ target
*.log.* *.log.*
# Mobile Tools for Java (J2ME) # Mobile Tools for Java (J2ME)
.mtj .mtj
.tmp/ .tmp/
# Package Files # # Package Files #
*.jar *.jar
*.war *.war
*.ear *.ear
# maven-shade-plugin for mmt tool
dependency-reduced-pom.xml
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid* hs_err_pid*

9
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,9 @@
repos:
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.4.1
hooks:
- id: prettier
types: [java]
additional_dependencies:
- prettier@2.4.1
- prettier-plugin-java@1.4.0

View File

@@ -1,7 +1,10 @@
--- ---
import:
- source: Alfresco/alfresco-build-tools:.travis.pre-commit.yml@v1.1.5
dist: focal dist: focal
language: java language: java
jdk: openjdk17 jdk: openjdk11
services: services:
- docker - docker
@@ -26,16 +29,14 @@ branches:
env: env:
global: global:
- TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)
- TAS_SCRIPTS=../alfresco-community-repo/packaging/tests/scripts - TAS_SCRIPTS=../alfresco-community-repo/packaging/tests/scripts
- TAS_ENVIRONMENT=./packaging/tests/environment - TAS_ENVIRONMENT=./packaging/tests/environment
- LOG_WARN="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" - LOG_WARN="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
stages: stages:
- name: prepare - name: lint
if: commit_message !~ /\[skip tests\]/ AND commit_message !~ /\[force[^\]]*\]/
- name: test - name: test
if: commit_message !~ /\[skip tests\]/ AND commit_message !~ /\[force[^\]]*\]/ if: commit_message !~ /\[skip tests\]/
- name: release - name: release
if: commit_message !~ /\[no release\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false if: commit_message !~ /\[no release\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
- name: update_downstream - name: update_downstream
@@ -46,349 +47,366 @@ install: travis_retry travis_wait 40 bash scripts/travis/build.sh
jobs: jobs:
include: include:
- name: "Prepare"
stage: prepare
install: skip
script: travis_retry travis_wait 80 bash scripts/travis/prepare.sh
- name: "Source Clear Scan (SCA)"
stage: test
if: (branch = master OR branch =~ /release\/.*/) AND type != pull_request
# Run Veracode
install: skip
script: travis_wait 30 bash scripts/travis/source_clear.sh
- name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test" - name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
script: script:
- travis_retry mvn -B test -pl core,data-model -am -DfailIfNoTests=false - travis_retry mvn -B test -pl core,data-model
- travis_retry mvn -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false - travis_retry mvn -B test -pl repository -Dtest=AllUnitTestsSuite
- name: "Repository - AppContext01TestSuite" - name: "Repository - AppContext01TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext01TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext02TestSuite" - name: "Repository - AppContext02TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext02TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext03TestSuite" - name: "Repository - AppContext03TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext03TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext04TestSuite" - name: "Repository - AppContext04TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext04TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext05TestSuite" - name: "Repository - AppContext05TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- mkdir -p "${HOME}/tmp" - mkdir -p "${HOME}/tmp"
- cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp" - cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp"
- export HOST_IP=$(hostname -I | cut -f1 -d' ') - export HOST_IP=$(hostname -I | cut -f1 -d' ')
- docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json alfresco/alfresco-identity-service:1.2 - docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json alfresco/alfresco-identity-service:1.2
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext05TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco "-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth" script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext05TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco "-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth"
- name: "Repository - AppContext06TestSuite" - name: "Repository - AppContext06TestSuite"
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext06TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext06TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContextExtraTestSuite" - name: "Repository - AppContextExtraTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContextExtraTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - MiscContextTestSuite" - name: "Repository - MiscContextTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=MiscContextTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=MiscContextTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - SearchTestSuite" - name: "Repository - SearchTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=SearchTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dindex.subsystem.name=solr6 script: travis_wait 20 mvn -B test -pl repository -Dtest=SearchTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dindex.subsystem.name=solr6
- name: "Repository - MariaDB 10.2.18 tests" - name: "Repository - MariaDB 10.2.18 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
install: skip
before_script: before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.2.18 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.2.18 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MariaDB 10.4 tests" - name: "Repository - MariaDB 10.4 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
install: skip
before_script: before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.4 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.4 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MariaDB 10.5 tests" - name: "Repository - MariaDB 10.5 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
install: skip
before_script: before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.5 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.5 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MariaDB 10.6 tests" - name: "Repository - MariaDB 10.6 tests"
stage: test
# We run tests on the latest version of MariaDB on pull requests plus the normal master and release branches - ignored on feature branches # We run tests on the latest version of MariaDB on pull requests plus the normal master and release branches - ignored on feature branches
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/
install: skip
before_script: before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.6 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.6 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MySQL 5.7.23 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
before_script:
- docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:5.7.23 --transaction-isolation='READ-COMMITTED'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - MySQL 8 tests" - name: "Repository - MySQL 8 tests"
stage: test
# We run tests on the latest version of MySQL on pull requests plus the normal master and release branches - ignored on feature branches # We run tests on the latest version of MySQL on pull requests plus the normal master and release branches - ignored on feature branches
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/
install: skip
before_script: before_script:
- docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED' - docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 13.7 tests" - name: "Repository - PostgreSQL 10.9 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.7 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:10.9 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 14.4 tests" - name: "Repository - PostgreSQL 11.7 tests"
# We only run DB tests on the latest version of PostgreSQL on feature branches stage: test
if: commit_message !~ /\[skip db\]/ OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 11.12 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.12 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 12.4 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:12.4 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 12.7 tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:12.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 13.1 tests"
stage: test
# We only run DB tests on the latest version of PostgreSQL on feature branches
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 13.3 tests"
stage: test
# We only run DB tests on the latest version of PostgreSQL on feature branches
if: commit_message !~ /\[skip db\]/ OR commit_message =~ /\[latest db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - Messaging tests" - name: "Repository - Messaging tests"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -am -Dtest=CamelRoutesTest,CamelComponentsTest -DfailIfNoTests=false script: travis_wait 20 mvn -B test -pl repository -Dtest=CamelRoutesTest,CamelComponentsTest
- name: "Remote-api - AppContext01TestSuite" - name: "Remote-api - AppContext01TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext02TestSuite" - name: "Remote-api - AppContext02TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext03TestSuite" - name: "Remote-api - AppContext03TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext04TestSuite" - name: "Remote-api - AppContext04TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContextExtraTestSuite" - name: "Remote-api - AppContextExtraTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "REST API TAS tests part1" - name: "REST API TAS tests part1"
stage: test
# TAS tests are generally skipped on feature branches as they will be repeated on the enterprise repo or community packaging builds # TAS tests are generally skipped on feature branches as they will be repeated on the enterprise repo or community packaging builds
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi"
- name: "REST API TAS tests part2" - name: "REST API TAS tests part2"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi"
- name: "REST API TAS tests part3" - name: "REST API TAS tests part3"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi"
- name: "CMIS TAS tests - BROWSER binding" - name: "CMIS TAS tests - BROWSER binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis"
- name: "CMIS TAS tests - ATOM binding" - name: "CMIS TAS tests - ATOM binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis"
- name: "CMIS TAS tests - WEBSERVICES binding" - name: "CMIS TAS tests - WEBSERVICES binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis"
- name: "Email TAS tests" - name: "Email TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 30 mvn -B verify -f packaging/tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false script: travis_wait 30 mvn -B install -f packaging/tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-email"
- name: "WebDAV TAS tests" - name: "WebDAV TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 30 mvn -B verify -f packaging/tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false script: travis_wait 30 mvn -B install -f packaging/tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-webdav"
- name: "Integration TAS tests" - name: "Integration TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
- travis_retry travis_wait 40 mvn install -pl :alfresco-community-repo-integration-test -am -DskipTests -Pall-tas-tests script: travis_wait 30 mvn -B install -f packaging/tests/tas-integration/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
script: travis_wait 30 mvn -B verify -f packaging/tests/tas-integration/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-integration"
- name: "Share Services - ShareServicesTestSuite" - name: "Share Services - ShareServicesTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/ if: commit_message !~ /\[skip repo\]/
install: skip
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
script: travis_wait 20 mvn -B test -pl :alfresco-share-services -am -Dtest=ShareServicesTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl :alfresco-share-services -Dtest=ShareServicesTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "AGS Unit & Integration Tests 01 (PostgreSQL)" - name: "AGS Unit & Integration Tests 01 (PostgreSQL)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 02 (PostgreSQL)" - name: "AGS Integration Tests 02 (PostgreSQL)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 03 (PostgreSQL)" - name: "AGS Integration Tests 03 (PostgreSQL)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Unit & Integration Tests 04 (PostgreSQL)"
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt4 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Unit & Integration Tests 01 (MySQL) " - name: "AGS Unit & Integration Tests 01 (MySQL) "
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 02 (MySQL) " - name: "AGS Integration Tests 02 (MySQL) "
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 03 (MySQL) " - name: "AGS Integration Tests 03 (MySQL) "
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ stage: test
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN} script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Unit & Integration Tests 04 (MySQL) "
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/
install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh
script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt4 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Community Rest API Tests" - name: "AGS Community Rest API Tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh
addons: addons:
artifacts: artifacts:
paths: paths:
@@ -399,12 +417,11 @@ jobs:
before_script: before_script:
- ${TAS_SCRIPTS}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml - ${TAS_SCRIPTS}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco" - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco"
script: travis_wait 40 mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -am -DfailIfNoTests=false -Dskip.automationtests=false -Pags script: travis_wait 40 mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false -Pags
after_script: bash amps/ags/travis/scripts/getLogs.sh after_script: bash amps/ags/travis/scripts/getLogs.sh
- name: "Push to Nexus" - name: "Push to Nexus"
stage: release stage: release
install: skip
before_script: bash scripts/travis/verify_release_tag.sh before_script: bash scripts/travis/verify_release_tag.sh
script: travis_wait 40 bash scripts/travis/maven_release.sh script: travis_wait 40 bash scripts/travis/maven_release.sh

View File

@@ -2,6 +2,13 @@
[![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo) [![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo)
This project contains the bulk of the [Alfresco Content Services Repository](https://community.alfresco.com/docs/DOC-6385-project-overview-repository) code.
To make the development process simpler, it brings together code historically in `alfresco-core`,
`alfresco-data-madel`, `alfresco-repository`, `alfresco-remote-api` and repository specific
tests and war file creation from `acs-community-packaging`. They exist as sub projects within the Maven Reactor and still
create the same artifacts.
#### Alfresco Core #### Alfresco Core
Alfresco Core is a library packaged as a jar file which contains the following: Alfresco Core is a library packaged as a jar file which contains the following:
@@ -9,6 +16,8 @@ Alfresco Core is a library packaged as a jar file which contains the following:
* Canned queries interface and supporting classes * Canned queries interface and supporting classes
* Generic encryption supporting classes * Generic encryption supporting classes
Version 7 of the library uses Spring 5, Quartz 2.3 and does not have Hibernate dependency.
#### Alfresco Data Model #### Alfresco Data Model
Data model is a library packaged as a jar file which contains the following: Data model is a library packaged as a jar file which contains the following:
* Dictionary, Repository and Search Services interfaces * Dictionary, Repository and Search Services interfaces
@@ -22,6 +31,14 @@ Repository is a library packaged as a jar file which contains the following:
* Various Service implementations * Various Service implementations
* Utility classes * Utility classes
Tests are combined into test classes split by test type or Spring application context used in the test, see classes
in _src/test/java/org/alfresco_. All of these classes as well as individual tests can be run by specifying the test
class name and a set of DB connection properties. Check the travis.yml file for docker images that should be started
to provide a suitable test environment. For example:
~~~
mvn clean test -Dtest=SomeRepoTest -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql:alfresco -Ddb.username=alfresco -Ddb.password=alfresco
~~~
#### Alfresco Remote API #### Alfresco Remote API
Remote API is a library packaged as a jar file which contains the following: Remote API is a library packaged as a jar file which contains the following:
@@ -29,10 +46,13 @@ Remote API is a library packaged as a jar file which contains the following:
* WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know) * WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know)
* [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations * [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations
Like the `alfresco-repository` tests are combined in test classes split by test type or Spring application context used
in the test.
#### Artifacts #### Artifacts
The artifacts can be obtained by: The artifacts can be obtained by:
* downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public) * downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public)
* as Maven dependency by adding the dependency to your pom file: * getting as Maven dependency by adding the dependency to your pom file:
~~~ ~~~
<dependency> <dependency>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
@@ -74,24 +94,40 @@ and Alfresco maven repository:
~~~ ~~~
The SNAPSHOT versions of the artifact are not published. The SNAPSHOT versions of the artifact are not published.
## Setting up and building your development environment All current source versions are held in github. Historic versions can be found in [Alfresco SVN](https://svn.alfresco.com/repos/alfresco-open-mirror/services/alfresco-core/)
See the [Development Tomcat Environment](https://github.com/Alfresco/acs-community-packaging/tree/master/dev/README.md)
page which will show you how to try out your repository changes in a local tomcat instance.
If you wish to use Docker images, take a look at the aliases ending in `D` and the docker-compose files in this
project's test modules.
## Branches
This project has a branch for each ACS release. For example the code in ACS 6.2.1 is a
branch called `releases/6.2.2`. In addition to the original 6.2.2 release it will also contain Hot Fixes
added later. The latest unreleased code is on the `master` branch. There are also `.N` branches, such as
`releases/7.1.N` on which we gather unreleased fixes for future service pack releases. They do not indicate
that one is planned.
For historic reasons the version of artifacts created on each branch do not match the ACS version.
For example artifact in ACS 7.2.0 will be `14.<something>`.
The enterprise projects which extend the `alfresco-community-repo` use the same branch names and leading
artifact version number.
### Contributing guide ### Contributing guide
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project. Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.
## Setting up your development environment
Although it is possible to work on individual github projects, we recommend working on the `alfresco-community-repo`
and `acs-community-packaging` in a single Intellij IDEA project. They depend on each other and typically you will
want to make changes to both of them if you are changing the repository code.
~~~
mkdir work
cd work
git clone git@github.com:Alfresco/alfresco-community-repo.git
git clone git@github.com:Alfresco/acs-community-packaging.git
~~~
If you wish to build these projects from the command line, use the following commands.
~~~
cd alfresco-community-repo
mvn clean install -Pbuild-docker-images -DskipTests=true -Dversion.edition=Community
cd ..
cd acs-community-packaging
mvn clean install -Pbuild-docker-images -Dmaven.javadoc.skip=true
cd ..
~~~
In Intellij IDEA, create a new project using the `work` directory as the source.
* File > New Project from Existing Sources > .../work > Maven
## Branches
As multiple projects have been combined, branch names use the ACS version they are targeting.
For example the code used to create the repository in ACS 6.2.1 is a branch called `releases/6.2.1`.
The actual version number of the **repository artifacts** created by `alfresco-community-repo` are however different.
For example `release/6.2.1` artifacts are `7.183.x`. This adds some complexity, but ensures that
version numbers do not go backwards in existing releases. It also provides some level of
independence between the repository and other ACS components.

View File

@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId> <artifactId>alfresco-community-repo-amps</artifactId>
<version>19.2</version> <version>14.15-SNAPSHOT</version>
</parent> </parent>
<modules> <modules>
@@ -21,7 +21,6 @@
<license.update.dryrun>true</license.update.dryrun> <license.update.dryrun>true</license.update.dryrun>
<license.verbose>false</license.verbose> <license.verbose>false</license.verbose>
<license.failOnNotUptodateHeader>true</license.failOnNotUptodateHeader>
</properties> </properties>
<build> <build>
@@ -30,20 +29,16 @@
<plugin> <plugin>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<configuration> <configuration>
<!-- Keeping illegal-access=permit for Java 11 compatibility, even though it has no effect on JDK 17 -->
<argLine> <argLine>
--illegal-access=permit --illegal-access=permit
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-failsafe-plugin</artifactId> <artifactId>maven-failsafe-plugin</artifactId>
<!-- Keeping illegal-access=permit for Java 11 compatibility, even though it has no effect on JDK 17 -->
<configuration> <configuration>
<argLine> <argLine>
--illegal-access=permit --illegal-access=permit
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>
@@ -51,49 +46,50 @@
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId> <artifactId>license-maven-plugin</artifactId>
<version>1.16</version>
<configuration>
<verbose>${license.verbose}</verbose>
<addSvnKeyWords>false</addSvnKeyWords>
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
<!-- header configuration -->
<organizationName>Alfresco Software Limited</organizationName>
<descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
<canUpdateCopyright>true</canUpdateCopyright>
<canUpdateDescription>true</canUpdateDescription>
<!-- licence configuration -->
<licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
<!-- dry run options -->
<dryRun>${license.update.dryrun}</dryRun>
<failOnMissingHeader>true</failOnMissingHeader>
<failOnNotUptodateHeader>true</failOnNotUptodateHeader>
<!-- default root -->
<roots>
<root>src</root>
</roots>
<!-- exculsions -->
<excludes>
<exclude>**/package-info.java</exclude>
<exclude>**/*.properties</exclude>
<exclude>**/*.css</exclude>
<exclude>**/*.xml</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.txt</exclude>
<exclude>**/*.html</exclude>
</excludes>
</configuration>
<executions> <executions>
<execution> <execution>
<id>first</id> <id>first</id>
<goals> <goals>
<goal>update-file-header</goal> <goal>update-file-header</goal>
</goals> </goals>
<phase>none</phase> <phase>process-sources</phase>
<configuration>
<verbose>${license.verbose}</verbose>
<addSvnKeyWords>false</addSvnKeyWords>
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
<!-- header configuration -->
<organizationName>Alfresco Software Limited</organizationName>
<descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
<canUpdateCopyright>true</canUpdateCopyright>
<canUpdateDescription>true</canUpdateDescription>
<!-- license configuration -->
<licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
<!-- dry run options -->
<dryRun>${license.update.dryrun}</dryRun>
<failOnMissingHeader>true</failOnMissingHeader>
<failOnNotUptodateHeader>${license.failOnNotUptodateHeader}</failOnNotUptodateHeader>
<!-- default root -->
<roots>
<root>src</root>
</roots>
<!-- exclusions -->
<excludes>
<exclude>**/package-info.java</exclude>
<exclude>**/*.properties</exclude>
<exclude>**/*.css</exclude>
<exclude>**/*.xml</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.txt</exclude>
<exclude>**/*.html</exclude>
</excludes>
</configuration>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>

View File

@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId> <artifactId>alfresco-governance-services-community-parent</artifactId>
<version>19.2</version> <version>14.15-SNAPSHOT</version>
</parent> </parent>
<modules> <modules>
@@ -37,16 +37,6 @@
<skipTests>${skip.automationtests}</skipTests> <skipTests>${skip.automationtests}</skipTests>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>third-party-licenses</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@@ -7,25 +7,20 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-automation-community-repo</artifactId> <artifactId>alfresco-governance-services-automation-community-repo</artifactId>
<version>19.2</version> <version>14.15-SNAPSHOT</version>
</parent> </parent>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId> <artifactId>license-maven-plugin</artifactId>
<executions> <configuration>
<execution> <licenseName>alfresco_community</licenseName>
<id>first</id> <licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
<phase>process-sources</phase> <descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
<configuration> </configuration>
<licenseName>alfresco_community</licenseName>
<licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
<descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
</configuration>
</execution>
</executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@@ -44,8 +39,8 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId> <artifactId>slf4j-log4j12</artifactId>
<version>${dependency.slf4j.version}</version> <version>1.7.32</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -87,7 +82,7 @@
<dependency> <dependency>
<groupId>com.github.docker-java</groupId> <groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId> <artifactId>docker-java</artifactId>
<version>3.2.13</version> <version>3.2.12</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,12 +26,11 @@
*/ */
package org.alfresco.rest.core; package org.alfresco.rest.core;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySource;
import lombok.Getter;
/** /**
* Extends {@link RestProperties} to be able to change/add properties * Extends {@link RestProperties} to be able to change/add properties
* *
@@ -40,23 +39,31 @@ import lombok.Getter;
*/ */
@Getter @Getter
@Configuration @Configuration
@PropertySource(value = {"classpath:default.properties", "classpath:config.properties"}) @PropertySource(
@PropertySource(value = "classpath:module.properties", ignoreResourceNotFound = true) value = { "classpath:default.properties", "classpath:config.properties" }
@PropertySource(value = "classpath:local.properties", ignoreResourceNotFound = true) )
public class RMRestProperties extends RestProperties @PropertySource(
{ value = "classpath:module.properties",
@Value ("${alfresco.scheme}") ignoreResourceNotFound = true
)
@PropertySource(
value = "classpath:local.properties",
ignoreResourceNotFound = true
)
public class RMRestProperties extends RestProperties {
@Value("${alfresco.scheme}")
private String scheme; private String scheme;
@Value ("${alfresco.server}") @Value("${alfresco.server}")
private String server; private String server;
@Value ("${alfresco.port}") @Value("${alfresco.port}")
private String port; private String port;
@Value ("${rest.rmPath}") @Value("${rest.rmPath}")
private String restRmPath; private String restRmPath;
@Value ("${docker.host}") @Value("${docker.host}")
private String dockerHost; private String dockerHost;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,7 @@
package org.alfresco.rest.core; package org.alfresco.rest.core;
import io.restassured.builder.RequestSpecBuilder; import io.restassured.builder.RequestSpecBuilder;
import lombok.Getter;
import org.alfresco.rest.exception.EmptyJsonResponseException; import org.alfresco.rest.exception.EmptyJsonResponseException;
import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestHtmlResponse; import org.alfresco.rest.model.RestHtmlResponse;
@@ -43,8 +43,6 @@ import org.springframework.context.annotation.Scope;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import lombok.Getter;
/** /**
* Extends {@link RestWrapper} in order to call GS APIs with our own properties * Extends {@link RestWrapper} in order to call GS APIs with our own properties
* *
@@ -53,8 +51,8 @@ import lombok.Getter;
*/ */
@Service @Service
@Scope(value = "prototype") @Scope(value = "prototype")
public class RMRestWrapper public class RMRestWrapper {
{
/** The class that wraps the ReST APIs from core. */ /** The class that wraps the ReST APIs from core. */
@Autowired @Autowired
private RestWrapper restWrapper; private RestWrapper restWrapper;
@@ -63,92 +61,77 @@ public class RMRestWrapper
@Getter @Getter
private RMRestProperties rmRestProperties; private RMRestProperties rmRestProperties;
public GSCoreAPI withGSCoreAPI() public GSCoreAPI withGSCoreAPI() {
{
return new GSCoreAPI(this, getRmRestProperties()); return new GSCoreAPI(this, getRmRestProperties());
} }
/** Get the core class that wraps the ReST APIs. */ /** Get the core class that wraps the ReST APIs. */
public RestWrapper getRestWrapper() public RestWrapper getRestWrapper() {
{
return restWrapper; return restWrapper;
} }
/** Authenticate specific user to Alfresco REST API */ /** Authenticate specific user to Alfresco REST API */
public void authenticateUser(UserModel userModel) public void authenticateUser(UserModel userModel) {
{
restWrapper.authenticateUser(userModel); restWrapper.authenticateUser(userModel);
} }
/** Get the last error thrown (if any). */ /** Get the last error thrown (if any). */
public RestErrorModel assertLastError() public RestErrorModel assertLastError() {
{
return restWrapper.assertLastError(); return restWrapper.assertLastError();
} }
/** Process responses for a collection of models as {@link RestSiteModelsCollection}. */ /** Process responses for a collection of models as {@link RestSiteModelsCollection}. */
public <T> T processModels(Class<T> classz, RestRequest simpleRequest) public <T> T processModels(Class<T> classz, RestRequest simpleRequest) {
{
return restWrapper.processModels(classz, simpleRequest); return restWrapper.processModels(classz, simpleRequest);
} }
/** Process responses for a single model as {@link RestSiteModel}. */ /** Process responses for a single model as {@link RestSiteModel}. */
public <T> T processModel(Class<T> classz, RestRequest restRequest) public <T> T processModel(Class<T> classz, RestRequest restRequest) {
{
return restWrapper.processModel(classz, restRequest); return restWrapper.processModel(classz, restRequest);
} }
/** Process a response that has no body - basically will need only the status code from it. */ /** Process a response that has no body - basically will need only the status code from it. */
public void processEmptyModel(RestRequest simpleRequest) public void processEmptyModel(RestRequest simpleRequest) {
{
restWrapper.processEmptyModel(simpleRequest); restWrapper.processEmptyModel(simpleRequest);
} }
/** Get the most recently returned status object. */ /** Get the most recently returned status object. */
public StatusModel getLastStatus() public StatusModel getLastStatus() {
{
return restWrapper.getLastStatus(); return restWrapper.getLastStatus();
} }
/** Get the most recently returned status code. */ /** Get the most recently returned status code. */
public String getStatusCode() public String getStatusCode() {
{
return restWrapper.getStatusCode(); return restWrapper.getStatusCode();
} }
/** Set the status code. This should only be needed when calling APIs without using the TAS framework. */ /** Set the status code. This should only be needed when calling APIs without using the TAS framework. */
public void setStatusCode(String statusCode) public void setStatusCode(String statusCode) {
{
restWrapper.setStatusCode(statusCode); restWrapper.setStatusCode(statusCode);
} }
/** Assert that a specific status code is returned. */ /** Assert that a specific status code is returned. */
public void assertStatusCodeIs(HttpStatus statusCode) public void assertStatusCodeIs(HttpStatus statusCode) {
{
restWrapper.assertStatusCodeIs(statusCode); restWrapper.assertStatusCodeIs(statusCode);
} }
/** @return A parameters string that you could pass on the request ?param=value */ /** @return A parameters string that you could pass on the request ?param=value */
public String getParameters() public String getParameters() {
{
return restWrapper.getParameters(); return restWrapper.getParameters();
} }
/** Create a {@link UserModel} for a new test user. */ /** Create a {@link UserModel} for a new test user. */
public UserModel getTestUser() public UserModel getTestUser() {
{
return restWrapper.getTestUser(); return restWrapper.getTestUser();
} }
/** Get the Alfresco Core API. */ /** Get the Alfresco Core API. */
public RestCoreAPI withCoreAPI() public RestCoreAPI withCoreAPI() {
{
return restWrapper.withCoreAPI(); return restWrapper.withCoreAPI();
} }
/** Get the Alfresco Search API. */ /** Get the Alfresco Search API. */
public SearchAPI withSearchAPI() public SearchAPI withSearchAPI() {
{
return restWrapper.withSearchAPI(); return restWrapper.withSearchAPI();
} }
@@ -163,8 +146,7 @@ public class RMRestWrapper
* restClient.withCoreAPI().usingNode(ContentModel.my()).createNode(); * restClient.withCoreAPI().usingNode(ContentModel.my()).createNode();
* </pre> This will create the node using the multipart data defined. * </pre> This will create the node using the multipart data defined.
*/ */
public RequestSpecBuilder configureRequestSpec() public RequestSpecBuilder configureRequestSpec() {
{
return restWrapper.configureRequestSpec(); return restWrapper.configureRequestSpec();
} }
@@ -173,8 +155,7 @@ public class RMRestWrapper
* *
* @throws EmptyJsonResponseException If there is no response from the server. * @throws EmptyJsonResponseException If there is no response from the server.
*/ */
public RestHtmlResponse processHtmlResponse(RestRequest simpleRequest) public RestHtmlResponse processHtmlResponse(RestRequest simpleRequest) {
{
return restWrapper.processHtmlResponse(simpleRequest); return restWrapper.processHtmlResponse(simpleRequest);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,7 +29,6 @@ package org.alfresco.rest.core;
import static lombok.AccessLevel.PROTECTED; import static lombok.AccessLevel.PROTECTED;
import javax.annotation.Resource; import javax.annotation.Resource;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.alfresco.rest.requests.Node; import org.alfresco.rest.requests.Node;
@@ -63,10 +62,10 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
@Scope(value = "prototype") @Scope(value = "prototype")
public class RestAPIFactory public class RestAPIFactory {
{
@Autowired @Autowired
@Getter (value = PROTECTED) @Getter(value = PROTECTED)
private DataUserAIS dataUser; private DataUserAIS dataUser;
@Resource(name = "RMRestWrapper") @Resource(name = "RMRestWrapper")
@@ -74,173 +73,149 @@ public class RestAPIFactory
@Setter @Setter
private RMRestWrapper rmRestWrapper; private RMRestWrapper rmRestWrapper;
private GSCoreAPI getGSCoreAPI(UserModel userModel) private GSCoreAPI getGSCoreAPI(UserModel userModel) {
{ getRmRestWrapper()
getRmRestWrapper().authenticateUser(userModel != null ? userModel : getDataUser().getAdminUser()); .authenticateUser(
userModel != null ? userModel : getDataUser().getAdminUser()
);
return getRmRestWrapper().withGSCoreAPI(); return getRmRestWrapper().withGSCoreAPI();
} }
private RestCoreAPI getCoreAPI(UserModel userModel) private RestCoreAPI getCoreAPI(UserModel userModel) {
{ getRmRestWrapper()
getRmRestWrapper().authenticateUser(userModel != null ? userModel : getDataUser().getAdminUser()); .authenticateUser(
userModel != null ? userModel : getDataUser().getAdminUser()
);
return getRmRestWrapper().withCoreAPI(); return getRmRestWrapper().withCoreAPI();
} }
public SearchAPI getSearchAPI(UserModel userModel) public SearchAPI getSearchAPI(UserModel userModel) {
{ getRmRestWrapper()
getRmRestWrapper().authenticateUser(userModel != null ? userModel : getDataUser().getAdminUser()); .authenticateUser(
userModel != null ? userModel : getDataUser().getAdminUser()
);
return getRmRestWrapper().withSearchAPI(); return getRmRestWrapper().withSearchAPI();
} }
/** /**
* When no user is given the default is set to admin * When no user is given the default is set to admin
*/ */
public SearchAPI getSearchAPI() public SearchAPI getSearchAPI() {
{
return getSearchAPI(null); return getSearchAPI(null);
} }
public Node getNodeAPI(RepoTestModel model) throws RuntimeException public Node getNodeAPI(RepoTestModel model) throws RuntimeException {
{ try {
try
{
return getCoreAPI(null).usingNode(model); return getCoreAPI(null).usingNode(model);
} } catch (Exception e) {
catch (Exception e)
{
throw new RuntimeException("Failed to load nodeAPI.", e); throw new RuntimeException("Failed to load nodeAPI.", e);
} }
} }
public Node getNodeAPI(UserModel userModel, RepoTestModel model) throws RuntimeException public Node getNodeAPI(UserModel userModel, RepoTestModel model)
{ throws RuntimeException {
try try {
{
return getCoreAPI(userModel).usingNode(model); return getCoreAPI(userModel).usingNode(model);
} } catch (Exception e) {
catch (Exception e)
{
throw new RuntimeException("Failed to load nodeAPI.", e); throw new RuntimeException("Failed to load nodeAPI.", e);
} }
} }
public RMSiteAPI getRMSiteAPI() public RMSiteAPI getRMSiteAPI() {
{
return getGSCoreAPI(null).usingRMSite(); return getGSCoreAPI(null).usingRMSite();
} }
public RMSiteAPI getRMSiteAPI(UserModel userModel) public RMSiteAPI getRMSiteAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingRMSite(); return getGSCoreAPI(userModel).usingRMSite();
} }
public FilePlanAPI getFilePlansAPI() public FilePlanAPI getFilePlansAPI() {
{
return getGSCoreAPI(null).usingFilePlans(); return getGSCoreAPI(null).usingFilePlans();
} }
public FilePlanAPI getFilePlansAPI(UserModel userModel) public FilePlanAPI getFilePlansAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingFilePlans(); return getGSCoreAPI(userModel).usingFilePlans();
} }
public RecordCategoryAPI getRecordCategoryAPI() public RecordCategoryAPI getRecordCategoryAPI() {
{
return getGSCoreAPI(null).usingRecordCategory(); return getGSCoreAPI(null).usingRecordCategory();
} }
public RecordCategoryAPI getRecordCategoryAPI(UserModel userModel) public RecordCategoryAPI getRecordCategoryAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingRecordCategory(); return getGSCoreAPI(userModel).usingRecordCategory();
} }
public RecordFolderAPI getRecordFolderAPI() public RecordFolderAPI getRecordFolderAPI() {
{
return getGSCoreAPI(null).usingRecordFolder(); return getGSCoreAPI(null).usingRecordFolder();
} }
public RecordFolderAPI getRecordFolderAPI(UserModel userModel) public RecordFolderAPI getRecordFolderAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingRecordFolder(); return getGSCoreAPI(userModel).usingRecordFolder();
} }
public RecordsAPI getRecordsAPI() public RecordsAPI getRecordsAPI() {
{
return getGSCoreAPI(null).usingRecords(); return getGSCoreAPI(null).usingRecords();
} }
public RecordsAPI getRecordsAPI(UserModel userModel) public RecordsAPI getRecordsAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingRecords(); return getGSCoreAPI(userModel).usingRecords();
} }
public FilesAPI getFilesAPI() public FilesAPI getFilesAPI() {
{
return getGSCoreAPI(null).usingFiles(); return getGSCoreAPI(null).usingFiles();
} }
public FilesAPI getFilesAPI(UserModel userModel) public FilesAPI getFilesAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingFiles(); return getGSCoreAPI(userModel).usingFiles();
} }
public TransferContainerAPI getTransferContainerAPI() public TransferContainerAPI getTransferContainerAPI() {
{
return getGSCoreAPI(null).usingTransferContainer(); return getGSCoreAPI(null).usingTransferContainer();
} }
public TransferContainerAPI getTransferContainerAPI(UserModel userModel) public TransferContainerAPI getTransferContainerAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingTransferContainer(); return getGSCoreAPI(userModel).usingTransferContainer();
} }
public TransferAPI getTransferAPI() public TransferAPI getTransferAPI() {
{
return getGSCoreAPI(null).usingTransfer(); return getGSCoreAPI(null).usingTransfer();
} }
public TransferAPI getTransferAPI(UserModel userModel) public TransferAPI getTransferAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingTransfer(); return getGSCoreAPI(userModel).usingTransfer();
} }
public RMUserAPI getRMUserAPI() public RMUserAPI getRMUserAPI() {
{
return getGSCoreAPI(null).usingRMUser(); return getGSCoreAPI(null).usingRMUser();
} }
public RMUserAPI getRMUserAPI(UserModel userModel) public RMUserAPI getRMUserAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingRMUser(); return getGSCoreAPI(userModel).usingRMUser();
} }
public UnfiledContainerAPI getUnfiledContainersAPI() public UnfiledContainerAPI getUnfiledContainersAPI() {
{
return getGSCoreAPI(null).usingUnfiledContainers(); return getGSCoreAPI(null).usingUnfiledContainers();
} }
public UnfiledContainerAPI getUnfiledContainersAPI(UserModel userModel) public UnfiledContainerAPI getUnfiledContainersAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingUnfiledContainers(); return getGSCoreAPI(userModel).usingUnfiledContainers();
} }
public UnfiledRecordFolderAPI getUnfiledRecordFoldersAPI() public UnfiledRecordFolderAPI getUnfiledRecordFoldersAPI() {
{
return getGSCoreAPI(null).usingUnfiledRecordFolder(); return getGSCoreAPI(null).usingUnfiledRecordFolder();
} }
public UnfiledRecordFolderAPI getUnfiledRecordFoldersAPI(UserModel userModel) public UnfiledRecordFolderAPI getUnfiledRecordFoldersAPI(
{ UserModel userModel
) {
return getGSCoreAPI(userModel).usingUnfiledRecordFolder(); return getGSCoreAPI(userModel).usingUnfiledRecordFolder();
} }
public ActionsExecutionAPI getActionsAPI(UserModel userModel) public ActionsExecutionAPI getActionsAPI(UserModel userModel) {
{
return getGSCoreAPI(userModel).usingActionsExecutionsAPI(); return getGSCoreAPI(userModel).usingActionsExecutionsAPI();
} }
public ActionsExecutionAPI getActionsAPI() public ActionsExecutionAPI getActionsAPI() {
{
return getGSCoreAPI(null).usingActionsExecutionsAPI(); return getGSCoreAPI(null).usingActionsExecutionsAPI();
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.core.search; package org.alfresco.rest.core.search;
import java.util.List; import java.util.List;
import org.alfresco.rest.search.Pagination; import org.alfresco.rest.search.Pagination;
import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.RestRequestQueryModel;
import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchRequest;
@@ -35,23 +34,22 @@ import org.alfresco.rest.search.SearchRequest;
/** /**
* Builder class for creating a search api request * Builder class for creating a search api request
*/ */
public class SearchRequestBuilder extends SearchRequest public class SearchRequestBuilder extends SearchRequest {
{
/** /**
* Constructor for Search API Request * Constructor for Search API Request
*/ */
public SearchRequestBuilder() public SearchRequestBuilder() {
{
new SearchRequest(); new SearchRequest();
} }
/** /**
* Set the sql statement for the SearchRequest * Set the sql statement for the SearchRequest
* *
* @param query sql statement * @param query sql statement
* @return search request * @return search request
*/ */
public SearchRequestBuilder setQueryBuilder(RestRequestQueryModel query) public SearchRequestBuilder setQueryBuilder(RestRequestQueryModel query) {
{
super.setQuery(query); super.setQuery(query);
return this; return this;
} }
@@ -62,8 +60,7 @@ public class SearchRequestBuilder extends SearchRequest
* @param paging pagination requested * @param paging pagination requested
* @return search request * @return search request
*/ */
public SearchRequestBuilder setPagingBuilder(Pagination paging) public SearchRequestBuilder setPagingBuilder(Pagination paging) {
{
super.setPaging(paging); super.setPaging(paging);
return this; return this;
} }
@@ -71,8 +68,7 @@ public class SearchRequestBuilder extends SearchRequest
/** /**
* Set the pagination properties * Set the pagination properties
*/ */
public Pagination setPagination(Integer maxItems, Integer skipCount) public Pagination setPagination(Integer maxItems, Integer skipCount) {
{
Pagination pagination = new Pagination(); Pagination pagination = new Pagination();
pagination.setMaxItems(maxItems); pagination.setMaxItems(maxItems);
pagination.setSkipCount(skipCount); pagination.setSkipCount(skipCount);
@@ -85,10 +81,8 @@ public class SearchRequestBuilder extends SearchRequest
* @param fields requested fields * @param fields requested fields
* @return search request * @return search request
*/ */
public SearchRequestBuilder setFieldsBuilder(List<String> fields) public SearchRequestBuilder setFieldsBuilder(List<String> fields) {
{
super.setFields(fields); super.setFields(fields);
return this; return this;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,13 +26,12 @@
*/ */
package org.alfresco.rest.core.v0; package org.alfresco.rest.core.v0;
import javax.json.Json;
import javax.json.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder; import java.time.format.DateTimeFormatterBuilder;
import javax.json.Json;
import javax.json.JsonReader;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
@@ -48,19 +47,20 @@ import org.slf4j.LoggerFactory;
* @author Tom Page * @author Tom Page
* @since 2.6 * @since 2.6
*/ */
public class APIUtils public class APIUtils {
{
/** Logger for this class. */ /** Logger for this class. */
private static final Logger LOGGER = LoggerFactory.getLogger(APIUtils.class); private static final Logger LOGGER = LoggerFactory.getLogger(
APIUtils.class
);
/** The ISO instant formatter that formats or parses an instant in UTC, such as '2011-12-03T10:15:305Z' /** The ISO instant formatter that formats or parses an instant in UTC, such as '2011-12-03T10:15:305Z'
* similar with {@link DateTimeFormatter#ISO_INSTANT}, but with only 3 nanoseconds*/ * similar with {@link DateTimeFormatter#ISO_INSTANT}, but with only 3 nanoseconds*/
public static final DateTimeFormatter ISO_INSTANT_FORMATTER = public static final DateTimeFormatter ISO_INSTANT_FORMATTER = new DateTimeFormatterBuilder()
new DateTimeFormatterBuilder().appendInstant(3).toFormatter(); .appendInstant(3)
.toFormatter();
/** Private constructor for helper class. */ /** Private constructor for helper class. */
private APIUtils() private APIUtils() {}
{
}
/** /**
* Extract the body of a HTTP response as a JSON object. * Extract the body of a HTTP response as a JSON object.
@@ -68,16 +68,21 @@ public class APIUtils
* @param httpResponse The HTTP response. * @param httpResponse The HTTP response.
* @return A JSON representation of the object. * @return A JSON representation of the object.
*/ */
public static JSONObject convertHTTPResponseToJSON(HttpResponse httpResponse) public static JSONObject convertHTTPResponseToJSON(
{ HttpResponse httpResponse
) {
String source = null; String source = null;
try try {
{ source =
source = IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8"); IOUtils.toString(
} httpResponse.getEntity().getContent(),
catch (IOException e) "UTF-8"
{ );
throw new IllegalArgumentException("Could not extract JSON from HTTP response.", e); } catch (IOException e) {
throw new IllegalArgumentException(
"Could not extract JSON from HTTP response.",
e
);
} }
LOGGER.info("Response body:\n{}", source); LOGGER.info("Response body:\n{}", source);
return new JSONObject(source); return new JSONObject(source);
@@ -89,30 +94,25 @@ public class APIUtils
* @param httpResponse http response * @param httpResponse http response
* @return error message from the http response * @return error message from the http response
*/ */
public static String extractErrorMessageFromHttpResponse(HttpResponse httpResponse) public static String extractErrorMessageFromHttpResponse(
{ HttpResponse httpResponse
) {
final HttpEntity entity = httpResponse.getEntity(); final HttpEntity entity = httpResponse.getEntity();
JsonReader reader = null; JsonReader reader = null;
try try {
{
final InputStream responseStream = entity.getContent(); final InputStream responseStream = entity.getContent();
reader = Json.createReader(responseStream); reader = Json.createReader(responseStream);
return reader.readObject().getString("message"); return reader.readObject().getString("message");
} } catch (JSONException error) {
catch (JSONException error) LOGGER.error(
{ "Converting message body to JSON failed. Body: {}",
httpResponse,
LOGGER.error("Converting message body to JSON failed. Body: {}", httpResponse, error); error
} );
catch (ParseException | IOException error) } catch (ParseException | IOException error) {
{
LOGGER.error("Parsing message body failed.", error); LOGGER.error("Parsing message body failed.", error);
} } finally {
finally if (reader != null) {
{
if (reader != null)
{
reader.close(); reader.close();
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -38,7 +38,6 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.alfresco.dataprep.AlfrescoHttpClient; import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory; import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.dataprep.ContentService; import org.alfresco.dataprep.ContentService;
@@ -70,20 +69,25 @@ import org.springframework.beans.factory.annotation.Autowired;
* @author Kristijan Conkas * @author Kristijan Conkas
* @since 2.5 * @since 2.5
*/ */
public abstract class BaseAPI public abstract class BaseAPI {
{
// logger // logger
protected static final Logger LOGGER = LoggerFactory.getLogger(BaseAPI.class); protected static final Logger LOGGER = LoggerFactory.getLogger(
BaseAPI.class
);
/** exception key in JSON response body */ /** exception key in JSON response body */
private static final String EXCEPTION_KEY = "exception"; private static final String EXCEPTION_KEY = "exception";
private static final String MESSAGE_KEY = "message"; private static final String MESSAGE_KEY = "message";
public static final String NODE_PREFIX = "workspace/SpacesStore/"; public static final String NODE_PREFIX = "workspace/SpacesStore/";
protected static final String UPDATE_METADATA_API = "{0}node/{1}/formprocessor"; protected static final String UPDATE_METADATA_API =
"{0}node/{1}/formprocessor";
protected static final String ACTIONS_API = "{0}actionQueue"; protected static final String ACTIONS_API = "{0}actionQueue";
protected static final String RM_ACTIONS_API = "{0}rma/actions/ExecutionQueue"; protected static final String RM_ACTIONS_API =
"{0}rma/actions/ExecutionQueue";
public static final String RM_SITE_ID = "rm"; public static final String RM_SITE_ID = "rm";
protected static final String SHARE_ACTION_API = "{0}internal/shared/share/workspace/SpacesStore/{1}"; protected static final String SHARE_ACTION_API =
"{0}internal/shared/share/workspace/SpacesStore/{1}";
private static final String SLINGSHOT_PREFIX = "alfresco/s/slingshot/"; private static final String SLINGSHOT_PREFIX = "alfresco/s/slingshot/";
@Autowired @Autowired
@@ -92,7 +96,8 @@ public abstract class BaseAPI
@Autowired @Autowired
protected ContentService contentService; protected ContentService contentService;
public static final String NODE_REF_WORKSPACE_SPACES_STORE = "workspace://SpacesStore/"; public static final String NODE_REF_WORKSPACE_SPACES_STORE =
"workspace://SpacesStore/";
private static final String FILE_PLAN_PATH = "/Sites/rm/documentLibrary"; private static final String FILE_PLAN_PATH = "/Sites/rm/documentLibrary";
/** /**
@@ -102,20 +107,18 @@ public abstract class BaseAPI
* @return list of specified property values in result * @return list of specified property values in result
* @throws RuntimeException for malformed response * @throws RuntimeException for malformed response
*/ */
protected List<String> getPropertyValues(JSONObject result, String propertyName) protected List<String> getPropertyValues(
{ JSONObject result,
String propertyName
) {
ArrayList<String> results = new ArrayList<>(); ArrayList<String> results = new ArrayList<>();
try try {
{
JSONArray items = result.getJSONArray("items"); JSONArray items = result.getJSONArray("items");
for (int i = 0; i < items.length(); i++) for (int i = 0; i < items.length(); i++) {
{
results.add(items.getJSONObject(i).getString(propertyName)); results.add(items.getJSONObject(i).getString(propertyName));
} }
} } catch (JSONException error) {
catch (JSONException error)
{
throw new RuntimeException("Unable to parse result", error); throw new RuntimeException("Unable to parse result", error);
} }
@@ -124,35 +127,36 @@ public abstract class BaseAPI
/** /**
* Helper method to extract the property value for the given nodeRef and property name * Helper method to extract the property value for the given nodeRef and property name
* *
* @param result * @param result
* @param nodeRef * @param nodeRef
* @param propertyName * @param propertyName
* @return * @return
*/ */
protected String getPropertyValue(JSONObject result, String nodeRef, String propertyName) protected String getPropertyValue(
{ JSONObject result,
String nodeRef,
String propertyName
) {
String propertyValue = ""; String propertyValue = "";
try try {
{
JSONArray items = result.getJSONArray("items"); JSONArray items = result.getJSONArray("items");
for (int i = 0; i < items.length(); i++) for (int i = 0; i < items.length(); i++) {
{
JSONObject item = items.getJSONObject(i); JSONObject item = items.getJSONObject(i);
if(nodeRef.equals(item.getString("nodeRef"))) if (nodeRef.equals(item.getString("nodeRef"))) {
{ propertyValue =
propertyValue = item.getJSONObject("properties").getString(propertyName); item
.getJSONObject("properties")
.getString(propertyName);
} }
} }
} } catch (JSONException error) {
catch (JSONException error)
{
throw new RuntimeException("Unable to parse result", error); throw new RuntimeException("Unable to parse result", error);
} }
return propertyValue; return propertyValue;
} }
/** /**
* Helper method to extract property values from request result and put them in map as a list that corresponds to a unique property value. * Helper method to extract property values from request result and put them in map as a list that corresponds to a unique property value.
* *
@@ -160,26 +164,32 @@ public abstract class BaseAPI
* @return a map containing information about multiple properties values that correspond to a unique one * @return a map containing information about multiple properties values that correspond to a unique one
* @throws RuntimeException for malformed response * @throws RuntimeException for malformed response
*/ */
protected Map<String, List<String>> getPropertyValuesByUniquePropertyValue(JSONObject requestResult, String uniqueProperty, List<String> otherProperties) protected Map<String, List<String>> getPropertyValuesByUniquePropertyValue(
{ JSONObject requestResult,
String uniqueProperty,
List<String> otherProperties
) {
Map<String, List<String>> valuesByUniqueProperty = new HashMap<>(); Map<String, List<String>> valuesByUniqueProperty = new HashMap<>();
try try {
{
JSONArray items = requestResult.getJSONArray("items"); JSONArray items = requestResult.getJSONArray("items");
for (int i = 0; i < items.length(); i++) for (int i = 0; i < items.length(); i++) {
{
List<String> otherPropertiesValues = new ArrayList<>(); List<String> otherPropertiesValues = new ArrayList<>();
for (int j = 0; j < otherProperties.size(); j++) for (int j = 0; j < otherProperties.size(); j++) {
{ otherPropertiesValues.add(
otherPropertiesValues.add(items.getJSONObject(i).get(otherProperties.get(j)).toString()); items
.getJSONObject(i)
.get(otherProperties.get(j))
.toString()
);
} }
valuesByUniqueProperty.put(items.getJSONObject(i).getString(uniqueProperty), otherPropertiesValues); valuesByUniqueProperty.put(
items.getJSONObject(i).getString(uniqueProperty),
otherPropertiesValues
);
} }
} } catch (JSONException error) {
catch (JSONException error)
{
throw new RuntimeException("Unable to parse result", error); throw new RuntimeException("Unable to parse result", error);
} }
@@ -196,9 +206,16 @@ public abstract class BaseAPI
* when trying to get File Plan, the path would be "" * when trying to get File Plan, the path would be ""
* @return the container nodeRef * @return the container nodeRef
*/ */
public String getItemNodeRef(String username, String password, String path) public String getItemNodeRef(
{ String username,
return contentService.getNodeRefByPath(username, password, FILE_PLAN_PATH + path); String password,
String path
) {
return contentService.getNodeRefByPath(
username,
password,
FILE_PLAN_PATH + path
);
} }
/** /**
@@ -209,14 +226,18 @@ public abstract class BaseAPI
* @param path the object path * @param path the object path
* @return the object in case it exists, null if its does not exist * @return the object in case it exists, null if its does not exist
*/ */
protected CmisObject getObjectByPath(String username, String password, String path) protected CmisObject getObjectByPath(
{ String username,
String password,
String path
) {
CmisObject object; CmisObject object;
try try {
{ object =
object = contentService.getCMISSession(username, password).getObjectByPath(path); contentService
} catch (CmisObjectNotFoundException notFoundError) .getCMISSession(username, password)
{ .getObjectByPath(path);
} catch (CmisObjectNotFoundException notFoundError) {
return null; return null;
} }
return object; return object;
@@ -230,23 +251,25 @@ public abstract class BaseAPI
* @param parameters if the request has parameters * @param parameters if the request has parameters
* @return result object (see API reference for more details), null for any errors * @return result object (see API reference for more details), null for any errors
*/ */
protected JSONObject facetedRequest(String username, String password, List<NameValuePair> parameters, String requestURI) protected JSONObject facetedRequest(
{ String username,
String password,
List<NameValuePair> parameters,
String requestURI
) {
String requestURL; String requestURL;
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
if (parameters == null || parameters.isEmpty()) if (parameters == null || parameters.isEmpty()) {
{ requestURL =
requestURL = MessageFormat.format( MessageFormat.format(requestURI, client.getAlfrescoUrl());
requestURI, } else {
client.getAlfrescoUrl()); requestURL =
} MessageFormat.format(
else
{
requestURL = MessageFormat.format(
requestURI, requestURI,
client.getAlfrescoUrl(), client.getAlfrescoUrl(),
URLEncodedUtils.format(parameters, "UTF-8")); URLEncodedUtils.format(parameters, "UTF-8")
);
} }
LOGGER.info("On GET {}, received following response: ", requestURL); LOGGER.info("On GET {}, received following response: ", requestURL);
client.close(); client.close();
@@ -260,24 +283,29 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected JSONObject doGetRequest(String adminUser, protected JSONObject doGetRequest(
String adminUser,
String adminPassword, String adminPassword,
String urlTemplate, String urlTemplate,
String ... urlTemplateParams) String... urlTemplateParams
{ ) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
String requestUrl = MessageFormat.format( String requestUrl = MessageFormat.format(
urlTemplate, urlTemplate,
client.getApiUrl(), client.getApiUrl(),
urlTemplateParams); urlTemplateParams
);
client.close(); client.close();
try try {
{ return doRequest(
return doRequest(HttpGet.class, requestUrl, adminUser, adminPassword, null); HttpGet.class,
} requestUrl,
catch (InstantiationException | IllegalAccessException error) adminUser,
{ adminPassword,
null
);
} catch (InstantiationException | IllegalAccessException error) {
throw new IllegalArgumentException("doGetRequest failed", error); throw new IllegalArgumentException("doGetRequest failed", error);
} }
} }
@@ -289,24 +317,29 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected JSONObject doDeleteRequest(String adminUser, protected JSONObject doDeleteRequest(
String adminUser,
String adminPassword, String adminPassword,
String urlTemplate, String urlTemplate,
String ... urlTemplateParams) String... urlTemplateParams
{ ) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
String requestUrl = MessageFormat.format( String requestUrl = MessageFormat.format(
urlTemplate, urlTemplate,
client.getApiUrl(), client.getApiUrl(),
urlTemplateParams); urlTemplateParams
);
client.close(); client.close();
try try {
{ return doRequest(
return doRequest(HttpDelete.class, requestUrl, adminUser, adminPassword, null); HttpDelete.class,
} requestUrl,
catch (InstantiationException | IllegalAccessException error) adminUser,
{ adminPassword,
null
);
} catch (InstantiationException | IllegalAccessException error) {
throw new IllegalArgumentException("doDeleteRequest failed", error); throw new IllegalArgumentException("doDeleteRequest failed", error);
} }
} }
@@ -319,25 +352,30 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected JSONObject doPutRequest(String adminUser, protected JSONObject doPutRequest(
String adminUser,
String adminPassword, String adminPassword,
JSONObject requestParams, JSONObject requestParams,
String urlTemplate, String urlTemplate,
String ... urlTemplateParams) String... urlTemplateParams
{ ) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
String requestUrl = MessageFormat.format( String requestUrl = MessageFormat.format(
urlTemplate, urlTemplate,
client.getApiUrl(), client.getApiUrl(),
urlTemplateParams); urlTemplateParams
);
client.close(); client.close();
try try {
{ return doRequest(
return doRequest(HttpPut.class, requestUrl, adminUser, adminPassword, requestParams); HttpPut.class,
} requestUrl,
catch (InstantiationException | IllegalAccessException error) adminUser,
{ adminPassword,
requestParams
);
} catch (InstantiationException | IllegalAccessException error) {
throw new IllegalArgumentException("doPutRequest failed", error); throw new IllegalArgumentException("doPutRequest failed", error);
} }
} }
@@ -352,15 +390,24 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected HttpResponse doPutJsonRequest(String adminUser, protected HttpResponse doPutJsonRequest(
String adminPassword, String adminUser,
int expectedStatusCode, String adminPassword,
JSONObject requestParams, int expectedStatusCode,
String urlTemplate, JSONObject requestParams,
String... urlTemplateParams) String urlTemplate,
{ String... urlTemplateParams
) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
return doPutJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getApiUrl(), requestParams, urlTemplate, urlTemplateParams); return doPutJsonRequest(
adminUser,
adminPassword,
expectedStatusCode,
client.getApiUrl(),
requestParams,
urlTemplate,
urlTemplateParams
);
} }
/** /**
@@ -375,23 +422,35 @@ public abstract class BaseAPI
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
* @throws AssertionError if the returned status code is not as expected. * @throws AssertionError if the returned status code is not as expected.
*/ */
private HttpResponse doPutJsonRequest(String adminUser, private HttpResponse doPutJsonRequest(
String adminPassword, String adminUser,
int expectedStatusCode, String adminPassword,
String urlStart, int expectedStatusCode,
JSONObject requestParams, String urlStart,
String urlTemplate, JSONObject requestParams,
String... urlTemplateParams) String urlTemplate,
{ String... urlTemplateParams
String requestUrl = formatRequestUrl(urlStart, urlTemplate, urlTemplateParams); ) {
try String requestUrl = formatRequestUrl(
{ urlStart,
HttpResponse httpResponse = doRequestJson(HttpPut.class, requestUrl, adminUser, adminPassword, requestParams); urlTemplate,
assertEquals("PUT request to " + requestUrl + " was not successful.", expectedStatusCode, httpResponse.getStatusLine().getStatusCode()); urlTemplateParams
);
try {
HttpResponse httpResponse = doRequestJson(
HttpPut.class,
requestUrl,
adminUser,
adminPassword,
requestParams
);
assertEquals(
"PUT request to " + requestUrl + " was not successful.",
expectedStatusCode,
httpResponse.getStatusLine().getStatusCode()
);
return httpResponse; return httpResponse;
} } catch (InstantiationException | IllegalAccessException error) {
catch (InstantiationException | IllegalAccessException error)
{
throw new IllegalArgumentException("doPutRequest failed", error); throw new IllegalArgumentException("doPutRequest failed", error);
} }
} }
@@ -404,12 +463,18 @@ public abstract class BaseAPI
* @param urlTemplateParams Any parameters that need to be filled into the URL template. * @param urlTemplateParams Any parameters that need to be filled into the URL template.
* @return The resultant URL. * @return The resultant URL.
*/ */
private String formatRequestUrl(String urlStart, String urlTemplate, String[] urlTemplateParams) private String formatRequestUrl(
{ String urlStart,
if (urlTemplateParams.length == 1) String urlTemplate,
{ String[] urlTemplateParams
) {
if (urlTemplateParams.length == 1) {
// The format method needs some help to know not to use the whole array object. // The format method needs some help to know not to use the whole array object.
return MessageFormat.format(urlTemplate, urlStart, urlTemplateParams[0]); return MessageFormat.format(
urlTemplate,
urlStart,
urlTemplateParams[0]
);
} }
return MessageFormat.format(urlTemplate, urlStart, urlTemplateParams); return MessageFormat.format(urlTemplate, urlStart, urlTemplateParams);
} }
@@ -422,25 +487,30 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected JSONObject doPostRequest(String adminUser, protected JSONObject doPostRequest(
String adminUser,
String adminPassword, String adminPassword,
JSONObject requestParams, JSONObject requestParams,
String urlTemplate, String urlTemplate,
String ... urlTemplateParams) String... urlTemplateParams
{ ) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
String requestUrl = MessageFormat.format( String requestUrl = MessageFormat.format(
urlTemplate, urlTemplate,
client.getApiUrl(), client.getApiUrl(),
urlTemplateParams); urlTemplateParams
);
client.close(); client.close();
try try {
{ return doRequest(
return doRequest(HttpPost.class, requestUrl, adminUser, adminPassword, requestParams); HttpPost.class,
} requestUrl,
catch (InstantiationException | IllegalAccessException error) adminUser,
{ adminPassword,
requestParams
);
} catch (InstantiationException | IllegalAccessException error) {
throw new IllegalArgumentException("doPostRequest failed", error); throw new IllegalArgumentException("doPostRequest failed", error);
} }
} }
@@ -455,15 +525,24 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected HttpResponse doPostJsonRequest(String adminUser, protected HttpResponse doPostJsonRequest(
String adminPassword, String adminUser,
int expectedStatusCode, String adminPassword,
JSONObject requestParams, int expectedStatusCode,
String urlTemplate, JSONObject requestParams,
String... urlTemplateParams) String urlTemplate,
{ String... urlTemplateParams
) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
return doPostJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getApiUrl(), requestParams, urlTemplate, urlTemplateParams); return doPostJsonRequest(
adminUser,
adminPassword,
expectedStatusCode,
client.getApiUrl(),
requestParams,
urlTemplate,
urlTemplateParams
);
} }
/** /**
@@ -476,15 +555,24 @@ public abstract class BaseAPI
* @param urlTemplate request URL template * @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/ */
protected HttpResponse doSlingshotPostJsonRequest(String adminUser, protected HttpResponse doSlingshotPostJsonRequest(
String adminPassword, String adminUser,
int expectedStatusCode, String adminPassword,
JSONObject requestParams, int expectedStatusCode,
String urlTemplate, JSONObject requestParams,
String... urlTemplateParams) String urlTemplate,
{ String... urlTemplateParams
) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
return doPostJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getAlfrescoUrl() + SLINGSHOT_PREFIX, requestParams, urlTemplate, urlTemplateParams); return doPostJsonRequest(
adminUser,
adminPassword,
expectedStatusCode,
client.getAlfrescoUrl() + SLINGSHOT_PREFIX,
requestParams,
urlTemplate,
urlTemplateParams
);
} }
/** /**
@@ -499,24 +587,32 @@ public abstract class BaseAPI
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i> * @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
* @throws AssertionError if the returned status code is not as expected. * @throws AssertionError if the returned status code is not as expected.
*/ */
private HttpResponse doPostJsonRequest(String adminUser, private HttpResponse doPostJsonRequest(
String adminPassword, String adminUser,
int expectedStatusCode, String adminPassword,
String urlStart, int expectedStatusCode,
JSONObject requestParams, String urlStart,
String urlTemplate, JSONObject requestParams,
String... urlTemplateParams) String urlTemplate,
{ String... urlTemplateParams
) {
String requestUrl; String requestUrl;
requestUrl = formatRequestUrl(urlStart, urlTemplate, urlTemplateParams); requestUrl = formatRequestUrl(urlStart, urlTemplate, urlTemplateParams);
try try {
{ HttpResponse httpResponse = doRequestJson(
HttpResponse httpResponse = doRequestJson(HttpPost.class, requestUrl, adminUser, adminPassword, requestParams); HttpPost.class,
assertEquals("POST request to " + requestUrl + " was not successful.", expectedStatusCode, httpResponse.getStatusLine().getStatusCode()); requestUrl,
adminUser,
adminPassword,
requestParams
);
assertEquals(
"POST request to " + requestUrl + " was not successful.",
expectedStatusCode,
httpResponse.getStatusLine().getStatusCode()
);
return httpResponse; return httpResponse;
} } catch (InstantiationException | IllegalAccessException error) {
catch (InstantiationException | IllegalAccessException error)
{
throw new IllegalArgumentException("doPostRequest failed", error); throw new IllegalArgumentException("doPostRequest failed", error);
} }
} }
@@ -537,84 +633,95 @@ public abstract class BaseAPI
String requestUrl, String requestUrl,
String adminUser, String adminUser,
String adminPassword, String adminPassword,
JSONObject requestParams) throws InstantiationException, IllegalAccessException JSONObject requestParams
{ ) throws InstantiationException, IllegalAccessException {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
T request = requestType.newInstance(); T request = requestType.newInstance();
JSONObject responseBody = null; JSONObject responseBody = null;
JSONObject returnValues = null; JSONObject returnValues = null;
try try {
{
request.setURI(new URI(requestUrl)); request.setURI(new URI(requestUrl));
if (requestParams != null && request instanceof HttpEntityEnclosingRequestBase) if (
{ requestParams != null &&
((HttpEntityEnclosingRequestBase) request).setEntity(new StringEntity(requestParams.toString())); request instanceof HttpEntityEnclosingRequestBase
) {
((HttpEntityEnclosingRequestBase) request).setEntity(
new StringEntity(requestParams.toString())
);
} }
LOGGER.info("Sending {} request to {}", requestType.getSimpleName(), requestUrl); LOGGER.info(
"Sending {} request to {}",
requestType.getSimpleName(),
requestUrl
);
LOGGER.info("Request body: {}", requestParams); LOGGER.info("Request body: {}", requestParams);
HttpResponse response = client.execute(adminUser, adminPassword, request); HttpResponse response = client.execute(
adminUser,
adminPassword,
request
);
LOGGER.info("Response: {}", response.getStatusLine()); LOGGER.info("Response: {}", response.getStatusLine());
try try {
{ responseBody =
responseBody = new JSONObject(EntityUtils.toString(response.getEntity())); new JSONObject(EntityUtils.toString(response.getEntity()));
} } catch (JSONException error) {
catch (JSONException error) LOGGER.error(
{ "Converting message body to JSON failed. Body: {}",
LOGGER.error("Converting message body to JSON failed. Body: {}", responseBody, error); responseBody,
} error
catch (ParseException | IOException error) );
{ } catch (ParseException | IOException error) {
LOGGER.error("Parsing message body failed.", error); LOGGER.error("Parsing message body failed.", error);
} }
switch (response.getStatusLine().getStatusCode()) switch (response.getStatusLine().getStatusCode()) {
{
case HttpStatus.SC_OK: case HttpStatus.SC_OK:
case HttpStatus.SC_CREATED: case HttpStatus.SC_CREATED:
// request successful // request successful
if (responseBody != null) if (responseBody != null) {
{
returnValues = responseBody; returnValues = responseBody;
} }
break; break;
case HttpStatus.SC_INTERNAL_SERVER_ERROR: case HttpStatus.SC_INTERNAL_SERVER_ERROR:
if (responseBody != null && responseBody.has(EXCEPTION_KEY)) if (
{ responseBody != null && responseBody.has(EXCEPTION_KEY)
LOGGER.error("Request failed with error message: {}", responseBody.getString(MESSAGE_KEY)); ) {
LOGGER.error(
"Request failed with error message: {}",
responseBody.getString(MESSAGE_KEY)
);
returnValues = responseBody; returnValues = responseBody;
} }
break; break;
case HttpStatus.SC_BAD_REQUEST: case HttpStatus.SC_BAD_REQUEST:
case HttpStatus.SC_UNPROCESSABLE_ENTITY: case HttpStatus.SC_UNPROCESSABLE_ENTITY:
if (responseBody != null && responseBody.has(EXCEPTION_KEY)) if (
{ responseBody != null && responseBody.has(EXCEPTION_KEY)
LOGGER.error("Request failed: {}", responseBody.getString(EXCEPTION_KEY)); ) {
LOGGER.error(
"Request failed: {}",
responseBody.getString(EXCEPTION_KEY)
);
returnValues = responseBody; returnValues = responseBody;
} }
break; break;
default: default:
LOGGER.error("Request returned unexpected HTTP status {}", response.getStatusLine().getStatusCode()); LOGGER.error(
"Request returned unexpected HTTP status {}",
response.getStatusLine().getStatusCode()
);
break; break;
} }
} } catch (JSONException error) {
catch (JSONException error)
{
LOGGER.error("Unable to extract response parameter", error); LOGGER.error("Unable to extract response parameter", error);
} } catch (UnsupportedEncodingException | URISyntaxException error1) {
catch (UnsupportedEncodingException | URISyntaxException error1)
{
LOGGER.error("Unable to construct request", error1); LOGGER.error("Unable to construct request", error1);
} } finally {
finally if (request != null) {
{
if (request != null)
{
request.releaseConnection(); request.releaseConnection();
} }
client.close(); client.close();
@@ -624,39 +731,45 @@ public abstract class BaseAPI
} }
private <T extends HttpRequestBase> HttpResponse doRequestJson( private <T extends HttpRequestBase> HttpResponse doRequestJson(
Class<T> requestType, Class<T> requestType,
String requestUrl, String requestUrl,
String adminUser, String adminUser,
String adminPassword, String adminPassword,
JSONObject requestParams) throws InstantiationException, IllegalAccessException JSONObject requestParams
{ ) throws InstantiationException, IllegalAccessException {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
T request = requestType.newInstance(); T request = requestType.newInstance();
try try {
{
request.setURI(new URI(requestUrl)); request.setURI(new URI(requestUrl));
request.setHeader("Content-Type", "application/json"); request.setHeader("Content-Type", "application/json");
if (requestParams != null && request instanceof HttpEntityEnclosingRequestBase) if (
{ requestParams != null &&
((HttpEntityEnclosingRequestBase) request).setEntity(new StringEntity(requestParams.toString())); request instanceof HttpEntityEnclosingRequestBase
) {
((HttpEntityEnclosingRequestBase) request).setEntity(
new StringEntity(requestParams.toString())
);
} }
LOGGER.info("Sending {} request to {}", requestType.getSimpleName(), requestUrl); LOGGER.info(
"Sending {} request to {}",
requestType.getSimpleName(),
requestUrl
);
LOGGER.info("Request body: {}", requestParams); LOGGER.info("Request body: {}", requestParams);
HttpResponse httpResponse = client.execute(adminUser, adminPassword, request); HttpResponse httpResponse = client.execute(
adminUser,
adminPassword,
request
);
LOGGER.info("Response: {}", httpResponse.getStatusLine()); LOGGER.info("Response: {}", httpResponse.getStatusLine());
return httpResponse; return httpResponse;
} } catch (UnsupportedEncodingException | URISyntaxException error1) {
catch (UnsupportedEncodingException | URISyntaxException error1)
{
LOGGER.error("Unable to construct request", error1); LOGGER.error("Unable to construct request", error1);
} } finally {
finally if (request != null) {
{
if (request != null)
{
request.releaseConnection(); request.releaseConnection();
} }
client.close(); client.close();
@@ -669,8 +782,7 @@ public abstract class BaseAPI
* Used to set RM items properties * Used to set RM items properties
* including records, categories and folders * including records, categories and folders
*/ */
public enum RMProperty public enum RMProperty {
{
NAME, NAME,
TITLE, TITLE,
CONTENT, CONTENT,
@@ -684,11 +796,10 @@ public abstract class BaseAPI
FILE, FILE,
ORIGINATOR, ORIGINATOR,
ORIGINATING_ORGANIZATION, ORIGINATING_ORGANIZATION,
PUBLICATION_DATE PUBLICATION_DATE,
} }
public enum RETENTION_SCHEDULE public enum RETENTION_SCHEDULE {
{
NAME, NAME,
DESCRIPTION, DESCRIPTION,
RETENTION_AUTHORITY, RETENTION_AUTHORITY,
@@ -699,14 +810,13 @@ public abstract class BaseAPI
RETENTION_GHOST, RETENTION_GHOST,
RETENTION_ELIGIBLE_FIRST_EVENT, RETENTION_ELIGIBLE_FIRST_EVENT,
RETENTION_EVENTS, RETENTION_EVENTS,
COMBINE_DISPOSITION_STEP_CONDITIONS COMBINE_DISPOSITION_STEP_CONDITIONS,
} }
/** /**
* Used to execute rm actions on a node * Used to execute rm actions on a node
*/ */
public enum RM_ACTIONS public enum RM_ACTIONS {
{
EDIT_DISPOSITION_DATE("editDispositionActionAsOfDate"), EDIT_DISPOSITION_DATE("editDispositionActionAsOfDate"),
END_RETENTION("retain"), END_RETENTION("retain"),
CUT_OFF("cutoff"), CUT_OFF("cutoff"),
@@ -715,21 +825,19 @@ public abstract class BaseAPI
COMPLETE_EVENT("completeEvent"), COMPLETE_EVENT("completeEvent"),
UNDO_EVENT("undoEvent"), UNDO_EVENT("undoEvent"),
DESTROY("destroy"); DESTROY("destroy");
String action; String action;
private RM_ACTIONS(String action) private RM_ACTIONS(String action) {
{
this.action = action; this.action = action;
} }
public String getAction() public String getAction() {
{
return action; return action;
} }
} }
public enum PermissionType public enum PermissionType {
{
SET_READ, SET_READ,
REMOVE_READ, REMOVE_READ,
SET_READ_AND_FILE, SET_READ_AND_FILE,
@@ -743,11 +851,12 @@ public abstract class BaseAPI
* @param property to get value for * @param property to get value for
* @return the property value * @return the property value
*/ */
public <K extends Enum<?>> String getPropertyValue(Map<K, String> properties, Enum<?> property) public <K extends Enum<?>> String getPropertyValue(
{ Map<K, String> properties,
Enum<?> property
) {
String value = properties.get(property); String value = properties.get(property);
if (value == null) if (value == null) {
{
return ""; return "";
} }
return value; return value;
@@ -762,12 +871,15 @@ public abstract class BaseAPI
* @param property the property in the property map to check value for * @param property the property in the property map to check value for
* @return the json object used in request with the property with its value added if that is not null or empty * @return the json object used in request with the property with its value added if that is not null or empty
*/ */
protected <K extends Enum<?>> JSONObject addPropertyToRequest(JSONObject requestParams, String propertyRequestValue, Map<K, String> itemProperties, Enum<?> property) throws JSONException protected <K extends Enum<?>> JSONObject addPropertyToRequest(
{ JSONObject requestParams,
String propertyRequestValue,
Map<K, String> itemProperties,
Enum<?> property
) throws JSONException {
String propertyValue = getPropertyValue(itemProperties, property); String propertyValue = getPropertyValue(itemProperties, property);
if (!propertyValue.equals("")) if (!propertyValue.equals("")) {
{
requestParams.put(propertyRequestValue, propertyValue); requestParams.put(propertyRequestValue, propertyValue);
} }
return requestParams; return requestParams;
@@ -783,14 +895,23 @@ public abstract class BaseAPI
* in case of a record /categoryName/folderName/recordName * in case of a record /categoryName/folderName/recordName
* @throws AssertionError if the delete was not successful. * @throws AssertionError if the delete was not successful.
*/ */
protected void deleteItem(String username, String password, String itemPath) protected void deleteItem(
{ String username,
CmisObject container = getObjectByPath(username, password, FILE_PLAN_PATH + itemPath); String password,
if (container != null) String itemPath
{ ) {
CmisObject container = getObjectByPath(
username,
password,
FILE_PLAN_PATH + itemPath
);
if (container != null) {
container.delete(); container.delete();
} }
assertNull("Could not delete " + itemPath, getObjectByPath(username, password, itemPath)); assertNull(
"Could not delete " + itemPath,
getObjectByPath(username, password, itemPath)
);
} }
/** /**
@@ -798,8 +919,7 @@ public abstract class BaseAPI
* *
* @return node ref spaces store * @return node ref spaces store
*/ */
public static String getNodeRefSpacesStore() public static String getNodeRefSpacesStore() {
{
return NODE_REF_WORKSPACE_SPACES_STORE; return NODE_REF_WORKSPACE_SPACES_STORE;
} }
@@ -808,8 +928,7 @@ public abstract class BaseAPI
* *
* @return the File Plan path * @return the File Plan path
*/ */
public static String getFilePlanPath() public static String getFilePlanPath() {
{
return FILE_PLAN_PATH; return FILE_PLAN_PATH;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,24 +26,24 @@
*/ */
package org.alfresco.rest.core.v0; package org.alfresco.rest.core.v0;
public enum RMEvents public enum RMEvents {
{
ABOLISHED("abolished"), ABOLISHED("abolished"),
ALL_ALLOWANCES_GRANTED_ARE_TERMINATED("all_allowances_granted_are_terminated"), ALL_ALLOWANCES_GRANTED_ARE_TERMINATED(
"all_allowances_granted_are_terminated"
),
CASE_CLOSED("case_closed"), CASE_CLOSED("case_closed"),
DECLASSIFICATION_REVIEW("declassification_review"), DECLASSIFICATION_REVIEW("declassification_review"),
OBSOLETE("obsolete"), OBSOLETE("obsolete"),
NO_LONGER_NEEDED("no_longer_needed"), NO_LONGER_NEEDED("no_longer_needed"),
STUDY_COMPLETE("study_complete"); STUDY_COMPLETE("study_complete");
private String eventName; private String eventName;
RMEvents(String eventName) RMEvents(String eventName) {
{
this.eventName = eventName; this.eventName = eventName;
} }
public String getEventName() public String getEventName() {
{
return eventName; return eventName;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,11 +26,9 @@
*/ */
package org.alfresco.rest.rm.community.model.audit; package org.alfresco.rest.rm.community.model.audit;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -47,43 +45,42 @@ import org.alfresco.utility.model.TestModel;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class AuditEntry extends TestModel public class AuditEntry extends TestModel {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeName; private String nodeName;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<Object> changedValues; private List<Object> changedValues;
@JsonProperty (required = true) @JsonProperty(required = true)
private String identifier; private String identifier;
@JsonProperty (required = true) @JsonProperty(required = true)
private String path; private String path;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeRef; private String nodeRef;
@JsonProperty (required = true) @JsonProperty(required = true)
private String fullName; private String fullName;
@JsonProperty @JsonProperty
private String createPerson; private String createPerson;
@JsonProperty (required = true) @JsonProperty(required = true)
private String userName; private String userName;
@JsonProperty (required = true) @JsonProperty(required = true)
private String userRole; private String userRole;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String event; private String event;
@JsonProperty (required = true) @JsonProperty(required = true)
private String timestamp; private String timestamp;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -33,8 +33,7 @@ package org.alfresco.rest.rm.community.model.audit;
* @since 2.7 * @since 2.7
* *
*/ */
public enum AuditEvents public enum AuditEvents {
{
CREATE_PERSON("Create Person", "Create User"), CREATE_PERSON("Create Person", "Create User"),
DELETE_PERSON("Delete Person", "Delete User"), DELETE_PERSON("Delete Person", "Delete User"),
CREATE_USER_GROUP("Create User Group", "Create User Group"), CREATE_USER_GROUP("Create User Group", "Create User Group"),
@@ -54,8 +53,7 @@ public enum AuditEvents
/** display name for the event audited */ /** display name for the event audited */
public final String eventDisplayName; public final String eventDisplayName;
AuditEvents(String event, String displayName) AuditEvents(String event, String displayName) {
{
this.event = event; this.event = event;
this.eventDisplayName = displayName; this.eventDisplayName = displayName;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,10 +26,8 @@
*/ */
package org.alfresco.rest.rm.community.model.common; package org.alfresco.rest.rm.community.model.common;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -45,17 +43,17 @@ import lombok.NoArgsConstructor;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class IdNamePair public class IdNamePair {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.rm.community.model.common; package org.alfresco.rest.rm.community.model.common;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -44,8 +43,5 @@ import org.alfresco.utility.model.TestModel;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
//@NoArgsConstructor //@NoArgsConstructor
//@AllArgsConstructor //@AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class Owner extends TestModel public class Owner extends TestModel {}
{
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,17 +26,14 @@
*/ */
package org.alfresco.rest.rm.community.model.common; package org.alfresco.rest.rm.community.model.common;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for path parameter * POJO for path parameter
@@ -49,14 +46,14 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class Path extends TestModel public class Path extends TestModel {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private Boolean isComplete; private Boolean isComplete;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<IdNamePair> elements; private List<IdNamePair> elements;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.rm.community.model.common; package org.alfresco.rest.rm.community.model.common;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -43,11 +42,11 @@ import lombok.NoArgsConstructor;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class ReviewPeriod public class ReviewPeriod {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String periodType; private String periodType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String expression; private String expression;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,12 +32,12 @@ package org.alfresco.rest.rm.community.model.custom;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public enum CustomDefinitions public enum CustomDefinitions {
{
ATTACHMENT("Attachment"), ATTACHMENT("Attachment"),
MESSAGE("Message"), MESSAGE("Message"),
NEXT_VERSION("Next Version"), NEXT_VERSION("Next Version"),
RENDITION("Rendition"); RENDITION("Rendition");
/** /**
* The name of custom reference. * The name of custom reference.
*/ */
@@ -46,8 +46,7 @@ public enum CustomDefinitions
/** /**
* Private constructor. * Private constructor.
*/ */
CustomDefinitions(String definition) CustomDefinitions(String definition) {
{
this.definition = definition; this.definition = definition;
} }
@@ -56,8 +55,7 @@ public enum CustomDefinitions
* *
* @return The value of custom reference. * @return The value of custom reference.
*/ */
public String getDefinition() public String getDefinition() {
{
return definition; return definition;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,19 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.model.fileplan; package org.alfresco.rest.rm.community.model.fileplan;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for file plan * POJO for file plan
@@ -52,40 +49,40 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class FilePlan extends TestModel public class FilePlan extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private FilePlanProperties properties; private FilePlanProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -34,14 +34,12 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for file plan properties * POJO for file plan properties
@@ -54,29 +52,29 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class FilePlanProperties extends TestModel public class FilePlanProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_COMPONENT_ID) @JsonProperty(required = true, value = PROPERTIES_COMPONENT_ID)
private String componentd; private String componentd;
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
/************************/ /************************/
/** Optional parameters */ /** Optional parameters */
/************************/ /************************/
@JsonProperty (PROPERTIES_COUNT) @JsonProperty(PROPERTIES_COUNT)
private Integer count; private Integer count;
@JsonProperty (PROPERTIES_TITLE) @JsonProperty(PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (PROPERTIES_DESCRIPTION) @JsonProperty(PROPERTIES_DESCRIPTION)
private String description; private String description;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,8 +32,8 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class FilePlanComponentAlias public class FilePlanComponentAlias {
{
public static final String FILE_PLAN_ALIAS = "-filePlan-"; public static final String FILE_PLAN_ALIAS = "-filePlan-";
public static final String TRANSFERS_ALIAS = "-transfers-"; public static final String TRANSFERS_ALIAS = "-transfers-";
public static final String UNFILED_RECORDS_CONTAINER_ALIAS = "-unfiled-"; public static final String UNFILED_RECORDS_CONTAINER_ALIAS = "-unfiled-";

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,20 +32,19 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Kristijan Conkas * @author Kristijan Conkas
* @since 2.6 * @since 2.6
*/ */
public class FilePlanComponentAspects public class FilePlanComponentAspects {
{
/** Private constructor to prevent instantiation. */ /** Private constructor to prevent instantiation. */
private FilePlanComponentAspects() private FilePlanComponentAspects() {}
{
}
// aspect present on completed records // aspect present on completed records
public static final String ASPECTS_COMPLETED_RECORD = "rma:declaredRecord"; public static final String ASPECTS_COMPLETED_RECORD = "rma:declaredRecord";
// aspect present on record folders/categories with vital records // aspect present on record folders/categories with vital records
public static final String ASPECTS_VITAL_RECORD_DEFINITION= "rma:vitalRecordDefinition"; public static final String ASPECTS_VITAL_RECORD_DEFINITION =
"rma:vitalRecordDefinition";
// aspect present on vital records // aspect present on vital records
public static final String ASPECTS_VITAL_RECORD = "rma:vitalRecord"; public static final String ASPECTS_VITAL_RECORD = "rma:vitalRecord";
// Frozen aspect // Frozen aspect

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,8 +32,8 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class FilePlanComponentFields public class FilePlanComponentFields {
{
/** Common properties for file plans, record categories, record folders and records */ /** Common properties for file plans, record categories, record folders and records */
public static final String PROPERTIES_ROOT_NODE_REF = "rma:rootNodeRef"; public static final String PROPERTIES_ROOT_NODE_REF = "rma:rootNodeRef";
public static final String PROPERTIES_IDENTIFIER = "rma:identifier"; public static final String PROPERTIES_IDENTIFIER = "rma:identifier";
@@ -44,24 +44,35 @@ public class FilePlanComponentFields
public static final String PROPERTIES_DESCRIPTION = "cm:description"; public static final String PROPERTIES_DESCRIPTION = "cm:description";
/** Common properties for record categories and record folders **/ /** Common properties for record categories and record folders **/
public static final String PROPERTIES_VITAL_RECORD_INDICATOR = "rma:vitalRecordIndicator"; public static final String PROPERTIES_VITAL_RECORD_INDICATOR =
"rma:vitalRecordIndicator";
public static final String PROPERTIES_REVIEW_PERIOD = "rma:reviewPeriod"; public static final String PROPERTIES_REVIEW_PERIOD = "rma:reviewPeriod";
public static final String PROPERTIES_OWNER = "cm:owner"; public static final String PROPERTIES_OWNER = "cm:owner";
public static final String PROPERTIES_AUTHOR="cm:author"; public static final String PROPERTIES_AUTHOR = "cm:author";
/** Common properties for record folders and records */ /** Common properties for record folders and records */
public static final String PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE = "rma:recordSearchHasDispositionSchedule"; public static final String PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE =
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION = "rma:recordSearchDispositionPeriodExpression"; "rma:recordSearchHasDispositionSchedule";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY = "rma:recordSearchDispositionAuthority"; public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION =
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF = "rma:recordSearchDispositionActionAsOf"; "rma:recordSearchDispositionPeriodExpression";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD = "rma:recordSearchDispositionPeriod"; public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY =
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME = "rma:recordSearchDispositionActionName"; "rma:recordSearchDispositionAuthority";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE = "rma:recordSearchDispositionEventsEligible"; public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF =
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS = "rma:recordSearchDispositionInstructions"; "rma:recordSearchDispositionActionAsOf";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS = "rma:recordSearchDispositionEvents"; public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD =
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_BY = "rma:declassificationReviewCompletedBy"; "rma:recordSearchDispositionPeriod";
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_AT = "rma:declassificationReviewCompletedAt"; public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME =
"rma:recordSearchDispositionActionName";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE =
"rma:recordSearchDispositionEventsEligible";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS =
"rma:recordSearchDispositionInstructions";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS =
"rma:recordSearchDispositionEvents";
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_BY =
"rma:declassificationReviewCompletedBy";
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_AT =
"rma:declassificationReviewCompletedAt";
/** File plan properties */ /** File plan properties */
public static final String PROPERTIES_COMPONENT_ID = "st:componentId"; public static final String PROPERTIES_COMPONENT_ID = "st:componentId";
@@ -72,10 +83,13 @@ public class FilePlanComponentFields
/** Record folder properties */ /** Record folder properties */
public static final String PROPERTIES_IS_CLOSED = "rma:isClosed"; // not to be confused with IS_CLOSED! public static final String PROPERTIES_IS_CLOSED = "rma:isClosed"; // not to be confused with IS_CLOSED!
public static final String PROPERTIES_HELD_CHILDREN_COUNT = "rma:heldChildrenCount"; public static final String PROPERTIES_HELD_CHILDREN_COUNT =
"rma:heldChildrenCount";
public static final String PROPERTIES_LOCATION = "rma:location"; public static final String PROPERTIES_LOCATION = "rma:location";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD = "rma:recordSearchVitalRecordReviewPeriod"; public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD =
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = "rma:recordSearchVitalRecordReviewPeriodExpression"; "rma:recordSearchVitalRecordReviewPeriod";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION =
"rma:recordSearchVitalRecordReviewPeriodExpression";
/** /**
* Record properties * Record properties
@@ -88,39 +102,53 @@ public class FilePlanComponentFields
/** Electronic record properties */ /** Electronic record properties */
public static final String PROPERTIES_VERSION_TYPE = "cm:versionType"; public static final String PROPERTIES_VERSION_TYPE = "cm:versionType";
public static final String PROPERTIES_VERSION_LABEL = "cm:versionLabel"; public static final String PROPERTIES_VERSION_LABEL = "cm:versionLabel";
public static final String PROPERTIES_VERSIONED_NODEREF = "rmv:versionedNodeRef"; public static final String PROPERTIES_VERSIONED_NODEREF =
"rmv:versionedNodeRef";
public static final String PROPERTIES_RMV_VERSIONED = "rmv:versionLabel"; public static final String PROPERTIES_RMV_VERSIONED = "rmv:versionLabel";
public static final String PROPERTIES_DATE_TIME_ORIGINAL = "exif:dateTimeOriginal"; public static final String PROPERTIES_DATE_TIME_ORIGINAL =
"exif:dateTimeOriginal";
public static final String PROPERTIES_EXPOSURE_TIME = "exif:exposureTime"; public static final String PROPERTIES_EXPOSURE_TIME = "exif:exposureTime";
public static final String PROPERTIES_FLASH = "exif:flash"; public static final String PROPERTIES_FLASH = "exif:flash";
public static final String PROPERTIES_F_NUMBER = "exif:fNumber"; public static final String PROPERTIES_F_NUMBER = "exif:fNumber";
public static final String PROPERTIES_FOCAL_LENGTH = "exif:focalLength"; public static final String PROPERTIES_FOCAL_LENGTH = "exif:focalLength";
public static final String PROPERTIES_ISO_SPEED_RATINGS = "exif:isoSpeedRatings"; public static final String PROPERTIES_ISO_SPEED_RATINGS =
"exif:isoSpeedRatings";
public static final String PROPERTIES_MANUFACTURER = "exif:manufacturer"; public static final String PROPERTIES_MANUFACTURER = "exif:manufacturer";
public static final String PROPERTIES_MODEL = "exif:model"; public static final String PROPERTIES_MODEL = "exif:model";
public static final String PROPERTIES_ORIENTATION = "exif:orientation"; public static final String PROPERTIES_ORIENTATION = "exif:orientation";
public static final String PROPERTIES_PIXEL_X_DIMENSION = "exif:pixelXDimension"; public static final String PROPERTIES_PIXEL_X_DIMENSION =
public static final String PROPERTIES_PIXEL_Y_DIMENSION = "exif:pixelYDimension"; "exif:pixelXDimension";
public static final String PROPERTIES_RESOLUTION_UNIT = "exif:resolutionUnit"; public static final String PROPERTIES_PIXEL_Y_DIMENSION =
"exif:pixelYDimension";
public static final String PROPERTIES_RESOLUTION_UNIT =
"exif:resolutionUnit";
public static final String PROPERTIES_SOFTWARE = "exif:software"; public static final String PROPERTIES_SOFTWARE = "exif:software";
public static final String PROPERTIES_X_RESOLUTION = "exif:xResolution"; public static final String PROPERTIES_X_RESOLUTION = "exif:xResolution";
public static final String PROPERTIES_Y_RESOLUTION = "exif:yResolution"; public static final String PROPERTIES_Y_RESOLUTION = "exif:yResolution";
public static final String PROPERTIES_RECORD_ORIGINATING_LOCATION = "rma:recordOriginatingLocation"; public static final String PROPERTIES_RECORD_ORIGINATING_LOCATION =
public static final String PROPERTIES_RECORD_ORIGINATING_USER_ID = "rma:recordOriginatingUserId"; "rma:recordOriginatingLocation";
public static final String PROPERTIES_RECORD_ORIGINATING_CREATION_DATE = "rma:recordOriginatingCreationDate"; public static final String PROPERTIES_RECORD_ORIGINATING_USER_ID =
"rma:recordOriginatingUserId";
public static final String PROPERTIES_RECORD_ORIGINATING_CREATION_DATE =
"rma:recordOriginatingCreationDate";
/** Non-electronic record properties */ /** Non-electronic record properties */
public static final String PROPERTIES_SHELF = "rma:shelf"; public static final String PROPERTIES_SHELF = "rma:shelf";
public static final String PROPERTIES_STORAGE_LOCATION = "rma:storageLocation"; public static final String PROPERTIES_STORAGE_LOCATION =
"rma:storageLocation";
public static final String PROPERTIES_FILE = "rma:file"; public static final String PROPERTIES_FILE = "rma:file";
public static final String PROPERTIES_BOX = "rma:box"; public static final String PROPERTIES_BOX = "rma:box";
public static final String PROPERTIES_NUMBER_OF_COPIES = "rma:numberOfCopies"; public static final String PROPERTIES_NUMBER_OF_COPIES =
"rma:numberOfCopies";
public static final String PROPERTIES_PHYSICAL_SIZE = "rma:physicalSize"; public static final String PROPERTIES_PHYSICAL_SIZE = "rma:physicalSize";
/** Transfer properties */ /** Transfer properties */
public static final String PROPERTIES_PDF_INDICATOR = "rma:transferPDFIndicator"; public static final String PROPERTIES_PDF_INDICATOR =
public static final String PROPERTIES_TRANSFER_LOCATION = "rma:transferLocation"; "rma:transferPDFIndicator";
public static final String PROPERTIES_ACCESSION_INDICATOR = "rma:transferAccessionIndicator"; public static final String PROPERTIES_TRANSFER_LOCATION =
"rma:transferLocation";
public static final String PROPERTIES_ACCESSION_INDICATOR =
"rma:transferAccessionIndicator";
/** Parameters */ /** Parameters */
public static final String RELATIVE_PATH = "relativePath"; public static final String RELATIVE_PATH = "relativePath";
@@ -135,5 +163,6 @@ public class FilePlanComponentFields
/** CONTENT STORE property */ /** CONTENT STORE property */
public static final String PROPERTIES_STORE = "cm:storeName"; public static final String PROPERTIES_STORE = "cm:storeName";
/** WORM Unlock Date */ /** WORM Unlock Date */
public static final String PROPERTIES_WORM_UNLOCK_DATE = "rme:wormUnlockDate"; public static final String PROPERTIES_WORM_UNLOCK_DATE =
"rme:wormUnlockDate";
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,17 +32,21 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class FilePlanComponentType public class FilePlanComponentType {
{
public static final String FILE_PLAN_TYPE = "rma:filePlan"; public static final String FILE_PLAN_TYPE = "rma:filePlan";
public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory"; public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory";
public static final String RECORD_FOLDER_TYPE = "rma:recordFolder"; public static final String RECORD_FOLDER_TYPE = "rma:recordFolder";
public static final String RECORD_TYPE = "rma:record"; // generic record type public static final String RECORD_TYPE = "rma:record"; // generic record type
public static final String UNFILED_RECORD_FOLDER_TYPE = "rma:unfiledRecordFolder"; public static final String UNFILED_RECORD_FOLDER_TYPE =
"rma:unfiledRecordFolder";
public static final String TRANSFER_TYPE = "rma:transfer"; public static final String TRANSFER_TYPE = "rma:transfer";
public static final String TRANSFER_CONTAINER_TYPE = "rma:transferContainer"; public static final String TRANSFER_CONTAINER_TYPE =
public static final String UNFILED_CONTAINER_TYPE = "rma:unfiledRecordContainer"; "rma:transferContainer";
public static final String UNFILED_CONTAINER_TYPE =
"rma:unfiledRecordContainer";
public static final String FOLDER_TYPE = "cm:folder"; public static final String FOLDER_TYPE = "cm:folder";
public static final String CONTENT_TYPE = "cm:content"; public static final String CONTENT_TYPE = "cm:content";
public static final String NON_ELECTRONIC_RECORD_TYPE = "rma:nonElectronicDocument"; public static final String NON_ELECTRONIC_RECORD_TYPE =
"rma:nonElectronicDocument";
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -28,7 +28,6 @@ package org.alfresco.rest.rm.community.model.hold;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -45,12 +44,12 @@ import org.alfresco.utility.model.TestModel;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class HoldEntry extends TestModel public class HoldEntry extends TestModel {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeRef; private String nodeRef;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,10 +26,13 @@
*/ */
package org.alfresco.rest.rm.community.model.record; package org.alfresco.rest.rm.community.model.record;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.alfresco.rest.core.IRestModel; import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion; import org.alfresco.rest.core.assertion.ModelAssertion;
import org.alfresco.rest.model.RestByUserModel; import org.alfresco.rest.model.RestByUserModel;
@@ -37,12 +40,6 @@ import org.alfresco.rest.model.RestNodeModel;
import org.alfresco.rest.rm.community.model.common.Path; import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel; import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/** /**
* POJO for record * POJO for record
* *
@@ -54,35 +51,35 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class Record extends TestModel implements IRestModel<RestNodeModel> public class Record extends TestModel implements IRestModel<RestNodeModel> {
{
public final static String CONTENT_NODE_TYPE = "cm:content"; public static final String CONTENT_NODE_TYPE = "cm:content";
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
/************************/ /************************/
@@ -107,23 +104,20 @@ public class Record extends TestModel implements IRestModel<RestNodeModel>
private Path path; private Path path;
@Override @Override
public ModelAssertion<RestNodeModel> assertThat() public ModelAssertion<RestNodeModel> assertThat() {
{
return new ModelAssertion<>(this); return new ModelAssertion<>(this);
} }
@Override @Override
public ModelAssertion<RestNodeModel> and() public ModelAssertion<RestNodeModel> and() {
{
return assertThat(); return assertThat();
} }
@JsonProperty (value = "entry") @JsonProperty(value = "entry")
RestNodeModel model; RestNodeModel model;
@Override @Override
public RestNodeModel onModel() public RestNodeModel onModel() {
{
return model; return model;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,14 +27,12 @@
package org.alfresco.rest.rm.community.model.record; package org.alfresco.rest.rm.community.model.record;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for File records * POJO for File records
@@ -47,8 +45,8 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordBodyFile extends TestModel public class RecordBodyFile extends TestModel {
{
@JsonProperty @JsonProperty
private String targetParentId; private String targetParentId;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,14 +27,12 @@
package org.alfresco.rest.rm.community.model.record; package org.alfresco.rest.rm.community.model.record;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record content field * POJO for record content field
@@ -48,17 +46,17 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordContent extends TestModel public class RecordContent extends TestModel {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private String mimeType; private String mimeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String mimeTypeName; private String mimeTypeName;
@JsonProperty (required = true) @JsonProperty(required = true)
private Integer sizeInBytes; private Integer sizeInBytes;
@JsonProperty (required = true) @JsonProperty(required = true)
private String encoding; private String encoding;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -64,7 +64,6 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RESOLUTION_UNIT; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RESOLUTION_UNIT;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_REVIEW_AS_OF; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_REVIEW_AS_OF;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RMV_VERSIONED; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RMV_VERSIONED;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF;
@@ -80,12 +79,10 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_X_RESOLUTION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_X_RESOLUTION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_Y_RESOLUTION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_Y_RESOLUTION;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Date;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -106,165 +103,170 @@ import org.alfresco.utility.model.TestModel;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class RecordProperties extends TestModel public class RecordProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (required = true, value = PROPERTIES_DATE_FILED) @JsonProperty(required = true, value = PROPERTIES_DATE_FILED)
private String dateField; private String dateField;
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE) @JsonProperty(
required = true,
value = PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE
)
private Boolean recordSearchHasDispositionSchedule; private Boolean recordSearchHasDispositionSchedule;
@JsonProperty (required = true, value = PROPERTIES_ORIGINAL_NAME) @JsonProperty(required = true, value = PROPERTIES_ORIGINAL_NAME)
private String originalName; private String originalName;
@JsonProperty (PROPERTIES_CLASSIFICATION) @JsonProperty(PROPERTIES_CLASSIFICATION)
private List<String> classification; private List<String> classification;
/*********************************/ /*********************************/
/** Electronic record parameters */ /** Electronic record parameters */
/*********************************/ /*********************************/
@JsonProperty (PROPERTIES_VERSION_TYPE) @JsonProperty(PROPERTIES_VERSION_TYPE)
private String versionType; private String versionType;
@JsonProperty (PROPERTIES_VERSION_LABEL) @JsonProperty(PROPERTIES_VERSION_LABEL)
private String versionLabel; private String versionLabel;
@JsonProperty(PROPERTIES_VERSIONED_NODEREF) @JsonProperty(PROPERTIES_VERSIONED_NODEREF)
private String versionedNodeRef; private String versionedNodeRef;
@JsonProperty (PROPERTIES_RMV_VERSIONED) @JsonProperty(PROPERTIES_RMV_VERSIONED)
private String recordVersionLabel; private String recordVersionLabel;
@JsonProperty (PROPERTIES_DATE_TIME_ORIGINAL) @JsonProperty(PROPERTIES_DATE_TIME_ORIGINAL)
private String dateTimeOriginal; private String dateTimeOriginal;
@JsonProperty (PROPERTIES_EXPOSURE_TIME) @JsonProperty(PROPERTIES_EXPOSURE_TIME)
private Double exposureTime; private Double exposureTime;
@JsonProperty (PROPERTIES_FLASH) @JsonProperty(PROPERTIES_FLASH)
private Boolean flash; private Boolean flash;
@JsonProperty (PROPERTIES_F_NUMBER) @JsonProperty(PROPERTIES_F_NUMBER)
private Double fNumber; private Double fNumber;
@JsonProperty (PROPERTIES_FOCAL_LENGTH) @JsonProperty(PROPERTIES_FOCAL_LENGTH)
private Double focalLength; private Double focalLength;
@JsonProperty (PROPERTIES_ISO_SPEED_RATINGS) @JsonProperty(PROPERTIES_ISO_SPEED_RATINGS)
private Integer isoSpeedRatings; private Integer isoSpeedRatings;
@JsonProperty (PROPERTIES_MANUFACTURER) @JsonProperty(PROPERTIES_MANUFACTURER)
private String manufacturer; private String manufacturer;
@JsonProperty (PROPERTIES_MODEL) @JsonProperty(PROPERTIES_MODEL)
private String model; private String model;
@JsonProperty (PROPERTIES_ORIENTATION) @JsonProperty(PROPERTIES_ORIENTATION)
private Integer orientation; private Integer orientation;
@JsonProperty (PROPERTIES_PIXEL_X_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_X_DIMENSION)
private Integer pixelXDimension; private Integer pixelXDimension;
@JsonProperty (PROPERTIES_PIXEL_Y_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_Y_DIMENSION)
private Integer pixelYDimension; private Integer pixelYDimension;
@JsonProperty (PROPERTIES_RESOLUTION_UNIT) @JsonProperty(PROPERTIES_RESOLUTION_UNIT)
private String resolutionUnit; private String resolutionUnit;
@JsonProperty (PROPERTIES_SOFTWARE) @JsonProperty(PROPERTIES_SOFTWARE)
private String software; private String software;
@JsonProperty (PROPERTIES_X_RESOLUTION) @JsonProperty(PROPERTIES_X_RESOLUTION)
private Double xResolution; private Double xResolution;
@JsonProperty (PROPERTIES_Y_RESOLUTION) @JsonProperty(PROPERTIES_Y_RESOLUTION)
private Double yResolution; private Double yResolution;
@JsonProperty (PROPERTIES_RECORD_ORIGINATING_LOCATION) @JsonProperty(PROPERTIES_RECORD_ORIGINATING_LOCATION)
private String originatingLocation; private String originatingLocation;
@JsonProperty (PROPERTIES_RECORD_ORIGINATING_USER_ID) @JsonProperty(PROPERTIES_RECORD_ORIGINATING_USER_ID)
private String originatingUserId; private String originatingUserId;
@JsonProperty (PROPERTIES_RECORD_ORIGINATING_CREATION_DATE) @JsonProperty(PROPERTIES_RECORD_ORIGINATING_CREATION_DATE)
private String originatingCreationDate; private String originatingCreationDate;
/*************************************/ /*************************************/
/** Non-electronic record parameters */ /** Non-electronic record parameters */
/*************************************/ /*************************************/
@JsonProperty (PROPERTIES_TITLE) @JsonProperty(PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (PROPERTIES_SHELF) @JsonProperty(PROPERTIES_SHELF)
private String shelf; private String shelf;
@JsonProperty (PROPERTIES_STORAGE_LOCATION) @JsonProperty(PROPERTIES_STORAGE_LOCATION)
private String storageLocation; private String storageLocation;
@JsonProperty (PROPERTIES_FILE) @JsonProperty(PROPERTIES_FILE)
private String file; private String file;
@JsonProperty (PROPERTIES_BOX) @JsonProperty(PROPERTIES_BOX)
private String box; private String box;
@JsonProperty (PROPERTIES_DESCRIPTION) @JsonProperty(PROPERTIES_DESCRIPTION)
private String description; private String description;
@JsonProperty (PROPERTIES_NUMBER_OF_COPIES) @JsonProperty(PROPERTIES_NUMBER_OF_COPIES)
private Integer numberOfCopies; private Integer numberOfCopies;
@JsonProperty (PROPERTIES_PHYSICAL_SIZE) @JsonProperty(PROPERTIES_PHYSICAL_SIZE)
private Integer physicalSize; private Integer physicalSize;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
@JsonProperty(PROPERTIES_AUTHOR) @JsonProperty(PROPERTIES_AUTHOR)
private String author; private String author;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION)
private String recordSearchDispositionPeriodExpression; private String recordSearchDispositionPeriodExpression;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY)
private String recordSearchDispositionAuthority; private String recordSearchDispositionAuthority;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF)
private Date recordSearchDispositionActionAsOf; private Date recordSearchDispositionActionAsOf;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD)
private String recordSearchDispositionPeriod; private String recordSearchDispositionPeriod;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME)
private String recordSearchDispositionActionName; private String recordSearchDispositionActionName;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE)
private Boolean recordSearchDispositionEventsEligible; private Boolean recordSearchDispositionEventsEligible;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS)
private List<String> recordSearchDispositionEvents; private List<String> recordSearchDispositionEvents;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS)
private String recordSearchDispositionInstructions; private String recordSearchDispositionInstructions;
@JsonProperty (PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD) @JsonProperty(PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD)
private String recordSearchVitalRecordReviewPeriod; private String recordSearchVitalRecordReviewPeriod;
@JsonProperty (PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION) @JsonProperty(
PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION
)
private String recordSearchVitalRecordReviewPeriodExpression; private String recordSearchVitalRecordReviewPeriodExpression;
@JsonProperty(PROPERTIES_REVIEW_AS_OF) @JsonProperty(PROPERTIES_REVIEW_AS_OF)
private Date reviewAsOf; private Date reviewAsOf;
@JsonProperty (PROPERTIES_STORE) @JsonProperty(PROPERTIES_STORE)
private String store; private String store;
@JsonProperty(PROPERTIES_WORM_UNLOCK_DATE) @JsonProperty(PROPERTIES_WORM_UNLOCK_DATE)

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,19 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.model.recordcategory; package org.alfresco.rest.rm.community.model.recordcategory;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category * POJO for record category
@@ -51,42 +48,42 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordCategory extends TestModel public class RecordCategory extends TestModel {
{
public static final String DEFAULT_FILE_PLAN_ALIAS = "-filePlan-"; public static final String DEFAULT_FILE_PLAN_ALIAS = "-filePlan-";
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private RecordCategoryProperties properties; private RecordCategoryProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,19 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.model.recordcategory; package org.alfresco.rest.rm.community.model.recordcategory;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category child * POJO for record category child
@@ -51,35 +48,35 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordCategoryChild extends TestModel public class RecordCategoryChild extends TestModel {
{
public static final String RECORD_FOLDER_NODE_TYPE = "rma:recordFolder"; public static final String RECORD_FOLDER_NODE_TYPE = "rma:recordFolder";
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,7 +35,5 @@ import org.alfresco.rest.core.RestModels;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RecordCategoryChildCollection extends RestModels<RecordCategoryChildEntry, RecordCategoryChildCollection> public class RecordCategoryChildCollection
{ extends RestModels<RecordCategoryChildEntry, RecordCategoryChildCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,11 +27,9 @@
package org.alfresco.rest.rm.community.model.recordcategory; package org.alfresco.rest.rm.community.model.recordcategory;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.RestModels;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.alfresco.rest.core.RestModels;
/** /**
* POJO for record category child entry * POJO for record category child entry
@@ -41,8 +39,9 @@ import lombok.EqualsAndHashCode;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RecordCategoryChildEntry extends RestModels<RecordCategory, RecordCategoryChildEntry> public class RecordCategoryChildEntry
{ extends RestModels<RecordCategory, RecordCategoryChildEntry> {
@JsonProperty @JsonProperty
private RecordCategoryChild entry; private RecordCategoryChild entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,36 +32,33 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IS_CLOSED; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IS_CLOSED;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_LOCATION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_LOCATION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_REVIEW_PERIOD; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_REVIEW_PERIOD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
import org.alfresco.rest.rm.community.model.common.Owner; import java.util.List;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category child properties * POJO for record category child properties
@@ -74,70 +71,69 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordCategoryChildProperties extends TestModel public class RecordCategoryChildProperties extends TestModel {
{
/**************************************************************************/ /**************************************************************************/
/** Mandatory parameters - Shared by record categories and record folders */ /** Mandatory parameters - Shared by record categories and record folders */
/**************************************************************************/ /**************************************************************************/
@JsonProperty (required = true, value = PROPERTIES_TITLE) @JsonProperty(required = true, value = PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (required = true, value = PROPERTIES_VITAL_RECORD_INDICATOR) @JsonProperty(required = true, value = PROPERTIES_VITAL_RECORD_INDICATOR)
private Boolean vitalRecordIndicator; private Boolean vitalRecordIndicator;
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_REVIEW_PERIOD) @JsonProperty(required = true, value = PROPERTIES_REVIEW_PERIOD)
@JsonSerialize (using = ReviewPeriodSerializer.class) @JsonSerialize(using = ReviewPeriodSerializer.class)
private ReviewPeriod reviewPeriod; private ReviewPeriod reviewPeriod;
@JsonProperty (required = true, value = PROPERTIES_DESCRIPTION) @JsonProperty(required = true, value = PROPERTIES_DESCRIPTION)
private String description; private String description;
/*********************************************************/ /*********************************************************/
/** Optional parameters - Applies only to record folders */ /** Optional parameters - Applies only to record folders */
/*********************************************************/ /*********************************************************/
@JsonProperty (PROPERTIES_HELD_CHILDREN_COUNT) @JsonProperty(PROPERTIES_HELD_CHILDREN_COUNT)
private Integer heldChildrenCount; private Integer heldChildrenCount;
@JsonProperty (PROPERTIES_LOCATION) @JsonProperty(PROPERTIES_LOCATION)
private String location; private String location;
@JsonProperty (PROPERTIES_IS_CLOSED) @JsonProperty(PROPERTIES_IS_CLOSED)
private Boolean isClosed; private Boolean isClosed;
@JsonProperty (PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE) @JsonProperty(PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE)
private Boolean recordSearchHasDispositionSchedule; private Boolean recordSearchHasDispositionSchedule;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION)
private String recordSearchDispositionPeriodExpression; private String recordSearchDispositionPeriodExpression;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY)
private String recordSearchDispositionAuthority; private String recordSearchDispositionAuthority;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF)
private Date recordSearchDispositionActionAsOf; private Date recordSearchDispositionActionAsOf;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD)
private String recordSearchDispositionPeriod; private String recordSearchDispositionPeriod;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME)
private String recordSearchDispositionActionName; private String recordSearchDispositionActionName;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE)
private Boolean recordSearchDispositionEventsEligible; private Boolean recordSearchDispositionEventsEligible;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS)
private String recordSearchDispositionInstructions; private String recordSearchDispositionInstructions;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS)
private List<String> recordSearchDispositionEvents; private List<String> recordSearchDispositionEvents;
@JsonProperty (PROPERTIES_OWNER)
private Owner owner;
@JsonProperty(PROPERTIES_OWNER)
private Owner owner;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,7 +35,5 @@ import org.alfresco.rest.core.RestModels;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RecordCategoryCollection extends RestModels<RecordCategoryEntry, RecordCategoryCollection> public class RecordCategoryCollection
{ extends RestModels<RecordCategoryEntry, RecordCategoryCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,12 +27,10 @@
package org.alfresco.rest.rm.community.model.recordcategory; package org.alfresco.rest.rm.community.model.recordcategory;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.fileplan.FilePlan;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.fileplan.FilePlan;
/** /**
* POJO for file plan entry * POJO for file plan entry
@@ -43,8 +41,9 @@ import lombok.EqualsAndHashCode;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RecordCategoryEntry extends RestModels<FilePlan, RecordCategoryEntry> public class RecordCategoryEntry
{ extends RestModels<FilePlan, RecordCategoryEntry> {
@JsonProperty @JsonProperty
private RecordCategory entry; private RecordCategory entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,23 +35,19 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.List;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category properties * POJO for record category properties
@@ -64,37 +60,37 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class RecordCategoryProperties extends TestModel public class RecordCategoryProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_REVIEW_PERIOD) @JsonProperty(required = true, value = PROPERTIES_REVIEW_PERIOD)
@JsonSerialize (using = ReviewPeriodSerializer.class) @JsonSerialize(using = ReviewPeriodSerializer.class)
private ReviewPeriod reviewPeriod; private ReviewPeriod reviewPeriod;
@JsonProperty (required = true, value = PROPERTIES_VITAL_RECORD_INDICATOR) @JsonProperty(required = true, value = PROPERTIES_VITAL_RECORD_INDICATOR)
private Boolean vitalRecordIndicator; private Boolean vitalRecordIndicator;
/************************/ /************************/
/** Optional parameters */ /** Optional parameters */
/************************/ /************************/
@JsonProperty (PROPERTIES_TITLE) @JsonProperty(PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (PROPERTIES_ROOT_NODE_REF) @JsonProperty(PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (PROPERTIES_DESCRIPTION) @JsonProperty(PROPERTIES_DESCRIPTION)
private String description; private String description;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
@JsonProperty (PROPERTIES_CLASSIFICATION) @JsonProperty(PROPERTIES_CLASSIFICATION)
private List<String> classification; private List<String> classification;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,8 +29,7 @@ package org.alfresco.rest.rm.community.model.recordcategory;
/** /**
* The property of the dispositioned item that is used to calculate the "as of" period. * The property of the dispositioned item that is used to calculate the "as of" period.
*/ */
public enum RetentionPeriodProperty public enum RetentionPeriodProperty {
{
/** Item created date. */ /** Item created date. */
CREATED_DATE("cm:created"), CREATED_DATE("cm:created"),
/** Record filed date. */ /** Record filed date. */
@@ -40,13 +39,11 @@ public enum RetentionPeriodProperty
String periodProperty; String periodProperty;
RetentionPeriodProperty(String periodProperty) RetentionPeriodProperty(String periodProperty) {
{
this.periodProperty = periodProperty; this.periodProperty = periodProperty;
} }
public String getPeriodProperty() public String getPeriodProperty() {
{
return periodProperty; return periodProperty;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,19 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.model.recordfolder; package org.alfresco.rest.rm.community.model.recordfolder;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record folder * POJO for record folder
@@ -51,39 +48,39 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordFolder extends TestModel public class RecordFolder extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private RecordFolderProperties properties; private RecordFolderProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,7 +35,5 @@ import org.alfresco.rest.core.RestModels;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RecordFolderCollection extends RestModels<RecordFolderEntry, RecordFolderCollection> public class RecordFolderCollection
{ extends RestModels<RecordFolderEntry, RecordFolderCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,15 +27,13 @@
package org.alfresco.rest.rm.community.model.recordfolder; package org.alfresco.rest.rm.community.model.recordfolder;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.record.Record;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.record.Record;
/** /**
* POJO for record folder entry * POJO for record folder entry
@@ -48,8 +46,9 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RecordFolderEntry extends RestModels<RecordFolder, RecordFolderEntry> public class RecordFolderEntry
{ extends RestModels<RecordFolder, RecordFolderEntry> {
@JsonProperty @JsonProperty
private Record entry; private Record entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -33,10 +33,8 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IS_CLOSED; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IS_CLOSED;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_LOCATION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_LOCATION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY;
.PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields
.PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION;
@@ -45,22 +43,19 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TITLE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_VITAL_RECORD_INDICATOR;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.List;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record folder properties * POJO for record folder properties
@@ -73,62 +68,63 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class RecordFolderProperties extends TestModel public class RecordFolderProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IS_CLOSED) @JsonProperty(required = true, value = PROPERTIES_IS_CLOSED)
private Boolean isClosed; private Boolean isClosed;
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_HELD_CHILDREN_COUNT) @JsonProperty(required = true, value = PROPERTIES_HELD_CHILDREN_COUNT)
private Integer heldChildrenCount; private Integer heldChildrenCount;
/************************/ /************************/
/** Optional parameters */ /** Optional parameters */
/************************/ /************************/
@JsonProperty (PROPERTIES_TITLE) @JsonProperty(PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (PROPERTIES_VITAL_RECORD_INDICATOR) @JsonProperty(PROPERTIES_VITAL_RECORD_INDICATOR)
private Boolean vitalRecordIndicator; private Boolean vitalRecordIndicator;
@JsonProperty (PROPERTIES_ROOT_NODE_REF) @JsonProperty(PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (PROPERTIES_LOCATION) @JsonProperty(PROPERTIES_LOCATION)
private String location; private String location;
@JsonProperty (PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE) @JsonProperty(PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE)
private Boolean recordSearchHasDispositionSchedule; private Boolean recordSearchHasDispositionSchedule;
@JsonProperty (PROPERTIES_REVIEW_PERIOD) @JsonProperty(PROPERTIES_REVIEW_PERIOD)
@JsonSerialize (using = ReviewPeriodSerializer.class) @JsonSerialize(using = ReviewPeriodSerializer.class)
private ReviewPeriod reviewPeriod; private ReviewPeriod reviewPeriod;
@JsonProperty (PROPERTIES_CLASSIFICATION) @JsonProperty(PROPERTIES_CLASSIFICATION)
private List<String> classification; private List<String> classification;
@JsonProperty (PROPERTIES_DESCRIPTION) @JsonProperty(PROPERTIES_DESCRIPTION)
private String description; private String description;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
@JsonProperty (PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD) @JsonProperty(PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD)
private String recordSearchVitalRecordReviewPeriod; private String recordSearchVitalRecordReviewPeriod;
@JsonProperty (PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION) @JsonProperty(
PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION
)
private String recordSearchVitalRecordReviewPeriodExpression; private String recordSearchVitalRecordReviewPeriodExpression;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY)
private String recordSearchDispositionAuthority; private String recordSearchDispositionAuthority;
@JsonProperty (PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS) @JsonProperty(PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS)
private String recordSearchDispositionInstructions; private String recordSearchDispositionInstructions;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,8 +29,7 @@ package org.alfresco.rest.rm.community.model.rules;
/** /**
* Action values. * Action values.
*/ */
public enum ActionsOnRule public enum ActionsOnRule {
{
COMPLETE_RECORD("declareRecord"), COMPLETE_RECORD("declareRecord"),
REOPEN_RECORD("undeclareRecord"), REOPEN_RECORD("undeclareRecord"),
OPEN_RECORD_FOLDER("openRecordFolder"), OPEN_RECORD_FOLDER("openRecordFolder"),
@@ -54,13 +53,11 @@ public enum ActionsOnRule
private String actionValue; private String actionValue;
ActionsOnRule(String value) ActionsOnRule(String value) {
{
this.actionValue = value; this.actionValue = value;
} }
public String getActionValue() public String getActionValue() {
{
return actionValue; return actionValue;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,20 +29,18 @@ package org.alfresco.rest.rm.community.model.rules;
/** /**
* enum used to find the when condition names options by their value * enum used to find the when condition names options by their value
*/ */
public enum ConditionsOnRule public enum ConditionsOnRule {
{
UPDATE("update"), UPDATE("update"),
ADDED("inbound"), ADDED("inbound"),
REMOVED("outbound"); REMOVED("outbound");
private String whenConditionValue; private String whenConditionValue;
ConditionsOnRule(String value) ConditionsOnRule(String value) {
{ this.whenConditionValue = value;
this.whenConditionValue = value;
} }
public String getWhenConditionValue() public String getWhenConditionValue() {
{ return whenConditionValue;
return whenConditionValue;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -31,8 +31,8 @@ import java.util.List;
/** /**
* A class describing the rule * A class describing the rule
*/ */
public class RuleDefinition public class RuleDefinition {
{
private String id = ""; private String id = "";
private String title; private String title;
private String description = ""; private String description = "";
@@ -52,152 +52,124 @@ public class RuleDefinition
* *
* @return the object * @return the object
*/ */
public static RuleDefinition createNewRule() public static RuleDefinition createNewRule() {
{
return new RuleDefinition(); return new RuleDefinition();
} }
public String getId() public String getId() {
{
return id; return id;
} }
public RuleDefinition id(String id) public RuleDefinition id(String id) {
{
this.id = id; this.id = id;
return this; return this;
} }
public String getTitle() public String getTitle() {
{
return title; return title;
} }
public RuleDefinition title(String title) public RuleDefinition title(String title) {
{
this.title = title; this.title = title;
return this; return this;
} }
public String getDescription() public String getDescription() {
{
return description; return description;
} }
public RuleDefinition description(String description) public RuleDefinition description(String description) {
{
this.description = description; this.description = description;
return this; return this;
} }
public boolean isDisabled() public boolean isDisabled() {
{
return disabled; return disabled;
} }
public RuleDefinition disabled(boolean disabled) public RuleDefinition disabled(boolean disabled) {
{
this.disabled = disabled; this.disabled = disabled;
return this; return this;
} }
public boolean isApplyToChildren() public boolean isApplyToChildren() {
{
return applyToChildren; return applyToChildren;
} }
public RuleDefinition applyToChildren(boolean applyToChildren) public RuleDefinition applyToChildren(boolean applyToChildren) {
{
this.applyToChildren = applyToChildren; this.applyToChildren = applyToChildren;
return this; return this;
} }
public boolean getRunInBackground() public boolean getRunInBackground() {
{
return runInBackground; return runInBackground;
} }
public RuleDefinition runInBackground(boolean runInBackground) public RuleDefinition runInBackground(boolean runInBackground) {
{
this.runInBackground = runInBackground; this.runInBackground = runInBackground;
return this; return this;
} }
public String getRuleType() public String getRuleType() {
{
return ruleType; return ruleType;
} }
public RuleDefinition ruleType(String ruleType) public RuleDefinition ruleType(String ruleType) {
{
this.ruleType = ruleType; this.ruleType = ruleType;
return this; return this;
} }
public String getPath() public String getPath() {
{
return path; return path;
} }
public RuleDefinition path(String path) public RuleDefinition path(String path) {
{
this.path = path; this.path = path;
return this; return this;
} }
public Boolean getCreateRecordPath() public Boolean getCreateRecordPath() {
{
return createRecordPath; return createRecordPath;
} }
public RuleDefinition createRecordPath(boolean createRecordPath) public RuleDefinition createRecordPath(boolean createRecordPath) {
{
this.createRecordPath = createRecordPath; this.createRecordPath = createRecordPath;
return this; return this;
} }
public String getContentTitle() public String getContentTitle() {
{
return contentTitle; return contentTitle;
} }
public RuleDefinition contentTitle(String contentTitle) public RuleDefinition contentTitle(String contentTitle) {
{
this.contentTitle = contentTitle; this.contentTitle = contentTitle;
return this; return this;
} }
public String getContentDescription() public String getContentDescription() {
{
return contentDescription; return contentDescription;
} }
public RuleDefinition contentDescription(String contentDescription) public RuleDefinition contentDescription(String contentDescription) {
{
this.contentDescription = contentDescription; this.contentDescription = contentDescription;
return this; return this;
} }
public String getRejectReason() public String getRejectReason() {
{
return rejectReason; return rejectReason;
} }
public RuleDefinition rejectReason(String rejectReason) public RuleDefinition rejectReason(String rejectReason) {
{
this.rejectReason = rejectReason; this.rejectReason = rejectReason;
return this; return this;
} }
public List<String> getActions() public List<String> getActions() {
{
return actions; return actions;
} }
public RuleDefinition actions(List<String> actions) public RuleDefinition actions(List<String> actions) {
{
this.actions = actions; this.actions = actions;
return this; return this;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,14 +27,12 @@
package org.alfresco.rest.rm.community.model.site; package org.alfresco.rest.rm.community.model.site;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.model.RestSiteModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestSiteModel;
/** /**
* POJO for RM Site component * POJO for RM Site component
@@ -46,15 +44,18 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RMSite extends RestSiteModel public class RMSite extends RestSiteModel {
{
@JsonProperty (required = true) @JsonProperty(required = true)
private RMSiteCompliance compliance; private RMSiteCompliance compliance;
/** Private constructor allowing Lombok to include superclass fields in the builder. */ /** Private constructor allowing Lombok to include superclass fields in the builder. */
@Builder @Builder
private RMSite(String title, String description, RMSiteCompliance compliance) private RMSite(
{ String title,
String description,
RMSiteCompliance compliance
) {
this.setTitle(title); this.setTitle(title);
this.setDescription(description); this.setDescription(description);
this.compliance = compliance; this.compliance = compliance;

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,8 +32,7 @@ package org.alfresco.rest.rm.community.model.site;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public enum RMSiteCompliance public enum RMSiteCompliance {
{
STANDARD, STANDARD,
DOD5015 DOD5015,
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -41,12 +41,12 @@ package org.alfresco.rest.rm.community.model.site;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public class RMSiteFields public class RMSiteFields {
{
public static final String ID = "id"; public static final String ID = "id";
public static final String COMPLIANCE = "compliance"; public static final String COMPLIANCE = "compliance";
public static final String TITLE = "title"; public static final String TITLE = "title";
public static final String DESCRIPTION = "description"; public static final String DESCRIPTION = "description";
public static final String VISIBILITY ="visibility"; public static final String VISIBILITY = "visibility";
public static final String ROLE = "role"; public static final String ROLE = "role";
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,18 +27,15 @@
package org.alfresco.rest.rm.community.model.transfer; package org.alfresco.rest.rm.community.model.transfer;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for Transfer * POJO for Transfer
@@ -51,33 +48,33 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class Transfer extends TestModel public class Transfer extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private TransferProperties properties; private TransferProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,19 +27,16 @@
package org.alfresco.rest.rm.community.model.transfer; package org.alfresco.rest.rm.community.model.transfer;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for transfer child * POJO for transfer child
@@ -52,33 +49,33 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferChild extends TestModel public class TransferChild extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -34,7 +34,5 @@ import org.alfresco.rest.core.RestModels;
* @author Silviu Dinuta * @author Silviu Dinuta
* @since 2.6 * @since 2.6
*/ */
public class TransferChildCollection extends RestModels<TransferChildEntry, TransferChildCollection> public class TransferChildCollection
{ extends RestModels<TransferChildEntry, TransferChildCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,15 +27,13 @@
package org.alfresco.rest.rm.community.model.transfer; package org.alfresco.rest.rm.community.model.transfer;
import org.alfresco.rest.core.RestModels;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.core.RestModels;
/** /**
* POJO for transfer child entry * POJO for transfer child entry
@@ -48,8 +46,9 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferChildEntry extends RestModels<Transfer, TransferChildEntry> public class TransferChildEntry
{ extends RestModels<Transfer, TransferChildEntry> {
@JsonProperty @JsonProperty
private TransferChild entry; private TransferChild entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -64,19 +64,17 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_X_RESOLUTION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_X_RESOLUTION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_Y_RESOLUTION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_Y_RESOLUTION;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
import org.alfresco.rest.rm.community.util.ReviewPeriodSerializer;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for transfer child properties * POJO for transfer child properties
@@ -89,131 +87,130 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferChildProperties extends TestModel public class TransferChildProperties extends TestModel {
{
/**************************************************************************/ /**************************************************************************/
/** Mandatory parameters - Shared by record folders and records*/ /** Mandatory parameters - Shared by record folders and records*/
/**************************************************************************/ /**************************************************************************/
@JsonProperty (PROPERTIES_TITLE) @JsonProperty(PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (PROPERTIES_DESCRIPTION) @JsonProperty(PROPERTIES_DESCRIPTION)
private String description; private String description;
/*********************************************************/ /*********************************************************/
/** Optional parameters - Applies only to record folders */ /** Optional parameters - Applies only to record folders */
/*********************************************************/ /*********************************************************/
@JsonProperty (PROPERTIES_VITAL_RECORD_INDICATOR) @JsonProperty(PROPERTIES_VITAL_RECORD_INDICATOR)
private Boolean vitalRecordIndicator; private Boolean vitalRecordIndicator;
@JsonProperty (PROPERTIES_REVIEW_PERIOD) @JsonProperty(PROPERTIES_REVIEW_PERIOD)
@JsonSerialize (using = ReviewPeriodSerializer.class) @JsonSerialize(using = ReviewPeriodSerializer.class)
private ReviewPeriod reviewPeriod; private ReviewPeriod reviewPeriod;
@JsonProperty (PROPERTIES_HELD_CHILDREN_COUNT) @JsonProperty(PROPERTIES_HELD_CHILDREN_COUNT)
private Integer heldChildrenCount; private Integer heldChildrenCount;
@JsonProperty (PROPERTIES_LOCATION) @JsonProperty(PROPERTIES_LOCATION)
private String location; private String location;
@JsonProperty (PROPERTIES_IS_CLOSED) @JsonProperty(PROPERTIES_IS_CLOSED)
private Boolean isClosed; private Boolean isClosed;
/*********************************************************/ /*********************************************************/
/** Optional parameters - Applies only to records */ /** Optional parameters - Applies only to records */
/*********************************************************/ /*********************************************************/
@JsonProperty (PROPERTIES_DATE_FILED) @JsonProperty(PROPERTIES_DATE_FILED)
private String dateField; private String dateField;
@JsonProperty (PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE) @JsonProperty(PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE)
private Boolean recordSearchHasDispositionSchedule; private Boolean recordSearchHasDispositionSchedule;
@JsonProperty (PROPERTIES_ORIGINAL_NAME) @JsonProperty(PROPERTIES_ORIGINAL_NAME)
private String originalName; private String originalName;
/*********************************/ /*********************************/
/** Electronic record parameters */ /** Electronic record parameters */
/*********************************/ /*********************************/
@JsonProperty (PROPERTIES_VERSION_TYPE) @JsonProperty(PROPERTIES_VERSION_TYPE)
private String versionType; private String versionType;
@JsonProperty (PROPERTIES_VERSION_LABEL) @JsonProperty(PROPERTIES_VERSION_LABEL)
private String versionLabel; private String versionLabel;
@JsonProperty (PROPERTIES_DATE_TIME_ORIGINAL) @JsonProperty(PROPERTIES_DATE_TIME_ORIGINAL)
private String dateTimeOriginal; private String dateTimeOriginal;
@JsonProperty (PROPERTIES_EXPOSURE_TIME) @JsonProperty(PROPERTIES_EXPOSURE_TIME)
private Double exposureTime; private Double exposureTime;
@JsonProperty (PROPERTIES_FLASH) @JsonProperty(PROPERTIES_FLASH)
private Boolean flash; private Boolean flash;
@JsonProperty (PROPERTIES_F_NUMBER) @JsonProperty(PROPERTIES_F_NUMBER)
private Double fNumber; private Double fNumber;
@JsonProperty (PROPERTIES_FOCAL_LENGTH) @JsonProperty(PROPERTIES_FOCAL_LENGTH)
private Double focalLength; private Double focalLength;
@JsonProperty (PROPERTIES_ISO_SPEED_RATINGS) @JsonProperty(PROPERTIES_ISO_SPEED_RATINGS)
private Integer isoSpeedRatings; private Integer isoSpeedRatings;
@JsonProperty (PROPERTIES_MANUFACTURER) @JsonProperty(PROPERTIES_MANUFACTURER)
private String manufacturer; private String manufacturer;
@JsonProperty (PROPERTIES_MODEL) @JsonProperty(PROPERTIES_MODEL)
private String model; private String model;
@JsonProperty (PROPERTIES_ORIENTATION) @JsonProperty(PROPERTIES_ORIENTATION)
private Integer orientation; private Integer orientation;
@JsonProperty (PROPERTIES_PIXEL_X_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_X_DIMENSION)
private Integer pixelXDimension; private Integer pixelXDimension;
@JsonProperty (PROPERTIES_PIXEL_Y_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_Y_DIMENSION)
private Integer pixelYDimension; private Integer pixelYDimension;
@JsonProperty (PROPERTIES_RESOLUTION_UNIT) @JsonProperty(PROPERTIES_RESOLUTION_UNIT)
private String resolutionUnit; private String resolutionUnit;
@JsonProperty (PROPERTIES_SOFTWARE) @JsonProperty(PROPERTIES_SOFTWARE)
private String software; private String software;
@JsonProperty (PROPERTIES_X_RESOLUTION) @JsonProperty(PROPERTIES_X_RESOLUTION)
private Double xResolution; private Double xResolution;
@JsonProperty (PROPERTIES_Y_RESOLUTION) @JsonProperty(PROPERTIES_Y_RESOLUTION)
private Double yResolution; private Double yResolution;
/*************************************/ /*************************************/
/** Non-electronic record parameters */ /** Non-electronic record parameters */
/*************************************/ /*************************************/
@JsonProperty (PROPERTIES_SHELF) @JsonProperty(PROPERTIES_SHELF)
private String shelf; private String shelf;
@JsonProperty (PROPERTIES_STORAGE_LOCATION) @JsonProperty(PROPERTIES_STORAGE_LOCATION)
private String storageLocation; private String storageLocation;
@JsonProperty (PROPERTIES_FILE) @JsonProperty(PROPERTIES_FILE)
private String file; private String file;
@JsonProperty (PROPERTIES_BOX) @JsonProperty(PROPERTIES_BOX)
private String box; private String box;
@JsonProperty (PROPERTIES_NUMBER_OF_COPIES) @JsonProperty(PROPERTIES_NUMBER_OF_COPIES)
private Integer numberOfCopies; private Integer numberOfCopies;
@JsonProperty (PROPERTIES_PHYSICAL_SIZE) @JsonProperty(PROPERTIES_PHYSICAL_SIZE)
private Integer physicalSize; private Integer physicalSize;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -34,7 +34,5 @@ import org.alfresco.rest.core.RestModels;
* @author Silviu Dinuta * @author Silviu Dinuta
* @since 2.6 * @since 2.6
*/ */
public class TransferCollection extends RestModels<TransferEntry, TransferCollection> public class TransferCollection
{ extends RestModels<TransferEntry, TransferCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,16 +27,14 @@
package org.alfresco.rest.rm.community.model.transfer; package org.alfresco.rest.rm.community.model.transfer;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.transfercontainer.TransferContainer;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.core.RestModels;
import org.alfresco.rest.rm.community.model.transfercontainer.TransferContainer;
/** /**
* POJO for transfer entry * POJO for transfer entry
@@ -49,8 +47,9 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferEntry extends RestModels<TransferContainer, TransferEntry> public class TransferEntry
{ extends RestModels<TransferContainer, TransferEntry> {
@JsonProperty @JsonProperty
private Transfer entry; private Transfer entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,23 +27,21 @@
package org.alfresco.rest.rm.community.model.transfer; package org.alfresco.rest.rm.community.model.transfer;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ACCESSION_INDICATOR;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IDENTIFIER; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IDENTIFIER;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_OWNER;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_PDF_INDICATOR; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_PDF_INDICATOR;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TRANSFER_LOCATION; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_TRANSFER_LOCATION;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ACCESSION_INDICATOR;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for Transfer properties * POJO for Transfer properties
@@ -56,29 +54,29 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferProperties extends TestModel public class TransferProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
/************************/ /************************/
/** Optional parameters */ /** Optional parameters */
/************************/ /************************/
@JsonProperty (PROPERTIES_ROOT_NODE_REF) @JsonProperty(PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
@JsonProperty (PROPERTIES_PDF_INDICATOR) @JsonProperty(PROPERTIES_PDF_INDICATOR)
private Boolean pdfIndicator; private Boolean pdfIndicator;
@JsonProperty (PROPERTIES_TRANSFER_LOCATION) @JsonProperty(PROPERTIES_TRANSFER_LOCATION)
private String transferLocation; private String transferLocation;
@JsonProperty (PROPERTIES_ACCESSION_INDICATOR) @JsonProperty(PROPERTIES_ACCESSION_INDICATOR)
private Boolean accessionIndicator; private Boolean accessionIndicator;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,18 +27,15 @@
package org.alfresco.rest.rm.community.model.transfercontainer; package org.alfresco.rest.rm.community.model.transfercontainer;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for Transfer Container * POJO for Transfer Container
@@ -51,39 +48,39 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferContainer extends TestModel public class TransferContainer extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private TransferContainerProperties properties; private TransferContainerProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -31,15 +31,13 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IDENTIFIER; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_IDENTIFIER;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentFields.PROPERTIES_ROOT_NODE_REF;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for Transfer Container properties * POJO for Transfer Container properties
@@ -52,21 +50,20 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TransferContainerProperties extends TestModel public class TransferContainerProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
/************************/ /************************/
/** Optional parameters */ /** Optional parameters */
/************************/ /************************/
@JsonProperty (PROPERTIES_ROOT_NODE_REF) @JsonProperty(PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (PROPERTIES_COUNT) @JsonProperty(PROPERTIES_COUNT)
private Integer count; private Integer count;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,19 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.model.unfiledcontainer; package org.alfresco.rest.rm.community.model.unfiledcontainer;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for unfiled container * POJO for unfiled container
@@ -51,39 +48,39 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class UnfiledContainer extends TestModel public class UnfiledContainer extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
@JsonProperty (required = true) @JsonProperty(required = true)
private List<String> aspectNames; private List<String> aspectNames;
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private UnfiledContainerProperties properties; private UnfiledContainerProperties properties;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,21 +26,18 @@
*/ */
package org.alfresco.rest.rm.community.model.unfiledcontainer; package org.alfresco.rest.rm.community.model.unfiledcontainer;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.rest.rm.community.model.record.RecordContent;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.rest.rm.community.model.record.RecordContent;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category child * POJO for record category child
@@ -53,40 +50,40 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class UnfiledContainerChild extends TestModel public class UnfiledContainerChild extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private Boolean isUnfiledRecordFolder; private Boolean isUnfiledRecordFolder;
@JsonProperty (required = true) @JsonProperty(required = true)
private Boolean isRecord; private Boolean isRecord;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,7 +35,5 @@ import org.alfresco.rest.core.RestModels;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class UnfiledContainerChildCollection extends RestModels<UnfiledContainerChildEntry, UnfiledContainerChildCollection> public class UnfiledContainerChildCollection
{ extends RestModels<UnfiledContainerChildEntry, UnfiledContainerChildCollection> {}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,11 +27,9 @@
package org.alfresco.rest.rm.community.model.unfiledcontainer; package org.alfresco.rest.rm.community.model.unfiledcontainer;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.RestModels;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.alfresco.rest.core.RestModels;
/** /**
* POJO for record category child entry * POJO for record category child entry
@@ -41,8 +39,9 @@ import lombok.EqualsAndHashCode;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UnfiledContainerChildEntry extends RestModels<UnfiledContainer, UnfiledContainerChildEntry> public class UnfiledContainerChildEntry
{ extends RestModels<UnfiledContainer, UnfiledContainerChildEntry> {
@JsonProperty @JsonProperty
private UnfiledContainerChild entry; private UnfiledContainerChild entry;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -61,15 +61,13 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.rm.community.model.common.Owner;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for record category child properties * POJO for record category child properties
@@ -83,112 +81,112 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class UnfiledContainerChildProperties extends TestModel public class UnfiledContainerChildProperties extends TestModel {
{
/**************************************************************************/ /**************************************************************************/
/** Mandatory parameters - Shared by unfiled record folder and records */ /** Mandatory parameters - Shared by unfiled record folder and records */
/**************************************************************************/ /**************************************************************************/
@JsonProperty (required = true, value = PROPERTIES_TITLE) @JsonProperty(required = true, value = PROPERTIES_TITLE)
private String title; private String title;
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_DESCRIPTION) @JsonProperty(required = true, value = PROPERTIES_DESCRIPTION)
private String description; private String description;
@JsonProperty (value = PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE) @JsonProperty(value = PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE)
private Boolean recordSearchHasDispositionSchedule; private Boolean recordSearchHasDispositionSchedule;
/*********************************/ /*********************************/
/** Electronic record parameters */ /** Electronic record parameters */
/*********************************/ /*********************************/
@JsonProperty (PROPERTIES_VERSION_TYPE) @JsonProperty(PROPERTIES_VERSION_TYPE)
private String versionType; private String versionType;
@JsonProperty (PROPERTIES_VERSION_LABEL) @JsonProperty(PROPERTIES_VERSION_LABEL)
private String versionLabel; private String versionLabel;
@JsonProperty(PROPERTIES_VERSIONED_NODEREF) @JsonProperty(PROPERTIES_VERSIONED_NODEREF)
private String versionedNodeRef; private String versionedNodeRef;
@JsonProperty (PROPERTIES_RMV_VERSIONED) @JsonProperty(PROPERTIES_RMV_VERSIONED)
private String recordVersionLabel; private String recordVersionLabel;
@JsonProperty (PROPERTIES_DATE_TIME_ORIGINAL) @JsonProperty(PROPERTIES_DATE_TIME_ORIGINAL)
private String dateTimeOriginal; private String dateTimeOriginal;
@JsonProperty (PROPERTIES_EXPOSURE_TIME) @JsonProperty(PROPERTIES_EXPOSURE_TIME)
private Double exposureTime; private Double exposureTime;
@JsonProperty (PROPERTIES_FLASH) @JsonProperty(PROPERTIES_FLASH)
private Boolean flash; private Boolean flash;
@JsonProperty (PROPERTIES_F_NUMBER) @JsonProperty(PROPERTIES_F_NUMBER)
private Double fNumber; private Double fNumber;
@JsonProperty (PROPERTIES_FOCAL_LENGTH) @JsonProperty(PROPERTIES_FOCAL_LENGTH)
private Double focalLength; private Double focalLength;
@JsonProperty (PROPERTIES_ISO_SPEED_RATINGS) @JsonProperty(PROPERTIES_ISO_SPEED_RATINGS)
private Integer isoSpeedRatings; private Integer isoSpeedRatings;
@JsonProperty (PROPERTIES_MANUFACTURER) @JsonProperty(PROPERTIES_MANUFACTURER)
private String manufacturer; private String manufacturer;
@JsonProperty (PROPERTIES_MODEL) @JsonProperty(PROPERTIES_MODEL)
private String model; private String model;
@JsonProperty (PROPERTIES_ORIENTATION) @JsonProperty(PROPERTIES_ORIENTATION)
private Integer orientation; private Integer orientation;
@JsonProperty (PROPERTIES_PIXEL_X_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_X_DIMENSION)
private Integer pixelXDimension; private Integer pixelXDimension;
@JsonProperty (PROPERTIES_PIXEL_Y_DIMENSION) @JsonProperty(PROPERTIES_PIXEL_Y_DIMENSION)
private Integer pixelYDimension; private Integer pixelYDimension;
@JsonProperty (PROPERTIES_RESOLUTION_UNIT) @JsonProperty(PROPERTIES_RESOLUTION_UNIT)
private String resolutionUnit; private String resolutionUnit;
@JsonProperty (PROPERTIES_SOFTWARE) @JsonProperty(PROPERTIES_SOFTWARE)
private String software; private String software;
@JsonProperty (PROPERTIES_X_RESOLUTION) @JsonProperty(PROPERTIES_X_RESOLUTION)
private Double xResolution; private Double xResolution;
@JsonProperty (PROPERTIES_Y_RESOLUTION) @JsonProperty(PROPERTIES_Y_RESOLUTION)
private Double yResolution; private Double yResolution;
@JsonProperty (PROPERTIES_ORIGINAL_NAME) @JsonProperty(PROPERTIES_ORIGINAL_NAME)
private String originalName; private String originalName;
/*************************************/ /*************************************/
/** Non-electronic record parameters */ /** Non-electronic record parameters */
/*************************************/ /*************************************/
@JsonProperty (PROPERTIES_SHELF) @JsonProperty(PROPERTIES_SHELF)
private String shelf; private String shelf;
@JsonProperty (PROPERTIES_STORAGE_LOCATION) @JsonProperty(PROPERTIES_STORAGE_LOCATION)
private String storageLocation; private String storageLocation;
@JsonProperty (PROPERTIES_FILE) @JsonProperty(PROPERTIES_FILE)
private String file; private String file;
@JsonProperty (PROPERTIES_BOX) @JsonProperty(PROPERTIES_BOX)
private String box; private String box;
@JsonProperty (PROPERTIES_NUMBER_OF_COPIES) @JsonProperty(PROPERTIES_NUMBER_OF_COPIES)
private Integer numberOfCopies; private Integer numberOfCopies;
@JsonProperty (PROPERTIES_PHYSICAL_SIZE) @JsonProperty(PROPERTIES_PHYSICAL_SIZE)
private Integer physicalSize; private Integer physicalSize;
@JsonProperty (PROPERTIES_OWNER) @JsonProperty(PROPERTIES_OWNER)
private Owner owner; private Owner owner;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -31,14 +31,12 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.utility.model.TestModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for file plan properties * POJO for file plan properties
@@ -51,15 +49,15 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class UnfiledContainerProperties extends TestModel public class UnfiledContainerProperties extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true, value = PROPERTIES_IDENTIFIER) @JsonProperty(required = true, value = PROPERTIES_IDENTIFIER)
private String identifier; private String identifier;
@JsonProperty (required = true, value = PROPERTIES_ROOT_NODE_REF) @JsonProperty(required = true, value = PROPERTIES_ROOT_NODE_REF)
private String rootNodeRef; private String rootNodeRef;
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,20 +26,17 @@
*/ */
package org.alfresco.rest.rm.community.model.unfiledcontainer; package org.alfresco.rest.rm.community.model.unfiledcontainer;
import java.util.List;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.rest.rm.community.model.record.RecordContent;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.alfresco.rest.model.RestByUserModel;
import org.alfresco.rest.rm.community.model.common.Path;
import org.alfresco.rest.rm.community.model.record.RecordContent;
import org.alfresco.utility.model.TestModel;
/** /**
* POJO for unfiled container * POJO for unfiled container
@@ -52,33 +49,33 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class UnfiledRecordFolder extends TestModel public class UnfiledRecordFolder extends TestModel {
{
/*************************/ /*************************/
/** Mandatory parameters */ /** Mandatory parameters */
/*************************/ /*************************/
@JsonProperty (required = true) @JsonProperty(required = true)
private String createdAt; private String createdAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel createdByUser; private RestByUserModel createdByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String modifiedAt; private String modifiedAt;
@JsonProperty (required = true) @JsonProperty(required = true)
private RestByUserModel modifiedByUser; private RestByUserModel modifiedByUser;
@JsonProperty (required = true) @JsonProperty(required = true)
private String name; private String name;
@JsonProperty (required = true) @JsonProperty(required = true)
private String id; private String id;
@JsonProperty (required = true) @JsonProperty(required = true)
private String nodeType; private String nodeType;
@JsonProperty (required = true) @JsonProperty(required = true)
private String parentId; private String parentId;
/************************/ /************************/

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -32,8 +32,7 @@ package org.alfresco.rest.rm.community.model.user;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.7 * @since 2.7
*/ */
public class UserCapabilities public class UserCapabilities {
{
/** The id of the view records capability. */ /** The id of the view records capability. */
public static final String VIEW_RECORDS_CAP = "ViewRecords"; public static final String VIEW_RECORDS_CAP = "ViewRecords";

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -28,20 +28,18 @@ package org.alfresco.rest.rm.community.model.user;
/** /**
* Constants for RM user capabilities * Constants for RM user capabilities
* *
* @author Kristijan Conkas * @author Kristijan Conkas
* @since 2.6 * @since 2.6
*/ */
public enum UserPermissions public enum UserPermissions {
{
PERMISSION_FILING("Filing"), PERMISSION_FILING("Filing"),
PERMISSION_READ_RECORDS("ReadRecords"), PERMISSION_READ_RECORDS("ReadRecords"),
PERMISSION_FILE_RECORDS("FileRecords"); PERMISSION_FILE_RECORDS("FileRecords");
public final String permissionId; public final String permissionId;
UserPermissions(String permissionId) UserPermissions(String permissionId) {
{
this.permissionId = permissionId; this.permissionId = permissionId;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -33,23 +33,22 @@ package org.alfresco.rest.rm.community.model.user;
* @author Kristijan Conkas * @author Kristijan Conkas
* @since 2.6 * @since 2.6
*/ */
public enum UserRoles public enum UserRoles {
{
IN_PLACE_WRITERS("ExtendedWriters", "In-Place Writers"), IN_PLACE_WRITERS("ExtendedWriters", "In-Place Writers"),
ROLE_RM_ADMIN("Administrator", "Records Management Administrator"), ROLE_RM_ADMIN("Administrator", "Records Management Administrator"),
ROLE_RM_MANAGER("RecordsManager", "Records Management Manager"), ROLE_RM_MANAGER("RecordsManager", "Records Management Manager"),
ROLE_RM_POWER_USER("PowerUser", "Records Management Power User"), ROLE_RM_POWER_USER("PowerUser", "Records Management Power User"),
ROLE_RM_SECURITY_OFFICER("SecurityOfficer", "Records Management Security Officer"), ROLE_RM_SECURITY_OFFICER(
"SecurityOfficer",
"Records Management Security Officer"
),
ROLE_RM_USER("User", "Records Management User"); ROLE_RM_USER("User", "Records Management User");
public final String roleId; public final String roleId;
public final String displayName; public final String displayName;
UserRoles(String roleId, String displayName) UserRoles(String roleId, String displayName) {
{
this.roleId = roleId; this.roleId = roleId;
this.displayName = displayName; this.displayName = displayName;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,11 +29,10 @@ package org.alfresco.rest.rm.community.requests;
import static lombok.AccessLevel.PRIVATE; import static lombok.AccessLevel.PRIVATE;
import static lombok.AccessLevel.PROTECTED; import static lombok.AccessLevel.PROTECTED;
import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.requests.ModelRequest;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.requests.ModelRequest;
/** /**
* Extends {@link ModelRequest} to set {@link RMRestWrapper} * Extends {@link ModelRequest} to set {@link RMRestWrapper}
@@ -41,17 +40,16 @@ import lombok.Setter;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public abstract class RMModelRequest<Request> extends ModelRequest<Request> public abstract class RMModelRequest<Request> extends ModelRequest<Request> {
{
@Getter (value = PROTECTED) @Getter(value = PROTECTED)
@Setter (value = PRIVATE) @Setter(value = PRIVATE)
private RMRestWrapper rmRestWrapper; private RMRestWrapper rmRestWrapper;
/** /**
* @param rmRestWrapper * @param rmRestWrapper
*/ */
public RMModelRequest(RMRestWrapper rmRestWrapper) public RMModelRequest(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper.getRestWrapper()); super(rmRestWrapper.getRestWrapper());
setRmRestWrapper(rmRestWrapper); setRmRestWrapper(rmRestWrapper);
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -30,11 +30,10 @@ import static java.lang.Integer.parseInt;
import static java.lang.String.format; import static java.lang.String.format;
import io.restassured.RestAssured; import io.restassured.RestAssured;
import org.alfresco.rest.core.RMRestProperties; import org.alfresco.rest.core.RMRestProperties;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.requests.gscore.api.ActionsExecutionAPI;
import org.alfresco.rest.rm.community.requests.RMModelRequest; import org.alfresco.rest.rm.community.requests.RMModelRequest;
import org.alfresco.rest.rm.community.requests.gscore.api.ActionsExecutionAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI; import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI; import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RMSiteAPI; import org.alfresco.rest.rm.community.requests.gscore.api.RMSiteAPI;
@@ -54,18 +53,25 @@ import org.alfresco.rest.rm.community.requests.gscore.api.UnfiledRecordFolderAPI
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class GSCoreAPI extends RMModelRequest public class GSCoreAPI extends RMModelRequest {
{
/** /**
* Constructor * Constructor
* *
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
* @param rmRestProperties RM REST Properties * @param rmRestProperties RM REST Properties
*/ */
public GSCoreAPI(RMRestWrapper rmRestWrapper, RMRestProperties rmRestProperties) public GSCoreAPI(
{ RMRestWrapper rmRestWrapper,
RMRestProperties rmRestProperties
) {
super(rmRestWrapper); super(rmRestWrapper);
RestAssured.baseURI = format("%s://%s", rmRestProperties.getScheme(), rmRestProperties.getServer()); RestAssured.baseURI =
format(
"%s://%s",
rmRestProperties.getScheme(),
rmRestProperties.getServer()
);
RestAssured.port = parseInt(rmRestProperties.getPort()); RestAssured.port = parseInt(rmRestProperties.getPort());
RestAssured.basePath = rmRestProperties.getRestRmPath(); RestAssured.basePath = rmRestProperties.getRestRmPath();
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath); restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
@@ -76,9 +82,8 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link RMSiteAPI} * @return {@link RMSiteAPI}
*/ */
public RMSiteAPI usingRMSite() public RMSiteAPI usingRMSite() {
{ return new RMSiteAPI(getRmRestWrapper());
return new RMSiteAPI(getRmRestWrapper());
} }
/** /**
@@ -86,8 +91,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link FilePlanAPI} * @return {@link FilePlanAPI}
*/ */
public FilePlanAPI usingFilePlans() public FilePlanAPI usingFilePlans() {
{
return new FilePlanAPI(getRmRestWrapper()); return new FilePlanAPI(getRmRestWrapper());
} }
@@ -96,8 +100,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link RecordCategoryAPI} * @return {@link RecordCategoryAPI}
*/ */
public RecordCategoryAPI usingRecordCategory() public RecordCategoryAPI usingRecordCategory() {
{
return new RecordCategoryAPI(getRmRestWrapper()); return new RecordCategoryAPI(getRmRestWrapper());
} }
@@ -106,8 +109,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link RecordFolderAPI} * @return {@link RecordFolderAPI}
*/ */
public RecordFolderAPI usingRecordFolder() public RecordFolderAPI usingRecordFolder() {
{
return new RecordFolderAPI(getRmRestWrapper()); return new RecordFolderAPI(getRmRestWrapper());
} }
@@ -116,8 +118,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link RecordsAPI} * @return {@link RecordsAPI}
*/ */
public RecordsAPI usingRecords() public RecordsAPI usingRecords() {
{
return new RecordsAPI(getRmRestWrapper()); return new RecordsAPI(getRmRestWrapper());
} }
@@ -126,8 +127,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link FilesAPI} * @return {@link FilesAPI}
*/ */
public FilesAPI usingFiles() public FilesAPI usingFiles() {
{
return new FilesAPI(getRmRestWrapper()); return new FilesAPI(getRmRestWrapper());
} }
@@ -136,8 +136,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link TransferContainerAPI} * @return {@link TransferContainerAPI}
*/ */
public TransferContainerAPI usingTransferContainer() public TransferContainerAPI usingTransferContainer() {
{
return new TransferContainerAPI(getRmRestWrapper()); return new TransferContainerAPI(getRmRestWrapper());
} }
@@ -146,8 +145,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link TransferAPI} * @return {@link TransferAPI}
*/ */
public TransferAPI usingTransfer() public TransferAPI usingTransfer() {
{
return new TransferAPI(getRmRestWrapper()); return new TransferAPI(getRmRestWrapper());
} }
@@ -156,8 +154,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link UnfiledContainerAPI} * @return {@link UnfiledContainerAPI}
*/ */
public UnfiledContainerAPI usingUnfiledContainers() public UnfiledContainerAPI usingUnfiledContainers() {
{
return new UnfiledContainerAPI(getRmRestWrapper()); return new UnfiledContainerAPI(getRmRestWrapper());
} }
@@ -166,8 +163,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link UnfiledRecordFolderAPI} * @return {@link UnfiledRecordFolderAPI}
*/ */
public UnfiledRecordFolderAPI usingUnfiledRecordFolder() public UnfiledRecordFolderAPI usingUnfiledRecordFolder() {
{
return new UnfiledRecordFolderAPI(getRmRestWrapper()); return new UnfiledRecordFolderAPI(getRmRestWrapper());
} }
@@ -176,8 +172,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link RMUserAPI} * @return {@link RMUserAPI}
*/ */
public RMUserAPI usingRMUser() public RMUserAPI usingRMUser() {
{
return new RMUserAPI(getRmRestWrapper()); return new RMUserAPI(getRmRestWrapper());
} }
@@ -186,8 +181,7 @@ public class GSCoreAPI extends RMModelRequest
* *
* @return {@link ActionsExecutionAPI} * @return {@link ActionsExecutionAPI}
*/ */
public ActionsExecutionAPI usingActionsExecutionsAPI() public ActionsExecutionAPI usingActionsExecutionsAPI() {
{
return new ActionsExecutionAPI(getRmRestWrapper()); return new ActionsExecutionAPI(getRmRestWrapper());
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.rm.community.requests.gscore.api; package org.alfresco.rest.rm.community.requests.gscore.api;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.rules.ActionsOnRule; import org.alfresco.rest.rm.community.model.rules.ActionsOnRule;
@@ -41,13 +40,12 @@ import org.json.JSONObject;
* @author Claudia Agache * @author Claudia Agache
* @since 3.1 * @since 3.1
*/ */
public class ActionsExecutionAPI extends RMModelRequest public class ActionsExecutionAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public ActionsExecutionAPI(RMRestWrapper rmRestWrapper) public ActionsExecutionAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -58,11 +56,18 @@ public class ActionsExecutionAPI extends RMModelRequest
* @param destinationPath the path to the record folder * @param destinationPath the path to the record folder
* @throws Exception * @throws Exception
*/ */
public JSONObject declareAndFile(RepoTestModel targetNode, String destinationPath) throws Exception public JSONObject declareAndFile(
{ RepoTestModel targetNode,
return getRmRestWrapper().withCoreAPI().usingActions() String destinationPath
.executeAction(ActionsOnRule.DECLARE_AS_RECORD.getActionValue(), targetNode, ) throws Exception {
ImmutableMap.of("path", destinationPath)); return getRmRestWrapper()
.withCoreAPI()
.usingActions()
.executeAction(
ActionsOnRule.DECLARE_AS_RECORD.getActionValue(),
targetNode,
ImmutableMap.of("path", destinationPath)
);
} }
/** /**
@@ -71,13 +76,17 @@ public class ActionsExecutionAPI extends RMModelRequest
* @param targetNode the node on which the action is executed * @param targetNode the node on which the action is executed
* @throws Exception * @throws Exception
*/ */
public JSONObject declareAsRecord(RepoTestModel targetNode) throws Exception public JSONObject declareAsRecord(RepoTestModel targetNode)
{ throws Exception {
return getRmRestWrapper().withCoreAPI().usingActions() return getRmRestWrapper()
.executeAction(ActionsOnRule.DECLARE_AS_RECORD.getActionValue(), targetNode); .withCoreAPI()
.usingActions()
.executeAction(
ActionsOnRule.DECLARE_AS_RECORD.getActionValue(),
targetNode
);
} }
/** /**
* Declares and file a document version as record to a record folder using v1 actions api * Declares and file a document version as record to a record folder using v1 actions api
* *
@@ -85,11 +94,18 @@ public class ActionsExecutionAPI extends RMModelRequest
* @param destinationPath the path to the record folder * @param destinationPath the path to the record folder
* @throws Exception * @throws Exception
*/ */
public JSONObject declareAndFileVersionAsRecord(RepoTestModel targetNode, String destinationPath) throws Exception public JSONObject declareAndFileVersionAsRecord(
{ RepoTestModel targetNode,
return getRmRestWrapper().withCoreAPI().usingActions() String destinationPath
.executeAction(ActionsOnRule.DECLARE_VERSION_AS_RECORD.getActionValue(), targetNode, ) throws Exception {
ImmutableMap.of("path", destinationPath)); return getRmRestWrapper()
.withCoreAPI()
.usingActions()
.executeAction(
ActionsOnRule.DECLARE_VERSION_AS_RECORD.getActionValue(),
targetNode,
ImmutableMap.of("path", destinationPath)
);
} }
/** /**
@@ -98,10 +114,15 @@ public class ActionsExecutionAPI extends RMModelRequest
* @param targetNode the node on which the action is executed * @param targetNode the node on which the action is executed
* @throws Exception * @throws Exception
*/ */
public JSONObject declareVersionAsRecord(RepoTestModel targetNode) throws Exception public JSONObject declareVersionAsRecord(RepoTestModel targetNode)
{ throws Exception {
return getRmRestWrapper().withCoreAPI().usingActions() return getRmRestWrapper()
.executeAction(ActionsOnRule.DECLARE_VERSION_AS_RECORD.getActionValue(), targetNode); .withCoreAPI()
.usingActions()
.executeAction(
ActionsOnRule.DECLARE_VERSION_AS_RECORD.getActionValue(),
targetNode
);
} }
/** /**
@@ -111,10 +132,14 @@ public class ActionsExecutionAPI extends RMModelRequest
* @throws Exception * @throws Exception
*/ */
@SneakyThrows @SneakyThrows
public JSONObject addWORMLock(RepoTestModel targetNode) public JSONObject addWORMLock(RepoTestModel targetNode) {
{ return getRmRestWrapper()
return getRmRestWrapper().withCoreAPI().usingActions() .withCoreAPI()
.executeAction(ActionsOnRule.WORM_LOCK.getActionValue(), targetNode); .usingActions()
.executeAction(
ActionsOnRule.WORM_LOCK.getActionValue(),
targetNode
);
} }
/** /**
@@ -125,10 +150,20 @@ public class ActionsExecutionAPI extends RMModelRequest
* @throws Exception * @throws Exception
*/ */
@SneakyThrows @SneakyThrows
public JSONObject addWORMLock(RepoTestModel targetNode, int retentionPeriod) public JSONObject addWORMLock(
{ RepoTestModel targetNode,
return getRmRestWrapper().withCoreAPI().usingActions() int retentionPeriod
.executeAction(ActionsOnRule.WORM_LOCK.getActionValue(), targetNode, ) {
ImmutableMap.of("retentionPeriod", String.valueOf(retentionPeriod))); return getRmRestWrapper()
.withCoreAPI()
.usingActions()
.executeAction(
ActionsOnRule.WORM_LOCK.getActionValue(),
targetNode,
ImmutableMap.of(
"retentionPeriod",
String.valueOf(retentionPeriod)
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -49,23 +49,21 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class FilePlanAPI extends RMModelRequest public class FilePlanAPI extends RMModelRequest {
{
/** /**
* Constructor. * Constructor.
* *
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public FilePlanAPI(RMRestWrapper rmRestWrapper) public FilePlanAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
/** /**
* see {@link #getFilePlan(String, String)} * see {@link #getFilePlan(String, String)}
*/ */
public FilePlan getFilePlan(String filePlanId) public FilePlan getFilePlan(String filePlanId) {
{
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getFilePlan(filePlanId, EMPTY); return getFilePlan(filePlanId, EMPTY);
@@ -85,23 +83,25 @@ public class FilePlanAPI extends RMModelRequest
* <li>{@code filePlanId} does not exist</li> * <li>{@code filePlanId} does not exist</li>
* </ul> * </ul>
*/ */
public FilePlan getFilePlan(String filePlanId, String parameters) public FilePlan getFilePlan(String filePlanId, String parameters) {
{
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getRmRestWrapper().processModel(FilePlan.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"/file-plans/{filePlanId}?{parameters}", FilePlan.class,
filePlanId, simpleRequest(
parameters GET,
)); "/file-plans/{filePlanId}?{parameters}",
filePlanId,
parameters
)
);
} }
/** /**
* see {@link #getRootRecordCategories(String, String)} * see {@link #getRootRecordCategories(String, String)}
*/ */
public RecordCategoryCollection getRootRecordCategories(String filePlanId) public RecordCategoryCollection getRootRecordCategories(String filePlanId) {
{
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getRootRecordCategories(filePlanId, EMPTY); return getRootRecordCategories(filePlanId, EMPTY);
@@ -120,23 +120,31 @@ public class FilePlanAPI extends RMModelRequest
* <li>{@code filePlanId} does not exist</li> * <li>{@code filePlanId} does not exist</li>
*</ul> *</ul>
*/ */
public RecordCategoryCollection getRootRecordCategories(String filePlanId, String parameters) public RecordCategoryCollection getRootRecordCategories(
{ String filePlanId,
String parameters
) {
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getRmRestWrapper().processModels(RecordCategoryCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"file-plans/{filePlanId}/categories?{parameters}", RecordCategoryCollection.class,
filePlanId, simpleRequest(
parameters GET,
)); "file-plans/{filePlanId}/categories?{parameters}",
filePlanId,
parameters
)
);
} }
/** /**
* see {@link #createRootRecordCategory(RecordCategory, String, String)} * see {@link #createRootRecordCategory(RecordCategory, String, String)}
*/ */
public RecordCategory createRootRecordCategory(RecordCategory recordCategoryModel, String filePlanId) public RecordCategory createRootRecordCategory(
{ RecordCategory recordCategoryModel,
String filePlanId
) {
mandatoryObject("recordCategoryModel", recordCategoryModel); mandatoryObject("recordCategoryModel", recordCategoryModel);
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
@@ -160,25 +168,31 @@ public class FilePlanAPI extends RMModelRequest
* <li>model integrity exception, including node name with invalid characters</li> * <li>model integrity exception, including node name with invalid characters</li>
* </ul> * </ul>
*/ */
public RecordCategory createRootRecordCategory(RecordCategory recordCategoryModel, String filePlanId, String parameters) public RecordCategory createRootRecordCategory(
{ RecordCategory recordCategoryModel,
String filePlanId,
String parameters
) {
mandatoryObject("recordCategoryModel", recordCategoryModel); mandatoryObject("recordCategoryModel", recordCategoryModel);
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getRmRestWrapper().processModel(RecordCategory.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(recordCategoryModel), RecordCategory.class,
"file-plans/{filePlanId}/categories?{parameters}", requestWithBody(
filePlanId, POST,
parameters toJson(recordCategoryModel),
)); "file-plans/{filePlanId}/categories?{parameters}",
filePlanId,
parameters
)
);
} }
/** /**
* see {@link #updateFilePlan(FilePlan, String, String) * see {@link #updateFilePlan(FilePlan, String, String)
*/ */
public FilePlan updateFilePlan(FilePlan filePlanModel, String filePlanId) public FilePlan updateFilePlan(FilePlan filePlanModel, String filePlanId) {
{
mandatoryObject("filePlanModel", filePlanModel); mandatoryObject("filePlanModel", filePlanModel);
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
@@ -200,17 +214,24 @@ public class FilePlanAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public FilePlan updateFilePlan(FilePlan filePlanModel, String filePlanId, String parameters) public FilePlan updateFilePlan(
{ FilePlan filePlanModel,
String filePlanId,
String parameters
) {
mandatoryObject("filePlanModel", filePlanModel); mandatoryObject("filePlanModel", filePlanModel);
mandatoryString("filePlanId", filePlanId); mandatoryString("filePlanId", filePlanId);
return getRmRestWrapper().processModel(FilePlan.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(filePlanModel), FilePlan.class,
"file-plans/{filePlanId}?{parameters}", requestWithBody(
filePlanId, PUT,
parameters)); toJson(filePlanModel),
"file-plans/{filePlanId}?{parameters}",
filePlanId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -40,15 +40,14 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Kristijan Conkas * @author Kristijan Conkas
* @since 2.6 * @since 2.6
*/ */
public class FilesAPI extends RMModelRequest<FilesAPI> public class FilesAPI extends RMModelRequest<FilesAPI> {
{
public static final String PARENT_ID_PARAM = "parentId"; public static final String PARENT_ID_PARAM = "parentId";
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public FilesAPI(RMRestWrapper rmRestWrapper) public FilesAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -59,16 +58,18 @@ public class FilesAPI extends RMModelRequest<FilesAPI>
* @return The {@link Record} for created record * @return The {@link Record} for created record
* @throws RuntimeException for malformed JSON responses * @throws RuntimeException for malformed JSON responses
*/ */
public Record declareAsRecord(String fileId) public Record declareAsRecord(String fileId) {
{
mandatoryString("fileId", fileId); mandatoryString("fileId", fileId);
return getRmRestWrapper().processModel(Record.class, simpleRequest( return getRmRestWrapper()
POST, .processModel(
"/files/{fileId}/declare?{parameters}", Record.class,
fileId, simpleRequest(
getRmRestWrapper().getParameters() POST,
)); "/files/{fileId}/declare?{parameters}",
fileId,
getRmRestWrapper().getParameters()
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -46,15 +46,14 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RMSiteAPI extends RMModelRequest public class RMSiteAPI extends RMModelRequest {
{
/** /**
* Constructor * Constructor
* *
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public RMSiteAPI(RMRestWrapper rmRestWrapper) public RMSiteAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -70,12 +69,9 @@ public class RMSiteAPI extends RMModelRequest
* <li>Api Response code default Unexpected error</li> * <li>Api Response code default Unexpected error</li>
* </ul> * </ul>
*/ */
public RMSite getSite() public RMSite getSite() {
{ return getRmRestWrapper()
return getRmRestWrapper().processModel(RMSite.class, simpleRequest( .processModel(RMSite.class, simpleRequest(GET, "gs-sites/rm"));
GET,
"gs-sites/rm"
));
} }
/** /**
@@ -91,15 +87,14 @@ public class RMSiteAPI extends RMModelRequest
* <li>Api Response code default Unexpected error</li> * <li>Api Response code default Unexpected error</li>
* </ul> * </ul>
*/ */
public RMSite createRMSite(RMSite rmSiteModel) public RMSite createRMSite(RMSite rmSiteModel) {
{
mandatoryObject("rmSiteModel", rmSiteModel); mandatoryObject("rmSiteModel", rmSiteModel);
return getRmRestWrapper().processModel(RMSite.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(rmSiteModel), RMSite.class,
"gs-sites" requestWithBody(POST, toJson(rmSiteModel), "gs-sites")
)); );
} }
/** /**
@@ -113,12 +108,9 @@ public class RMSiteAPI extends RMModelRequest
* <li>Api Response code default Unexpected error</li> * <li>Api Response code default Unexpected error</li>
* </ul> * </ul>
*/ */
public void deleteRMSite() public void deleteRMSite() {
{ getRmRestWrapper()
getRmRestWrapper().processEmptyModel(simpleRequest( .processEmptyModel(simpleRequest(DELETE, "gs-sites/rm"));
DELETE,
"gs-sites/rm"
));
} }
/** /**
@@ -135,15 +127,14 @@ public class RMSiteAPI extends RMModelRequest
* <li>Api Response code default Unexpected error,model integrity exception</li> * <li>Api Response code default Unexpected error,model integrity exception</li>
* </ul> * </ul>
*/ */
public RMSite updateRMSite(RMSite rmSiteModel) public RMSite updateRMSite(RMSite rmSiteModel) {
{
mandatoryObject("rmSiteProperties", rmSiteModel); mandatoryObject("rmSiteProperties", rmSiteModel);
return getRmRestWrapper().processModel(RMSite.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(rmSiteModel), RMSite.class,
"gs-sites/rm" requestWithBody(PUT, toJson(rmSiteModel), "gs-sites/rm")
)); );
} }
/** /**
@@ -158,9 +149,10 @@ public class RMSiteAPI extends RMModelRequest
* <li>Api Response code default Unexpected error</li> * <li>Api Response code default Unexpected error</li>
* </ul> * </ul>
*/ */
public boolean existsRMSite() public boolean existsRMSite() {
{
getSite(); getSite();
return getRmRestWrapper().getStatusCode().equals(String.valueOf(OK.value())); return getRmRestWrapper()
.getStatusCode()
.equals(String.valueOf(OK.value()));
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,18 +26,16 @@
*/ */
package org.alfresco.rest.rm.community.requests.gscore.api; package org.alfresco.rest.rm.community.requests.gscore.api;
import static io.restassured.RestAssured.basic;
import static io.restassured.RestAssured.given;
import static org.jglue.fluentjson.JsonBuilderFactory.buildObject; import static org.jglue.fluentjson.JsonBuilderFactory.buildObject;
import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.HttpStatus.OK;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import io.restassured.builder.RequestSpecBuilder; import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType; import io.restassured.http.ContentType;
import io.restassured.response.Response; import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification; import io.restassured.specification.RequestSpecification;
import static io.restassured.RestAssured.basic;
import static io.restassured.RestAssured.given;
import org.alfresco.dataprep.AlfrescoHttpClient; import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory; import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.rest.core.RMRestProperties; import org.alfresco.rest.core.RMRestProperties;
@@ -56,13 +54,12 @@ import org.alfresco.utility.model.UserModel;
// FIXME: As of December 2016 there is no v1-style API for managing RM users and users' // FIXME: As of December 2016 there is no v1-style API for managing RM users and users'
// roles/permissions. Until such APIs have become available, methods in this class are just proxies to // roles/permissions. Until such APIs have become available, methods in this class are just proxies to
// "old-style" API calls. // "old-style" API calls.
public class RMUserAPI extends RMModelRequest public class RMUserAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public RMUserAPI(RMRestWrapper rmRestWrapper) public RMUserAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -70,8 +67,7 @@ public class RMUserAPI extends RMModelRequest
* Helper method to obtain {@link AlfrescoHttpClient} * Helper method to obtain {@link AlfrescoHttpClient}
* @return Initialized {@link AlfrescoHttpClient} instance * @return Initialized {@link AlfrescoHttpClient} instance
*/ */
private AlfrescoHttpClient getAlfrescoHttpClient() private AlfrescoHttpClient getAlfrescoHttpClient() {
{
RMRestProperties properties = getRmRestWrapper().getRmRestProperties(); RMRestProperties properties = getRmRestWrapper().getRmRestProperties();
AlfrescoHttpClientFactory factory = new AlfrescoHttpClientFactory(); AlfrescoHttpClientFactory factory = new AlfrescoHttpClientFactory();
@@ -89,8 +85,7 @@ public class RMUserAPI extends RMModelRequest
* @param userRole User's RM role, one of {@link UserRoles} roles * @param userRole User's RM role, one of {@link UserRoles} roles
* @throws RuntimeException for failed requests * @throws RuntimeException for failed requests
*/ */
public void assignRoleToUser(String userName, String userRole) public void assignRoleToUser(String userName, String userRole) {
{
UserModel adminUser = getRmRestWrapper().getTestUser(); UserModel adminUser = getRmRestWrapper().getTestUser();
// get an "old-style" REST API client // get an "old-style" REST API client
@@ -98,22 +93,29 @@ public class RMUserAPI extends RMModelRequest
// override v1 baseURI and basePath // override v1 baseURI and basePath
RequestSpecification spec = new RequestSpecBuilder() RequestSpecification spec = new RequestSpecBuilder()
.setBaseUri(client.getApiUrl()) .setBaseUri(client.getApiUrl())
.setBasePath("/") .setBasePath("/")
.build(); .build();
Response response = given() Response response = given()
.spec(spec) .spec(spec)
.log().all() .log()
.pathParam("role", userRole) .all()
.pathParam("authority", userName) .pathParam("role", userRole)
.param("alf_ticket", client.getAlfTicket(adminUser.getUsername(), .pathParam("authority", userName)
adminUser.getPassword())) .param(
.when() "alf_ticket",
.post("/rm/roles/{role}/authorities/{authority}") client.getAlfTicket(
.prettyPeek() adminUser.getUsername(),
.andReturn(); adminUser.getPassword()
getRmRestWrapper().setStatusCode(Integer.toString(response.getStatusCode())); )
)
.when()
.post("/rm/roles/{role}/authorities/{authority}")
.prettyPeek()
.andReturn();
getRmRestWrapper()
.setStatusCode(Integer.toString(response.getStatusCode()));
} }
/** /**
@@ -122,40 +124,46 @@ public class RMUserAPI extends RMModelRequest
* @param user {@link UserModel} for a user to be granted permission * @param user {@link UserModel} for a user to be granted permission
* @param permission {@link UserPermissions} to be granted * @param permission {@link UserPermissions} to be granted
*/ */
public void addUserPermission(String filePlanComponentId, UserModel user, UserPermissions permission) public void addUserPermission(
{ String filePlanComponentId,
UserModel user,
UserPermissions permission
) {
UserModel adminUser = getRmRestWrapper().getTestUser(); UserModel adminUser = getRmRestWrapper().getTestUser();
// get an "old-style" REST API client // get an "old-style" REST API client
AlfrescoHttpClient client = getAlfrescoHttpClient(); AlfrescoHttpClient client = getAlfrescoHttpClient();
JsonObject bodyJson = buildObject() JsonObject bodyJson = buildObject()
.addArray("permissions") .addArray("permissions")
.addObject() .addObject()
.add("authority", user.getUsername()) .add("authority", user.getUsername())
.add("role", permission.permissionId) .add("role", permission.permissionId)
.end() .end()
.getJson(); .getJson();
// override v1 baseURI and basePath // override v1 baseURI and basePath
RequestSpecification spec = new RequestSpecBuilder() RequestSpecification spec = new RequestSpecBuilder()
.setBaseUri(client.getApiUrl()) .setBaseUri(client.getApiUrl())
.setBasePath("/") .setBasePath("/")
.build(); .build();
// execute an "old-style" API call // execute an "old-style" API call
Response response = given() Response response = given()
.spec(spec) .spec(spec)
.auth().basic(adminUser.getUsername(), adminUser.getPassword()) .auth()
.contentType(ContentType.JSON) .basic(adminUser.getUsername(), adminUser.getPassword())
.body(bodyJson.toString()) .contentType(ContentType.JSON)
.pathParam("nodeId", filePlanComponentId) .body(bodyJson.toString())
.log().all() .pathParam("nodeId", filePlanComponentId)
.when() .log()
.post("/node/workspace/SpacesStore/{nodeId}/rmpermissions") .all()
.prettyPeek() .when()
.andReturn(); .post("/node/workspace/SpacesStore/{nodeId}/rmpermissions")
getRmRestWrapper().setStatusCode(Integer.toString(response.getStatusCode())); .prettyPeek()
.andReturn();
getRmRestWrapper()
.setStatusCode(Integer.toString(response.getStatusCode()));
} }
/** /**
@@ -165,41 +173,45 @@ public class RMUserAPI extends RMModelRequest
* @param isInherited true if the permission is inherited * @param isInherited true if the permission is inherited
* false if the permission inheritance is disabled * false if the permission inheritance is disabled
*/ */
public void setUserPermissionInheritance(String filePlanComponentId, Boolean isInherited) public void setUserPermissionInheritance(
{ String filePlanComponentId,
Boolean isInherited
) {
final UserModel adminUser = getRmRestWrapper().getTestUser(); final UserModel adminUser = getRmRestWrapper().getTestUser();
// get an "old-style" REST API client // get an "old-style" REST API client
final AlfrescoHttpClient client = getAlfrescoHttpClient(); final AlfrescoHttpClient client = getAlfrescoHttpClient();
final JsonObject bodyJson = buildObject() final JsonObject bodyJson = buildObject()
.addArray("permissions") .addArray("permissions")
.end() .end()
.add("isInherited", isInherited) .add("isInherited", isInherited)
.getJson(); .getJson();
// override v1 baseURI and basePath // override v1 baseURI and basePath
RequestSpecification spec = new RequestSpecBuilder() RequestSpecification spec = new RequestSpecBuilder()
.setBaseUri(client.getApiUrl()) .setBaseUri(client.getApiUrl())
.setBasePath("/") .setBasePath("/")
.build(); .build();
// execute an "old-style" API call // execute an "old-style" API call
final Response response = given() final Response response = given()
.spec(spec) .spec(spec)
.auth().basic(adminUser.getUsername(), adminUser.getPassword()) .auth()
.contentType(ContentType.JSON) .basic(adminUser.getUsername(), adminUser.getPassword())
.body(bodyJson.toString()) .contentType(ContentType.JSON)
.pathParam("nodeId", filePlanComponentId) .body(bodyJson.toString())
.log().all() .pathParam("nodeId", filePlanComponentId)
.when() .log()
.post("/node/workspace/SpacesStore/{nodeId}/rmpermissions") .all()
.prettyPeek() .when()
.andReturn(); .post("/node/workspace/SpacesStore/{nodeId}/rmpermissions")
getRmRestWrapper().setStatusCode(Integer.toString(response.getStatusCode())); .prettyPeek()
.andReturn();
getRmRestWrapper()
.setStatusCode(Integer.toString(response.getStatusCode()));
} }
/** /**
* Creates a user with the given name using the old APIs * Creates a user with the given name using the old APIs
* *
@@ -208,8 +220,11 @@ public class RMUserAPI extends RMModelRequest
* @param userEmail The user's e-mail address * @param userEmail The user's e-mail address
* @return <code>true</code> if the user was created successfully, <code>false</code> otherwise. * @return <code>true</code> if the user was created successfully, <code>false</code> otherwise.
*/ */
public boolean createUser(String userName, String userPassword, String userEmail) public boolean createUser(
{ String userName,
String userPassword,
String userEmail
) {
UserModel adminUser = getRmRestWrapper().getTestUser(); UserModel adminUser = getRmRestWrapper().getTestUser();
final AlfrescoHttpClient client = getAlfrescoHttpClient(); final AlfrescoHttpClient client = getAlfrescoHttpClient();
@@ -232,8 +247,9 @@ public class RMUserAPI extends RMModelRequest
// create POST request to "people" endpoint // create POST request to "people" endpoint
Response response = given() Response response = given()
.spec(spec) .spec(spec)
.log().all() .log()
.when() .all()
.when()
.post("people") .post("people")
.prettyPeek() .prettyPeek()
.andReturn(); .andReturn();

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -49,15 +49,14 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RecordCategoryAPI extends RMModelRequest public class RecordCategoryAPI extends RMModelRequest {
{
/** /**
* Constructor. * Constructor.
* *
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public RecordCategoryAPI(RMRestWrapper rmRestWrapper) public RecordCategoryAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -74,22 +73,23 @@ public class RecordCategoryAPI extends RMModelRequest
* <li>{@code recordCategoryId} is locked and cannot be deleted</li> * <li>{@code recordCategoryId} is locked and cannot be deleted</li>
* </ul> * </ul>
*/ */
public void deleteRecordCategory(String recordCategoryId) public void deleteRecordCategory(String recordCategoryId) {
{
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
getRmRestWrapper().processEmptyModel(simpleRequest( getRmRestWrapper()
DELETE, .processEmptyModel(
"record-categories/{recordCategoryId}", simpleRequest(
recordCategoryId DELETE,
)); "record-categories/{recordCategoryId}",
recordCategoryId
)
);
} }
/** /**
* see {@link #getRecordCategory(String, String)} * see {@link #getRecordCategory(String, String)}
*/ */
public RecordCategory getRecordCategory(String recordCategoryId) public RecordCategory getRecordCategory(String recordCategoryId) {
{
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRecordCategory(recordCategoryId, EMPTY); return getRecordCategory(recordCategoryId, EMPTY);
@@ -109,27 +109,39 @@ public class RecordCategoryAPI extends RMModelRequest
* <li>{@code recordCategoryId} does not exist</li> * <li>{@code recordCategoryId} does not exist</li>
* </ul> * </ul>
*/ */
public RecordCategory getRecordCategory(String recordCategoryId, String parameters) public RecordCategory getRecordCategory(
{ String recordCategoryId,
String parameters
) {
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRmRestWrapper().processModel(RecordCategory.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"record-categories/{recordCategoryId}?{parameters}", RecordCategory.class,
recordCategoryId, simpleRequest(
parameters GET,
)); "record-categories/{recordCategoryId}?{parameters}",
recordCategoryId,
parameters
)
);
} }
/** /**
* see {@link #updateRecordCategory(RecordCategory, String, String) * see {@link #updateRecordCategory(RecordCategory, String, String)
*/ */
public RecordCategory updateRecordCategory(RecordCategory recordCategoryModel, String recordCategoryId) public RecordCategory updateRecordCategory(
{ RecordCategory recordCategoryModel,
String recordCategoryId
) {
mandatoryObject("recordCategoryModel", recordCategoryModel); mandatoryObject("recordCategoryModel", recordCategoryModel);
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return updateRecordCategory(recordCategoryModel, recordCategoryId, EMPTY); return updateRecordCategory(
recordCategoryModel,
recordCategoryId,
EMPTY
);
} }
/** /**
@@ -149,25 +161,33 @@ public class RecordCategoryAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public RecordCategory updateRecordCategory(RecordCategory recordCategoryModel, String recordCategoryId, String parameters) public RecordCategory updateRecordCategory(
{ RecordCategory recordCategoryModel,
String recordCategoryId,
String parameters
) {
mandatoryObject("recordCategoryModel", recordCategoryModel); mandatoryObject("recordCategoryModel", recordCategoryModel);
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRmRestWrapper().processModel(RecordCategory.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(recordCategoryModel), RecordCategory.class,
"record-categories/{recordCategoryId}?{parameters}", requestWithBody(
recordCategoryId, PUT,
parameters toJson(recordCategoryModel),
)); "record-categories/{recordCategoryId}?{parameters}",
recordCategoryId,
parameters
)
);
} }
/** /**
* see {@link #getRecordCategoryChildren(String, String)} * see {@link #getRecordCategoryChildren(String, String)}
*/ */
public RecordCategoryChildCollection getRecordCategoryChildren(String recordCategoryId) public RecordCategoryChildCollection getRecordCategoryChildren(
{ String recordCategoryId
) {
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRecordCategoryChildren(recordCategoryId, EMPTY); return getRecordCategoryChildren(recordCategoryId, EMPTY);
@@ -186,27 +206,39 @@ public class RecordCategoryAPI extends RMModelRequest
* <li>{@code recordCategoryId} does not exist</li> * <li>{@code recordCategoryId} does not exist</li>
*</ul> *</ul>
*/ */
public RecordCategoryChildCollection getRecordCategoryChildren(String recordCategoryId, String parameters) public RecordCategoryChildCollection getRecordCategoryChildren(
{ String recordCategoryId,
String parameters
) {
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRmRestWrapper().processModels(RecordCategoryChildCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"record-categories/{recordCategoryId}/children?{parameters}", RecordCategoryChildCollection.class,
recordCategoryId, simpleRequest(
parameters GET,
)); "record-categories/{recordCategoryId}/children?{parameters}",
recordCategoryId,
parameters
)
);
} }
/** /**
* see {@link #createRecordCategoryChild(RecordCategoryChild, String, String)} * see {@link #createRecordCategoryChild(RecordCategoryChild, String, String)}
*/ */
public RecordCategoryChild createRecordCategoryChild(RecordCategoryChild recordCategoryChildModel, String recordCategoryId) public RecordCategoryChild createRecordCategoryChild(
{ RecordCategoryChild recordCategoryChildModel,
String recordCategoryId
) {
mandatoryObject("recordCategoryChildModel", recordCategoryChildModel); mandatoryObject("recordCategoryChildModel", recordCategoryChildModel);
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return createRecordCategoryChild(recordCategoryChildModel, recordCategoryId, EMPTY); return createRecordCategoryChild(
recordCategoryChildModel,
recordCategoryId,
EMPTY
);
} }
/** /**
@@ -226,17 +258,27 @@ public class RecordCategoryAPI extends RMModelRequest
* <li>model integrity exception, including node name with invalid characters</li> * <li>model integrity exception, including node name with invalid characters</li>
* </ul> * </ul>
*/ */
public RecordCategoryChild createRecordCategoryChild(RecordCategoryChild recordCategoryChildModel, String recordCategoryId, String parameters) public RecordCategoryChild createRecordCategoryChild(
{ RecordCategoryChild recordCategoryChildModel,
mandatoryObject("filePlanComponentProperties", recordCategoryChildModel); String recordCategoryId,
String parameters
) {
mandatoryObject(
"filePlanComponentProperties",
recordCategoryChildModel
);
mandatoryString("recordCategoryId", recordCategoryId); mandatoryString("recordCategoryId", recordCategoryId);
return getRmRestWrapper().processModel(RecordCategoryChild.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(recordCategoryChildModel), RecordCategoryChild.class,
"record-categories/{recordCategoryId}/children?{parameters}", requestWithBody(
recordCategoryId, POST,
parameters toJson(recordCategoryChildModel),
)); "record-categories/{recordCategoryId}/children?{parameters}",
recordCategoryId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -39,15 +39,13 @@ import static org.springframework.http.HttpMethod.POST;
import static org.springframework.http.HttpMethod.PUT; import static org.springframework.http.HttpMethod.PUT;
import static org.testng.Assert.fail; import static org.testng.Assert.fail;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.builder.RequestSpecBuilder; import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType; import io.restassured.http.ContentType;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.record.Record; import org.alfresco.rest.rm.community.model.record.Record;
import org.alfresco.rest.rm.community.model.recordfolder.RecordFolder; import org.alfresco.rest.rm.community.model.recordfolder.RecordFolder;
@@ -61,15 +59,14 @@ import org.alfresco.rest.rm.community.util.FilePlanComponentMixIn;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class RecordFolderAPI extends RMModelRequest public class RecordFolderAPI extends RMModelRequest {
{
/** /**
* Constructor. * Constructor.
* *
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public RecordFolderAPI(RMRestWrapper rmRestWrapper) public RecordFolderAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -86,22 +83,23 @@ public class RecordFolderAPI extends RMModelRequest
* <li>{@code recordFolderId} is locked and cannot be deleted</li> * <li>{@code recordFolderId} is locked and cannot be deleted</li>
* </ul> * </ul>
*/ */
public void deleteRecordFolder(String recordFolderId) public void deleteRecordFolder(String recordFolderId) {
{
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
getRmRestWrapper().processEmptyModel(simpleRequest( getRmRestWrapper()
DELETE, .processEmptyModel(
"record-folders/{recordFolderId}", simpleRequest(
recordFolderId DELETE,
)); "record-folders/{recordFolderId}",
recordFolderId
)
);
} }
/** /**
* see {@link #getRecordFolder(String, String)} * see {@link #getRecordFolder(String, String)}
*/ */
public RecordFolder getRecordFolder(String recordFolderId) public RecordFolder getRecordFolder(String recordFolderId) {
{
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRecordFolder(recordFolderId, EMPTY); return getRecordFolder(recordFolderId, EMPTY);
@@ -121,23 +119,31 @@ public class RecordFolderAPI extends RMModelRequest
* <li>{@code recordFolderId} does not exist</li> * <li>{@code recordFolderId} does not exist</li>
* </ul> * </ul>
*/ */
public RecordFolder getRecordFolder(String recordFolderId, String parameters) public RecordFolder getRecordFolder(
{ String recordFolderId,
String parameters
) {
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRmRestWrapper().processModel(RecordFolder.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"record-folders/{recordFolderId}?{parameters}", RecordFolder.class,
recordFolderId, simpleRequest(
parameters GET,
)); "record-folders/{recordFolderId}?{parameters}",
recordFolderId,
parameters
)
);
} }
/** /**
* see {@link #updateRecordFolder(RecordFolder, String, String) * see {@link #updateRecordFolder(RecordFolder, String, String)
*/ */
public RecordFolder updateRecordFolder(RecordFolder recordFolderModel, String recordFolderId) public RecordFolder updateRecordFolder(
{ RecordFolder recordFolderModel,
String recordFolderId
) {
mandatoryObject("recordFolderModel", recordFolderModel); mandatoryObject("recordFolderModel", recordFolderModel);
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
@@ -161,25 +167,33 @@ public class RecordFolderAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public RecordFolder updateRecordFolder(RecordFolder recordFolderModel, String recordFolderId, String parameters) public RecordFolder updateRecordFolder(
{ RecordFolder recordFolderModel,
String recordFolderId,
String parameters
) {
mandatoryObject("recordFolderModel", recordFolderModel); mandatoryObject("recordFolderModel", recordFolderModel);
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRmRestWrapper().processModel(RecordFolder.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(recordFolderModel), RecordFolder.class,
"record-folders/{recordFolderId}?{parameters}", requestWithBody(
recordFolderId, PUT,
parameters toJson(recordFolderModel),
)); "record-folders/{recordFolderId}?{parameters}",
recordFolderId,
parameters
)
);
} }
/** /**
* see {@link #getRecordFolderChildren(String, String)} * see {@link #getRecordFolderChildren(String, String)}
*/ */
public RecordFolderCollection getRecordFolderChildren(String recordFolderId) public RecordFolderCollection getRecordFolderChildren(
{ String recordFolderId
) {
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRecordFolderChildren(recordFolderId, EMPTY); return getRecordFolderChildren(recordFolderId, EMPTY);
@@ -198,23 +212,28 @@ public class RecordFolderAPI extends RMModelRequest
* <li>{@code recordFolderId} does not exist</li> * <li>{@code recordFolderId} does not exist</li>
*</ul> *</ul>
*/ */
public RecordFolderCollection getRecordFolderChildren(String recordFolderId, String parameters) public RecordFolderCollection getRecordFolderChildren(
{ String recordFolderId,
String parameters
) {
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRmRestWrapper().processModels(RecordFolderCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"record-folders/{recordFolderId}/records?{parameters}", RecordFolderCollection.class,
recordFolderId, simpleRequest(
parameters GET,
)); "record-folders/{recordFolderId}/records?{parameters}",
recordFolderId,
parameters
)
);
} }
/** /**
* see {@link #createRecord(Record, String, String)} * see {@link #createRecord(Record, String, String)}
*/ */
public Record createRecord(Record recordModel, String recordFolderId) public Record createRecord(Record recordModel, String recordFolderId) {
{
mandatoryObject("recordModel", recordModel); mandatoryObject("recordModel", recordModel);
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
@@ -230,14 +249,16 @@ public class RecordFolderAPI extends RMModelRequest
* @return newly created {@link Record} * @return newly created {@link Record}
* @throws RuntimeException for invalid recordModel JSON strings * @throws RuntimeException for invalid recordModel JSON strings
*/ */
public Record createRecord(Record recordModel, String recordFolderId, File recordContent) throws RuntimeException public Record createRecord(
{ Record recordModel,
String recordFolderId,
File recordContent
) throws RuntimeException {
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
mandatoryObject("recordContent", recordContent); mandatoryObject("recordContent", recordContent);
mandatoryObject("recordModel", recordModel); mandatoryObject("recordModel", recordModel);
if (!recordModel.getNodeType().equals(CONTENT_TYPE)) if (!recordModel.getNodeType().equals(CONTENT_TYPE)) {
{
fail("Only electronic records are supported"); fail("Only electronic records are supported");
} }
@@ -247,22 +268,34 @@ public class RecordFolderAPI extends RMModelRequest
*/ */
RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec(); RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec();
JsonNode root; JsonNode root;
try try {
{ root =
root = new ObjectMapper().readTree(toJson(recordModel, Record.class, FilePlanComponentMixIn.class)); new ObjectMapper()
} .readTree(
catch (IOException e) toJson(
{ recordModel,
Record.class,
FilePlanComponentMixIn.class
)
);
} catch (IOException e) {
throw new RuntimeException("Failed to convert model to JSON.", e); throw new RuntimeException("Failed to convert model to JSON.", e);
} }
// add request fields // add request fields
Iterator<String> fieldNames = root.fieldNames(); Iterator<String> fieldNames = root.fieldNames();
while (fieldNames.hasNext()) while (fieldNames.hasNext()) {
{
String fieldName = fieldNames.next(); String fieldName = fieldNames.next();
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name()); builder.addMultiPart(
fieldName,
root.get(fieldName).asText(),
ContentType.JSON.name()
);
} }
builder.addMultiPart("filedata", recordContent, ContentType.BINARY.name()); builder.addMultiPart(
"filedata",
recordContent,
ContentType.BINARY.name()
);
// create node with given content // create node with given content
return createRecord(recordModel, recordFolderId); return createRecord(recordModel, recordFolderId);
@@ -284,17 +317,24 @@ public class RecordFolderAPI extends RMModelRequest
* <li>model integrity exception, including node name with invalid characters</li> * <li>model integrity exception, including node name with invalid characters</li>
* </ul> * </ul>
*/ */
public Record createRecord(Record recordModel, String recordFolderId, String parameters) public Record createRecord(
{ Record recordModel,
String recordFolderId,
String parameters
) {
mandatoryObject("recordModel", recordModel); mandatoryObject("recordModel", recordModel);
mandatoryString("recordFolderId", recordFolderId); mandatoryString("recordFolderId", recordFolderId);
return getRmRestWrapper().processModel(Record.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(recordModel), Record.class,
"record-folders/{recordFolderId}/records?{parameters}", requestWithBody(
recordFolderId, POST,
parameters toJson(recordModel),
)); "record-folders/{recordFolderId}/records?{parameters}",
recordFolderId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -37,27 +37,24 @@ import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpMethod.POST; import static org.springframework.http.HttpMethod.POST;
import static org.springframework.http.HttpMethod.PUT; import static org.springframework.http.HttpMethod.PUT;
import io.restassured.response.ResponseBody;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.record.Record; import org.alfresco.rest.rm.community.model.record.Record;
import org.alfresco.rest.rm.community.model.record.RecordBodyFile; import org.alfresco.rest.rm.community.model.record.RecordBodyFile;
import org.alfresco.rest.rm.community.requests.RMModelRequest; import org.alfresco.rest.rm.community.requests.RMModelRequest;
import io.restassured.response.ResponseBody;
/** /**
* Records REST API Wrapper * Records REST API Wrapper
* *
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public class RecordsAPI extends RMModelRequest public class RecordsAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public RecordsAPI(RMRestWrapper rmRestWrapper) public RecordsAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
@@ -74,14 +71,14 @@ public class RecordsAPI extends RMModelRequest
* <li>{@code recordId} does not exist</li> * <li>{@code recordId} does not exist</li>
* </ul> * </ul>
*/ */
public ResponseBody<?> getRecordContent(String recordId) public ResponseBody<?> getRecordContent(String recordId) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRmRestWrapper() return getRmRestWrapper()
.processHtmlResponse(simpleRequest(GET,"records/{recordId}/content", recordId)) .processHtmlResponse(
simpleRequest(GET, "records/{recordId}/content", recordId)
)
.getBody(); .getBody();
} }
/** /**
@@ -101,8 +98,7 @@ public class RecordsAPI extends RMModelRequest
* </ul> * </ul>
* *
*/ */
public Record fileRecord(RecordBodyFile recordBodyFile, String recordId) public Record fileRecord(RecordBodyFile recordBodyFile, String recordId) {
{
mandatoryObject("recordBodyFile", recordBodyFile); mandatoryObject("recordBodyFile", recordBodyFile);
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
@@ -126,25 +122,31 @@ public class RecordsAPI extends RMModelRequest
* </ul> * </ul>
* *
*/ */
public Record fileRecord(RecordBodyFile recordBodyFile, String recordId, String parameters) public Record fileRecord(
{ RecordBodyFile recordBodyFile,
String recordId,
String parameters
) {
mandatoryObject("requestBodyFile", recordBodyFile); mandatoryObject("requestBodyFile", recordBodyFile);
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRmRestWrapper().processModel(Record.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(recordBodyFile), Record.class,
"/records/{recordId}/file?{parameters}", requestWithBody(
recordId, POST,
parameters toJson(recordBodyFile),
)); "/records/{recordId}/file?{parameters}",
recordId,
parameters
)
);
} }
/** /**
* see {@link #completeRecord(String, String) * see {@link #completeRecord(String, String)
*/ */
public Record completeRecord(String recordId) public Record completeRecord(String recordId) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return completeRecord(recordId, EMPTY); return completeRecord(recordId, EMPTY);
@@ -165,17 +167,21 @@ public class RecordsAPI extends RMModelRequest
* <li>model integrity exception: the record has missing meta-data</li> * <li>model integrity exception: the record has missing meta-data</li>
* </ul> * </ul>
*/ */
public Record completeRecord(String recordId, String parameters) public Record completeRecord(String recordId, String parameters) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRmRestWrapper().processModel(Record.class, simpleRequest( return getRmRestWrapper()
POST, .processModel(
"/records/{recordId}/complete?{parameters}", Record.class,
recordId, simpleRequest(
parameters POST,
)); "/records/{recordId}/complete?{parameters}",
recordId,
parameters
)
);
} }
/** /**
* Deletes a record. * Deletes a record.
* *
@@ -189,22 +195,19 @@ public class RecordsAPI extends RMModelRequest
* <li>{@code recordId} is locked and cannot be deleted</li> * <li>{@code recordId} is locked and cannot be deleted</li>
* </ul> * </ul>
*/ */
public void deleteRecord(String recordId) public void deleteRecord(String recordId) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
getRmRestWrapper().processEmptyModel(simpleRequest( getRmRestWrapper()
DELETE, .processEmptyModel(
"records/{recordId}", simpleRequest(DELETE, "records/{recordId}", recordId)
recordId );
));
} }
/** /**
* see {@link #getRecord(String, String)} * see {@link #getRecord(String, String)}
*/ */
public Record getRecord(String recordId) public Record getRecord(String recordId) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRecord(recordId, EMPTY); return getRecord(recordId, EMPTY);
@@ -224,23 +227,25 @@ public class RecordsAPI extends RMModelRequest
* <li>{@code recordId} does not exist</li> * <li>{@code recordId} does not exist</li>
* </ul> * </ul>
*/ */
public Record getRecord(String recordId, String parameters) public Record getRecord(String recordId, String parameters) {
{
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRmRestWrapper().processModel(Record.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"records/{recordId}?{parameters}", Record.class,
recordId, simpleRequest(
parameters GET,
)); "records/{recordId}?{parameters}",
recordId,
parameters
)
);
} }
/** /**
* see {@link #updateRecord(Record, String, String) * see {@link #updateRecord(Record, String, String)
*/ */
public Record updateRecord(Record recordModel, String recordId) public Record updateRecord(Record recordModel, String recordId) {
{
mandatoryObject("recordModel", recordModel); mandatoryObject("recordModel", recordModel);
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
@@ -264,17 +269,24 @@ public class RecordsAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public Record updateRecord(Record recordModel, String recordId, String parameters) public Record updateRecord(
{ Record recordModel,
String recordId,
String parameters
) {
mandatoryObject("recordModel", recordModel); mandatoryObject("recordModel", recordModel);
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
return getRmRestWrapper().processModel(Record.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(recordModel), Record.class,
"records/{recordId}?{parameters}", requestWithBody(
recordId, PUT,
parameters toJson(recordModel),
)); "records/{recordId}?{parameters}",
recordId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -43,21 +43,19 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Silviu Dinuta * @author Silviu Dinuta
* @since 2.6 * @since 2.6
*/ */
public class TransferAPI extends RMModelRequest public class TransferAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public TransferAPI(RMRestWrapper rmRestWrapper) public TransferAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
/** /**
* see {@link #getTransfer(String, String)} * see {@link #getTransfer(String, String)}
*/ */
public Transfer getTransfer(String transferId) public Transfer getTransfer(String transferId) {
{
mandatoryString("transferId", transferId); mandatoryString("transferId", transferId);
return getTransfer(transferId, EMPTY); return getTransfer(transferId, EMPTY);
@@ -77,22 +75,25 @@ public class TransferAPI extends RMModelRequest
* <li>{@code transferId} does not exist</li> * <li>{@code transferId} does not exist</li>
* </ul> * </ul>
*/ */
public Transfer getTransfer(String transferId, String parameters) public Transfer getTransfer(String transferId, String parameters) {
{
mandatoryString("transferId", transferId); mandatoryString("transferId", transferId);
return getRmRestWrapper().processModel(Transfer.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"/transfers/{transferId}?{parameters}", Transfer.class,
transferId, simpleRequest(
parameters GET,
)); "/transfers/{transferId}?{parameters}",
transferId,
parameters
)
);
} }
/** /**
* see {@link #getTransfersChildren(String, String)} * see {@link #getTransfersChildren(String, String)}
*/ */
public TransferChildCollection getTransfersChildren(String transferId) public TransferChildCollection getTransfersChildren(String transferId) {
{
mandatoryString("transferId", transferId); mandatoryString("transferId", transferId);
return getTransfersChildren(transferId, EMPTY); return getTransfersChildren(transferId, EMPTY);
@@ -111,15 +112,21 @@ public class TransferAPI extends RMModelRequest
* <li>{@code filePlanId} does not exist</li> * <li>{@code filePlanId} does not exist</li>
*</ul> *</ul>
*/ */
public TransferChildCollection getTransfersChildren(String transferId, String parameters) public TransferChildCollection getTransfersChildren(
{ String transferId,
String parameters
) {
mandatoryString("transferId", transferId); mandatoryString("transferId", transferId);
return getRmRestWrapper().processModels(TransferChildCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"transfers/{filePlanId}/children?{parameters}", TransferChildCollection.class,
transferId, simpleRequest(
parameters GET,
)); "transfers/{filePlanId}/children?{parameters}",
transferId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -47,21 +47,19 @@ import org.alfresco.rest.rm.community.requests.RMModelRequest;
* @author Silviu Dinuta * @author Silviu Dinuta
* @since 2.6 * @since 2.6
*/ */
public class TransferContainerAPI extends RMModelRequest public class TransferContainerAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public TransferContainerAPI(RMRestWrapper rmRestWrapper) public TransferContainerAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
/** /**
* see {@link #getTransferContainer(String, String)} * see {@link #getTransferContainer(String, String)}
*/ */
public TransferContainer getTransferContainer(String transferContainerId) public TransferContainer getTransferContainer(String transferContainerId) {
{
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return getTransferContainer(transferContainerId, EMPTY); return getTransferContainer(transferContainerId, EMPTY);
@@ -81,27 +79,39 @@ public class TransferContainerAPI extends RMModelRequest
* <li>{@code transferContainerId} does not exist</li> * <li>{@code transferContainerId} does not exist</li>
* </ul> * </ul>
*/ */
public TransferContainer getTransferContainer(String transferContainerId, String parameters) public TransferContainer getTransferContainer(
{ String transferContainerId,
String parameters
) {
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return getRmRestWrapper().processModel(TransferContainer.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"/transfer-containers/{transferContainerId}?{parameters}", TransferContainer.class,
transferContainerId, simpleRequest(
parameters GET,
)); "/transfer-containers/{transferContainerId}?{parameters}",
transferContainerId,
parameters
)
);
} }
/** /**
* see {@link #updateTransferContainer(TransferContainer, String, String) * see {@link #updateTransferContainer(TransferContainer, String, String)
*/ */
public TransferContainer updateTransferContainer(TransferContainer transferContainerModel, String transferContainerId) public TransferContainer updateTransferContainer(
{ TransferContainer transferContainerModel,
String transferContainerId
) {
mandatoryObject("transferContainerModel", transferContainerModel); mandatoryObject("transferContainerModel", transferContainerModel);
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return updateTransferContainer(transferContainerModel, transferContainerId, EMPTY); return updateTransferContainer(
transferContainerModel,
transferContainerId,
EMPTY
);
} }
/** /**
@@ -121,25 +131,31 @@ public class TransferContainerAPI extends RMModelRequest
* <li>model integrity exception, including transfer container name with invalid characters</li> * <li>model integrity exception, including transfer container name with invalid characters</li>
* </ul> * </ul>
*/ */
public TransferContainer updateTransferContainer(TransferContainer transferContainerModel, String transferContainerId, String parameters) public TransferContainer updateTransferContainer(
{ TransferContainer transferContainerModel,
String transferContainerId,
String parameters
) {
mandatoryObject("transferContainerModel", transferContainerModel); mandatoryObject("transferContainerModel", transferContainerModel);
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return getRmRestWrapper().processModel(TransferContainer.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(transferContainerModel), TransferContainer.class,
"transfer-containers/{transferContainerId}?{parameters}", requestWithBody(
transferContainerId, PUT,
parameters toJson(transferContainerModel),
)); "transfer-containers/{transferContainerId}?{parameters}",
transferContainerId,
parameters
)
);
} }
/** /**
* see {@link #getTransfers(String, String)} * see {@link #getTransfers(String, String)}
*/ */
public TransferCollection getTransfers(String transferContainerId) public TransferCollection getTransfers(String transferContainerId) {
{
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return getTransfers(transferContainerId, EMPTY); return getTransfers(transferContainerId, EMPTY);
@@ -158,15 +174,21 @@ public class TransferContainerAPI extends RMModelRequest
* <li>{@code filePlanId} does not exist</li> * <li>{@code filePlanId} does not exist</li>
*</ul> *</ul>
*/ */
public TransferCollection getTransfers(String transferContainerId, String parameters) public TransferCollection getTransfers(
{ String transferContainerId,
String parameters
) {
mandatoryString("transferContainerId", transferContainerId); mandatoryString("transferContainerId", transferContainerId);
return getRmRestWrapper().processModels(TransferCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"transfer-containers/{filePlanId}/transfers?{parameters}", TransferCollection.class,
transferContainerId, simpleRequest(
parameters GET,
)); "transfer-containers/{filePlanId}/transfers?{parameters}",
transferContainerId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -38,16 +38,13 @@ import static org.springframework.http.HttpMethod.POST;
import static org.springframework.http.HttpMethod.PUT; import static org.springframework.http.HttpMethod.PUT;
import static org.testng.Assert.fail; import static org.testng.Assert.fail;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Iterator; import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainer; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainer;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild;
@@ -62,21 +59,19 @@ import org.alfresco.rest.rm.community.util.UnfiledContainerChildMixin;
* @author Ana Bozianu * @author Ana Bozianu
* @since 2.6 * @since 2.6
*/ */
public class UnfiledContainerAPI extends RMModelRequest public class UnfiledContainerAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public UnfiledContainerAPI(RMRestWrapper rmRestWrapper) public UnfiledContainerAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
/** /**
* see {@link #getUnfiledContainer(String, String)} * see {@link #getUnfiledContainer(String, String)}
*/ */
public UnfiledContainer getUnfiledContainer(String unfiledContainerId) public UnfiledContainer getUnfiledContainer(String unfiledContainerId) {
{
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getUnfiledContainer(unfiledContainerId, EMPTY); return getUnfiledContainer(unfiledContainerId, EMPTY);
@@ -96,23 +91,30 @@ public class UnfiledContainerAPI extends RMModelRequest
* <li>{@code unfiledContainerId} does not exist</li> * <li>{@code unfiledContainerId} does not exist</li>
* </ul> * </ul>
*/ */
public UnfiledContainer getUnfiledContainer(String unfiledContainerId, String parameters) public UnfiledContainer getUnfiledContainer(
{ String unfiledContainerId,
String parameters
) {
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getRmRestWrapper().processModel(UnfiledContainer.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"unfiled-containers/{unfiledContainerId}?{parameters}", UnfiledContainer.class,
unfiledContainerId, simpleRequest(
parameters GET,
)); "unfiled-containers/{unfiledContainerId}?{parameters}",
unfiledContainerId,
parameters
)
);
} }
/** /**
* see {@link #getUnfiledContainerChildren(String)} (String, String)} * see {@link #getUnfiledContainerChildren(String)} (String, String)}
*/ */
public UnfiledContainerChildCollection getUnfiledContainerChildren(String unfiledContainerId) public UnfiledContainerChildCollection getUnfiledContainerChildren(
{ String unfiledContainerId
) {
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getUnfiledContainerChildren(unfiledContainerId, EMPTY); return getUnfiledContainerChildren(unfiledContainerId, EMPTY);
@@ -131,27 +133,42 @@ public class UnfiledContainerAPI extends RMModelRequest
* <li>{@code unfiledContainerId} does not exist</li> * <li>{@code unfiledContainerId} does not exist</li>
*</ul> *</ul>
*/ */
public UnfiledContainerChildCollection getUnfiledContainerChildren(String unfiledContainerId, String parameters) public UnfiledContainerChildCollection getUnfiledContainerChildren(
{ String unfiledContainerId,
String parameters
) {
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getRmRestWrapper().processModels(UnfiledContainerChildCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"unfiled-containers/{unfiledContainerId}/children?{parameters}", UnfiledContainerChildCollection.class,
unfiledContainerId, simpleRequest(
parameters GET,
)); "unfiled-containers/{unfiledContainerId}/children?{parameters}",
unfiledContainerId,
parameters
)
);
} }
/** /**
* see {@link #createUnfiledContainerChild(UnfiledContainerChild, String, String)} * see {@link #createUnfiledContainerChild(UnfiledContainerChild, String, String)}
*/ */
public UnfiledContainerChild createUnfiledContainerChild(UnfiledContainerChild unfiledContainerChildModel, String unfiledContainerId) public UnfiledContainerChild createUnfiledContainerChild(
{ UnfiledContainerChild unfiledContainerChildModel,
mandatoryObject("unfiledContainerChildModel", unfiledContainerChildModel); String unfiledContainerId
) {
mandatoryObject(
"unfiledContainerChildModel",
unfiledContainerChildModel
);
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return createUnfiledContainerChild(unfiledContainerChildModel, unfiledContainerId, EMPTY); return createUnfiledContainerChild(
unfiledContainerChildModel,
unfiledContainerId,
EMPTY
);
} }
/** /**
@@ -171,18 +188,28 @@ public class UnfiledContainerAPI extends RMModelRequest
* <li>model integrity exception, including node name with invalid characters</li> * <li>model integrity exception, including node name with invalid characters</li>
* </ul> * </ul>
*/ */
public UnfiledContainerChild createUnfiledContainerChild(UnfiledContainerChild unfiledContainerChildModel, String unfiledContainerId, String parameters) public UnfiledContainerChild createUnfiledContainerChild(
{ UnfiledContainerChild unfiledContainerChildModel,
mandatoryObject("unfiledContainerChildModel", unfiledContainerChildModel); String unfiledContainerId,
String parameters
) {
mandatoryObject(
"unfiledContainerChildModel",
unfiledContainerChildModel
);
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getRmRestWrapper().processModel(UnfiledContainerChild.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(unfiledContainerChildModel), UnfiledContainerChild.class,
"unfiled-containers/{unfiledContainerId}/children?{parameters}", requestWithBody(
unfiledContainerId, POST,
parameters toJson(unfiledContainerChildModel),
)); "unfiled-containers/{unfiledContainerId}/children?{parameters}",
unfiledContainerId,
parameters
)
);
} }
/** /**
@@ -194,14 +221,22 @@ public class UnfiledContainerAPI extends RMModelRequest
* @return newly created {@link UnfiledContainerChild} * @return newly created {@link UnfiledContainerChild}
* @throws RuntimeException for invalid recordModel JSON strings * @throws RuntimeException for invalid recordModel JSON strings
*/ */
public UnfiledContainerChild uploadRecord(UnfiledContainerChild unfiledContainerChildModel, String unfiledContainerId, File unfiledContainerChildContent) public UnfiledContainerChild uploadRecord(
{ UnfiledContainerChild unfiledContainerChildModel,
mandatoryObject("unfiledContainerChildModel", unfiledContainerChildModel); String unfiledContainerId,
mandatoryObject("unfiledContainerChildContent", unfiledContainerChildContent); File unfiledContainerChildContent
) {
mandatoryObject(
"unfiledContainerChildModel",
unfiledContainerChildModel
);
mandatoryObject(
"unfiledContainerChildContent",
unfiledContainerChildContent
);
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
if (!unfiledContainerChildModel.getNodeType().equals(CONTENT_TYPE)) if (!unfiledContainerChildModel.getNodeType().equals(CONTENT_TYPE)) {
{
fail("Only electronic records are supported"); fail("Only electronic records are supported");
} }
@@ -211,36 +246,57 @@ public class UnfiledContainerAPI extends RMModelRequest
*/ */
RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec(); RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec();
JsonNode root; JsonNode root;
try try {
{ root =
root = new ObjectMapper().readTree(toJson(unfiledContainerChildModel, UnfiledContainerChild.class, UnfiledContainerChildMixin.class)); new ObjectMapper()
} .readTree(
catch (IOException e) toJson(
{ unfiledContainerChildModel,
UnfiledContainerChild.class,
UnfiledContainerChildMixin.class
)
);
} catch (IOException e) {
throw new RuntimeException("Failed to convert model to JSON.", e); throw new RuntimeException("Failed to convert model to JSON.", e);
} }
// add request fields // add request fields
Iterator<String> fieldNames = root.fieldNames(); Iterator<String> fieldNames = root.fieldNames();
while (fieldNames.hasNext()) while (fieldNames.hasNext()) {
{
String fieldName = fieldNames.next(); String fieldName = fieldNames.next();
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name()); builder.addMultiPart(
fieldName,
root.get(fieldName).asText(),
ContentType.JSON.name()
);
} }
builder.addMultiPart("filedata", unfiledContainerChildContent, ContentType.BINARY.name()); builder.addMultiPart(
"filedata",
unfiledContainerChildContent,
ContentType.BINARY.name()
);
// create node with given content // create node with given content
return createUnfiledContainerChild(unfiledContainerChildModel, unfiledContainerId); return createUnfiledContainerChild(
unfiledContainerChildModel,
unfiledContainerId
);
} }
/** /**
* see {@link #updateUnfiledContainer(UnfiledContainer, String, String) * see {@link #updateUnfiledContainer(UnfiledContainer, String, String)
*/ */
public UnfiledContainer updateUnfiledContainer(UnfiledContainer unfiledContainerModel, String unfiledContainerId) public UnfiledContainer updateUnfiledContainer(
{ UnfiledContainer unfiledContainerModel,
String unfiledContainerId
) {
mandatoryObject("unfiledContainerModel", unfiledContainerModel); mandatoryObject("unfiledContainerModel", unfiledContainerModel);
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return updateUnfiledContainer(unfiledContainerModel, unfiledContainerId, EMPTY); return updateUnfiledContainer(
unfiledContainerModel,
unfiledContainerId,
EMPTY
);
} }
/** /**
@@ -260,18 +316,24 @@ public class UnfiledContainerAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public UnfiledContainer updateUnfiledContainer(UnfiledContainer unfiledContainerModel, String unfiledContainerId, String parameters) public UnfiledContainer updateUnfiledContainer(
{ UnfiledContainer unfiledContainerModel,
String unfiledContainerId,
String parameters
) {
mandatoryObject("unfiledContainerModel", unfiledContainerModel); mandatoryObject("unfiledContainerModel", unfiledContainerModel);
mandatoryString("unfiledContainerId", unfiledContainerId); mandatoryString("unfiledContainerId", unfiledContainerId);
return getRmRestWrapper().processModel(UnfiledContainer.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(unfiledContainerModel), UnfiledContainer.class,
"unfiled-containers/{unfiledContainerId}?{parameters}", requestWithBody(
unfiledContainerId, PUT,
parameters toJson(unfiledContainerModel),
)); "unfiled-containers/{unfiledContainerId}?{parameters}",
unfiledContainerId,
parameters
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -39,15 +39,13 @@ import static org.springframework.http.HttpMethod.POST;
import static org.springframework.http.HttpMethod.PUT; import static org.springframework.http.HttpMethod.PUT;
import static org.testng.Assert.fail; import static org.testng.Assert.fail;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.builder.RequestSpecBuilder; import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType; import io.restassured.http.ContentType;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildCollection; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildCollection;
@@ -61,21 +59,21 @@ import org.alfresco.rest.rm.community.util.UnfiledContainerChildMixin;
* @author Ramona Popa * @author Ramona Popa
* @since 2.6 * @since 2.6
*/ */
public class UnfiledRecordFolderAPI extends RMModelRequest public class UnfiledRecordFolderAPI extends RMModelRequest {
{
/** /**
* @param rmRestWrapper RM REST Wrapper * @param rmRestWrapper RM REST Wrapper
*/ */
public UnfiledRecordFolderAPI(RMRestWrapper rmRestWrapper) public UnfiledRecordFolderAPI(RMRestWrapper rmRestWrapper) {
{
super(rmRestWrapper); super(rmRestWrapper);
} }
/** /**
* see {@link #getUnfiledRecordFolder(String, String)} * see {@link #getUnfiledRecordFolder(String, String)}
*/ */
public UnfiledRecordFolder getUnfiledRecordFolder(String unfiledRecordFolderId) public UnfiledRecordFolder getUnfiledRecordFolder(
{ String unfiledRecordFolderId
) {
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getUnfiledRecordFolder(unfiledRecordFolderId, EMPTY); return getUnfiledRecordFolder(unfiledRecordFolderId, EMPTY);
@@ -95,23 +93,30 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* <li>{@code unfiledRecordFolderId} does not exist</li> * <li>{@code unfiledRecordFolderId} does not exist</li>
* </ul> * </ul>
*/ */
public UnfiledRecordFolder getUnfiledRecordFolder(String unfiledRecordFolderId, String parameters) public UnfiledRecordFolder getUnfiledRecordFolder(
{ String unfiledRecordFolderId,
String parameters
) {
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getRmRestWrapper().processModel(UnfiledRecordFolder.class, simpleRequest( return getRmRestWrapper()
GET, .processModel(
"unfiled-record-folders/{unfiledRecordFolderId}?{parameters}", UnfiledRecordFolder.class,
unfiledRecordFolderId, simpleRequest(
parameters GET,
)); "unfiled-record-folders/{unfiledRecordFolderId}?{parameters}",
unfiledRecordFolderId,
parameters
)
);
} }
/** /**
* see {@link #getUnfiledRecordFolderChildren(String, String)} * see {@link #getUnfiledRecordFolderChildren(String, String)}
*/ */
public UnfiledContainerChildCollection getUnfiledRecordFolderChildren(String unfiledRecordFolderId) public UnfiledContainerChildCollection getUnfiledRecordFolderChildren(
{ String unfiledRecordFolderId
) {
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getUnfiledRecordFolderChildren(unfiledRecordFolderId, EMPTY); return getUnfiledRecordFolderChildren(unfiledRecordFolderId, EMPTY);
@@ -130,27 +135,42 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* <li>{@code unfiledRecordFolderId} does not exist</li> * <li>{@code unfiledRecordFolderId} does not exist</li>
*</ul> *</ul>
*/ */
public UnfiledContainerChildCollection getUnfiledRecordFolderChildren(String unfiledRecordFolderId, String parameters) public UnfiledContainerChildCollection getUnfiledRecordFolderChildren(
{ String unfiledRecordFolderId,
String parameters
) {
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getRmRestWrapper().processModels(UnfiledContainerChildCollection.class, simpleRequest( return getRmRestWrapper()
GET, .processModels(
"unfiled-record-folders/{unfiledRecordFolderId}/children?{parameters}", UnfiledContainerChildCollection.class,
unfiledRecordFolderId, simpleRequest(
parameters GET,
)); "unfiled-record-folders/{unfiledRecordFolderId}/children?{parameters}",
unfiledRecordFolderId,
parameters
)
);
} }
/** /**
* see {@link #createUnfiledRecordFolderChild(UnfiledContainerChild, String, String)} * see {@link #createUnfiledRecordFolderChild(UnfiledContainerChild, String, String)}
*/ */
public UnfiledContainerChild createUnfiledRecordFolderChild(UnfiledContainerChild unfiledRecordFolderChildModel, String unfiledRecordFolderId) public UnfiledContainerChild createUnfiledRecordFolderChild(
{ UnfiledContainerChild unfiledRecordFolderChildModel,
mandatoryObject("unfiledRecordFolderChildModel", unfiledRecordFolderChildModel); String unfiledRecordFolderId
) {
mandatoryObject(
"unfiledRecordFolderChildModel",
unfiledRecordFolderChildModel
);
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return createUnfiledRecordFolderChild(unfiledRecordFolderChildModel, unfiledRecordFolderId, EMPTY); return createUnfiledRecordFolderChild(
unfiledRecordFolderChildModel,
unfiledRecordFolderId,
EMPTY
);
} }
/** /**
@@ -170,18 +190,28 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* <li>model integrity exception, including node name with invalid characters</li> * <li>model integrity exception, including node name with invalid characters</li>
* </ul> * </ul>
*/ */
public UnfiledContainerChild createUnfiledRecordFolderChild(UnfiledContainerChild unfiledRecordFolderChildModel, String unfiledRecordFolderId, String parameters) public UnfiledContainerChild createUnfiledRecordFolderChild(
{ UnfiledContainerChild unfiledRecordFolderChildModel,
mandatoryObject("unfiledRecordFolderChildModel", unfiledRecordFolderChildModel); String unfiledRecordFolderId,
String parameters
) {
mandatoryObject(
"unfiledRecordFolderChildModel",
unfiledRecordFolderChildModel
);
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getRmRestWrapper().processModel(UnfiledContainerChild.class, requestWithBody( return getRmRestWrapper()
POST, .processModel(
toJson(unfiledRecordFolderChildModel), UnfiledContainerChild.class,
"unfiled-record-folders/{unfiledRecordFolderId}/children?{parameters}", requestWithBody(
unfiledRecordFolderId, POST,
parameters toJson(unfiledRecordFolderChildModel),
)); "unfiled-record-folders/{unfiledRecordFolderId}/children?{parameters}",
unfiledRecordFolderId,
parameters
)
);
} }
/** /**
@@ -193,14 +223,22 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* @return newly created {@link UnfiledContainerChild} * @return newly created {@link UnfiledContainerChild}
* @throws RuntimeException for invalid recordModel JSON strings * @throws RuntimeException for invalid recordModel JSON strings
*/ */
public UnfiledContainerChild uploadRecord(UnfiledContainerChild unfiledRecordFolderChildModel, String unfiledRecordFolderId, File unfiledRecordFolderChildContent) public UnfiledContainerChild uploadRecord(
{ UnfiledContainerChild unfiledRecordFolderChildModel,
mandatoryObject("unfiledRecordFolderChildModel", unfiledRecordFolderChildModel); String unfiledRecordFolderId,
mandatoryObject("unfiledRecordFolderChildContent", unfiledRecordFolderChildContent); File unfiledRecordFolderChildContent
) {
mandatoryObject(
"unfiledRecordFolderChildModel",
unfiledRecordFolderChildModel
);
mandatoryObject(
"unfiledRecordFolderChildContent",
unfiledRecordFolderChildContent
);
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
if (!unfiledRecordFolderChildModel.getNodeType().equals(CONTENT_TYPE)) if (!unfiledRecordFolderChildModel.getNodeType().equals(CONTENT_TYPE)) {
{
fail("Only electronic records are supported"); fail("Only electronic records are supported");
} }
@@ -210,36 +248,57 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
*/ */
RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec(); RequestSpecBuilder builder = getRmRestWrapper().configureRequestSpec();
JsonNode root; JsonNode root;
try try {
{ root =
root = new ObjectMapper().readTree(toJson(unfiledRecordFolderChildModel, UnfiledContainerChild.class, UnfiledContainerChildMixin.class)); new ObjectMapper()
} .readTree(
catch (IOException e) toJson(
{ unfiledRecordFolderChildModel,
UnfiledContainerChild.class,
UnfiledContainerChildMixin.class
)
);
} catch (IOException e) {
throw new RuntimeException("Failed to convert model to JSON.", e); throw new RuntimeException("Failed to convert model to JSON.", e);
} }
// add request fields // add request fields
Iterator<String> fieldNames = root.fieldNames(); Iterator<String> fieldNames = root.fieldNames();
while (fieldNames.hasNext()) while (fieldNames.hasNext()) {
{
String fieldName = fieldNames.next(); String fieldName = fieldNames.next();
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name()); builder.addMultiPart(
fieldName,
root.get(fieldName).asText(),
ContentType.JSON.name()
);
} }
builder.addMultiPart("filedata", unfiledRecordFolderChildContent, ContentType.BINARY.name()); builder.addMultiPart(
"filedata",
unfiledRecordFolderChildContent,
ContentType.BINARY.name()
);
// create node with given content // create node with given content
return createUnfiledRecordFolderChild(unfiledRecordFolderChildModel, unfiledRecordFolderId); return createUnfiledRecordFolderChild(
unfiledRecordFolderChildModel,
unfiledRecordFolderId
);
} }
/** /**
* see {@link #updateUnfiledRecordFolder(UnfiledRecordFolder, String, String) * see {@link #updateUnfiledRecordFolder(UnfiledRecordFolder, String, String)
*/ */
public UnfiledRecordFolder updateUnfiledRecordFolder(UnfiledRecordFolder unfiledRecordFolderModel, String unfiledRecordFolderId) public UnfiledRecordFolder updateUnfiledRecordFolder(
{ UnfiledRecordFolder unfiledRecordFolderModel,
String unfiledRecordFolderId
) {
mandatoryObject("unfiledRecordFolderModel", unfiledRecordFolderModel); mandatoryObject("unfiledRecordFolderModel", unfiledRecordFolderModel);
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return updateUnfiledRecordFolder(unfiledRecordFolderModel, unfiledRecordFolderId, EMPTY); return updateUnfiledRecordFolder(
unfiledRecordFolderModel,
unfiledRecordFolderId,
EMPTY
);
} }
/** /**
@@ -259,18 +318,25 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* <li>model integrity exception, including file name with invalid characters</li> * <li>model integrity exception, including file name with invalid characters</li>
* </ul> * </ul>
*/ */
public UnfiledRecordFolder updateUnfiledRecordFolder(UnfiledRecordFolder unfiledRecordFolderModel, String unfiledRecordFolderId, String parameters) public UnfiledRecordFolder updateUnfiledRecordFolder(
{ UnfiledRecordFolder unfiledRecordFolderModel,
String unfiledRecordFolderId,
String parameters
) {
mandatoryObject("unfiledRecordFolderModel", unfiledRecordFolderModel); mandatoryObject("unfiledRecordFolderModel", unfiledRecordFolderModel);
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
return getRmRestWrapper().processModel(UnfiledRecordFolder.class, requestWithBody( return getRmRestWrapper()
PUT, .processModel(
toJson(unfiledRecordFolderModel), UnfiledRecordFolder.class,
"unfiled-record-folders/{unfiledRecordFolderId}?{parameters}", requestWithBody(
unfiledRecordFolderId, PUT,
parameters toJson(unfiledRecordFolderModel),
)); "unfiled-record-folders/{unfiledRecordFolderId}?{parameters}",
unfiledRecordFolderId,
parameters
)
);
} }
/** /**
@@ -286,15 +352,16 @@ public class UnfiledRecordFolderAPI extends RMModelRequest
* <li>{@code unfiledRecordFolderId} is locked and cannot be deleted</li> * <li>{@code unfiledRecordFolderId} is locked and cannot be deleted</li>
* </ul> * </ul>
*/ */
public void deleteUnfiledRecordFolder(String unfiledRecordFolderId) public void deleteUnfiledRecordFolder(String unfiledRecordFolderId) {
{
mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId); mandatoryString("unfiledRecordFolderId", unfiledRecordFolderId);
getRmRestWrapper().processEmptyModel(simpleRequest( getRmRestWrapper()
DELETE, .processEmptyModel(
"unfiled-record-folders/{recordFolderId}", simpleRequest(
unfiledRecordFolderId DELETE,
)); "unfiled-record-folders/{recordFolderId}",
unfiledRecordFolderId
)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -35,24 +35,24 @@ import java.util.UUID;
* @author Tom Page * @author Tom Page
* @since 2.6 * @since 2.6
*/ */
public class CommonTestUtils public class CommonTestUtils {
{
/** /**
* The default pattern used for the user full name when users are created with tas utility * The default pattern used for the user full name when users are created with tas utility
*/ */
public static final String USER_FULLNAME_PATTERN = "FN-%1$s LN-%1$s"; public static final String USER_FULLNAME_PATTERN = "FN-%1$s LN-%1$s";
/** Private constructor to prevent instantiation. */ /** Private constructor to prevent instantiation. */
private CommonTestUtils() private CommonTestUtils() {}
{
}
/** /**
* Generate a prefix to namespace the objects in a test class. Note that four random hex digits should be good enough to avoid * Generate a prefix to namespace the objects in a test class. Note that four random hex digits should be good enough to avoid
* collisions when running locally and should also be short enough to maintain readability. * collisions when running locally and should also be short enough to maintain readability.
*/ */
public static String generateTestPrefix(Class<?> clazz) public static String generateTestPrefix(Class<?> clazz) {
{ return (
return clazz.getSimpleName().substring(0, 7) + UUID.randomUUID().toString().substring(0, 4).toUpperCase(); clazz.getSimpleName().substring(0, 7) +
UUID.randomUUID().toString().substring(0, 4).toUpperCase()
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,11 +29,6 @@ package org.alfresco.rest.rm.community.util;
import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.LogContainerCmd; import com.github.dockerjava.api.command.LogContainerCmd;
import com.github.dockerjava.api.model.Container; import com.github.dockerjava.api.model.Container;
@@ -41,7 +36,10 @@ import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.core.DockerClientBuilder; import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.command.LogContainerResultCallback; import com.github.dockerjava.core.command.LogContainerResultCallback;
import com.github.dockerjava.netty.NettyDockerCmdExecFactory; import com.github.dockerjava.netty.NettyDockerCmdExecFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.alfresco.utility.Utility; import org.alfresco.utility.Utility;
@@ -59,30 +57,31 @@ import org.springframework.stereotype.Service;
* @since 3.1 * @since 3.1
*/ */
@Service @Service
public class DockerHelper public class DockerHelper {
{
private static final Logger LOGGER = LoggerFactory.getLogger(DockerHelper.class); private static final Logger LOGGER = LoggerFactory.getLogger(
DockerHelper.class
);
private static final String REPO_IMAGE_NAME = "repository"; private static final String REPO_IMAGE_NAME = "repository";
@Getter @Getter
@Setter @Setter
private DockerClient dockerClient; private DockerClient dockerClient;
@Autowired @Autowired
public DockerHelper(@Value ("${docker.host}") String dockerHost) public DockerHelper(@Value("${docker.host}") String dockerHost) {
{ if (SystemUtils.IS_OS_WINDOWS) {
if (SystemUtils.IS_OS_WINDOWS) this.dockerClient =
{ DockerClientBuilder
this.dockerClient = DockerClientBuilder .getInstance(dockerHost)
.getInstance(dockerHost) .withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
.withDockerCmdExecFactory(new NettyDockerCmdExecFactory()) .build();
.build(); } else {
} this.dockerClient =
else DockerClientBuilder
{ .getInstance()
this.dockerClient = DockerClientBuilder .withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
.getInstance() .build();
.withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
.build();
} }
} }
@@ -93,31 +92,34 @@ public class DockerHelper
* @param timeStamp - get the logs since a specific timestamp * @param timeStamp - get the logs since a specific timestamp
* @return list of strings, where every string is log line * @return list of strings, where every string is log line
*/ */
private List<String> getDockerLogs(String containerId, int timeStamp) private List<String> getDockerLogs(String containerId, int timeStamp) {
{
final List<String> logs = new ArrayList<>(); final List<String> logs = new ArrayList<>();
final LogContainerCmd logContainerCmd = getDockerClient().logContainerCmd(containerId); final LogContainerCmd logContainerCmd = getDockerClient()
logContainerCmd.withStdOut(true) .logContainerCmd(containerId);
.withStdErr(true) logContainerCmd
.withSince(timeStamp) // UNIX timestamp to filter logs. Output log-entries since that timestamp. .withStdOut(true)
.withTimestamps(true); //print timestamps for every log line .withStdErr(true)
.withSince(timeStamp) // UNIX timestamp to filter logs. Output log-entries since that timestamp.
.withTimestamps(true); //print timestamps for every log line
try try {
{ logContainerCmd
logContainerCmd.exec(new LogContainerResultCallback() .exec(
{ new LogContainerResultCallback() {
@Override @Override
public void onNext(Frame item) public void onNext(Frame item) {
{ logs.add(item.toString());
logs.add(item.toString()); }
} }
}).awaitCompletion(); )
} .awaitCompletion();
catch (InterruptedException e) } catch (InterruptedException e) {
{ Thread.currentThread().interrupt(); // set interrupt flag
Thread.currentThread().interrupt(); // set interrupt flag LOGGER.error(
LOGGER.error("Failed to retrieve logs of container " + containerId, e); "Failed to retrieve logs of container " + containerId,
e
);
} }
return logs; return logs;
@@ -128,19 +130,22 @@ public class DockerHelper
* *
* @return list of strings, where every string is log line * @return list of strings, where every string is log line
*/ */
public List<String> getAlfrescoLogs() public List<String> getAlfrescoLogs() {
{ final List<Container> alfrescoContainers = findContainersByImageName(
final List<Container> alfrescoContainers = findContainersByImageName(REPO_IMAGE_NAME); REPO_IMAGE_NAME
if (alfrescoContainers.isEmpty()) );
{ if (alfrescoContainers.isEmpty()) {
return Collections.emptyList(); return Collections.emptyList();
} } else {
else
{
List<String> alfrescoLogs = new ArrayList<>(); List<String> alfrescoLogs = new ArrayList<>();
// get the logs since current time - 10 seconds // get the logs since current time - 10 seconds
final int timeStamp = (int) (System.currentTimeMillis() / 1000) - 10; final int timeStamp = (int) (System.currentTimeMillis() / 1000) -
alfrescoContainers.forEach(alfrescoContainer -> alfrescoLogs.addAll(getDockerLogs(alfrescoContainer.getId(), timeStamp))); 10;
alfrescoContainers.forEach(alfrescoContainer ->
alfrescoLogs.addAll(
getDockerLogs(alfrescoContainer.getId(), timeStamp)
)
);
return alfrescoLogs; return alfrescoLogs;
} }
} }
@@ -151,14 +156,22 @@ public class DockerHelper
* @param expectedException the expected exception to be thrown * @param expectedException the expected exception to be thrown
* @throws Exception * @throws Exception
*/ */
public void checkExceptionIsInAlfrescoLogs(String expectedException) throws Exception public void checkExceptionIsInAlfrescoLogs(String expectedException)
{ throws Exception {
//Retry the operation because sometimes it takes few seconds to throw the exception //Retry the operation because sometimes it takes few seconds to throw the exception
Utility.sleep(6000, 30000, () -> Utility.sleep(
{ 6000,
List<String> alfrescoLogs = getAlfrescoLogs(); 30000,
assertTrue(alfrescoLogs.stream().anyMatch(logLine -> logLine.contains(expectedException))); () -> {
}); List<String> alfrescoLogs = getAlfrescoLogs();
assertTrue(
alfrescoLogs
.stream()
.anyMatch(logLine -> logLine.contains(expectedException)
)
);
}
);
} }
/** /**
@@ -167,12 +180,15 @@ public class DockerHelper
* @param imageName - the name of the image used by container * @param imageName - the name of the image used by container
* @return the containers * @return the containers
*/ */
private List<Container> findContainersByImageName(String imageName) private List<Container> findContainersByImageName(String imageName) {
{ final List<Container> containers = getDockerClient()
final List<Container> containers = getDockerClient().listContainersCmd().withShowAll(true).exec(); .listContainersCmd()
.withShowAll(true)
.exec();
return containers.stream() return containers
.filter(container -> container.getImage().contains(imageName)) .stream()
.collect(Collectors.toList()); .filter(container -> container.getImage().contains(imageName))
.collect(Collectors.toList());
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.rm.community.util; package org.alfresco.rest.rm.community.util;
import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.fasterxml.jackson.annotation.JsonUnwrapped;
import org.alfresco.rest.rm.community.model.record.RecordProperties; import org.alfresco.rest.rm.community.model.record.RecordProperties;
/** /**
@@ -38,8 +37,8 @@ import org.alfresco.rest.rm.community.model.record.RecordProperties;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public abstract class FilePlanComponentMixIn public abstract class FilePlanComponentMixIn {
{
/** /**
* Annotation used to indicate that a property should be serialized "unwrapped" * Annotation used to indicate that a property should be serialized "unwrapped"
* Its properties are instead included as properties of its containing Object * Its properties are instead included as properties of its containing Object

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -34,10 +34,9 @@ import static org.apache.commons.lang3.StringUtils.isBlank;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public class ParameterCheck public class ParameterCheck {
{
private ParameterCheck() private ParameterCheck() {
{
// Intentionally blank // Intentionally blank
} }
@@ -48,11 +47,14 @@ public class ParameterCheck
* @param paramValue The value of the parameter to check * @param paramValue The value of the parameter to check
* @throws IllegalArgumentException Throws an exception if the given value is blank * @throws IllegalArgumentException Throws an exception if the given value is blank
*/ */
public static void mandatoryString(final String paramName, final String paramValue) throws IllegalArgumentException public static void mandatoryString(
{ final String paramName,
if (isBlank(paramValue)) final String paramValue
{ ) throws IllegalArgumentException {
throw new IllegalArgumentException("'" + paramName + "' is a mandatory parameter."); if (isBlank(paramValue)) {
throw new IllegalArgumentException(
"'" + paramName + "' is a mandatory parameter."
);
} }
} }
@@ -63,11 +65,14 @@ public class ParameterCheck
* @param object The value of the parameter to check * @param object The value of the parameter to check
* @throws IllegalArgumentException Throws an exception if the given value is null * @throws IllegalArgumentException Throws an exception if the given value is null
*/ */
public static void mandatoryObject(final String paramName, final Object object) throws IllegalArgumentException public static void mandatoryObject(
{ final String paramName,
if (object == null) final Object object
{ ) throws IllegalArgumentException {
throw new IllegalArgumentException("'" + paramName + "' is a mandatory parameter."); if (object == null) {
throw new IllegalArgumentException(
"'" + paramName + "' is a mandatory parameter."
);
} }
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -28,14 +28,12 @@ package org.alfresco.rest.rm.community.util;
import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryObject; import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryObject;
import java.io.IOException;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType; import com.fasterxml.jackson.databind.type.CollectionType;
import java.io.IOException;
import java.util.List;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -47,22 +45,22 @@ import org.slf4j.LoggerFactory;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public class PojoUtility public class PojoUtility {
{
/** /**
* Logger for the class. * Logger for the class.
*/ */
private static final Logger LOGGER = LoggerFactory.getLogger(PojoUtility.class); private static final Logger LOGGER = LoggerFactory.getLogger(
PojoUtility.class
);
/** Private constructor to prevent instantiation. */ /** Private constructor to prevent instantiation. */
private PojoUtility() private PojoUtility() {}
{}
/** /**
* see {@link #toJson(Object, Class, Class)} * see {@link #toJson(Object, Class, Class)}
*/ */
public static String toJson(Object model) public static String toJson(Object model) {
{
mandatoryObject("model", model); mandatoryObject("model", model);
return toJson(model, null, null); return toJson(model, null, null);
@@ -77,14 +75,16 @@ public class PojoUtility
* @return The converted java object as JSON string * @return The converted java object as JSON string
* @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model * @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model
*/ */
public static String toJson(Object model, Class<?> target, Class<?> mixinSource) public static String toJson(
{ Object model,
Class<?> target,
Class<?> mixinSource
) {
mandatoryObject("model", model); mandatoryObject("model", model);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
if (target != null && mixinSource != null) if (target != null && mixinSource != null) {
{
//inject the "mix-in" annotations from FilePlanComponentMix to //inject the "mix-in" annotations from FilePlanComponentMix to
// FilePlanComponent POJO class when converting to json // FilePlanComponent POJO class when converting to json
mapper.addMixIn(target, mixinSource); mapper.addMixIn(target, mixinSource);
@@ -94,12 +94,11 @@ public class PojoUtility
mapper.setSerializationInclusion(Include.NON_NULL); mapper.setSerializationInclusion(Include.NON_NULL);
//return the json object //return the json object
try try {
{ return mapper
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(model); .writerWithDefaultPrettyPrinter()
} .writeValueAsString(model);
catch (JsonProcessingException error) } catch (JsonProcessingException error) {
{
return error.toString(); return error.toString();
} }
} }
@@ -112,20 +111,16 @@ public class PojoUtility
* @return The converted java object * @return The converted java object
* @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model * @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model
*/ */
public static <T> T jsonToObject(JSONObject json, Class<T> classz) public static <T> T jsonToObject(JSONObject json, Class<T> classz) {
{
mandatoryObject("model", classz); mandatoryObject("model", classz);
mandatoryObject("jsonObject", json); mandatoryObject("jsonObject", json);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
T obj = null; T obj = null;
try try {
{
obj = mapper.readValue(json.toString(), classz); obj = mapper.readValue(json.toString(), classz);
} } catch (IOException e) {
catch (IOException e)
{
LOGGER.error("Unable to convert the json into a java object.", e); LOGGER.error("Unable to convert the json into a java object.", e);
} }
@@ -140,27 +135,25 @@ public class PojoUtility
* @return The list of converted java objects * @return The list of converted java objects
* @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model * @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model
*/ */
public static <T> List<T> jsonToObject(JSONArray json, Class<T> classz) public static <T> List<T> jsonToObject(JSONArray json, Class<T> classz) {
{
mandatoryObject("model", classz); mandatoryObject("model", classz);
mandatoryObject("jsonObject", json); mandatoryObject("jsonObject", json);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
CollectionType collectionType = mapper.getTypeFactory().constructCollectionType(List.class, classz); CollectionType collectionType = mapper
.getTypeFactory()
.constructCollectionType(List.class, classz);
List<T> asList = null; List<T> asList = null;
try try {
{
asList = mapper.readValue(json.toString(), collectionType); asList = mapper.readValue(json.toString(), collectionType);
} catch (IOException e) {
LOGGER.error(
"Unable to convert the json array into a java collection.",
e
);
} }
catch (IOException e)
{
LOGGER.error("Unable to convert the json array into a java collection.", e);
}
return asList; return asList;
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,13 +26,11 @@
*/ */
package org.alfresco.rest.rm.community.util; package org.alfresco.rest.rm.community.util;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod; import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
/** /**
@@ -41,8 +39,8 @@ import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
* @author Rodica Sutu * @author Rodica Sutu
* @since 2.6 * @since 2.6
*/ */
public class ReviewPeriodSerializer extends JsonSerializer<ReviewPeriod> public class ReviewPeriodSerializer extends JsonSerializer<ReviewPeriod> {
{
/** /**
* @param value The Review Period value that is being serialized. * @param value The Review Period value that is being serialized.
* @param gen Jackson utility is responsible for writing JSON * @param gen Jackson utility is responsible for writing JSON
@@ -51,9 +49,18 @@ public class ReviewPeriodSerializer extends JsonSerializer<ReviewPeriod>
* @throws JsonProcessingException * @throws JsonProcessingException
*/ */
@Override @Override
public void serialize(ReviewPeriod value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException public void serialize(
{ ReviewPeriod value,
JsonGenerator gen,
SerializerProvider serializers
) throws IOException, JsonProcessingException {
//create the custom string value for the Review Period type //create the custom string value for the Review Period type
gen.writeString(new StringBuilder().append(value.getPeriodType()).append("|").append(value.getExpression()).toString()); gen.writeString(
new StringBuilder()
.append(value.getPeriodType())
.append("|")
.append(value.getExpression())
.toString()
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -27,7 +27,6 @@
package org.alfresco.rest.rm.community.util; package org.alfresco.rest.rm.community.util;
import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.fasterxml.jackson.annotation.JsonUnwrapped;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildProperties; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildProperties;
/** /**
@@ -38,8 +37,8 @@ import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChi
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public abstract class UnfiledContainerChildMixin public abstract class UnfiledContainerChildMixin {
{
/** /**
* Annotation used to indicate that a property should be serialized "unwrapped" * Annotation used to indicate that a property should be serialized "unwrapped"
* Its properties are instead included as properties of its containing Object * Its properties are instead included as properties of its containing Object

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -28,7 +28,6 @@ package org.alfresco.rest.v0;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.List; import java.util.List;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.json.JSONArray; import org.json.JSONArray;
@@ -44,12 +43,15 @@ import org.springframework.stereotype.Component;
* @since 2.6 * @since 2.6
*/ */
@Component @Component
public class CopyToAPI extends BaseAPI public class CopyToAPI extends BaseAPI {
{
/** Logger for the class. */ /** Logger for the class. */
private static final Logger LOGGER = LoggerFactory.getLogger(CopyToAPI.class); private static final Logger LOGGER = LoggerFactory.getLogger(
CopyToAPI.class
);
/** The URI for the copy-to API. */ /** The URI for the copy-to API. */
private static final String COPY_TO_API = "{0}doclib/action/copy-to/node/{1}"; private static final String COPY_TO_API =
"{0}doclib/action/copy-to/node/{1}";
/** /**
* Copy a list of nodes to the target container. * Copy a list of nodes to the target container.
@@ -63,8 +65,12 @@ public class CopyToAPI extends BaseAPI
* @return The HTTP Response. * @return The HTTP Response.
* @throws AssertionError If the API call didn't return a 200 response. * @throws AssertionError If the API call didn't return a 200 response.
*/ */
public HttpResponse copyTo(String user, String password, String targetContainerPath, List<String> nodeRefs) public HttpResponse copyTo(
{ String user,
String password,
String targetContainerPath,
List<String> nodeRefs
) {
return copyTo(user, password, 200, targetContainerPath, nodeRefs); return copyTo(user, password, 200, targetContainerPath, nodeRefs);
} }
@@ -81,12 +87,22 @@ public class CopyToAPI extends BaseAPI
* @return The HTTP Response. * @return The HTTP Response.
* @throws AssertionError If the API didn't return the expected status code. * @throws AssertionError If the API didn't return the expected status code.
*/ */
public HttpResponse copyTo(String user, String password, int expectedStatusCode, String targetContainerPath, List<String> nodeRefs) public HttpResponse copyTo(
{ String user,
String password,
int expectedStatusCode,
String targetContainerPath,
List<String> nodeRefs
) {
JSONObject requestParams = new JSONObject(); JSONObject requestParams = new JSONObject();
requestParams.put("nodeRefs", new JSONArray(nodeRefs)); requestParams.put("nodeRefs", new JSONArray(nodeRefs));
return doSlingshotPostJsonRequest(user, password, expectedStatusCode, requestParams, return doSlingshotPostJsonRequest(
MessageFormat.format(COPY_TO_API, "{0}", targetContainerPath)); user,
password,
expectedStatusCode,
requestParams,
MessageFormat.format(COPY_TO_API, "{0}", targetContainerPath)
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -26,8 +26,9 @@
*/ */
package org.alfresco.rest.v0; package org.alfresco.rest.v0;
import java.text.MessageFormat; import static org.testng.AssertJUnit.assertTrue;
import java.text.MessageFormat;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.rm.community.model.custom.CustomDefinitions; import org.alfresco.rest.rm.community.model.custom.CustomDefinitions;
import org.json.JSONArray; import org.json.JSONArray;
@@ -36,9 +37,7 @@ import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;
/** /**
* Methods to make API requests using v0 API on Records Management Custom Model Reference Definitions * Methods to make API requests using v0 API on Records Management Custom Model Reference Definitions
* *
@@ -46,24 +45,26 @@ import static org.testng.AssertJUnit.assertNotNull;
* @since 2.6 * @since 2.6
*/ */
@Component @Component
public class CustomDefinitionsAPI extends BaseAPI public class CustomDefinitionsAPI extends BaseAPI {
{
/** /**
* custom references endpoint * custom references endpoint
*/ */
private static final String CUSTOM_REFERENCE_API_ENDPOINT = "{0}rma/admin/customreferencedefinitions"; private static final String CUSTOM_REFERENCE_API_ENDPOINT =
"{0}rma/admin/customreferencedefinitions";
/** /**
* create reference endpoint * create reference endpoint
*/ */
private static final String CREATE_RELATIONSHIP_API_ENDPOINT = "{0}node/{1}/customreferences"; private static final String CREATE_RELATIONSHIP_API_ENDPOINT =
private static final String GET_RELATIONSHIP_API_ENDPOINT = "{0}node/{1}/relationships"; "{0}node/{1}/customreferences";
private static final String DELETE_RELATIONSHIP_API_ENDPOINT = "{0}node/{1}/targetnode/{2}/uniqueName/{3}";
/** /**
* logger * logger
*/ */
private static final Logger LOGGER = LoggerFactory.getLogger(CustomDefinitionsAPI.class); private static final Logger LOGGER = LoggerFactory.getLogger(
CustomDefinitionsAPI.class
);
/** /**
* Helper method to get the reference id for a custom reference * Helper method to get the reference id for a custom reference
@@ -75,39 +76,43 @@ public class CustomDefinitionsAPI extends BaseAPI
* <code> null </code> otherwise * <code> null </code> otherwise
* *
*/ */
public String getCustomReferenceId(String adminUser, String adminPassword, String customDefinition) public String getCustomReferenceId(
{ String adminUser,
String adminPassword,
JSONObject getResponse = doGetRequest(adminUser, adminPassword, CUSTOM_REFERENCE_API_ENDPOINT); String customDefinition
if (getResponse != null) ) {
{ JSONObject getResponse = doGetRequest(
try adminUser,
{ adminPassword,
JSONArray customDefinitions = getResponse.getJSONObject("data").getJSONArray("customReferences"); CUSTOM_REFERENCE_API_ENDPOINT
for (int i = 0; i < customDefinitions.length(); i++) );
{ if (getResponse != null) {
try {
JSONArray customDefinitions = getResponse
.getJSONObject("data")
.getJSONArray("customReferences");
for (int i = 0; i < customDefinitions.length(); i++) {
JSONObject item = customDefinitions.getJSONObject(i); JSONObject item = customDefinitions.getJSONObject(i);
boolean hasSource = customDefinition.equalsIgnoreCase( boolean hasSource = customDefinition.equalsIgnoreCase(
item.has("source") ? item.getString("source") : null item.has("source") ? item.getString("source") : null
); );
boolean hasTarget = customDefinition.equalsIgnoreCase( boolean hasTarget = customDefinition.equalsIgnoreCase(
item.has("target") ? item.getString("target") : null item.has("target") ? item.getString("target") : null
); );
boolean hasLabel = customDefinition.equalsIgnoreCase( boolean hasLabel = customDefinition.equalsIgnoreCase(
item.has("label") ? item.getString("label") : null item.has("label") ? item.getString("label") : null
); );
if ( hasSource || hasTarget || hasLabel) if (hasSource || hasTarget || hasLabel) {
{
return item.getString("refId"); return item.getString("refId");
} }
} }
} catch (JSONException error) {
} LOGGER.error(
catch (JSONException error) "Unable to get the refId for the custom reference definition {}",
{ customDefinition
LOGGER.error("Unable to get the refId for the custom reference definition {}", customDefinition); );
} }
} }
return null; return null;
@@ -123,68 +128,49 @@ public class CustomDefinitionsAPI extends BaseAPI
* @param relationshipType relation type to be created * @param relationshipType relation type to be created
* @throws AssertionError if the creation fails. * @throws AssertionError if the creation fails.
*/ */
public void createRelationship(
String adminUser,
String adminPassword,
String recordNodeIdFrom,
String recordNodeIdTo,
CustomDefinitions relationshipType)
{
//create the request body
JSONObject requestParams = new JSONObject();
requestParams.put("toNode", NODE_REF_WORKSPACE_SPACES_STORE + recordNodeIdTo);
requestParams.put("refId", getCustomReferenceId(adminUser, adminPassword, relationshipType
.getDefinition()));
//send the API request to create the relationship
JSONObject setRelationshipStatus = doPostRequest(adminUser, adminPassword, requestParams,
MessageFormat.format(CREATE_RELATIONSHIP_API_ENDPOINT, "{0}", NODE_PREFIX + recordNodeIdFrom));
//check the response
boolean success = (setRelationshipStatus != null) && setRelationshipStatus.getBoolean("success");
assertTrue("Creating relationship from " + recordNodeIdFrom + " to " + recordNodeIdTo + " failed.", success);
}
public void createRelationship( public void createRelationship(
String adminUser, String adminUser,
String adminPassword, String adminPassword,
int expectedStatus,
String recordNodeIdFrom, String recordNodeIdFrom,
String recordNodeIdTo, String recordNodeIdTo,
CustomDefinitions relationshipType) { CustomDefinitions relationshipType
) {
//create the request body //create the request body
JSONObject requestParams = new JSONObject(); JSONObject requestParams = new JSONObject();
requestParams.put("toNode", NODE_REF_WORKSPACE_SPACES_STORE + recordNodeIdTo); requestParams.put(
requestParams.put("refId", getCustomReferenceId(adminUser, adminPassword, relationshipType "toNode",
.getDefinition())); NODE_REF_WORKSPACE_SPACES_STORE + recordNodeIdTo
);
requestParams.put(
"refId",
getCustomReferenceId(
adminUser,
adminPassword,
relationshipType.getDefinition()
)
);
//send the API request to create the relationship //send the API request to create the relationship
JSONObject setRelationshipStatus = doPostRequest(adminUser, adminPassword, requestParams, JSONObject setRelationshipStatus = doPostRequest(
MessageFormat.format(CREATE_RELATIONSHIP_API_ENDPOINT, "{0}", NODE_PREFIX + recordNodeIdFrom)); adminUser,
adminPassword,
requestParams,
MessageFormat.format(
CREATE_RELATIONSHIP_API_ENDPOINT,
"{0}",
NODE_PREFIX + recordNodeIdFrom
)
);
//check the response //check the response
assertEquals("POST request for createRelationship was not successful.", expectedStatus, setRelationshipStatus.getJSONObject("status").get("code")); boolean success =
} (setRelationshipStatus != null) &&
setRelationshipStatus.getBoolean("success");
public JSONObject getRelationshipDetails( assertTrue(
String adminUser, "Creating relationship from " +
String adminPassword, recordNodeIdFrom +
String nodeRef) { " to " +
//send the API request to create the relationship recordNodeIdTo +
JSONObject relationshipDetails = doGetRequest(adminUser, adminPassword, " failed.",
MessageFormat.format(GET_RELATIONSHIP_API_ENDPOINT, "{0}", NODE_PREFIX + nodeRef)); success
//check the response );
assertNotNull("The Relationship detail is not found for the Noderef " + nodeRef, relationshipDetails);
return relationshipDetails;
}
public void deleteRelationship(
String adminUser,
String adminPassword,
String recordNodeIdFrom,
String recordNodeIdTo,
String relationshipUniqueName) {
//send the API request to create the relationship
JSONObject setRelationshipStatus = doDeleteRequest(adminUser, adminPassword,
MessageFormat.format(DELETE_RELATIONSHIP_API_ENDPOINT, "{0}", NODE_PREFIX + recordNodeIdFrom,NODE_PREFIX + recordNodeIdTo,relationshipUniqueName));
//check the response
boolean success = (setRelationshipStatus != null) && setRelationshipStatus.getBoolean("success");
assertTrue("Deleting relationship from " + recordNodeIdFrom + " to " + recordNodeIdTo + " failed.", success);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,7 +29,6 @@ package org.alfresco.rest.v0;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.json.JSONArray; import org.json.JSONArray;
@@ -44,8 +43,8 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class ExportAPI extends BaseAPI public class ExportAPI extends BaseAPI {
{
/** /**
* The URI to export an item * The URI to export an item
*/ */
@@ -60,9 +59,18 @@ public class ExportAPI extends BaseAPI
* @param nodeID ID of the Node(Record/RecordFolder) to be exported * @param nodeID ID of the Node(Record/RecordFolder) to be exported
* @return HTTP Response * @return HTTP Response
*/ */
public HttpResponse exportRMNode(String user, String password, int expectedStatusCode, String nodeID) public HttpResponse exportRMNode(
{ String user,
return export(user, password, expectedStatusCode, Collections.singletonList(getNodeRefSpacesStore() + nodeID)); String password,
int expectedStatusCode,
String nodeID
) {
return export(
user,
password,
expectedStatusCode,
Collections.singletonList(getNodeRefSpacesStore() + nodeID)
);
} }
/** /**
@@ -74,11 +82,16 @@ public class ExportAPI extends BaseAPI
* @param nodeIDList List of the nodes to be exported * @param nodeIDList List of the nodes to be exported
* @return HTTP Response * @return HTTP Response
*/ */
public HttpResponse exportRMNodes(String user, String password, int expectedStatusCode, List<String> nodeIDList) public HttpResponse exportRMNodes(
{ String user,
String password,
List<String> nodeRefs = int expectedStatusCode,
nodeIDList.stream().map(nodeID -> getNodeRefSpacesStore() + nodeID).collect(Collectors.toList()); List<String> nodeIDList
) {
List<String> nodeRefs = nodeIDList
.stream()
.map(nodeID -> getNodeRefSpacesStore() + nodeID)
.collect(Collectors.toList());
return export(user, password, expectedStatusCode, nodeRefs); return export(user, password, expectedStatusCode, nodeRefs);
} }
@@ -92,12 +105,22 @@ public class ExportAPI extends BaseAPI
* @param nodeRefs list of the noderefs for the items to be exported * @param nodeRefs list of the noderefs for the items to be exported
* @return Rest API Post Request * @return Rest API Post Request
*/ */
public HttpResponse export(String user, String password, int expectedStatusCode, List<String> nodeRefs) public HttpResponse export(
{ String user,
String password,
int expectedStatusCode,
List<String> nodeRefs
) {
final JSONObject requestParams = new JSONObject(); final JSONObject requestParams = new JSONObject();
requestParams.put("nodeRefs", new JSONArray(nodeRefs)); requestParams.put("nodeRefs", new JSONArray(nodeRefs));
return doPostJsonRequest(user, password, expectedStatusCode, requestParams, EXPORT_API); return doPostJsonRequest(
user,
password,
expectedStatusCode,
requestParams,
EXPORT_API
);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -33,7 +33,6 @@ import java.text.MessageFormat;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.alfresco.rest.core.v0.APIUtils; import org.alfresco.rest.core.v0.APIUtils;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.rm.community.model.hold.HoldEntry; import org.alfresco.rest.rm.community.model.hold.HoldEntry;
@@ -53,13 +52,14 @@ import org.springframework.stereotype.Component;
* @since 3.2 * @since 3.2
*/ */
@Component @Component
public class HoldsAPI extends BaseAPI public class HoldsAPI extends BaseAPI {
{
public static final String HOLDS_CONTAINER = "Holds"; public static final String HOLDS_CONTAINER = "Holds";
/** /**
* The URI to create a hold * The URI to create a hold
*/ */
private static final String CREATE_HOLDS_API = "{0}type/rma:hold/formprocessor"; private static final String CREATE_HOLDS_API =
"{0}type/rma:hold/formprocessor";
/** /**
* The URI to add items to hold or to remove items from hold * The URI to add items to hold or to remove items from hold
@@ -81,8 +81,13 @@ public class HoldsAPI extends BaseAPI
* @param description hold description * @param description hold description
* @return The HTTP response. * @return The HTTP response.
*/ */
public HttpResponse createHold(String user, String password, String holdName, String reason, String description) public HttpResponse createHold(
{ String user,
String password,
String holdName,
String reason,
String description
) {
return createHold(user, password, holdName, reason, description, SC_OK); return createHold(user, password, holdName, reason, description, SC_OK);
} }
@@ -97,19 +102,37 @@ public class HoldsAPI extends BaseAPI
* @param expectedStatusCode The expected return status code. * @param expectedStatusCode The expected return status code.
* @return The HTTP response or throws AssertionError if the returned status code is not as expected. * @return The HTTP response or throws AssertionError if the returned status code is not as expected.
*/ */
public HttpResponse createHold(String user, String password, String holdName, String reason, String description, public HttpResponse createHold(
int expectedStatusCode) String user,
{ String password,
String holdName,
String reason,
String description,
int expectedStatusCode
) {
// retrieve the Holds container nodeRef // retrieve the Holds container nodeRef
final String parentNodeRef = getItemNodeRef(user, password, "/" + HOLDS_CONTAINER); final String parentNodeRef = getItemNodeRef(
user,
password,
"/" + HOLDS_CONTAINER
);
final JSONObject requestParams = new JSONObject(); final JSONObject requestParams = new JSONObject();
requestParams.put("alf_destination", getNodeRefSpacesStore() + parentNodeRef); requestParams.put(
"alf_destination",
getNodeRefSpacesStore() + parentNodeRef
);
requestParams.put("prop_cm_name", holdName); requestParams.put("prop_cm_name", holdName);
requestParams.put("prop_cm_description", description); requestParams.put("prop_cm_description", description);
requestParams.put("prop_rma_holdReason", reason); requestParams.put("prop_rma_holdReason", reason);
return doPostJsonRequest(user, password, expectedStatusCode, requestParams, CREATE_HOLDS_API); return doPostJsonRequest(
user,
password,
expectedStatusCode,
requestParams,
CREATE_HOLDS_API
);
} }
/** /**
@@ -122,22 +145,32 @@ public class HoldsAPI extends BaseAPI
* @param description hold description * @param description hold description
* @return node ref of the hold created * @return node ref of the hold created
*/ */
public String createHoldAndGetNodeRef(String user, String password, public String createHoldAndGetNodeRef(
String holdName, String reason, String description) String user,
{ String password,
final HttpResponse httpResponse = createHold(user, password, holdName, reason, description); String holdName,
String reason,
String description
) {
final HttpResponse httpResponse = createHold(
user,
password,
holdName,
reason,
description
);
try try {
{ return convertHTTPResponseToJSON(httpResponse)
return convertHTTPResponseToJSON(httpResponse).getString("persistedObject") .getString("persistedObject")
.replace(NODE_REF_WORKSPACE_SPACES_STORE, ""); .replace(NODE_REF_WORKSPACE_SPACES_STORE, "");
} } catch (JSONException error) {
catch(JSONException error) LOGGER.error(
{ "Converting message body to JSON failed. Body: {}",
LOGGER.error("Converting message body to JSON failed. Body: {}", httpResponse, error); httpResponse,
} error
catch(ParseException error) );
{ } catch (ParseException error) {
LOGGER.error("Parsing message body failed.", error); LOGGER.error("Parsing message body failed.", error);
} }
@@ -151,9 +184,13 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRef the hold node ref * @param holdNodeRef the hold node ref
* @return The HTTP Response or throws AssertionError if the request is not successful. * @return The HTTP Response or throws AssertionError if the request is not successful.
*/ */
public HttpResponse deleteHold(UserModel user, String holdNodeRef) public HttpResponse deleteHold(UserModel user, String holdNodeRef) {
{ return deleteHold(
return deleteHold(user.getUsername(), user.getPassword(), holdNodeRef, SC_OK); user.getUsername(),
user.getPassword(),
holdNodeRef,
SC_OK
);
} }
/** /**
@@ -164,13 +201,23 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRef the hold node ref * @param holdNodeRef the hold node ref
* @return The HTTP Response or throws AssertionError if the returned status code is not as expected. * @return The HTTP Response or throws AssertionError if the returned status code is not as expected.
*/ */
public HttpResponse deleteHold(String username, String password, String holdNodeRef, int expectedStatusCode) public HttpResponse deleteHold(
{ String username,
String password,
String holdNodeRef,
int expectedStatusCode
) {
JSONObject requestParams = new JSONObject(); JSONObject requestParams = new JSONObject();
requestParams.put("name", "deleteHold"); requestParams.put("name", "deleteHold");
requestParams.put("nodeRef", getNodeRefSpacesStore() + holdNodeRef); requestParams.put("nodeRef", getNodeRefSpacesStore() + holdNodeRef);
return doPostJsonRequest(username, password, expectedStatusCode, requestParams, RM_ACTIONS_API); return doPostJsonRequest(
username,
password,
expectedStatusCode,
requestParams,
RM_ACTIONS_API
);
} }
/** /**
@@ -181,9 +228,12 @@ public class HoldsAPI extends BaseAPI
* @param holdName the hold name * @param holdName the hold name
* @throws AssertionError if the deletion was unsuccessful. * @throws AssertionError if the deletion was unsuccessful.
*/ */
public void deleteHold( String username, String password, String holdName) public void deleteHold(String username, String password, String holdName) {
{ deleteItem(
deleteItem(username, password, String.format("/%s/%s", HOLDS_CONTAINER, holdName)); username,
password,
String.format("/%s/%s", HOLDS_CONTAINER, holdName)
);
} }
/** /**
@@ -195,9 +245,18 @@ public class HoldsAPI extends BaseAPI
* @param holdName the hold name * @param holdName the hold name
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse addItemToHold(String user, String password, String itemNodeRef, String holdName) public HttpResponse addItemToHold(
{ String user,
return addItemsToHolds(user, password, Collections.singletonList(itemNodeRef), Collections.singletonList(holdName)); String password,
String itemNodeRef,
String holdName
) {
return addItemsToHolds(
user,
password,
Collections.singletonList(itemNodeRef),
Collections.singletonList(holdName)
);
} }
/** /**
@@ -209,12 +268,29 @@ public class HoldsAPI extends BaseAPI
* @param holdNames the list of holds * @param holdNames the list of holds
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse addItemsToHolds(String user, String password, List<String> itemNodeRefs, List<String> holdNames) public HttpResponse addItemsToHolds(
{ String user,
final List<String> holdNodeRefs = holdNames.stream() String password,
.map(hold -> getItemNodeRef(user, password, String.format("/%s/%s", HOLDS_CONTAINER, hold))) List<String> itemNodeRefs,
.collect(Collectors.toList()); List<String> holdNames
return addItemsToHolds(user, password, SC_OK, itemNodeRefs, holdNodeRefs); ) {
final List<String> holdNodeRefs = holdNames
.stream()
.map(hold ->
getItemNodeRef(
user,
password,
String.format("/%s/%s", HOLDS_CONTAINER, hold)
)
)
.collect(Collectors.toList());
return addItemsToHolds(
user,
password,
SC_OK,
itemNodeRefs,
holdNodeRefs
);
} }
/** /**
@@ -226,11 +302,24 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRefs the list of holds * @param holdNodeRefs the list of holds
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse addItemsToHolds(String user, String password, int expectedStatus, List<String> itemNodeRefs, public HttpResponse addItemsToHolds(
List<String> holdNodeRefs) String user,
{ String password,
final JSONObject requestParams = addOrRemoveToFromHoldJsonObject(itemNodeRefs, holdNodeRefs); int expectedStatus,
return doPostJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API); List<String> itemNodeRefs,
List<String> holdNodeRefs
) {
final JSONObject requestParams = addOrRemoveToFromHoldJsonObject(
itemNodeRefs,
holdNodeRefs
);
return doPostJsonRequest(
user,
password,
expectedStatus,
requestParams,
RM_HOLDS_API
);
} }
/** /**
@@ -242,11 +331,20 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRef the hold node ref * @param holdNodeRef the hold node ref
* @return The error message * @return The error message
*/ */
public String addToHoldAndGetMessage(String user, String password, int expectedStatus, String itemNodeRef, String public String addToHoldAndGetMessage(
holdNodeRef) String user,
{ String password,
final HttpResponse httpResponse = addItemsToHolds(user, password, expectedStatus, Collections.singletonList(itemNodeRef), int expectedStatus,
Collections.singletonList(holdNodeRef)); String itemNodeRef,
String holdNodeRef
) {
final HttpResponse httpResponse = addItemsToHolds(
user,
password,
expectedStatus,
Collections.singletonList(itemNodeRef),
Collections.singletonList(holdNodeRef)
);
return APIUtils.extractErrorMessageFromHttpResponse(httpResponse); return APIUtils.extractErrorMessageFromHttpResponse(httpResponse);
} }
@@ -257,12 +355,18 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRefs list of hold node refs for add/remove items * @param holdNodeRefs list of hold node refs for add/remove items
* @return JSONObject fo * @return JSONObject fo
*/ */
private JSONObject addOrRemoveToFromHoldJsonObject(List<String> items, List<String> holdNodeRefs) private JSONObject addOrRemoveToFromHoldJsonObject(
{ List<String> items,
List<String> holdNodeRefs
) {
final JSONArray nodeRefs = new JSONArray(); final JSONArray nodeRefs = new JSONArray();
items.forEach(itemNodeRef -> nodeRefs.put(getNodeRefSpacesStore() + itemNodeRef)); items.forEach(itemNodeRef ->
nodeRefs.put(getNodeRefSpacesStore() + itemNodeRef)
);
final JSONArray holds = new JSONArray(); final JSONArray holds = new JSONArray();
holdNodeRefs.forEach(holdNodeRef -> holds.put(getNodeRefSpacesStore() + holdNodeRef)); holdNodeRefs.forEach(holdNodeRef ->
holds.put(getNodeRefSpacesStore() + holdNodeRef)
);
final JSONObject requestParams = new JSONObject(); final JSONObject requestParams = new JSONObject();
requestParams.put("nodeRefs", nodeRefs); requestParams.put("nodeRefs", nodeRefs);
requestParams.put("holds", holds); requestParams.put("holds", holds);
@@ -278,9 +382,18 @@ public class HoldsAPI extends BaseAPI
* @param holdName the hold name * @param holdName the hold name
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse removeItemFromHold(String user, String password, String itemNodeRef, String holdName) public HttpResponse removeItemFromHold(
{ String user,
return removeItemsFromHolds(user, password, Collections.singletonList(itemNodeRef), Collections.singletonList(holdName)); String password,
String itemNodeRef,
String holdName
) {
return removeItemsFromHolds(
user,
password,
Collections.singletonList(itemNodeRef),
Collections.singletonList(holdName)
);
} }
/** /**
@@ -292,12 +405,29 @@ public class HoldsAPI extends BaseAPI
* @param holdNames the list of hold names * @param holdNames the list of hold names
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse removeItemsFromHolds(String user, String password, List<String> itemNodeRefs, List<String> holdNames) public HttpResponse removeItemsFromHolds(
{ String user,
final List<String> holdNodeRefs = holdNames.stream() String password,
.map(hold -> getItemNodeRef(user, password, String.format("/%s/%s", HOLDS_CONTAINER, hold))) List<String> itemNodeRefs,
.collect(Collectors.toList()); List<String> holdNames
return removeItemsFromHolds(user, password, SC_OK, itemNodeRefs, holdNodeRefs); ) {
final List<String> holdNodeRefs = holdNames
.stream()
.map(hold ->
getItemNodeRef(
user,
password,
String.format("/%s/%s", HOLDS_CONTAINER, hold)
)
)
.collect(Collectors.toList());
return removeItemsFromHolds(
user,
password,
SC_OK,
itemNodeRefs,
holdNodeRefs
);
} }
/** /**
@@ -310,11 +440,24 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRefs the list of hold node refs * @param holdNodeRefs the list of hold node refs
* @return The HTTP response * @return The HTTP response
*/ */
public HttpResponse removeItemsFromHolds(String user, String password, int expectedStatus, List<String> itemNodeRefs, public HttpResponse removeItemsFromHolds(
List<String> holdNodeRefs) String user,
{ String password,
final JSONObject requestParams = addOrRemoveToFromHoldJsonObject(itemNodeRefs, holdNodeRefs); int expectedStatus,
return doPutJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API); List<String> itemNodeRefs,
List<String> holdNodeRefs
) {
final JSONObject requestParams = addOrRemoveToFromHoldJsonObject(
itemNodeRefs,
holdNodeRefs
);
return doPutJsonRequest(
user,
password,
expectedStatus,
requestParams,
RM_HOLDS_API
);
} }
/** /**
@@ -326,11 +469,20 @@ public class HoldsAPI extends BaseAPI
* @param holdNodeRef the hold node ref * @param holdNodeRef the hold node ref
* @return The error message * @return The error message
*/ */
public String removeFromHoldAndGetMessage(String user, String password, int expectedStatus, String itemNodeRef, String public String removeFromHoldAndGetMessage(
holdNodeRef) String user,
{ String password,
final HttpResponse httpResponse = removeItemsFromHolds(user, password, expectedStatus, Collections.singletonList(itemNodeRef), int expectedStatus,
Collections.singletonList(holdNodeRef)); String itemNodeRef,
String holdNodeRef
) {
final HttpResponse httpResponse = removeItemsFromHolds(
user,
password,
expectedStatus,
Collections.singletonList(itemNodeRef),
Collections.singletonList(holdNodeRef)
);
return APIUtils.extractErrorMessageFromHttpResponse(httpResponse); return APIUtils.extractErrorMessageFromHttpResponse(httpResponse);
} }
@@ -345,15 +497,35 @@ public class HoldsAPI extends BaseAPI
* @param fileOnly True if only files should be return * @param fileOnly True if only files should be return
* @return return a list of hold entries * @return return a list of hold entries
*/ */
public List<HoldEntry> getHolds(String user, String password, final String itemNodeRef, public List<HoldEntry> getHolds(
final Boolean includedInHold, final Boolean fileOnly) String user,
{ String password,
final String parameters = (itemNodeRef != null ? "itemNodeRef=" + NODE_REF_WORKSPACE_SPACES_STORE + itemNodeRef : "") final String itemNodeRef,
+ (includedInHold != null ? "&includedInHold=" + includedInHold : "") final Boolean includedInHold,
+ (fileOnly != null ? "&fileOnly=" + fileOnly : ""); final Boolean fileOnly
) {
final String parameters =
(
itemNodeRef != null
? "itemNodeRef=" +
NODE_REF_WORKSPACE_SPACES_STORE +
itemNodeRef
: ""
) +
(
includedInHold != null
? "&includedInHold=" + includedInHold
: ""
) +
(fileOnly != null ? "&fileOnly=" + fileOnly : "");
final JSONArray holdEntries = doGetRequest(user, password, final JSONArray holdEntries = doGetRequest(
MessageFormat.format(GET_RM_HOLDS, "{0}", parameters)).getJSONObject("data").getJSONArray("holds"); user,
password,
MessageFormat.format(GET_RM_HOLDS, "{0}", parameters)
)
.getJSONObject("data")
.getJSONArray("holds");
return PojoUtility.jsonToObject(holdEntries, HoldEntry.class); return PojoUtility.jsonToObject(holdEntries, HoldEntry.class);
} }

View File

@@ -1,73 +0,0 @@
/*-
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* 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/>.
* #L%
*/
package org.alfresco.rest.v0;
import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.http.HttpResponse;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.stereotype.Component;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.MessageFormat;
import java.util.List;
/**
* Methods to make API requests using v0 API for Linking Records
*
* @author Kavit Shah
* @since 3.2
*/
@Component
public class LinksAPI extends BaseAPI {
private static final String LINK_API = "{0}doclib/action/rm-link/site/rm/documentLibrary/{1}";
/**
* Creates the Link
*
* @param user The username of the user to use.
* @param password The password of the user.
* @param expectedStatusCode The expected return status code.
* @param sourcePath The Source of link the record. This should be in the format
* "{site}/{container}/{path}", "{site}/{container}", "{store_type}/{store_id}/{id}/{path}",
* "{store_type}/{store_id}/{id}" or "{store_type}/{store_id}".
* @param nodeRefs The Node that needs to be linked.
* @return The HTTP Response.
* @throws AssertionError If the API didn't return the expected status code.
*/
public HttpResponse linkRecord(String user, String password, int expectedStatusCode, String sourcePath, List<String> nodeRefs) throws UnsupportedEncodingException {
JSONObject requestParams = new JSONObject();
requestParams.put("nodeRefs", new JSONArray(nodeRefs));
return doSlingshotPostJsonRequest(user, password, expectedStatusCode, requestParams,
MessageFormat.format(LINK_API, "{0}", sourcePath));
}
}

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -25,8 +25,8 @@
* #L% * #L%
*/ */
package org.alfresco.rest.v0; package org.alfresco.rest.v0;
import java.text.MessageFormat;
import java.text.MessageFormat;
import org.alfresco.dataprep.AlfrescoHttpClient; import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory; import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
@@ -38,37 +38,41 @@ import org.springframework.stereotype.Component;
/** /**
* The v0 REST API for nodes * The v0 REST API for nodes
* *
* @author jcule * @author jcule
* @since 2.7EA1 * @since 2.7EA1
*/ */
@Component @Component
public class NodeAPI extends BaseAPI public class NodeAPI extends BaseAPI {
{
/** Logger for the class. */ /** Logger for the class. */
private static final Logger LOGGER = LoggerFactory.getLogger(NodeAPI.class); private static final Logger LOGGER = LoggerFactory.getLogger(NodeAPI.class);
/** The URI for the get node API. */ /** The URI for the get node API. */
private static final String GET_NODE_API = "{0}alfresco/s/slingshot/doclib2/node/{1}"; private static final String GET_NODE_API =
"{0}alfresco/s/slingshot/doclib2/node/{1}";
@Autowired @Autowired
private AlfrescoHttpClientFactory alfrescoHttpClientFactory; private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
/** /**
* Get the node metadata using the using the node data webscript: Document List v2 Component * Get the node metadata using the using the node data webscript: Document List v2 Component
* *
* @param username * @param username
* @param password * @param password
* @param nodeId * @param nodeId
* @return * @return
*/ */
public JSONObject getNode(String username, String password, String nodeId) public JSONObject getNode(String username, String password, String nodeId) {
{
String requestURL; String requestURL;
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
requestURL = MessageFormat.format(GET_NODE_API, client.getAlfrescoUrl(), NODE_PREFIX + nodeId); requestURL =
MessageFormat.format(
GET_NODE_API,
client.getAlfrescoUrl(),
NODE_PREFIX + nodeId
);
client.close(); client.close();
return doGetRequest(username, password, requestURL); return doGetRequest(username, password, requestURL);
} }
} }

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Records Management Module * Alfresco Records Management Module
* %% * %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* - * -
@@ -29,7 +29,6 @@ package org.alfresco.rest.v0;
import java.io.IOException; import java.io.IOException;
import java.text.MessageFormat; import java.text.MessageFormat;
import org.alfresco.dataprep.AlfrescoHttpClient; import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory; import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.rest.core.v0.BaseAPI; import org.alfresco.rest.core.v0.BaseAPI;
@@ -50,12 +49,13 @@ import org.springframework.stereotype.Component;
* @since AGS 3.4 * @since AGS 3.4
*/ */
@Component @Component
public class NodePropertiesAPI extends BaseAPI public class NodePropertiesAPI extends BaseAPI {
{
/** /**
* The URI for the get node API. * The URI for the get node API.
*/ */
private static final String GET_NODE_API = "{0}alfresco/s/slingshot/node/{1}"; private static final String GET_NODE_API =
"{0}alfresco/s/slingshot/node/{1}";
@Autowired @Autowired
private AlfrescoHttpClientFactory alfrescoHttpClientFactory; private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
@@ -68,10 +68,17 @@ public class NodePropertiesAPI extends BaseAPI
* @param nodeId * @param nodeId
* @return JSONArray object * @return JSONArray object
*/ */
protected JSONArray getNodeProperties(String username, String password, String nodeId) protected JSONArray getNodeProperties(
{ String username,
String password,
String nodeId
) {
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
String requestURL = MessageFormat.format(GET_NODE_API, client.getAlfrescoUrl(), NODE_PREFIX + nodeId); String requestURL = MessageFormat.format(
GET_NODE_API,
client.getAlfrescoUrl(),
NODE_PREFIX + nodeId
);
// doRequest from BaseAPI cannot be used as parsing the response body to org.json.JSONObject is throwing an // doRequest from BaseAPI cannot be used as parsing the response body to org.json.JSONObject is throwing an
// JSONException // JSONException
@@ -80,13 +87,13 @@ public class NodePropertiesAPI extends BaseAPI
HttpResponse response = client.execute(username, password, get); HttpResponse response = client.execute(username, password, get);
HttpEntity entity = response.getEntity(); HttpEntity entity = response.getEntity();
String responseString; String responseString;
try try {
{
responseString = EntityUtils.toString(entity, "UTF-8"); responseString = EntityUtils.toString(entity, "UTF-8");
} } catch (IOException e) {
catch (IOException e) throw new IllegalArgumentException(
{ "Failed to read the response",
throw new IllegalArgumentException("Failed to read the response", e); e
);
} }
client.close(); client.close();
Object obj = JSONValue.parse(responseString); Object obj = JSONValue.parse(responseString);
@@ -101,11 +108,9 @@ public class NodePropertiesAPI extends BaseAPI
* @param nodeId * @param nodeId
* @return Return the content url string * @return Return the content url string
*/ */
public String getContentUrl(UserModel userModel, String nodeId) public String getContentUrl(UserModel userModel, String nodeId) {
{
String contentProperty = getContentProperty(userModel, nodeId); String contentProperty = getContentProperty(userModel, nodeId);
if (contentProperty != null) if (contentProperty != null) {
{
// get the first element before the first | // get the first element before the first |
// e.g. "contentUrl=s3://-system-/fc077fe8-1742-4c45-a153-8309c857996b // e.g. "contentUrl=s3://-system-/fc077fe8-1742-4c45-a153-8309c857996b
// .bin|mimetype=text/plain|size=19|encoding=ISO-8859-2|locale=en_US_|id=508" // .bin|mimetype=text/plain|size=19|encoding=ISO-8859-2|locale=en_US_|id=508"
@@ -122,17 +127,19 @@ public class NodePropertiesAPI extends BaseAPI
* @param nodeId * @param nodeId
* @return Return the content property string * @return Return the content property string
*/ */
public String getContentProperty(UserModel userModel, String nodeId) public String getContentProperty(UserModel userModel, String nodeId) {
{ JSONArray properties = getNodeProperties(
JSONArray properties = getNodeProperties(userModel.getUsername(), userModel.getPassword(), nodeId); userModel.getUsername(),
userModel.getPassword(),
nodeId
);
for (int i = 0; i < properties.size(); i++) for (int i = 0; i < properties.size(); i++) {
{
JSONObject object = (JSONObject) properties.get(i); JSONObject object = (JSONObject) properties.get(i);
JSONArray valuesArray = (JSONArray) object.get("values"); JSONArray valuesArray = (JSONArray) object.get("values");
if (valuesArray.toString().contains("contentUrl")) if (valuesArray.toString().contains("contentUrl")) {
{ return ((JSONObject) valuesArray.get(0)).get("value")
return ((JSONObject) valuesArray.get(0)).get("value").toString(); .toString();
} }
} }
return null; return null;

Some files were not shown because too many files have changed in this diff Show More