Compare commits

..

553 Commits

Author SHA1 Message Date
alfresco-build
42464d66a4 [maven-release-plugin][skip ci] prepare release 16.103 2024-07-26 00:09:41 +00:00
Tiago Salvado
c9942239d6 [MNT-24513] Immutable user (IDS): allow to change enabled status (#2789) (#2828)
* [MNT-24513] Immutable user: allow enabled status change

* [MNT-24513] Created 'allow.immutable.user.enabled.status.update' to control whether an immutabled user enabled status can be changed or not

* [MNT-24513] Regardless user details enabled status, the person nodeRef enabled status is also checked

* [MNT-24513] Prevent LDAP users from being disabled. Changed variable name.

(cherry picked from commit 8a61badabc)
2024-07-26 00:33:53 +01:00
Eva Vasques
8ce089d55e MNT-24503 - Limits on FixedAclUpdater (#2788) (#2801)
* MNT-24503 - Limits on FixedAclUpdater (#2788)

    * Limit the job execution to a configurable amount of nodes (system.fixedACLsUpdater.maxItems)
    * Add query template select_NodesWithAspectIds_Limited that does a left join with alf_store and limits the results
    * Query executions by the job are now limited to maxItemBatchSize
    * Imposing the order by in the query is now configurable (system.fixedACLsUpdater.orderNodes)

(cherry picked from commit 9ed29967b7)

* Use more recent docker image alfresco/alfresco-base-tomcat:tomcat9-jre11-centos7-202402260803
2024-07-22 12:17:18 +01:00
Aleksandra Onych
0b9463ac92 [ACS-8352] Migrate to docker compose v2 (#2764) 2024-07-09 14:19:52 +02:00
Sara
2600729dbd Bump SS/IE to 2.0.11 in 7-2-N (#2745) 2024-07-09 09:47:22 +01:00
Piotr Żurek
5160045eea ACS-8289 Bump ATS/AIS in ACS 7.2.N (#2753) 2024-07-06 10:15:40 +02:00
alfresco-build
bd72a1ad5b [maven-release-plugin][skip ci] prepare for next development iteration 2024-06-27 12:36:09 +00:00
alfresco-build
71d5e6959a [maven-release-plugin][skip ci] prepare release 16.102 2024-06-27 12:36:07 +00:00
Kacper Magdziarz
5851495da7 [ACS-8287] Bump SS/IE to 2.0.11-A6 (#2727) 2024-06-27 14:13:16 +02:00
alfresco-build
98491862e1 [maven-release-plugin][skip ci] prepare for next development iteration 2024-06-26 14:06:59 +00:00
alfresco-build
b8303ba8d0 [maven-release-plugin][skip ci] prepare release 16.101 2024-06-26 14:06:57 +00:00
Piotr Żurek
f86c43f563 ACS-8281 Bump ATS (#2716) 2024-06-26 15:45:17 +02:00
alfresco-build
c2e12af82d [maven-release-plugin][skip ci] prepare for next development iteration 2024-06-25 12:25:56 +00:00
alfresco-build
0ad3decf3c [maven-release-plugin][skip ci] prepare release 16.100 2024-06-25 12:25:53 +00:00
Eva Vasques
9e4d70b46f MNT-24465 - Map includeChildAssociations request parameter (#2711)
(cherry picked from commit 3b574c56dc)

Co-authored-by: AFaust <axel.faust@acosix.org>
2024-06-25 13:02:32 +01:00
Kacper Magdziarz
11c0838ff1 [ACS-8003] Update ServicePack branch to 7.2.3 [skip ci] 2024-05-24 16:34:38 +02:00
Kacper Magdziarz
2541c421e8 Update ServicePack branch to 7.2.3 [skip ci] 2024-05-24 16:23:32 +02:00
alfresco-build
6262e17630 [maven-release-plugin][skip ci] prepare for next development iteration 2024-05-20 08:39:08 +00:00
alfresco-build
d77fede9d2 [maven-release-plugin][skip ci] prepare release 16.21 2024-05-20 08:39:05 +00:00
Kacper Magdziarz
b82cf7fa49 [ACS-7896] Bump AIS/ATS 5.1.2/4.1.2 (#2639) 2024-05-20 10:17:02 +02:00
alfresco-build
e8b4d0b5ff [maven-release-plugin][skip ci] prepare for next development iteration 2024-05-16 09:59:54 +00:00
alfresco-build
e14cb0b314 [maven-release-plugin][skip ci] prepare release 16.20 2024-05-16 09:59:52 +00:00
Domenico Sibilio
abe5a72481 ACS-7884 Bump cxf to 3.6.3 (#2649) 2024-05-16 11:37:26 +02:00
alfresco-build
10721c9921 [maven-release-plugin][skip ci] prepare for next development iteration 2024-05-16 05:23:45 +00:00
alfresco-build
5451bf7144 [maven-release-plugin][skip ci] prepare release 16.19 2024-05-16 05:23:43 +00:00
rrajoria
8887639abe Update GoogleDrive version 2024-05-16 10:29:47 +05:30
alfresco-build
94b80c057e [maven-release-plugin][skip ci] prepare for next development iteration 2024-05-15 12:31:57 +00:00
alfresco-build
d9e7007b0a [maven-release-plugin][skip ci] prepare release 16.18 2024-05-15 12:31:55 +00:00
Sara
ed026d08ad Merge pull request #2644 from Alfresco/feature/ACS-7886_Prepare_For_ACS_7-2-2_SP
Feature/acs 7886 Prepare for ACS 7.2.2 Service Pack
2024-05-15 13:08:39 +01:00
Domenico Sibilio
bd2cc5497b ACS-7744 Bump Keycloak to 24.0.3 (#2620) 2024-05-14 08:30:20 +01:00
Domenico Sibilio
5a7116e9ef ACS-7567 Test with Keycloak 24.0.2 (#2599) 2024-05-14 08:30:12 +01:00
Tiago Salvado
8c7c8a69b4 [MNT-24072] Retain users/groups (who are already exist and are part of AUTH.ALF zone) so parent associations can be created (#2414) (#2583)
* [MNT-24072] Retain existent users and groups so parent associations can be created

* [MNT-24072] Using person/authority 'exists' methods instead

* [MNT-24072] Added code to rezone users/groups (who already exist and are part of AUTH.ALF zone) that have parent associations to create

* [MNT-24072] PMD scan changes

* [MNT-24072] Added a validation to prevent an authority from being added to zones where already is

(cherry picked from commit 71b69529c6)
2024-05-14 08:30:05 +01:00
Eva Vasques
427183d31c Update license headers (#2506) 2024-05-14 08:29:46 +01:00
Domenico Sibilio
5f38888559 ACS-6192 Bump org.json:json to 20231013 (#2316)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 08:29:07 +01:00
Domenico Sibilio
c35e94ba74 MNT-24063 Bump ActiveMQ to 5.16.7 (#2308) 2024-05-14 08:28:00 +01:00
evasques
165de60f00 [MNT-23550] Always disable behaviours to prevent unexpected modifier … (#2077)
* [MNT-23550] Always disable behaviours to prevent unexpected modifier changes (#1898)

(cherry picked from commit f83328f7b0)

* Apply AlphabeticalPriorityInterceptor to RM Automation tests

---------

Co-authored-by: tiagosalvado10 <9038083+tiagosalvado10@users.noreply.github.com>
2024-05-14 08:27:52 +01:00
Jared Ottley
7e179d0e5c [MNT-23553] REST API call fails when using Oracle database
- Remove semicolon from sql
2024-05-14 08:27:37 +01:00
tiagosalvado10
7f7444813e [MNT-23424] Clean Rhino scope only for custom scripts (#1696) 2024-05-14 08:26:18 +01:00
Antonio Felix
0dba988ff7 Fix/mnt 23290 slow group membership (#1637) (#1644)
* MNT-23290 - Change query to get the root groups

(cherry picked from commit d785b100df)
2024-05-14 08:25:58 +01:00
evasques
b002cbabc4 MNT-23204: Group Search (#1558) (#1587)
(cherry picked from commit 93a7790d44)

Co-authored-by: rrajoria <88024787+rrajoria@users.noreply.github.com>
2024-05-14 08:25:51 +01:00
tiagosalvado10
7fb09e2b18 [MNT-23158] Scripts limits configuration and optimization (#1519) (#1551)
(cherry picked from commit f391cfa38c)
2024-05-14 08:25:34 +01:00
evasques
6a9ab0f089 Revert "ACS-1600 : Error when running propTablesCleanupJob on an env with 100 million records in alf_prop_value (#473)" (#1358) (#1512)
This reverts commit 00b0b21668.

(cherry picked from commit b8ac41ac0d)
2024-05-14 08:25:17 +01:00
evasques
3fecdc75bd MNT-23174 - RM upgrade from 3.4.1.1 to 11.153 fails (#1434) (#1450)
* Added batching capability to process records in hold
* Changed the retrieval of child assocs witout preload to not fill up the caches when we have very big holds
* Added property rm.patch.v35.holdNewChildAssocPatch.batchSize to be able to configure the batchSize
* Adapt mocks on unit test to the new calls

(cherry picked from commit a512c3443c)

* ACS-3578 Ignoring tests that suddenly started failing.

(cherry picked from commit 2c43a64fd0)

Co-authored-by: Tom Page <thomas.page@alfresco.com>
2024-05-14 08:21:35 +01:00
tiagosalvado10
4373aa8f97 [MNT-23379] Set site manager permission if node belongs to a site and inheritance flag is disabled (#1657) (#1667)
* [MNT-23379] Set site manager permission if node belongs to a site and inheritance flag is disabled (#1657)

* [MNT-23379] Set site manager permission if node belongs to a site and inheritance flag is disabled

* [MNT-23379] Added validation. Added throwable object to error logging.

* [MNT-23379] Added unit test

* [MNT-23379] Changed 'runAs' call to 'runAsSystem' with lambda

(cherry picked from commit 88a0854548)

* [MNT-23379] Added sleep between document creation and update to prevent test failures (#1668)

(cherry picked from commit 4749166080)
2024-05-14 07:36:53 +01:00
alfresco-build
b2239eac6f [maven-release-plugin][skip ci] prepare for next development iteration 2024-05-08 19:50:21 +00:00
alfresco-build
ca44e805f2 [maven-release-plugin][skip ci] prepare release 16.17 2024-05-08 19:50:18 +00:00
Kacper Magdziarz
705861084a [ACS-7715] Backward compatibility testing of Search and Insight Engine 2.0.10 with ACS 7.2.X (#2625) 2024-05-08 21:22:11 +02:00
alfresco-build
7a303cef49 [maven-release-plugin][skip ci] prepare for next development iteration 2024-04-26 15:14:35 +00:00
alfresco-build
f7b864d35f [maven-release-plugin][skip ci] prepare release 16.16 2024-04-26 15:14:33 +00:00
Eva Vasques
e61991bc7d MNT-24321 Transfer Service Exception Handling (#2573) (#2610)
* Mark method deserialize in ExceptionJsonSerializer as deprecated
* Remove usage of jsonErrorSerializer

(cherry picked from commit c31158a113)
2024-04-26 15:05:54 +01:00
alfresco-build
9a9665fb98 [maven-release-plugin][skip ci] prepare for next development iteration 2024-04-22 13:46:03 +00:00
alfresco-build
8a405f7ba3 [maven-release-plugin][skip ci] prepare release 16.15 2024-04-22 13:46:00 +00:00
Eva Vasques
e02722af37 Migrate to GHA and Update License Headers (#2603)
* ACS-4653 Migrate to GHA on release/7.2.1 (#1758)

* Remove travis configuration files
* Added property dependency.alfresco-transform-core.version
* Added github action configuration for 7.2.1
* Add missing scripts and adjust start-compose.sh
* Give execution permissions to scripts

* ACS-3841 Add missing logs for WebDAV TAS tests (#1629)
* ACS-3841 Add missing logs
* ACS-3841 Reformat code + fix grep

(cherry picked from commit cdbe3292e0)

* Move ags ci getLogs script. Update badge on readme

(cherry picked from commit 309f6baae3)

* ACS-4653 GHA - Fix mySQL tests (#1765)

* Added missing mysql params for older version. Test [db]

(cherry picked from commit 7a504a0292)

* Fix readme - status for 7.2.N

* Update license headers

* ACS-4776 Finalize deprecation of BitlyUrlShortenerImpl (#1787)

(cherry picked from commit 906a812ea5)

---------

Co-authored-by: Domenico Sibilio <domenicosibilio@gmail.com>
2024-04-22 13:48:59 +01:00
Travis CI User
3d1f95bcc8 [maven-release-plugin][skip ci] prepare for next development iteration 2022-11-18 18:40:12 +00:00
Travis CI User
868bf5db7e [maven-release-plugin][skip ci] prepare release 16.14 2022-11-18 18:40:09 +00:00
Antonio Felix
e4c2bc7740 MNT-23330 - Downloading a document replaces filename having space with + character (#1327) (#1567)
(cherry picked from commit 3aac7be11c)
2022-11-18 17:57:32 +00:00
Travis CI User
3d651b97b6 [maven-release-plugin][skip ci] prepare for next development iteration 2022-11-09 14:47:28 +00:00
Travis CI User
9ee0f4a234 [maven-release-plugin][skip ci] prepare release 16.13 2022-11-09 14:47:25 +00:00
Antonio Felix
8f8743f4b5 MNT-23276 - The null facet name should be considered (#1540) (#1543)
(cherry picked from commit 295a8f7ba2)
2022-11-09 14:05:38 +00:00
Travis CI User
d9489cedc4 [maven-release-plugin][skip ci] prepare for next development iteration 2022-11-07 17:56:00 +00:00
Travis CI User
c4e4c43668 [maven-release-plugin][skip ci] prepare release 16.12 2022-11-07 17:55:57 +00:00
Antonio Felix
b0fa6b3736 MNT-23276 - Protect from null facet names (#1536)
* MNT-23276 - Protect from null facet names
2022-11-07 17:05:40 +00:00
Travis CI User
4d801ed962 [maven-release-plugin][skip ci] prepare for next development iteration 2022-08-22 10:48:59 +00:00
Travis CI User
138947af7f [maven-release-plugin][skip ci] prepare release 16.11 2022-08-22 10:48:57 +00:00
mikolajbrzezinski
2ba28bae10 ACS-3316 Fix custom models downloading and XSS (#1304) (#1319)
* Revert "Revert "ACS-3316 Fix HTML sanitisation bypass (#1266)" (#1294)"

This reverts commit 6c407b1ef5.

* ACS-3316 Set node name for download node

* ACS-3316 Update license

Co-authored-by: Damian.Ujma@hyland.com <Damian.Ujma@hyland.com>
(cherry picked from commit cc3f8aaff4)
2022-08-22 12:07:39 +02:00
Travis CI User
9ebcd0193a [maven-release-plugin][skip ci] prepare for next development iteration 2022-07-26 09:23:57 +00:00
Travis CI User
afbf52413f [maven-release-plugin][skip ci] prepare release 16.10 2022-07-26 09:23:55 +00:00
mstrankowski
ad67088017 Upping version to 16.10-SNAPSHOT, to avoid collision with already existing tag 2022-07-26 10:41:38 +02:00
mstrankowski
4c29d23ac0 Retrigger build for: Update ServicePack branch to 7.2.2
with empty commit
2022-07-25 22:20:12 +02:00
mstrankowski
ed8b18c576 Update ServicePack branch to 7.2.2 2022-07-25 20:55:41 +02:00
Travis CI User
c9b49789c7 [maven-release-plugin][skip ci] prepare for next development iteration 2022-07-21 00:05:09 +00:00
Travis CI User
d28d4873be [maven-release-plugin][skip ci] prepare release 15.9 2022-07-21 00:05:06 +00:00
Jared Ottley
44d7c2328c [ACS-3320] REST API Explorer 7.2.1 final release 2022-07-20 15:56:56 -06:00
Travis CI User
073338afa7 [maven-release-plugin][skip ci] prepare for next development iteration 2022-07-14 19:50:50 +00:00
Travis CI User
3e53467ac8 [maven-release-plugin][skip ci] prepare release 15.8 2022-07-14 19:50:48 +00:00
pzurek
0d5ffdac2e Merge branch 'release/7.2.N' of github.com:Alfresco/alfresco-community-repo into release/7.2.N 2022-07-14 21:07:07 +02:00
pzurek
ac03eb7642 Revert "Revert "PRODSEC-6115: Bump Surf webscript Version to 8.31 and removing set exception (#1207)""
This reverts commit 3304a62a35.
2022-07-14 21:06:36 +02:00
Travis CI User
2ff5b7dd0a [maven-release-plugin][skip ci] prepare for next development iteration 2022-07-14 17:04:48 +00:00
Travis CI User
b0d7e6dfba [maven-release-plugin][skip ci] prepare release 15.7 2022-07-14 17:04:46 +00:00
pzurek
3304a62a35 Revert "PRODSEC-6115: Bump Surf webscript Version to 8.31 and removing set exception (#1207)"
This reverts commit f48db84334.
2022-07-14 18:20:46 +02:00
Travis CI User
763591c1a3 [maven-release-plugin][skip ci] prepare for next development iteration 2022-07-14 11:24:55 +00:00
Travis CI User
6de5a507fe [maven-release-plugin][skip ci] prepare release 15.6 2022-07-14 11:24:53 +00:00
Damian Ujma
3990bc9db4 ACS-3271 Update MySQL 5.7.23 tests to 5.7.28 version (#1209)
* PRODSEC-6261 Add 'shouldNotGetProcessesByNotInvolvedUser' test

* PRODSEC-6261 Add user validation to 'getProcess' method

* PRODSEC-6261 Add TestRail annotation minor fix

* Update MySQL 5.7.23 tests to MySQL 7.7.28
2022-07-14 12:43:46 +02:00
Damian Ujma
f2207fe43e ACS-3150 Upgrade jackson and gson libraries - Backporting (#1211)
* PRODSEC-6261 Add 'shouldNotGetProcessesByNotInvolvedUser' test

* PRODSEC-6261 Add user validation to 'getProcess' method

* PRODSEC-6261 Add TestRail annotation minor fix

* ACS-3150 Upgrade jackson and gson libraries (#1151)

(cherry picked from commit f1a3aa696e)

Co-authored-by: Piotr Żurek <Piotr.Zurek@hyland.com>
2022-07-13 15:23:30 +02:00
rrajoria
f48db84334 PRODSEC-6115: Bump Surf webscript Version to 8.31 and removing set exception (#1207)
* PRODSEC-6115: Bump Surf webscript Version to 8.31

* Update NodeBrowserScript.java
2022-07-12 17:20:22 +05:30
Damian Ujma
98d73b7200 PRODSEC-6261 Fix workflow api bola - Backporting (#1206)
* PRODSEC-6261 Add 'shouldNotGetProcessesByNotInvolvedUser' test

* PRODSEC-6261 Add user validation to 'getProcess' method

* PRODSEC-6261 Add TestRail annotation minor fix
2022-07-12 13:12:15 +02:00
Travis CI User
acd4b1efcb [maven-release-plugin][skip ci] prepare for next development iteration 2022-05-18 09:14:26 +00:00
Travis CI User
4433dd009a [maven-release-plugin][skip ci] prepare release 15.5 2022-05-18 09:14:23 +00:00
mikolajbrzezinski
d1a9794ec8 MTN-22905 Fix case sensitivity issues on people search
MTN-22905 Fix case sensitivity issues on people search backport

* useCQ = true

* useCQ back to original

* useCQ = true

* Copyright Update

* useCQ restored, Javascrpit changed

* Javascript changes to filter

* PR comments requested change

* Revert "PR comments requested change"

This reverts commit 0673b6c3ff.

* Revert "useCQ restored, Javascrpit changed"

This reverts commit 00b79b5aca.

* Revert "Copyright Update"

This reverts commit 76d1f1c005.

* Revert "useCQ = true"

This reverts commit 215ad952f5.

* Revert "useCQ back to original"

This reverts commit deb5e82218.

* Revert "useCQ = true"

This reverts commit 115910ffc1.

* test change

* Initial changes

* Further changes

* Space deleted

* jobtitle search

* Restore check sorting and mock

* Avoid null [hint:useCQ]

* Wrong sign

* Fix

* Clean up

* Initial changes

* Rename Method

(cherry picked from commit 1ccb8a2164)
2022-05-18 10:27:53 +02:00
alandavis
bf848ff882 Revert "ACS-2864 Use maven props in AGS test version.properties so we don't have to update the value"
And correct the value to 2.7.1

This reverts commit 69ebccfc20.
2022-05-09 17:13:19 +01:00
alandavis
69ebccfc20 ACS-2864 Use maven props in AGS test version.properties so we don't have to update the value
(cherry picked from commit 4a4bb2de02)
(cherry picked from commit b36e21ad04)
2022-05-09 16:24:02 +01:00
Travis CI User
600b50fce1 [maven-release-plugin][skip ci] prepare for next development iteration 2022-05-03 10:25:04 +00:00
Travis CI User
37e8586658 [maven-release-plugin][skip ci] prepare release 15.4 2022-05-03 10:25:01 +00:00
evasques
4b12ed5a51 MNT-22968 - Bump Freemarker (#1094) 2022-05-03 08:41:14 +01:00
Travis CI User
e379b7704d [maven-release-plugin][skip ci] prepare for next development iteration 2022-04-07 16:28:45 +00:00
Travis CI User
297be122a6 [maven-release-plugin][skip ci] prepare release 15.3 2022-04-07 16:28:42 +00:00
Vítor Moreira
ca28024ad8 Fix/mnt 22946 spring rce databind jdk9 72 n (#1055)
* Bump dependency.webscripts.version from 8.28 to 8.29 (#1052)

(cherry picked from commit 22a0343c41)

* MNT-22946: bump spring version to 5.3.18 (#1054)

(cherry picked from commit 53777cd5b9)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-07 16:40:27 +01:00
Travis CI User
cfd3255aa7 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-21 18:14:39 +00:00
Travis CI User
4e436160cc [maven-release-plugin][skip ci] prepare release 15.2 2022-03-21 18:14:36 +00:00
alandavis
bf0ca4ca83 Set acs.version.revision versions 7.2.1 2022-03-21 17:09:20 +00:00
Travis CI User
e23a97960f [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-21 11:23:53 +00:00
Travis CI User
2d2371a792 [maven-release-plugin][skip ci] prepare release 15.1 2022-03-21 11:23:50 +00:00
alandavis
0ea69dd4ef Create release/7.2.N branch 2022-03-21 10:11:14 +00:00
Travis CI User
5ecd4c2593 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-16 19:34:33 +00:00
Travis CI User
b4a2e2d8cf [maven-release-plugin][skip ci] prepare release 14.145 2022-03-16 19:34:30 +00:00
alandavis
bdf4fd7e16 Build again with replacement alfresco.aos-module 1.4.1 2022-03-16 18:48:07 +00:00
Travis CI User
e3b3e4b099 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-16 10:07:00 +00:00
Travis CI User
895ab9dbbf [maven-release-plugin][skip ci] prepare release 14.144 2022-03-16 10:06:57 +00:00
dependabot[bot]
85054a7649 Bump license-maven-plugin from 2.0.1.alfresco-1 to 2.0.1.alfresco-2 (#1021)
Bumps [license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) from 2.0.1.alfresco-1 to 2.0.1.alfresco-2.
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-16 09:21:46 +00:00
Travis CI User
c60a182b89 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-15 16:43:19 +00:00
Travis CI User
94ba463db8 [maven-release-plugin][skip ci] prepare release 14.143 2022-03-15 16:43:16 +00:00
Domenico Sibilio
cf67b6791a ACS-2307 Update IE/SS to 2.0.3 2022-03-15 16:25:31 +01:00
Travis CI User
506441a7ec [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-14 14:21:41 +00:00
Travis CI User
9b01a3fa1f [maven-release-plugin][skip ci] prepare release 14.142 2022-03-14 14:21:37 +00:00
Piotr Żurek
3dc00da2a5 ACS-2658 Fix missing metadata extraction while uploading new version (#1016) 2022-03-14 14:37:47 +01:00
Travis CI User
c20bdd754f [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-13 11:52:06 +00:00
Travis CI User
d3a52be71a [maven-release-plugin][skip ci] prepare release 14.141 2022-03-13 11:52:04 +00:00
Domenico Sibilio
07c3ca5bab ACS-2307 Update IE/SS to 2.0.3-RC5 2022-03-13 12:08:48 +01:00
Travis CI User
e593a17e88 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-12 18:10:01 +00:00
Travis CI User
1975729174 [maven-release-plugin][skip ci] prepare release 14.140 2022-03-12 18:09:58 +00:00
Andrea Ligios
1491a9a7dd ACS-2664 - Bump Alfresco Messaging Repo to 1.2.19 2022-03-12 18:19:54 +01:00
Andrea Ligios
3923560588 ACS-2664 - Bump Alfresco Messaging Repo to 1.2.18 2022-03-12 16:59:29 +01:00
Andrea Ligios
af1aa6528b Bumped alfresco-messaging-repo to 1.2.17
To cope with the `camel-spring-xml` split from `camel-spring` in Camel 3.9
2022-03-11 18:01:49 +01:00
Nithin Nambiar
8cf9cd3ed5 ACS-1601 Node cleanup job improvements for Postgres 2022-03-11 17:58:22 +01:00
Travis CI User
b2dd06eef8 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-11 11:36:52 +00:00
Travis CI User
8d46151e41 [maven-release-plugin][skip ci] prepare release 14.139 2022-03-11 11:36:49 +00:00
alandavis
3d5166b5d2 ACS-2669 Upgrade to t-core 2.5.7 2022-03-11 10:19:52 +00:00
Travis CI User
847af44db0 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-10 14:34:55 +00:00
Travis CI User
66cd9d4194 [maven-release-plugin][skip ci] prepare release 14.138 2022-03-10 14:34:52 +00:00
Domenico Sibilio
a26eeef847 ACS-2307 Update SS/IE to 2.0.3-RC4 2022-03-10 14:43:20 +01:00
Travis CI User
7ba414eff9 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-10 12:44:42 +00:00
Travis CI User
55abd66da6 [maven-release-plugin][skip ci] prepare release 14.137 2022-03-10 12:44:39 +00:00
Piotr Żurek
6ed43a9a87 ACS-2318 Upgrade tomcat base docker images (#1012) 2022-03-10 12:54:32 +01:00
Travis CI User
e657c2a1f7 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-09 09:48:16 +00:00
Travis CI User
31aa55366f [maven-release-plugin][skip ci] prepare release 14.136 2022-03-09 09:48:13 +00:00
alandavis
c7f1f808a1 Upgrade to t-core 2.5.7-A11 2022-03-09 08:57:51 +00:00
Travis CI User
40b537b589 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-08 18:58:18 +00:00
Travis CI User
902b569b41 [maven-release-plugin][skip ci] prepare release 14.135 2022-03-08 18:58:15 +00:00
Sara
5c3bf1772a Bump dependency tas-restapi from 1.78 to 1.79 (#1009) 2022-03-08 18:06:25 +00:00
Travis CI User
7ffea85c17 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-08 17:52:57 +00:00
Travis CI User
4ea51d7229 [maven-release-plugin][skip ci] prepare release 14.134 2022-03-08 17:52:54 +00:00
Piotr Żurek
5f5f6a1577 ACS-2318 Upgrade base docker images (#1007) 2022-03-08 17:17:46 +01:00
Travis CI User
74f27b68c2 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-08 13:50:22 +00:00
Travis CI User
592dabfbd0 [maven-release-plugin][skip ci] prepare release 14.133 2022-03-08 13:50:19 +00:00
George Evangelopoulos
275a19b634 ACS-2614 Upgraded REST-API-explorer to 7.2.0 (#1008) 2022-03-08 12:58:47 +00:00
Travis CI User
ee95350a7a [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-07 23:41:00 +00:00
Travis CI User
6d78c0eafc [maven-release-plugin][skip ci] prepare release 14.132 2022-03-07 23:40:56 +00:00
alandavis
ba8ad595cc Upgrade to t-core 2.5.7-A10 2022-03-07 22:19:08 +00:00
alandavis
cd49f188ea ACS-2641 truncate Direct Access URLs in TransformerDebug [skip ci] 2022-03-07 18:30:22 +00:00
Travis CI User
5bcff826d2 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-06 22:12:27 +00:00
Travis CI User
d62cc18604 [maven-release-plugin][skip ci] prepare release 14.131 2022-03-06 22:12:24 +00:00
Jamal Kaabi-Mofrad
e23d356da7 ACS-2307: Updated Solr. 2022-03-06 21:22:48 +00:00
Travis CI User
4ac828acca [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-06 13:35:59 +00:00
Travis CI User
0cad7c4c89 [maven-release-plugin][skip ci] prepare release 14.130 2022-03-06 13:35:56 +00:00
alandavis
d6bb44343c Upgrade to t-core 2.5.7-A9 2022-03-06 12:46:48 +00:00
Travis CI User
4b46fd6e10 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-04 15:39:25 +00:00
Travis CI User
3cc3fb081f [maven-release-plugin][skip ci] prepare release 14.129 2022-03-04 15:39:22 +00:00
Piotr Żurek
82add3f32f ACS-2631 Upgrade AOS module (#1001) 2022-03-04 15:49:16 +01:00
Travis CI User
76b0d5ee5a [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-04 09:08:06 +00:00
Travis CI User
3b36d26609 [maven-release-plugin][skip ci] prepare release 14.128 2022-03-04 09:08:03 +00:00
Aleksandra Onych
76ce1db950 Feature/acs 2562 disallow secure comms none (#994)
ACS-2562 Disallow SecureComms=none
Co-authored-by: Domenico Sibilio <domenicosibilio@gmail.com>
Co-authored-by: Stefan Kopf <stefan.kopf@alfresco.com>
2022-03-04 09:18:36 +01:00
Travis CI User
cd11c54422 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-03 20:28:40 +00:00
Travis CI User
bd4bdab0ff [maven-release-plugin][skip ci] prepare release 14.127 2022-03-03 20:28:37 +00:00
alandavis
9ad7175237 Upgrade to t-core 2.5.7-A6 2022-03-03 19:39:05 +00:00
Travis CI User
15b5bf93af [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-03 18:07:42 +00:00
Travis CI User
bb6d3b0716 [maven-release-plugin][skip ci] prepare release 14.126 2022-03-03 18:07:39 +00:00
Piotr Żurek
ac68fbdf09 ACS-2627 Upgrade base docker images (#1000) [skip ci] 2022-03-03 17:28:11 +01:00
Travis CI User
3dae151864 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-03 14:52:33 +00:00
Travis CI User
ae4d0f695e [maven-release-plugin][skip ci] prepare release 14.125 2022-03-03 14:52:30 +00:00
kcichonczyk
1b44b5825c [MNT-22462] 7.2.0-A4 rest-api-explorer version bump (#999) 2022-03-03 14:59:51 +01:00
Travis CI User
a51a4e7cf2 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-03 11:01:26 +00:00
Travis CI User
d82b35a2c6 [maven-release-plugin][skip ci] prepare release 14.124 2022-03-03 11:01:22 +00:00
Piotr Żurek
2b081589ea ACS-2620 tas rest api failures (#998) 2022-03-03 11:10:06 +01:00
kcichonczyk
d6974d8504 cm:versionable mandatory aspect cause the node creation REST API to create 2 versions instead of one (#993)
* [MNT-22462] Covered with tests all required combintations of creating a new node with versioningEnabled/majorVersion flags for multipart and json
2022-03-03 10:45:42 +01:00
Travis CI User
f319377697 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-02 21:24:35 +00:00
Travis CI User
72801ae27f [maven-release-plugin][skip ci] prepare release 14.123 2022-03-02 21:24:32 +00:00
Sara
bc4bc6703f Revert "Bump dependency.tas-restapi from 1.71 to 1.77 [skip tests] [no downstream] (#995)" (#996)
This reverts commit ee2b80ab13.
2022-03-02 21:13:53 +00:00
Travis CI User
f501050285 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-02 20:58:07 +00:00
Travis CI User
a38c428a9e [maven-release-plugin][skip ci] prepare release 14.122 2022-03-02 20:58:04 +00:00
Sara
ee2b80ab13 Bump dependency.tas-restapi from 1.71 to 1.77 [skip tests] [no downstream] (#995) 2022-03-02 20:47:02 +00:00
Travis CI User
bfda737651 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-02 17:43:31 +00:00
Travis CI User
280e29f326 [maven-release-plugin][skip ci] prepare release 14.121 2022-03-02 17:43:28 +00:00
alandavis
d60d8e1f5b Revert "Bump dependency.tas-restapi from 1.71 to 1.76"
This reverts commit b7ed25a741.
2022-03-02 16:50:34 +00:00
alandavis
40679b3f59 Upgrade to t-core 2.5.7-A5 2022-03-02 15:55:50 +00:00
Travis CI User
c3adbcdf3f [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-02 12:39:57 +00:00
Travis CI User
1487a8ecca [maven-release-plugin][skip ci] prepare release 14.120 2022-03-02 12:39:55 +00:00
alandavis
0e0a7831be Bump dependency.tas-restapi from 1.71 to 1.76
[skip tests] [no downstream] so Sara can try out something quickly in S3
2022-03-02 12:29:40 +00:00
alandavis
b7ed25a741 Bump dependency.tas-restapi from 1.71 to 1.76
[skip ci] [no downstream]
2022-03-02 12:28:04 +00:00
Travis CI User
bec9cf86b1 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-02 10:47:11 +00:00
Travis CI User
ec2a8962a1 [maven-release-plugin][skip ci] prepare release 14.119 2022-03-02 10:47:08 +00:00
Alan Davis
ea5ef05197 ACS-2493/ACS-2494 Repo Transform requests using a DAU (#988)
* Test code to follow - need to create image for the single pipeline
2022-03-02 09:58:56 +00:00
Shubham Jain
29df0e9bb2 [APPS-1242] (#985)
* [APPS-1242]

* [APPS-1242]-Commenting reduntant changes.

* [APPS-1242]-Removed unused code

* [APPS-1242]-Removed unused code

* [APPS-1242]-Changes with respect to review comments

Co-authored-by: shubhamjain10 <shubham.jain@globallogic.com>
2022-03-02 15:04:30 +05:30
Travis CI User
dee9b51274 [maven-release-plugin][skip ci] prepare for next development iteration 2022-03-01 08:21:54 +00:00
Travis CI User
0f985d5ded [maven-release-plugin][skip ci] prepare release 14.118 2022-03-01 08:21:51 +00:00
Piotr Żurek
bb1f5d18b6 ATS-983 Downgrade reload4j (#983)
* ATS-983 Downgrade reload4j and provide a test to make sure we still have classes needed by the current implementation of the logging console
2022-03-01 08:34:26 +01:00
Travis CI User
5c05001256 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-28 10:11:59 +00:00
Travis CI User
67d03b6996 [maven-release-plugin][skip ci] prepare release 14.117 2022-02-28 10:11:56 +00:00
Tom Page
1d1563c1f6 ACS-2072 Enable third party license enforcement. (#984) 2022-02-28 09:22:50 +00:00
Travis CI User
ad965d49fb [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-24 02:14:34 +00:00
Travis CI User
11e3d2d549 [maven-release-plugin][skip ci] prepare release 14.116 2022-02-24 02:14:31 +00:00
alandavis
b68b565a4f Pick up T-Engines 2.5.7-A4 and T-Model 1.4.11 2022-02-24 01:27:00 +00:00
Travis CI User
5963ccffdd [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-23 09:11:59 +00:00
Travis CI User
5265105149 [maven-release-plugin][skip ci] prepare release 14.115 2022-02-23 09:11:55 +00:00
mpichura
abd9ec4eef ACS-2348: removing @Experimental annotation on Storage Properties related methods. (#980) 2022-02-23 09:24:32 +01:00
Travis CI User
397539bbbe [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-22 14:09:03 +00:00
Travis CI User
1287eefd4f [maven-release-plugin][skip ci] prepare release 14.114 2022-02-22 14:09:00 +00:00
Travis CI User
637415554c [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-22 12:26:34 +00:00
Travis CI User
7231b20c41 [maven-release-plugin][skip ci] prepare release 14.113 2022-02-22 12:26:31 +00:00
dependabot[bot]
fea6b0dc4f Bump mybatis-spring from 2.0.6 to 2.0.7 (#922)
Bumps [mybatis-spring](https://github.com/mybatis/spring) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/mybatis/spring/releases)
- [Commits](https://github.com/mybatis/spring/compare/mybatis-spring-2.0.6...mybatis-spring-2.0.7)

---
updated-dependencies:
- dependency-name: org.mybatis:mybatis-spring
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-22 11:29:35 +00:00
montgolfiere
8c97443073 ACS-2476: Update to Camel 3.15.0 (#981)
* ACS-2476: Update to Camel 3.15.0 (inc Netty 4.1.73.Final)

- note: also Gytheio 0.16 (~ Camel 3.15.0)
- see also ACS-2561
2022-02-22 11:08:42 +00:00
alandavis
22d0f97ce3 Pick up T-Engines 2.5.7-A3 2022-02-22 10:27:57 +00:00
Travis CI User
50ee974ddf [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-22 09:53:23 +00:00
Travis CI User
984bbbd8bf [maven-release-plugin][skip ci] prepare release 14.112 2022-02-22 09:53:20 +00:00
dependabot[bot]
8b57af9cb5 Bump gytheio-messaging-camel from 0.13 to 0.16 (#977)
Bumps gytheio-messaging-camel from 0.13 to 0.16.

---
updated-dependencies:
- dependency-name: org.gytheio:gytheio-messaging-camel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-22 09:57:57 +01:00
Travis CI User
b06924908d [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-17 14:56:12 +00:00
Travis CI User
e2bba31603 [maven-release-plugin][skip ci] prepare release 14.111 2022-02-17 14:56:09 +00:00
Damian Ujma
3b65b30bd5 MNT-22780: fix rule behavior (#950)
* MNT-22780 Remove properties if node has aspect

* MNT-22780 Add remove features test

* MNT-22780 Remove wildcard imports + fix test

* MNT-22780 Remove aspect when only node has aspect

* MNT-22780 Fix if statement
2022-02-17 15:06:28 +01:00
Travis CI User
2177ffcea8 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-15 11:05:03 +00:00
Travis CI User
2ce43b09d8 [maven-release-plugin][skip ci] prepare release 14.110 2022-02-15 11:05:00 +00:00
dependabot[bot]
05660a94ab Bump gytheio-messaging-camel from 0.12 to 0.13 (#968)
Bumps gytheio-messaging-camel from 0.12 to 0.13.

---
updated-dependencies:
- dependency-name: org.gytheio:gytheio-messaging-camel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-15 10:14:14 +00:00
kcichonczyk
3e4c191ff9 [ACS-2557] Moved test methods to more appropriate test class (#966) 2022-02-15 11:10:24 +01:00
Travis CI User
8a3817649b [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-15 08:24:26 +00:00
Travis CI User
82b737062b [maven-release-plugin][skip ci] prepare release 14.109 2022-02-15 08:24:23 +00:00
alandavis
e6b32e7e61 Pick up T-Engines 2.5.7-A1 2022-02-15 07:02:05 +00:00
Travis CI User
b9979caf40 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-14 19:05:52 +00:00
Travis CI User
e6367cdc70 [maven-release-plugin][skip ci] prepare release 14.108 2022-02-14 19:05:49 +00:00
Alex Chapellon
eceba2679c move AGS API war to multistage build (#912) 2022-02-14 19:13:16 +01:00
Travis CI User
cf4abfe101 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-14 13:57:44 +00:00
Travis CI User
2a5f03889e [maven-release-plugin][skip ci] prepare release 14.107 2022-02-14 13:57:41 +00:00
kcichonczyk
0e11091d19 Add further tests for ReST integration tests (#945)
* [ACS-1982] Extended tests for REST integration tests
2022-02-14 14:08:54 +01:00
Travis CI User
3cb838865a [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-14 10:54:30 +00:00
Travis CI User
f89d85b431 [maven-release-plugin][skip ci] prepare release 14.106 2022-02-14 10:54:27 +00:00
Sara
9d91ee4cae ACS-2557 Enable system-wide DAUs (#964) 2022-02-14 10:02:19 +00:00
Travis CI User
1e792eb625 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-11 15:59:25 +00:00
Travis CI User
3d881b9022 [maven-release-plugin][skip ci] prepare release 14.105 2022-02-11 15:59:21 +00:00
George Evangelopoulos
b890af95b4 Revert "ACS-2476 Bump Camel version to 3.8.0 (#957)" (#959)
This reverts commit 64b9564dc7.
2022-02-11 15:10:57 +00:00
Travis CI User
706aac3ffa [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-11 12:26:55 +00:00
Travis CI User
22230ea04b [maven-release-plugin][skip ci] prepare release 14.104 2022-02-11 12:26:52 +00:00
Sara
798a3faa5b ACS-1988 Implement DAU Version Renditions code (#931)
* ACS-1988 Implement DAU Version Renditions code

* ACS-1988 Replace directAccessUrlRequest with request-direct-access-url

* ACS-1988 fix and move DAU version rendition test

* ACS-1988 Add NodeVersionRenditionsApiTest to test suite

* ACS-1988 Remove unused import

* ACS-1988 add error response tests

* ACS-1988 remove redundant constant

* ACS-1988 updates from review

* ACS-1988 updates from review
2022-02-11 11:35:28 +00:00
Domenico Sibilio
105c83ca7e ACS-2276 Add missing indexControl on hidden nodes to avoid Elasticsearch indexing
* ACS-2276 - Add indexControl to extensions and module-deployments

* ACS-2276 - Remove unnecessary test import
2022-02-11 11:44:48 +01:00
George Evangelopoulos
64b9564dc7 ACS-2476 Bump Camel version to 3.8.0 (#957) 2022-02-11 09:26:51 +00:00
Travis CI User
a3ccf20a74 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-10 12:49:45 +00:00
Travis CI User
fa7f74f2ee [maven-release-plugin][skip ci] prepare release 14.103 2022-02-10 12:49:43 +00:00
Vítor Moreira
30e339db12 MNT-22807: improve sitesTest test (#925) (#951)
(cherry picked from commit 1b42d80f94)
2022-02-10 12:00:02 +00:00
dependabot[bot]
8f5aed72d2 Bump restapi from 1.68 to 1.71 (#953)
Bumps [restapi](https://github.com/Alfresco/alfresco-tas-restapi) from 1.68 to 1.71.
- [Release notes](https://github.com/Alfresco/alfresco-tas-restapi/releases)
- [Commits](https://github.com/Alfresco/alfresco-tas-restapi/compare/v1.68...v1.71)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:restapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 10:34:34 +01:00
Travis CI User
dc0582b1ab [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-09 15:07:27 +00:00
Travis CI User
92eb339237 [maven-release-plugin][skip ci] prepare release 14.102 2022-02-09 15:07:24 +00:00
Jan Vonka
3b6983170b Revert "Bump mysql-connector-java from 8.0.27 to 8.0.28 (#901)"
This reverts commit 085e2acaac.
2022-02-09 14:17:06 +00:00
Alan Davis
338e2b93dd ACS-2498 Add coreVersion to T-Engine config (#937)
Added isSupported(CoreFunction function, String transformerName) and isSupported(CoreFunction function, LocalTransform transform) ready for work on the ACS-2493 & ACS-2494.
2022-02-09 13:39:57 +00:00
Stefan Kopf
fea50a2206 PRODSEC-6083 migrate to reload4j (#949) 2022-02-09 11:15:26 +01:00
evasques
85b5b2660e MNT-22710 - ContentURLs with CRC collision and same last 12 chars are assumed as duplicates and node is linked to the wrong contentURL (#944)
* Added a validation to assure the URL is the same and if it is not, throw an error
* Added a unit test to replicate the problem
2022-02-08 18:22:18 +00:00
dependabot[bot]
085e2acaac Bump mysql-connector-java from 8.0.27 to 8.0.28 (#901)
Bumps [mysql-connector-java](https://github.com/mysql/mysql-connector-j) from 8.0.27 to 8.0.28.
- [Release notes](https://github.com/mysql/mysql-connector-j/releases)
- [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/8.0/CHANGES)
- [Commits](https://github.com/mysql/mysql-connector-j/commits)

---
updated-dependencies:
- dependency-name: mysql:mysql-connector-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 17:44:28 +00:00
Travis CI User
58b4d9f18f [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-08 09:42:14 +00:00
Travis CI User
336e7cf817 [maven-release-plugin][skip ci] prepare release 14.101 2022-02-08 09:42:11 +00:00
dependabot[bot]
13a2bea2ce Bump postgresql from 42.3.1 to 42.3.2 (#927)
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.1 to 42.3.2.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.1...REL42.3.2)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 08:48:13 +00:00
Travis CI User
9139500fa5 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-04 17:31:26 +00:00
Travis CI User
2a43657e2f [maven-release-plugin][skip ci] prepare release 14.100 2022-02-04 17:31:23 +00:00
dependabot[bot]
8145e2ea39 Bump json-path from 2.5.0 to 2.7.0 (#921)
Bumps [json-path](https://github.com/jayway/JsonPath) from 2.5.0 to 2.7.0.
- [Release notes](https://github.com/jayway/JsonPath/releases)
- [Changelog](https://github.com/json-path/JsonPath/blob/master/changelog.md)
- [Commits](https://github.com/jayway/JsonPath/compare/json-path-2.5.0...json-path-2.7.0)

---
updated-dependencies:
- dependency-name: com.jayway.jsonpath:json-path
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-04 16:33:52 +00:00
Travis CI User
db1bc1d9e2 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-04 13:34:53 +00:00
Travis CI User
2f0f3aa310 [maven-release-plugin][skip ci] prepare release 14.99 2022-02-04 13:34:50 +00:00
kcichonczyk
873508bfb7 [ACS-2504] 7.2.0-A3 (#932) 2022-02-04 13:41:16 +01:00
Travis CI User
e71f681e6e [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-03 18:25:41 +00:00
Travis CI User
4cb4f6f023 [maven-release-plugin][skip ci] prepare release 14.98 2022-02-03 18:25:38 +00:00
dependabot[bot]
98aebf77ad Bump xercesImpl from 2.12.1 to 2.12.2 (#913)
Bumps xercesImpl from 2.12.1 to 2.12.2.

---
updated-dependencies:
- dependency-name: xerces:xercesImpl
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-03 17:34:11 +00:00
Travis CI User
25b7d8c480 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-03 14:38:05 +00:00
Travis CI User
641ea57895 [maven-release-plugin][skip ci] prepare release 14.97 2022-02-03 14:38:01 +00:00
dependabot[bot]
c0d2d444ca Bump dependency.jackson.version from 2.13.0 to 2.13.1 (#854) 2022-02-03 13:41:02 +00:00
dependabot[bot]
212c2cefec Bump dependency.slf4j.version from 1.7.33 to 1.7.35 (#911) 2022-02-03 13:40:37 +00:00
dependabot[bot]
6bacd51841 Bump junrar from 7.4.0 to 7.4.1 (#914) 2022-02-03 13:40:27 +00:00
Travis CI User
2db4bf0a90 [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-03 12:11:24 +00:00
Travis CI User
7381e578a8 [maven-release-plugin][skip ci] prepare release 14.96 2022-02-03 12:11:21 +00:00
dependabot[bot]
44a8acddd0 Bump reflections from 0.9.12 to 0.10.2 (#776) 2022-02-03 10:51:48 +00:00
Travis CI User
9bcf7eed9a [maven-release-plugin][skip ci] prepare for next development iteration 2022-02-01 09:10:17 +00:00
Travis CI User
d540a25a88 [maven-release-plugin][skip ci] prepare release 14.95 2022-02-01 09:10:14 +00:00
Domenico Sibilio
f113724f9a ACS-2245 Mitigate intermittent failure of FixedAclUpdaterTest (#916)
* ACS-2245 - Trigger CI build

* ACS-2245 - Add RepeatAtMostRule for flaky tests

* ACS-2245 - Add RepeatAtMostRuleTest to the AllUnitTestsSuite

* ACS-2245 - Rename RepeatAtMostRule to RetryAtMostRule
2022-02-01 09:14:53 +01:00
Travis CI User
ad04e79141 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-31 19:00:40 +00:00
Travis CI User
51ed184126 [maven-release-plugin][skip ci] prepare release 14.94 2022-01-31 19:00:37 +00:00
montgolfiere
5d740eba37 ACS-2104: Remove Camel exclusion from DependABot - to enable future suggestions (#917)
- ie. should prompt with 3.7.7 to 3.14.0 (or maybe 3.14.1)
- also logged ACS-2476 (in case of compile-time/run-time incompatibilities and aligning with Netty)
2022-01-31 18:06:40 +00:00
Travis CI User
5c9cc4dd04 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-28 19:01:14 +00:00
Travis CI User
430e92dbce [maven-release-plugin][skip ci] prepare release 14.93 2022-01-28 19:01:11 +00:00
dependabot[bot]
f0aa9b6004 Bump dependency.alfresco-transform-model.version from 1.4.7 to 1.4.8 (#915)
Bumps `dependency.alfresco-transform-model.version` from 1.4.7 to 1.4.8.

Updates `alfresco-transform-model` from 1.4.7 to 1.4.8
- [Release notes](https://github.com/Alfresco/alfresco-transform-model/releases)
- [Commits](https://github.com/Alfresco/alfresco-transform-model/commits)

Updates `alfresco-transform-model` from 1.4.7 to 1.4.8
- [Release notes](https://github.com/Alfresco/alfresco-transform-model/releases)
- [Commits](https://github.com/Alfresco/alfresco-transform-model/commits)

---
updated-dependencies:
- dependency-name: org.alfresco:alfresco-transform-model
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.alfresco:alfresco-transform-model:tests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-28 18:08:59 +00:00
Travis CI User
4471654e40 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-27 23:34:29 +00:00
Travis CI User
e1fa082b6e [maven-release-plugin][skip ci] prepare release 14.92 2022-01-27 23:34:26 +00:00
alandavis
903672b82b ACS-2479 Pick up T-Core 2.5.6 2022-01-27 21:50:43 +00:00
Travis CI User
611b89e544 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-27 12:23:04 +00:00
Travis CI User
9205486959 [maven-release-plugin][skip ci] prepare release 14.91 2022-01-27 12:23:02 +00:00
Denys Vuika
47e58e1303 ACS-2408 update rest-api-explorer to 7.2.0-M2 2022-01-27 11:31:13 +00:00
Travis CI User
398a03f3dd [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-26 22:25:51 +00:00
Travis CI User
4338693f81 [maven-release-plugin][skip ci] prepare release 14.90 2022-01-26 22:25:48 +00:00
alandavis
449fe34856 ATS-973 Bump t-core to 2.5.5 2022-01-26 21:30:09 +00:00
Travis CI User
930fbe4cda [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-25 18:09:14 +00:00
Travis CI User
e45d223124 [maven-release-plugin][skip ci] prepare release 14.89 2022-01-25 18:09:11 +00:00
mpichura
4e0e797d9f ACS-2104: Changing apache.camel and netty-codec-http dependency versions due to conflicts and vulnerabilities. (#908) 2022-01-25 18:15:39 +01:00
Travis CI User
5418c3936d [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-25 15:45:28 +00:00
Travis CI User
f876016bb9 [maven-release-plugin][skip ci] prepare release 14.88 2022-01-25 15:45:25 +00:00
Tom Page
00186e5594 ACS-2303 Include license report in share-services amp. (#907) 2022-01-25 14:51:44 +00:00
Travis CI User
d6c39cc990 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-25 14:30:22 +00:00
Travis CI User
5a2bb6db5b [maven-release-plugin][skip ci] prepare release 14.87 2022-01-25 14:30:19 +00:00
Tom Page
351c3ac73a ACS-2303 Gytheio is a first party library. (#906) 2022-01-25 13:40:28 +00:00
Travis CI User
62f72f92be [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-24 11:26:07 +00:00
Travis CI User
faa0ff0e40 [maven-release-plugin][skip ci] prepare release 14.86 2022-01-24 11:26:04 +00:00
dependabot[bot]
7d6037a85f Bump restapi from 1.67 to 1.68 (#904)
Bumps [restapi](https://github.com/Alfresco/alfresco-tas-restapi) from 1.67 to 1.68.
- [Release notes](https://github.com/Alfresco/alfresco-tas-restapi/releases)
- [Commits](https://github.com/Alfresco/alfresco-tas-restapi/compare/v1.67...v1.68)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:restapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-24 11:35:54 +01:00
Travis CI User
2aa5f162cc [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-18 10:28:37 +00:00
Travis CI User
13bdfe6ac3 [maven-release-plugin][skip ci] prepare release 14.85 2022-01-18 10:28:34 +00:00
Piotr Żurek
d0dbef04f4 PRODSEC-5799 Upgrade mybatis (#879) 2022-01-18 10:33:46 +01:00
Tom Page
d8f086640a ACS-2365 Include license report in AGS amp. (#899) 2022-01-18 08:57:42 +00:00
Travis CI User
452fa1d2d8 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-17 05:17:45 +00:00
Travis CI User
68e9d2bc7d [maven-release-plugin][skip ci] prepare release 14.84 2022-01-17 05:17:42 +00:00
Travis CI User
0e083bbf6b [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-14 13:00:50 +00:00
Travis CI User
3a17a30e8c [maven-release-plugin][skip ci] prepare release 14.83 2022-01-14 13:00:48 +00:00
dependabot[bot]
c65a56b945 Bump json from 20210307 to 20211205 (#828)
Bumps [json](https://github.com/douglascrockford/JSON-java) from 20210307 to 20211205.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-14 12:09:44 +00:00
Travis CI User
aa6c0fb2a9 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-14 11:34:06 +00:00
Travis CI User
235bef78a9 [maven-release-plugin][skip ci] prepare release 14.82 2022-01-14 11:34:03 +00:00
Alan Davis
f80767359f MNT-22696 Replace Rendition REST API (#880)
Code to reject zero byte renditions
Addition of:
DELETE /nodes/{nodeId}/renditions/{renditionId} 
DELETE /nodes/{nodeId}/versions/{versionId}/renditions/{renditionId} end points

Co-authored-by: kmagdziarz <Kacper.Magdziarz@hyland.com>
2022-01-14 11:28:50 +01:00
dependabot[bot]
8cd843df9d Bump dependency.slf4j.version from 1.7.32 to 1.7.33 (#893)
Bumps `dependency.slf4j.version` from 1.7.32 to 1.7.33.

Updates `slf4j-api` from 1.7.32 to 1.7.33
- [Release notes](https://github.com/qos-ch/slf4j/releases)
- [Commits](https://github.com/qos-ch/slf4j/compare/v_1.7.32...v_1.7.33)

Updates `slf4j-log4j12` from 1.7.32 to 1.7.33
- [Release notes](https://github.com/qos-ch/slf4j/releases)
- [Commits](https://github.com/qos-ch/slf4j/compare/v_1.7.32...v_1.7.33)

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-log4j12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-14 10:03:18 +00:00
dependabot[bot]
ce30495376 Bump maven-jar-plugin from 3.2.1 to 3.2.2 (#887)
Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.1...maven-jar-plugin-3.2.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci] 1 more PR merge to follow
2022-01-14 10:02:13 +00:00
dependabot[bot]
5b73d52753 Bump jboss-logging from 3.4.2.Final to 3.4.3.Final (#886)
Bumps [jboss-logging](https://github.com/jboss-logging/jboss-logging) from 3.4.2.Final to 3.4.3.Final.
- [Release notes](https://github.com/jboss-logging/jboss-logging/releases)
- [Commits](https://github.com/jboss-logging/jboss-logging/compare/3.4.2.Final...3.4.3.Final)

---
updated-dependencies:
- dependency-name: org.jboss.logging:jboss-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci] 2 more PR merges to follow
2022-01-14 10:00:40 +00:00
dependabot[bot]
7bb829d756 Bump dependency.webscripts.version from 8.27 to 8.28 (#892)
Bumps `dependency.webscripts.version` from 8.27 to 8.28.

Updates `spring-surf-core-configservice` from 8.27 to 8.28

Updates `spring-webscripts` from 8.27 to 8.28
- [Release notes](https://github.com/Alfresco/surf-webscripts/releases)
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.27...spring-surf-webscripts-parent-8.28)

Updates `spring-webscripts` from 8.27 to 8.28
- [Release notes](https://github.com/Alfresco/surf-webscripts/releases)
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.27...spring-surf-webscripts-parent-8.28)

Updates `spring-webscripts-api` from 8.27 to 8.28

---
updated-dependencies:
- dependency-name: org.alfresco.surf:spring-surf-core-configservice
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.alfresco.surf:spring-webscripts
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.alfresco.surf:spring-webscripts:tests
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.alfresco.surf:spring-webscripts-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-14 09:30:16 +00:00
dependabot[bot]
3bedfb2c33 Bump dependency.spring.version from 5.3.14 to 5.3.15 (#891)
Bumps `dependency.spring.version` from 5.3.14 to 5.3.15.

Updates `spring-aop` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-beans` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-context` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-context-support` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-core` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-expression` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-jdbc` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-jms` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-test` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-orm` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-tx` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-web` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

Updates `spring-webmvc` from 5.3.14 to 5.3.15
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.14...v5.3.15)

---
updated-dependencies:
- dependency-name: org.springframework:spring-aop
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-beans
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-context-support
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-expression
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-jdbc
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-jms
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-orm
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-tx
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-webmvc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci] another PR is about to be merged
2022-01-14 09:25:31 +00:00
alandavis
9058b5923b Pick up T-Engines 2.5.5-A3 & T-Model 1.4.7
* Five fixes too many
2022-01-14 09:13:33 +00:00
alandavis
07084b22f9 Pick up T-Engines 2.5.5-A3 & T-Model 1.4.7
* More "Pangram, fox, dog, Gym class featuring" test fixes
2022-01-14 09:09:34 +00:00
kcichonczyk
5c884c8552 [PRODSEC-5657] Added netty-codec-http version 4.1.71.Final to fix vulnerability nested in camel-amqp dependency. (#890) 2022-01-14 10:03:13 +01:00
alandavis
becf46f58a Pick up T-Engines 2.5.5-A3 & T-Model 1.4.7
* Raw metadata "subject" change resulting in cm:description change
2022-01-14 07:48:58 +00:00
alandavis
839afbbc1c Pick up T-Engines 2.5.5-A3 & T-Model 1.4.7 [no downstream] 2022-01-13 23:15:29 +00:00
David Edwards
daacceebd2 ACS-2407 Upgrade rest-api-explorer to 7.2.0-A2 (#888) 2022-01-13 13:07:40 +00:00
Vítor Moreira
cc11c13e54 MNT-22563: bumped jdom2 version to 2.0.6.1 (#885)
* MNT-22563: bumped jdom2 version to 2.0.6.1
2022-01-13 12:37:14 +00:00
Travis CI User
9e1ece208f [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-13 12:03:24 +00:00
Travis CI User
82ba856d2c [maven-release-plugin][skip ci] prepare release 14.81 2022-01-13 12:03:22 +00:00
mpichura
8278c9ced2 ACS-2334 improve ArchivedIOException logging (#859)
* ACS-2234: Improving ArchivedIOException logging.

* ACS-2234: Improving ArchivedIOException logging.

* ACS-2234: Throw WebScriptException wit 412 status code when ArchivedIOException caught.

* ACS-2234: Fixing formatting and removing unused import.
2022-01-13 10:51:12 +01:00
Travis CI User
4e9f362482 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-12 12:24:47 +00:00
Travis CI User
68bc3c5391 [maven-release-plugin][skip ci] prepare release 14.80 2022-01-12 12:24:44 +00:00
alandavis
e484ede6c4 Upgrade to alfresco/alfresco-base-tomcat:9.0.54-java-11-centos-7 from alfresco/alfresco-base-tomcat:9.0.52-java-11-centos-7 2022-01-12 11:32:57 +00:00
Travis CI User
cecc517674 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-12 09:45:17 +00:00
Travis CI User
43224ade71 [maven-release-plugin][skip ci] prepare release 14.79 2022-01-12 09:45:14 +00:00
dependabot[bot]
5ec2d430e0 Bump icu4j from 68.2 to 70.1 (#783)
Bumps [icu4j](https://github.com/unicode-org/icu) from 68.2 to 70.1.
- [Release notes](https://github.com/unicode-org/icu/releases)
- [Commits](https://github.com/unicode-org/icu/commits)

---
updated-dependencies:
- dependency-name: com.ibm.icu:icu4j
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[skip ci]
2022-01-12 08:15:33 +00:00
Travis CI User
b0ff60adba [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-12 08:07:55 +00:00
Travis CI User
7a7a9f0964 [maven-release-plugin][skip ci] prepare release 14.78 2022-01-12 08:07:51 +00:00
dependabot[bot]
720256159f Bump dependency.spring.version from 5.3.13 to 5.3.14 (#849)
Bumps `dependency.spring.version` from 5.3.13 to 5.3.14.

Updates `spring-aop` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-beans` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-context` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-context-support` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-core` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-expression` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-jdbc` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-jms` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-test` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-orm` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-tx` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-web` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

Updates `spring-webmvc` from 5.3.13 to 5.3.14
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.13...v5.3.14)

---
updated-dependencies:
- dependency-name: org.springframework:spring-aop
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-beans
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-context-support
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-expression
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-jdbc
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-jms
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-orm
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-tx
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework:spring-webmvc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 18:30:57 +00:00
Stefan Kopf
cbc38c59c9 ACS-2180 solr shared secret (#883) 2022-01-11 18:46:34 +01:00
dependabot[bot]
b061dd4095 Bump jackson-databind from 2.13.0 to 2.13.1 (#857)
Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.13.0 to 2.13.1.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 17:08:42 +00:00
Travis CI User
75bf1bff01 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-11 17:08:15 +00:00
Travis CI User
d85eecddef [maven-release-plugin][skip ci] prepare release 14.77 2022-01-11 17:08:12 +00:00
dependabot[bot]
96088f2643 Bump maven-jar-plugin from 3.2.0 to 3.2.1 (#882)
Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 16:14:13 +00:00
dependabot[bot]
b6c955f28d Bump dependency.cxf.version from 3.4.5 to 3.5.0 (#861)
Bumps `dependency.cxf.version` from 3.4.5 to 3.5.0.

Updates `cxf-rt-frontend-jaxws` from 3.4.5 to 3.5.0

Updates `cxf-rt-frontend-jaxrs` from 3.4.5 to 3.5.0

Updates `cxf-rt-rs-client` from 3.4.5 to 3.5.0

Updates `cxf-rt-transports-http` from 3.4.5 to 3.5.0

Updates `cxf-rt-ws-policy` from 3.4.5 to 3.5.0

---
updated-dependencies:
- dependency-name: org.apache.cxf:cxf-rt-frontend-jaxws
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.cxf:cxf-rt-frontend-jaxrs
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.cxf:cxf-rt-rs-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.cxf:cxf-rt-transports-http
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.cxf:cxf-rt-ws-policy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-01-11 16:13:57 +00:00
dependabot[bot]
b796441f8f Bump spring-security-core from 5.5.2 to 5.6.1 (#858)
Bumps [spring-security-core](https://github.com/spring-projects/spring-security) from 5.5.2 to 5.6.1.
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.5.2...5.6.1)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 16:13:06 +00:00
dependabot[bot]
b3b6f72286 Bump dependency.tika.version from 2.1.0 to 2.2.1 (#865)
Bumps `dependency.tika.version` from 2.1.0 to 2.2.1.

Updates `tika-core` from 2.1.0 to 2.2.1
- [Release notes](https://github.com/apache/tika/releases)
- [Changelog](https://github.com/apache/tika/blob/main/CHANGES.txt)
- [Commits](https://github.com/apache/tika/commits)

Updates `tika-parsers-standard-package` from 2.1.0 to 2.2.1

---
updated-dependencies:
- dependency-name: org.apache.tika:tika-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.tika:tika-parsers-standard-package
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 15:22:28 +00:00
montgolfiere
cec820bc88 ACS-2391: ACS-2391: StorageObjectProps - add version content specific endpoints (#881)
- fix blatant typo - thanks MP for detailed verification and feedback
- Note: e2e API sanity check will be added as part of ACS-2406
2022-01-11 10:24:20 +00:00
Travis CI User
49d7f5c2b1 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-10 14:42:36 +00:00
Travis CI User
1cc351b1d5 [maven-release-plugin][skip ci] prepare release 14.76 2022-01-10 14:42:33 +00:00
Tom Page
c6be5bc4da [skip tests] Add ability to build without updating AGS license year. 2022-01-10 14:29:26 +00:00
Travis CI User
054e6fccce [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-08 14:03:41 +00:00
Travis CI User
c31000d842 [maven-release-plugin][skip ci] prepare release 14.75 2022-01-08 14:03:39 +00:00
dependabot[bot]
e613b268f7 Bump dependency.alfresco-transform-model.version from 1.4.5 to 1.4.6 (#875)
Bumps `dependency.alfresco-transform-model.version` from 1.4.5 to 1.4.6.

Updates `alfresco-transform-model` from 1.4.5 to 1.4.6
- [Release notes](https://github.com/Alfresco/alfresco-transform-model/releases)
- [Commits](https://github.com/Alfresco/alfresco-transform-model/commits)

Updates `alfresco-transform-model` from 1.4.5 to 1.4.6
- [Release notes](https://github.com/Alfresco/alfresco-transform-model/releases)
- [Commits](https://github.com/Alfresco/alfresco-transform-model/commits)

---
updated-dependencies:
- dependency-name: org.alfresco:alfresco-transform-model
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.alfresco:alfresco-transform-model:tests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-08 13:11:59 +00:00
Travis CI User
d1d2cfb400 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-08 11:51:07 +00:00
Travis CI User
63770758ae [maven-release-plugin][skip ci] prepare release 14.74 2022-01-08 11:51:04 +00:00
dependabot[bot]
44280f1aee Bump rhino from 1.7.13 to 1.7.14 (#876)
Bumps [rhino](https://github.com/mozilla/rhino) from 1.7.13 to 1.7.14.
- [Release notes](https://github.com/mozilla/rhino/releases)
- [Changelog](https://github.com/mozilla/rhino/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/mozilla/rhino/commits)

---
updated-dependencies:
- dependency-name: org.mozilla:rhino
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-08 10:56:41 +00:00
Travis CI User
50b9f67a32 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-07 19:06:46 +00:00
Travis CI User
0155cc8fb8 [maven-release-plugin][skip ci] prepare release 14.73 2022-01-07 19:06:43 +00:00
Alan Davis
b1ceace38f ACS-2412 Log files flooded with transformation option messages when config is misconfigured (#878)
Cron rate changed to be every minute rather every 10 seconds on startup or error state
    When a T-Engine/T-Router is down the log message now an ERROR rather than DEBUG
2022-01-07 18:13:34 +00:00
Tom Page
61db08cc87 ACS-2365 Ensure we run license reporting against all submodules by default. (#877)
* ACS-2365 Ensure we run license reporting against all submodules by default.

* Fix a couple of typos in comments.

* ACS-2365 Ignore all internal libraries.
2022-01-07 16:41:37 +00:00
alandavis
00f68e591e ACS-2002 put missing sourceNodeRef debug back when calling TransformService [skip ci] 2022-01-07 15:53:12 +00:00
Travis CI User
94f54b8c3b [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-07 11:40:26 +00:00
Travis CI User
34c216ec7e [maven-release-plugin][skip ci] prepare release 14.72 2022-01-07 11:40:23 +00:00
Alan Davis
13a1338ddd Start counting transforms from 1 rather than 0, like the t-router (#874) 2022-01-07 10:49:42 +00:00
Travis CI User
4dc88f70fe [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-06 00:16:56 +00:00
Travis CI User
1787f59c34 [maven-release-plugin][skip ci] prepare release 14.71 2022-01-06 00:16:53 +00:00
alandavis
18418872c3 ACS-2002 Enhance T-Router debug
* getRenditionName needs to be public
* Pick up t-engines 2.5.5-A1 for testing
2022-01-05 23:26:09 +00:00
Travis CI User
960033d776 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-05 22:41:44 +00:00
Travis CI User
06f6594d35 [maven-release-plugin][skip ci] prepare release 14.70 2022-01-05 22:41:41 +00:00
Alan Davis
451a9d1f60 ACS-2002 Enhance T-Router debug (#867)
Modifications to allow the enterprise repo to add transform debug from the t-router to the repo's log.

Addition of TransformerDebugTest
2022-01-05 21:46:41 +00:00
Tom Page
b83cc149ad ACS-2365 license plugin (#834)
* ACS-2303 Add text of licenses for libraries used by acs-packaging.

* ACS-2365 Use the latest third party license reporting settings.

* ACS-2358 Add license text for Brotli dec.

* ACS-2361 The Bouncy Castle license is exactly the MIT license.

* ACS-2363 Add OGC license for geoapi-3.0.1.jar.

* ACS-2365 Ensure we use the same version of the license plugin throughout the project.

Also remove failing; on warnings.
2022-01-05 15:45:29 +00:00
Travis CI User
3fabaf8cf8 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-05 11:44:41 +00:00
Travis CI User
24318ce09c [maven-release-plugin][skip ci] prepare release 14.69 2022-01-05 11:44:38 +00:00
Kacper Magdziarz
ae2fb449cc ACS-2242 Attempt to fix Initialization of SecureRandom in EncryptionTest (#872)
* ACS-2242 Initializing SecureRandom only once.

* ACS-2242 adjust requested changes.
2022-01-05 11:55:01 +01:00
Travis CI User
94a1c7a692 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-04 17:26:15 +00:00
Travis CI User
28fef14566 [maven-release-plugin][skip ci] prepare release 14.68 2022-01-04 17:26:12 +00:00
montgolfiere
53979f3357 ACS-2391: StorageObjectProps - add version content specific endpoints (#863)
* ACS-2391: StorageObjectProps - add version content specific endpoints

- GET /nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropQName}
- POST /nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropQName}/archive
- POST /nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropQName}/archive-restore

- since versioned content nodes are not in default workspace://SpaceStore ...
- updated existing ContentStorageInfomation (and related tests) to handle nodeRef instead of nodeId
- also fixed REST framework for operation/property for 2nd-level relationship (inc extra fix, eg. for "revert" version regression)

- update based on PR feedback (thanks SA) - also update lic header to 2022 for new/changed Java files

- update based on PR feedback (thanks MP) - minor: rename local variable (and similarly across codebase)
2022-01-04 16:23:13 +00:00
Travis CI User
cb0b77bd08 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-04 13:19:55 +00:00
Travis CI User
10a70cbfd0 [maven-release-plugin][skip ci] prepare release 14.67 2022-01-04 13:19:52 +00:00
Piotr Żurek
8e43d83579 ACS-2245 Attempt to fix intermittent failure in FixedAclUpdaterTest (#864) 2022-01-04 13:28:33 +01:00
Travis CI User
d741509a46 [maven-release-plugin][skip ci] prepare for next development iteration 2022-01-04 12:14:51 +00:00
Travis CI User
60f7e31b13 [maven-release-plugin][skip ci] prepare release 14.66 2022-01-04 12:14:48 +00:00
kcichonczyk
b4e93a34cc [MNT-22668] Replaced org.springframework.extensions.surf.util.URLEncoder with the java.net.URLEncoder for encoding filenames containing characters like ")" and "(" in the content-disposition response header. (#870) 2022-01-04 12:24:44 +01:00
Piotr Żurek
b8bffb3bad ACS-2409 Update copyright headers (#869) 2022-01-04 10:36:36 +01:00
Travis CI User
acf333fd2d [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-23 09:03:00 +00:00
Travis CI User
4fc71bcad0 [maven-release-plugin][skip ci] prepare release 14.65 2021-12-23 09:02:58 +00:00
Piotr Żurek
11a4969da2 ACS-2243 Attempt to fix intermittent failure in JobLockServiceTest (#862) 2021-12-23 09:14:24 +01:00
Travis CI User
48b1f908c5 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-22 11:45:48 +00:00
Travis CI User
24a40e8096 [maven-release-plugin][skip ci] prepare release 14.64 2021-12-22 11:45:45 +00:00
dependabot[bot]
b78b59033c Bump httpcore from 4.4.14 to 4.4.15 (#833)
Bumps httpcore from 4.4.14 to 4.4.15.

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents:httpcore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-22 10:57:28 +00:00
dependabot[bot]
00a59363dc Bump license-maven-plugin from 2.0.0 to 2.0.1.alfresco-1 (#788)
Bumps [license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) from 2.0.0 to 2.0.1.alfresco-1.
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-22 09:20:37 +00:00
Travis CI User
a57eeefed6 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-20 12:58:20 +00:00
Travis CI User
f197822f84 [maven-release-plugin][skip ci] prepare release 14.63 2021-12-20 12:58:17 +00:00
dependabot[bot]
56972c53f2 Bump dependency.jackson.version from 2.12.3 to 2.13.0 (#712) 2021-12-20 12:09:53 +00:00
Travis CI User
18d217b35c [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-17 18:06:37 +00:00
Travis CI User
58a375b5c9 [maven-release-plugin][skip ci] prepare release 14.62 2021-12-17 18:06:35 +00:00
David Edwards
64f97585ea ACS-2201 Upgrade tas restapi to 1.67 (#852) 2021-12-17 12:16:40 -05:00
Travis CI User
7a14d90707 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-16 14:09:32 +00:00
Travis CI User
2687f5bdf1 [maven-release-plugin][skip ci] prepare release 14.61 2021-12-16 14:09:28 +00:00
kcichonczyk
5c6fc868dc [ACS-2158] tas-restapi version bumped to 1.66 (#847) 2021-12-16 14:20:52 +01:00
Travis CI User
dba1c5e7ee [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-16 12:21:44 +00:00
Travis CI User
6c77f4c867 [maven-release-plugin][skip ci] prepare release 14.60 2021-12-16 12:21:41 +00:00
Sara
f2395f1e06 MNT-22601 Bump surf-webscripts to 8.27 (#845) 2021-12-16 11:32:27 +00:00
Travis CI User
bb1960236f [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-15 14:12:06 +00:00
Travis CI User
3f18392f08 [maven-release-plugin][skip ci] prepare release 14.59 2021-12-15 14:12:02 +00:00
Piotr Żurek
a7438101d5 ACS-2102 Upgrade mysql driver (#842) 2021-12-15 14:13:20 +01:00
Travis CI User
f5b79d0ce3 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-13 10:05:05 +00:00
Travis CI User
2f1f6e90d9 [maven-release-plugin][skip ci] prepare release 14.58 2021-12-13 10:05:01 +00:00
mpichura
49aed941a2 ACS-2236: Fixing NPE when no body provided for POST requests. (#840) 2021-12-13 09:09:41 +00:00
Travis CI User
4daeee054b [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-10 17:29:17 +00:00
Travis CI User
6f5e39b018 [maven-release-plugin][skip ci] prepare release 14.57 2021-12-10 17:29:14 +00:00
David Edwards
cd7e2a6e05 ACS-2331 handle RestoreInProgressException (#839) 2021-12-10 16:41:07 +00:00
Travis CI User
3492f2fc2a [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-10 15:53:08 +00:00
Travis CI User
e459929901 [maven-release-plugin][skip ci] prepare release 14.56 2021-12-10 15:53:05 +00:00
mpichura
0034f53b5f ACS-2336 POST endpoints for archive/archive-restore content (#826)
* ACS-2200: Java API for archive/archive-restore content + unit tests.

* Bump restapi from 1.64 to 1.65 (#795)

* Bump utility from 3.0.45 to 3.0.47 (#794)

* ACS-2200: Applying review comments.

* ACS-2200: Applying review comments.

* ACS-2200: Adding new unit test to suite.

* ACS-2200: Adding optional archive params to archive operation.

* ACS-2236: Archive + archive-restore operations and unit tests.

* ACS-2236: Addressing review comments. Small refactor in unit tests.
2021-12-10 16:06:54 +01:00
Travis CI User
84f8481714 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-10 14:34:48 +00:00
Travis CI User
ad2f6baf74 [maven-release-plugin][skip ci] prepare release 14.55 2021-12-10 14:34:45 +00:00
David Edwards
d08fb6ebaf ACS-2331 Add RestoreInProgressException (#832) 2021-12-10 13:49:57 +00:00
Travis CI User
292df69bb7 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-09 19:44:39 +00:00
Travis CI User
35ec6e8909 [maven-release-plugin][skip ci] prepare release 14.54 2021-12-09 19:44:35 +00:00
evasques
d729443b71 MNT-22715 - Setting Version Child Assoc Index Configurable (#836)
* Added configuration to use child association index on version creation - disabled by default
* Added unit test to verify both cenarios
* Included configuration in AGS
2021-12-09 18:43:56 +00:00
Travis CI User
45678fed30 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-09 14:30:36 +00:00
Travis CI User
f5f49fc4f0 [maven-release-plugin][skip ci] prepare release 14.53 2021-12-09 14:30:32 +00:00
evasques
c9e98b4833 MNT-22715 - Document Version Issue (#831)
* MNT-22715 - Document Version Issue - Unexpected: current version does not appear to be 1st version in the list
* Set association index on new version creation
* Unit test to verify the child assoc index is set on versions
* Set association index on new version creation on AGS create record from version
2021-12-09 13:21:52 +00:00
Travis CI User
aabe395a0c [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-08 20:27:45 +00:00
Travis CI User
e8599ec433 [maven-release-plugin][skip ci] prepare release 14.52 2021-12-08 20:27:42 +00:00
pzurek
90b4263caf ATS-969 - The gson library was provided by tika parsers. Restoring it in the same project because some amps import it with a provided scope 2021-12-08 20:24:47 +01:00
Travis CI User
c677fc8399 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-08 16:17:48 +00:00
Travis CI User
60a8d0008e [maven-release-plugin][skip ci] prepare release 14.51 2021-12-08 16:17:44 +00:00
mpichura
4f1397eeee ACS-2200: Java API for archive/archive-restore content (#825)
* ACS-2200: Java API for archive/archive-restore content + unit tests.

* Bump restapi from 1.64 to 1.65 (#795)

* Bump utility from 3.0.45 to 3.0.47 (#794)

* ACS-2200: Applying review comments.

* ACS-2200: Applying review comments.

* ACS-2200: Adding new unit test to suite.

* ACS-2200: Adding optional archive params to archive operation.

* Bump restapi from 1.64 to 1.65 (#795)

* Bump utility from 3.0.45 to 3.0.47 (#794)

* ACS-2200: Applying review comments.

* ACS-2200: Java API for archive/archive-restore content + unit tests.
2021-12-08 16:33:20 +01:00
Travis CI User
8862645dea [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-08 10:25:31 +00:00
Travis CI User
767a3d0e61 [maven-release-plugin][skip ci] prepare release 14.50 2021-12-08 10:25:27 +00:00
Piotr Żurek
8dd6ce48dc ATS-969 Upgrade tika 1.x -> 2.x (#827) 2021-12-08 10:28:47 +01:00
montgolfiere
89de2e4677 PRODESC-5780: ACS Repo DAU APIs to also use non-attach allow list (#830)
* PRODSEC-5780: ACS Repo DAU APIs to also use non-attach allow list

- moved existing pre-configured allow list from remote-api to repository layer
- ("nodes.nonAttachContentTypes" xml -> "content.nonAttach.mimetypes" prop)
- now also used by DAU (as well as existing V1 REST API and CMIS to get/download content)
2021-12-07 17:21:31 +00:00
Travis CI User
2039018ce5 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-07 12:59:38 +00:00
Travis CI User
3829d39087 [maven-release-plugin][skip ci] prepare release 14.49 2021-12-07 12:59:35 +00:00
tiagosalvado10
2561ad6f2b [MNT-21551] Handle links path with a changed root-node (#824) 2021-12-07 12:16:02 +00:00
Travis CI User
83d5294286 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-06 08:55:49 +00:00
Travis CI User
10ff5f3366 [maven-release-plugin][skip ci] prepare release 14.48 2021-12-06 08:55:46 +00:00
dependabot[bot]
c6551f09c1 Bump utility from 3.0.45 to 3.0.47 (#794) 2021-12-06 07:24:42 +00:00
Travis CI User
88d891fe18 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-06 06:53:07 +00:00
Travis CI User
3b474bdf94 [maven-release-plugin][skip ci] prepare release 14.47 2021-12-06 06:53:04 +00:00
dependabot[bot]
56268adce9 Bump restapi from 1.64 to 1.65 (#795) 2021-12-06 06:09:54 +00:00
Travis CI User
2fe2a043ef [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-06 05:23:48 +00:00
Travis CI User
5eac104f4b [maven-release-plugin][skip ci] prepare release 14.46 2021-12-06 05:23:45 +00:00
dependabot[bot]
e135e2cbc2 Bump postgresql from 42.2.24 to 42.3.1 (#784) 2021-12-06 04:40:34 +00:00
dependabot[bot]
f011e6b6f7 Bump joda-time from 2.10.12 to 2.10.13 (#780) 2021-12-06 04:40:27 +00:00
dependabot[bot]
1a43942240 Bump awaitility from 4.1.0 to 4.1.1 (#777) 2021-12-06 04:40:21 +00:00
dependabot[bot]
3b48266545 Bump swagger-parser from 1.0.52 to 1.0.56 (#731) 2021-12-06 04:40:12 +00:00
David Edwards
c0753e3285 ACS-2321 Downloads throws 412 error if content is archived (#822) 2021-12-03 18:17:15 +00:00
Ayman Harake
1f18805733 ACS-2216: Fix incorrect ContentService Java Interface - should accept content propQName (#813)
Squashed some of the commit messages:

* ACS-2216: Resolving failing tests
* ACS-2216: Reformatting code
* ACS-2216: Adding David's suggestion
* ACS-2216: Set some methods to default as per David's comments
* ACS-2216: Added test for when propertyQName has no content
* ACS-2216: Replaced try catch with assertThrows
* ACS-2216: Added propertyQName to Auditable list

Co-authored-by: David Edwards <david.edwards@hyland.com>
2021-12-03 18:12:02 +00:00
Travis CI User
ce8b045700 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-03 17:15:21 +00:00
Travis CI User
2f66e95d23 [maven-release-plugin][skip ci] prepare release 14.45 2021-12-03 17:15:18 +00:00
dependabot[bot]
db40fa5d58 Bump docker-maven-plugin from 0.37.0 to 0.38.0 (#792) 2021-12-03 16:11:12 +00:00
dependabot[bot]
8e19d8f2f6 Bump dependency.spring.version from 5.3.10 to 5.3.13 (#798) 2021-12-03 15:12:00 +00:00
Travis CI User
6c1318b161 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-03 14:34:05 +00:00
Travis CI User
ecab12308a [maven-release-plugin][skip ci] prepare release 14.44 2021-12-03 14:34:02 +00:00
dependabot[bot]
e3ddcf09ab Bump maven-artifact from 3.8.3 to 3.8.4 (#816) 2021-12-03 13:51:30 +00:00
Travis CI User
cb37269686 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-03 13:25:32 +00:00
Travis CI User
2de613bdc1 [maven-release-plugin][skip ci] prepare release 14.43 2021-12-03 13:25:29 +00:00
dependabot[bot]
a576aa40a5 Bump woodstox-core from 6.2.6 to 6.2.7 (#817) 2021-12-03 12:41:32 +00:00
Travis CI User
a11e80897f [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-03 12:21:05 +00:00
Travis CI User
425f38ccca [maven-release-plugin][skip ci] prepare release 14.42 2021-12-03 12:21:02 +00:00
dependabot[bot]
fdf73e4538 Bump dependency.bouncycastle.version from 1.69 to 1.70 (#823) 2021-12-03 11:21:53 +00:00
Travis CI User
d54e666d79 [maven-release-plugin][skip ci] prepare for next development iteration 2021-12-01 20:57:34 +00:00
Travis CI User
a1151d2918 [maven-release-plugin][skip ci] prepare release 14.41 2021-12-01 20:57:31 +00:00
mpichura
fb37f18e57 ACS-2151 Get StorageProps endpoint (#807)
* ACS-2151: Initial code for get StorageProps endpoint.

* ACS-2151: Get StorageProps enhancements - proper namespace resolver, unit tests and javadoc + @Experimental annotation.

* ACS-2151: Reverting unnecessary POM changes.

* ACS-2151: Initial code for get StorageProps endpoint.

* ACS-2151: Reverting unnecessary POM changes.

* ACS-2151: Fix after code review.

* ACS-2151: Initial code for get StorageProps endpoint.

* ACS-2151: Reverting unnecessary POM changes.
2021-12-01 13:19:51 +01:00
Travis CI User
9fefc17eef [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-30 14:06:14 +00:00
Travis CI User
17ad517268 [maven-release-plugin][skip ci] prepare release 14.40 2021-11-30 14:06:11 +00:00
Abdul Mohammed
4468faae99 ADF-5234: [BE] Viewer - the Mimetype property should be changed when a new type of file is uploaded (#696)
* Added Apple Icons mimetype

* Added MimetypeMapContentTest for Apple Icons
2021-11-30 13:22:07 +00:00
Travis CI User
414a13dd8d [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-24 18:58:53 +00:00
Travis CI User
ff80318068 [maven-release-plugin][skip ci] prepare release 14.39 2021-11-24 18:58:49 +00:00
montgolfiere
4fb119c3fb MNT-22136: WebDAV PROPFIND returns 302 instead of 404 (for docker image only) (#818)
* MNT-22136: WebDAV PROPFIND returns 302 instead of 404 (for docker image only)

- appears to be regression from REPO-3275 (due to apparent copy & paste from index.jsp)

- added new -ve test added to TAS WebDAV to repeat this specific issue (without fix - fails with 302 instead of 404)
  - see also [WebDavUtil.isLocked()](https://github.com/Alfresco/alfresco-tas-webdav/blob/master/src/main/java/org/alfresco/webdav/dsl/WebDavUtil.java#L359-L376)
2021-11-24 16:57:55 +00:00
Travis CI User
5b7029b130 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-24 16:19:47 +00:00
Travis CI User
d71289b3e2 [maven-release-plugin][skip ci] prepare release 14.38 2021-11-24 16:19:45 +00:00
Travis CI User
b48f6bc49a [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-24 12:44:21 +00:00
Travis CI User
275256e3e8 [maven-release-plugin][skip ci] prepare release 14.37 2021-11-24 12:44:18 +00:00
tiagosalvado10
4314a30f3a [MNT-21953] [MNT-22491] Clear rendition content data on content change. Prevent rendition from having contentHashCode without content (#752)
* [MNT-21953] [MNT-22491] Clear rendition content data on content change. Prevent rendition from having contentHashCode without content

* [MNT-21953] [MNT-22491] Added tests

* [MNT-21953] [MNT-22491] Removed update content from test

* [MNT-21953] [MNT-22491] Improve log messages

* [MNT-21953] [MNT-22491] Changed Copyright year to 2021. Minor change in test comments.
2021-11-24 11:47:17 +00:00
Travis CI User
bf5d1939c2 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-23 13:41:26 +00:00
Travis CI User
5bec8149a5 [maven-release-plugin][skip ci] prepare release 14.36 2021-11-23 13:41:23 +00:00
dependabot[bot]
a9627c0c26 Bump xmlsec from 2.2.3 to 2.3.0 (#786) 2021-11-23 12:46:05 +00:00
Travis CI User
b57dda3364 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-22 18:59:18 +00:00
Travis CI User
67af102fc0 [maven-release-plugin][skip ci] prepare release 14.35 2021-11-22 18:59:15 +00:00
tiagosalvado10
20a617adef [MNT-22680] Bump surf-webscripts to 8.26 (#814) 2021-11-22 16:18:27 +00:00
Travis CI User
5947ae891a [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-22 13:51:01 +00:00
Travis CI User
26957c7b81 [maven-release-plugin][skip ci] prepare release 14.34 2021-11-22 13:50:58 +00:00
David Edwards
f212e8ff81 ACS-222 Add missing ArchivedIOException throw (#812)
The getContentString() method catches all Exceptions and re-throws as a
custom ContentIOException. We want ArchivedIOExceptions re-thrown.
2021-11-22 12:58:02 +00:00
Alan Davis
512540e32e ACS-2270 Read T-Engine config in alphabetical order (#806)
* T-Engines config need to be combined in the same predefined order in the all-in-one transformer,
T-Router and the Content Repository with individual T-Engines.
2021-11-22 12:53:22 +00:00
Travis CI User
bafc3fb3e4 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-19 12:34:42 +00:00
Travis CI User
51dd968069 [maven-release-plugin][skip ci] prepare release 14.33 2021-11-19 12:34:39 +00:00
David Edwards
d698619bff ACS-2222 Add ArchivedIOException (#802)
`ArchivedIOException` and `ArchivedContentException` added to provide an appropriate response when attempting to access content that is archived, for example in GLACIER s3.

Discovered and fixed a bug, when producing an error during content streaming that caused clients to hang. Content Length now set to `-1` when any `ContentIOException` is thrown so that any clients are not expecting and waiting to received the content.
2021-11-19 11:36:35 +00:00
evasques
be4fa79c76 MNT-18700 - Dynamic Message bundles do not deploy/reload automatically (#805)
* Restored the ability to register dynamic messages on bootstrap
* Added unit tests on bootstrap to verify if the dynamic messages are registered on bootstrap
* Added unit tests for the Repo Admin Console regarding registering dynamic messages and classpath files
2021-11-18 15:48:40 +00:00
Travis CI User
2c51af33d3 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-17 20:20:53 +00:00
Travis CI User
8f73a82358 [maven-release-plugin][skip ci] prepare release 14.32 2021-11-17 20:20:50 +00:00
tiagosalvado10
ee07bb635f [PRODSEC-5795] Bump surf-webscripts to 8.25 (#803) 2021-11-17 19:28:24 +00:00
Travis CI User
9ee35d793b [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-16 16:13:52 +00:00
Travis CI User
9ebc8c3cbe [maven-release-plugin][skip ci] prepare release 14.31 2021-11-16 16:13:50 +00:00
Alan Davis
53c70cee66 ACS-1998 Enhance the transform config (#796)
* ACS-1998 Pick up changes in transform-model 1.4.1 for "xxxSupported" elements [skip ci]
* Pick up 2.5.4 t-engines for testing
2021-11-16 15:16:51 +00:00
Travis CI User
46da760cb2 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-12 11:03:30 +00:00
Travis CI User
f6d005c15c [maven-release-plugin][skip ci] prepare release 14.30 2021-11-12 11:03:27 +00:00
alandavis
3a86e5c2f0 Fix minor typo in README.md [skip ci] 2021-11-12 10:00:41 +00:00
Jamal Kaabi-Mofrad
244ad60c5f ACS-2228: Fixed duplicate index error for MySql DB. Also, re-ordered removal of table statement in the alf_sever patch. 2021-11-12 04:33:54 +00:00
Travis CI User
fc6cdf8d6b [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-11 17:52:34 +00:00
Travis CI User
18ab090f4e [maven-release-plugin][skip ci] prepare release 14.29 2021-11-11 17:52:30 +00:00
Jamal Kaabi-Mofrad
a9e3221883 ACS-1795: Bump tas-utility to 3.0.47 and tas-restapi to 1.65. (#797) 2021-11-11 16:05:18 +00:00
Travis CI User
edfad6b4ab [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-11 13:02:54 +00:00
Travis CI User
fecdca496a [maven-release-plugin][skip ci] prepare release 14.28 2021-11-11 13:02:52 +00:00
alandavis
e4fd6d7606 Tidy up of unused FrequentlyFailingTests references and run build with disabled tests 2021-11-11 12:11:10 +00:00
alandavis
7b8c865f2b ACS-2243 Disable Intermittent failure: JobLockServiceTest.testGetLockWithCallbackNormal [skip ci] 2021-11-11 11:55:06 +00:00
alandavis
38a5664cf3 ACS-2242 Disable Intermittent failure: EncryptionTests.testFailedEncryptionWithCachedCiphers [skip ci] 2021-11-11 11:54:32 +00:00
alandavis
c8b0a6dbd0 ACS-2245 Disable Intermittent failure: FixedAclUpdaterTest.testAsyncWithNodeLock [skip ci] 2021-11-11 11:52:41 +00:00
Travis CI User
868672e7ea [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-09 19:48:38 +00:00
Travis CI User
e712d188fe [maven-release-plugin][skip ci] prepare release 14.27 2021-11-09 19:48:35 +00:00
Nithin Nambiar
bdedc23c95 ACS-2238 Added missing BatchProcessWorkProvider implemenations (#793) 2021-11-09 16:41:21 +00:00
Travis CI User
aff84374c4 [maven-release-plugin][skip ci] prepare for next development iteration 2021-11-01 22:02:33 +00:00
Travis CI User
779731018d [maven-release-plugin][skip ci] prepare release 14.26 2021-11-01 22:02:30 +00:00
Alan Davis
e242f5db98 PRODSEC-4343 Build the MMT tool in alfreaco-community-repo so it picks up the latest libraries (#785)
The code form MMT comes from this project anyway
2021-11-01 18:45:45 +00:00
alandavis
68cde24419 Tidy up of README files on how to build projects [skip ci] 2021-10-29 13:53:28 +01:00
Travis CI User
7daef9ee21 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-28 16:15:22 +00:00
Travis CI User
db52b87849 [maven-release-plugin][skip ci] prepare release 14.25 2021-10-28 16:15:19 +00:00
Damian Ujma
cf379f3baa Feature/acs 2129 setup agent (#781)
* ACS-2129 Setup agent scanning

* ACS-2129 Run agent scanning only for master and release branches

* ACS-2129 Fix source_clear.sh
2021-10-28 15:59:23 +02:00
Travis CI User
de04ce6944 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-28 10:08:09 +00:00
Travis CI User
caf5fdede4 [maven-release-plugin][skip ci] prepare release 14.24 2021-10-28 10:08:06 +00:00
mpichura
2d4140ea64 ACS-2147 renaming method which gets storage props (#778)
* ACS-2147: Adding missing ContentStore implementation, switching some logging
to trace.

* ACS-2147: Renaming getObjectStorageProperties to getStorageProperties

* [maven-release-plugin][skip ci] prepare release 14.20

* [maven-release-plugin][skip ci] prepare for next development iteration

* Fix/mnt 21506 sanitation create people (#756)

* MNT-21506: sanitize username on nodeBrowser Repo

* [maven-release-plugin][skip ci] prepare release 14.21

* [maven-release-plugin][skip ci] prepare for next development iteration

* ACS-2148: Adding get StorageObjectProps to ContentService (#773)

* ACS-2148: Adding get StorageObjectProps to ContentService and implementation.

* ACS-2148: Adding propertyQName param to get storage property method.

* ACS-2148: Security config for added method.

* ACS-2148: Renaming getObjectStorageProperties to getStorageProperties

* ACS-2148: Javadoc fix

* ACS-2148: Fixing security context after method renaming.

* ACS-2148: ContentService with new method names.

* ACS-2147: Adding missing ContentStore implementation, switching some logging
to trace.

* ACS-2147: Renaming getObjectStorageProperties to getStorageProperties

* ACS-2148: ContentService with new method names.

* ACS-2148: Small fixes after code review.
2021-10-27 13:35:11 +02:00
Travis CI User
3c928a4928 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-27 00:30:21 +00:00
Travis CI User
599f5727a0 [maven-release-plugin][skip ci] prepare release 14.23 2021-10-27 00:30:18 +00:00
Lev Belava
7ac5cb1807 ACS-2121 Alfresco repo migration from Mockito 1 to Mockito 3 (#770) 2021-10-26 23:55:03 +01:00
Travis CI User
d311ef2c5f [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-26 12:39:10 +00:00
Travis CI User
6f820e2c25 [maven-release-plugin][skip ci] prepare release 14.22 2021-10-26 12:39:07 +00:00
mpichura
e515dacab1 ACS-2148: Adding get StorageObjectProps to ContentService (#773)
* ACS-2148: Adding get StorageObjectProps to ContentService and implementation.

* ACS-2148: Adding propertyQName param to get storage property method.

* ACS-2148: Security config for added method.

* ACS-2148: Renaming getObjectStorageProperties to getStorageProperties

* ACS-2148: Javadoc fix

* ACS-2148: Fixing security context after method renaming.
2021-10-26 13:48:53 +02:00
Travis CI User
5041249f03 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-26 09:48:01 +00:00
Travis CI User
1b26e3a937 [maven-release-plugin][skip ci] prepare release 14.21 2021-10-26 09:47:57 +00:00
Vítor Moreira
a2d9afcecc Fix/mnt 21506 sanitation create people (#756)
* MNT-21506: sanitize username on nodeBrowser Repo
2021-10-26 09:58:11 +01:00
Travis CI User
577de6bf4c [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-26 08:45:13 +00:00
Travis CI User
f71f53c988 [maven-release-plugin][skip ci] prepare release 14.20 2021-10-26 08:45:10 +00:00
mpichura
7e4d72a66a ACS-2147: Fixing docker logins in init.sh (#771) 2021-10-25 13:10:39 +02:00
Aleksandra Onych
142f99b2a2 MNT-21883 - Fix unshare content from smart folder (#765) 2021-10-25 10:28:36 +02:00
mpichura
1b0ddb1e74 Feature/acs 2147 add get storage object props in content store (#769)
* ACS-2147: initial idea for adding storage properties to ContentStore.

* ACS-2147: adding implementations to ContentStore children + some static analysis cleanup.

* ACS-2147: adding javadoc and small fixes to ObjectStorageProps.

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* ACS-2147: initial idea for adding storage properties to ContentStore.

* ACS-2147: adding implementations to ContentStore children + some static analysis cleanup.

* ACS-2147: adding javadoc and small fixes to ObjectStorageProps.

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* ACS-2147: Adding unit tests and changes after first round of code review.

* ACS-2147: initial idea for adding storage properties to ContentStore.

* ACS-2147: adding implementations to ContentStore children + some static analysis cleanup.

* ACS-2147: adding javadoc and small fixes to ObjectStorageProps.

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* ACS-2147: Adding unit tests and changes after first round of code review.

* ACS-2147: adding implementations to ContentStore children + some static analysis cleanup.

* License header update

Co-authored-by: David Edwards <david.edwards@alfresco.com>

* ACS-2147: Fixes after reverting some 'boy scout' refactor.

* ACS-2147: Rephrasing Alfresco-derived storage properties.

* ACS-2147: Reverting some 'boy scout' refactor.

* ACS-2147: Renaming enum values.

* ACS-2147: Removing wildcard import.

Co-authored-by: David Edwards <david.edwards@alfresco.com>
2021-10-25 09:47:36 +02:00
Travis CI User
4fa0157594 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-22 08:53:09 +00:00
Travis CI User
c1196ed8e9 [maven-release-plugin][skip ci] prepare release 14.19 2021-10-22 08:53:06 +00:00
mpichura
90a69173bd ACS-2147: Adding Experimental annotation. (#764) 2021-10-22 10:07:48 +02:00
Travis CI User
cb0a07d5da [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-22 06:47:39 +00:00
Travis CI User
77e721d66a [maven-release-plugin][skip ci] prepare release 14.18 2021-10-22 06:47:36 +00:00
Suneet Gupta
25d2a51254 Merge branch 'master' of github.com:Alfresco/alfresco-community-repo 2021-10-22 11:29:08 +05:30
Suneet Gupta
54fe4bb969 Added default.properties for test cases config 2021-10-22 11:25:43 +05:30
Travis CI User
7e719cae80 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-21 15:59:24 +00:00
Travis CI User
157a6ba1c5 [maven-release-plugin][skip ci] prepare release 14.17 2021-10-21 15:59:21 +00:00
alandavis
4fc165150a Revert "Alfresco community repo migration from Mockito 1 to Mockito 3 (#745)"
This reverts commit b846ccd85e.
2021-10-21 15:21:34 +01:00
Travis CI User
d574d05066 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-21 10:33:28 +00:00
Travis CI User
f66426bb60 [maven-release-plugin][skip ci] prepare release 14.16 2021-10-21 10:33:25 +00:00
Lev Belava
b846ccd85e Alfresco community repo migration from Mockito 1 to Mockito 3 (#745) 2021-10-21 11:45:35 +02:00
Travis CI User
09fc6f1e25 [maven-release-plugin][skip ci] prepare for next development iteration 2021-10-19 16:27:33 +00:00
Travis CI User
630f553fce [maven-release-plugin][skip ci] prepare release 14.15 2021-10-19 16:27:30 +00:00
7055 changed files with 1346865 additions and 1597393 deletions

View File

@@ -38,27 +38,6 @@ updates:
- dependency-name: org.activiti:activiti-spring
versions:
- ">= 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
versions:
- "> 1.0.0"

595
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,595 @@
name: Alfresco Community Repo CI
on:
pull_request:
branches:
- feature/**
- fix/**
- master
- release/**
push:
branches:
- feature/**
- fix/**
workflow_call:
workflow_dispatch:
env:
DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
GITHUB_ACTIONS_DEPLOY_TIMEOUT: 60
LOG_WARN: "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
TAS_ENVIRONMENT: ./packaging/tests/environment
TAS_SCRIPTS: ../alfresco-community-repo/packaging/tests/scripts
jobs:
prepare:
name: "Prepare"
runs-on: ubuntu-latest
if: >
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Prepare maven cache and check compilation"
run: bash ./scripts/ci/prepare.sh
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
veracode:
name: "Source Clear Scan (SCA)"
runs-on: ubuntu-latest
needs: [prepare]
if: >
((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && github.event_name != 'pull_request') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v1.33.0
continue-on-error: true
with:
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }}
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
all_unit_tests_suite:
name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test"
runs-on: ubuntu-latest
needs: [prepare]
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run tests"
run: |
mvn -B test -pl core,data-model -am -DfailIfNoTests=false
mvn -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
remote_api_app_context_test_suites:
name: Remote-api - ${{ matrix.testSuite }}
runs-on: ubuntu-latest
needs: [prepare]
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
include:
- testSuite: AppContext01TestSuite
compose-profile: default
- testSuite: AppContext02TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContext03TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContext04TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContextExtraTestSuite
compose-profile: default
env:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Set transformers tag"
run: echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV
- name: "Set up the environment"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d
- name: "Run tests"
run: mvn -B test -pl remote-api -Dtest=${{ matrix.testSuite }} -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_mariadb_tests:
name: Repository - MariaDB ${{ matrix.version }} tests
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) &&
github.event_name != 'pull_request' &&
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
version: ['10.2.18', '10.4', '10.5']
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: Run MariaDB ${{ matrix.version }} database
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mariadb up -d
env:
MARIADB_VERSION: ${{ matrix.version }}
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_mariadb_10_6_tests:
name: "Repository - MariaDB 10.6 tests"
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request') &&
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MariaDB 10.6 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mariadb up -d
env:
MARIADB_VERSION: 10.6
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_mysql_5_7_28_tests:
name: Repository - MySQL 5.7.28 tests
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) &&
github.event_name != 'pull_request' &&
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MySQL 5.7.28 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mysql up -d
env:
MYSQL_VERSION: 5.7.28
MYSQL_PARAMS: --transaction-isolation='READ-COMMITTED' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_mysql_tests:
name: Repository - MySQL 8 tests
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request') &&
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MySQL 8 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mysql up -d
env:
MYSQL_VERSION: 8
MYSQL_PARAMS: --transaction-isolation='READ-COMMITTED'
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_postgresql_tests:
name: Repository - PostgreSQL ${{ matrix.version }} tests
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) &&
github.event_name != 'pull_request' &&
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
version: ['10.9', '11.12', '11.7', '12.4', '12.7', '13.1']
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: Run PostgreSQL ${{ matrix.version }} database
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d
env:
POSTGRES_VERSION: ${{ matrix.version }}
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_postgresql_13_3_tests:
name: "Repository - PostgreSQL 13.3 tests"
runs-on: ubuntu-latest
needs: [prepare]
if: >
(!contains(github.event.head_commit.message, '[skip db]') ||
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 13.3 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d
env:
POSTGRES_VERSION: 13.3
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_messaging_tests:
name: Repository - Messaging tests
runs-on: ubuntu-latest
needs: [prepare]
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run ActiveMQ"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile activemq up -d
- name: "Run tests"
run: mvn -B test -pl repository -am -Dtest=CamelRoutesTest,CamelComponentsTest -DfailIfNoTests=false
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
repository_app_context_test_suites:
name: Repository - ${{ matrix.testSuite }}
runs-on: ubuntu-latest
needs: [prepare]
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
include:
- testSuite: AppContext01TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContext02TestSuite
compose-profile: default
- testSuite: AppContext03TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContext04TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContext05TestSuite
compose-profile: with-sso
mvn-options: '"-Didentity-service.auth-server-url=http://localhost:8999/auth"'
- testSuite: AppContext06TestSuite
compose-profile: with-transform-core-aio
- testSuite: AppContextExtraTestSuite
compose-profile: with-transform-core-aio
- testSuite: MiscContextTestSuite
compose-profile: with-transform-core-aio
- testSuite: SearchTestSuite
compose-profile: default
mvn-options: '-Dindex.subsystem.name=solr6'
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Set transformers tag"
run: echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV
- name: "Set up the environment"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d
- name: "Run tests"
run: mvn -B test -pl repository -am -Dtest=${{ matrix.testSuite }} -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco ${{ matrix.mvn-options }}
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
tas_tests:
name: ${{ matrix.test-name }}
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request' ) &&
!contains(github.event.head_commit.message, '[skip tas]')) ||
contains(github.event.head_commit.message, '[tas]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
include:
- test-name: "REST API TAS tests part1"
pom-dir: tas-restapi
test-profile: run-restapi-part1
- test-name: "REST API TAS tests part2"
pom-dir: tas-restapi
test-profile: run-restapi-part2
- test-name: "REST API TAS tests part3"
pom-dir: tas-restapi
test-profile: run-restapi-part3
- test-name: "CMIS TAS tests - BROWSER binding"
pom-dir: tas-cmis
test-profile: run-cmis-browser
- test-name: "CMIS TAS tests - ATOM binding"
pom-dir: tas-cmis
test-profile: run-cmis-atom
- test-name: "CMIS TAS tests - WEBSERVICES binding"
pom-dir: tas-cmis
test-profile: run-cmis-webservices
- test-name: "Email TAS tests"
pom-dir: tas-email
- test-name: "WebDAV TAS tests"
pom-dir: tas-webdav
- test-name: "Integration TAS tests"
pom-dir: tas-integration
env:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Set up the environment"
run: |
${{ env.TAS_SCRIPTS }}/start-compose.sh ${{ env.TAS_ENVIRONMENT }}/docker-compose-minimal+transforms.yml
${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
- name: "Build TAS integration tests"
if: ${{ matrix.test-name }} == 'Integration TAS tests'
run: mvn install -pl :alfresco-community-repo-integration-test -am -DskipTests -Pall-tas-tests
- name: "Run tests"
id: tests
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: mvn -B verify -f packaging/tests/${{ matrix.pom-dir }}/pom.xml -Pall-tas-tests,${{ matrix.test-profile }} -Denvironment=default -DrunBugs=false
- name: "Print output after success"
if: ${{ always() && steps.tests.outcome == 'success' }}
run: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/${{ matrix.pom-dir }}"
- name: "Print output after failure"
if: ${{ always() && steps.tests.outcome == 'failure' }}
run: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/${{ matrix.pom-dir }}"
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
share_services_test_suite:
name: Share Services - ShareServicesTestSuite
runs-on: ubuntu-latest
needs: [prepare]
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run Postgres 14.4 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile postgres up -d
- name: "Run tests"
run: 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
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
ags_postgresql_tests:
name: AGS Integration Tests 0${{ matrix.part }} (PostgreSQL) ${{ matrix.test-name }}
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request' ) &&
!contains(github.event.head_commit.message, '[skip ags]')) ||
contains(github.event.head_commit.message, '[ags]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
part: [1, 2, 3]
env:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Verify"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: mvn --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt${{ matrix.part }} ${{ env.LOG_WARN }}
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
ags_mysql_tests:
name: AGS Integration Tests 0${{ matrix.part }} (MySQL) ${{ matrix.test-name }}
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request' ) &&
!contains(github.event.head_commit.message, '[skip ags]')) ||
contains(github.event.head_commit.message, '[ags on MySQL]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
strategy:
fail-fast: false
matrix:
part: [1, 2, 3]
env:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Verify"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: mvn --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt${{ matrix.part }} ${{ env.LOG_WARN }}
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
ags_community_rest_api_tests:
name: "AGS Community Rest API Tests"
runs-on: ubuntu-latest
needs: [prepare]
if: >
(((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request' ) &&
!contains(github.event.head_commit.message, '[skip ags]') && !contains(github.event.head_commit.message, '[skip tas]')) ||
(contains(github.event.head_commit.message, '[ags]') && contains(github.event.head_commit.message, '[tas]'))) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
env:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
with:
java-version: "11"
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Set up the environment"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
${{ env.TAS_SCRIPTS }}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml
${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco"
mvn -B install -pl :alfresco-governance-services-automation-community-rest-api -am -Pags -Pall-tas-tests -DskipTests
- name: "Test"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false -Pags -Pall-tas-tests
- name: "Configure AWS credentials"
if: ${{ always() }}
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AGS_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AGS_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: "Upload artifacts to Amazon S3 bucket"
if: ${{ always() }}
run: |
bash amps/ags/ci/scripts/getLogs.sh
aws s3 cp --acl private alfresco.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/alfresco.log
aws s3 cp --acl private solr.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/solr.log
aws s3 cp --acl private ./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports/rm-automation-community-rest-api.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/rm-automation-community-rest-api.log
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh

79
.github/workflows/master_release.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Master/Release branch workflow
on:
push:
branches:
- master
- release/**
env:
GIT_USERNAME: ${{ secrets.BOT_GITHUB_USERNAME }}
GIT_EMAIL: ${{ secrets.BOT_GITHUB_EMAIL }}
GIT_PASSWORD: ${{ secrets.BOT_GITHUB_TOKEN }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
GITHUB_ACTIONS_DEPLOY_TIMEOUT: 60
jobs:
run_ci:
uses: ./.github/workflows/ci.yml
secrets: inherit
push_to_nexus:
name: "Push to Nexus"
runs-on: ubuntu-latest
needs: [run_ci]
if: >
!failure() &&
!contains(github.event.head_commit.message, '[no release]') &&
github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v3
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v1.33.0
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}
global: true
- name: "Release"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
bash scripts/ci/verify_release_tag.sh
bash scripts/ci/maven_release.sh
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
update_downstream:
name: "Update alfresco-enterprise-repo"
runs-on: ubuntu-latest
needs: [push_to_nexus]
if: >
!failure() &&
!contains(github.event.head_commit.message, '[no downstream]') &&
github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v3
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v1.33.0
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}
global: true
- name: "Update downstream"
run: bash ./scripts/ci/update_downstream.sh
env:
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh

5
.gitignore vendored
View File

@@ -24,16 +24,17 @@ target
*.log.*
# Mobile Tools for Java (J2ME)
.mtj
.tmp/
# Package Files #
*.jar
*.war
*.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
hs_err_pid*

View File

@@ -1,9 +0,0 @@
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,432 +0,0 @@
---
import:
- source: Alfresco/alfresco-build-tools:.travis.pre-commit.yml@v1.1.5
dist: focal
language: java
jdk: openjdk11
services:
- docker
git:
depth: false
quiet: true
cache:
directories:
- ${HOME}/.m2/repository
# the cache can grow constantly
before_cache: bash scripts/travis/cleanup_cache.sh
branches:
only:
- master
- /release\/.*/
- /feature\/.*/
- /fix\/.*/
env:
global:
- TAS_SCRIPTS=../alfresco-community-repo/packaging/tests/scripts
- TAS_ENVIRONMENT=./packaging/tests/environment
- LOG_WARN="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
stages:
- name: lint
- name: test
if: commit_message !~ /\[skip tests\]/
- name: release
if: commit_message !~ /\[no release\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
- name: update_downstream
if: commit_message !~ /\[no downstream\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
before_install: travis_retry bash scripts/travis/init.sh
install: travis_retry travis_wait 40 bash scripts/travis/build.sh
jobs:
include:
- name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test"
stage: test
if: commit_message !~ /\[skip repo\]/
script:
- travis_retry mvn -B test -pl core,data-model
- travis_retry mvn -B test -pl repository -Dtest=AllUnitTestsSuite
- name: "Repository - AppContext01TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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=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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- mkdir -p "${HOME}/tmp"
- cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp"
- 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
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"
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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 -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"
stage: test
if: commit_message !~ /\[skip repo\]/
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=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"
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 --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.16.1
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"
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 --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.16.1
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"
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 --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.16.1
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"
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
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/
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 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
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"
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
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest 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:8 --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 - PostgreSQL 10.9 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:10.9 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 11.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:11.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 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"
stage: test
if: commit_message !~ /\[skip repo\]/
before_script:
- 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=CamelRoutesTest,CamelComponentsTest
- name: "Remote-api - AppContext01TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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 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"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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
- name: "Remote-api - AppContext03TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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
- name: "Remote-api - AppContext04TestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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
- 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
- name: "Remote-api - AppContextExtraTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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 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"
stage: test
# 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\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false
- name: "REST API TAS tests part2"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false
- name: "REST API TAS tests part3"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - BROWSER binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - ATOM binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - WEBSERVICES binding"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false
- name: "Email TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 30 mvn -B install -f packaging/tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "WebDAV TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 30 mvn -B install -f packaging/tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "Integration TAS tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script: travis_wait 30 mvn -B install -f packaging/tests/tas-integration/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "Share Services - ShareServicesTestSuite"
stage: test
if: commit_message !~ /\[skip repo\]/
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'
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)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
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)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
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)"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
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 01 (MySQL) "
stage: test
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 -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 02 (MySQL) "
stage: test
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 -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN}
- name: "AGS Integration Tests 03 (MySQL) "
stage: test
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}
- name: "AGS Community Rest API Tests"
stage: test
if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/
addons:
artifacts:
paths:
- ./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports/rm-automation-community-rest-api.log
- alfresco.log
- solr.log
target_paths: community/${TRAVIS_BUILD_NUMBER}/${TRAVIS_JOB_NAME}
before_script:
- ${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"
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
- name: "Push to Nexus"
stage: release
before_script: bash scripts/travis/verify_release_tag.sh
script: travis_wait 40 bash scripts/travis/maven_release.sh
- name: "Update alfresco-enterprise-repo"
stage: update_downstream
install: skip
script: bash scripts/travis/update_downstream.sh

View File

@@ -1,13 +1,6 @@
# 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.
[![Build Status](https://github.com/Alfresco/alfresco-community-repo/actions/workflows/master_release.yml/badge.svg?branch=release/7.2.N)](https://github.com/Alfresco/alfresco-community-repo/actions/workflows/master_release.yml)
#### Alfresco Core
@@ -16,8 +9,6 @@ Alfresco Core is a library packaged as a jar file which contains the following:
* Canned queries interface and 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
Data model is a library packaged as a jar file which contains the following:
* Dictionary, Repository and Search Services interfaces
@@ -31,14 +22,6 @@ Repository is a library packaged as a jar file which contains the following:
* Various Service implementations
* 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
Remote API is a library packaged as a jar file which contains the following:
@@ -46,13 +29,10 @@ 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)
* [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
The artifacts can be obtained by:
* downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public)
* getting as Maven dependency by adding the dependency to your pom file:
* as Maven dependency by adding the dependency to your pom file:
~~~
<dependency>
<groupId>org.alfresco</groupId>
@@ -94,40 +74,24 @@ and Alfresco maven repository:
~~~
The SNAPSHOT versions of the artifact are not published.
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/)
### Contributing guide
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
## Setting up and building your development environment
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
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`.
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.
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.
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
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.

View File

@@ -71,7 +71,7 @@ the _alfresco-internal_ repository:
</snapshots>
</repository>
```
For additional instructions you can check the official Maven documentation:
* [setting up repositories](https://maven.apache.org/guides/mini/guide-multiple-repositories.html)
@@ -227,7 +227,7 @@ If only the Community or Enterprise images need to be built than the same comman
The Docker images of the Repo can be started independently from Share running the following command in the rm-repo-enterprise or rm-repo-community folder which contains the Docker-compose.yml file:
```
docker-compose up
docker compose up
```
> Be aware of the fact that the Share images can not be started independently from Repo
@@ -237,5 +237,5 @@ e.g. In order to start an instance of rm-enterprise-repo and rm-enterprise-share
If you have a license for jRebel then this can be used from the rm-community-share or rm-enterprise-share directories with:
```
docker-compose -f docker-compose.yml -f jrebel-docker-compose.yml --project-name agsdev up --build --force-recreate
docker compose -f docker-compose.yml -f jrebel-docker-compose.yml --project-name agsdev up --build --force-recreate
```

View File

@@ -4,9 +4,9 @@ set -x
# Display running containers
docker ps
alfrescoContainerId=$(docker ps -a | grep '_alfresco_' | awk '{print $1}')
shareContainerId=$(docker ps -a | grep '_share_' | awk '{print $1}')
solrContainerId=$(docker ps -a | grep '_search_' | awk '{print $1}')
alfrescoContainerId=$(docker ps -a | grep '\-alfresco\-' | awk '{print $1}')
shareContainerId=$(docker ps -a | grep '\-share\-' | awk '{print $1}')
solrContainerId=$(docker ps -a | grep '\-search\-' | awk '{print $1}')
docker logs $alfrescoContainerId > alfresco.log
if [ -n "$shareContainerId" ]; then

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>14.15-SNAPSHOT</version>
<version>16.103</version>
</parent>
<modules>
@@ -21,6 +21,7 @@
<license.update.dryrun>true</license.update.dryrun>
<license.verbose>false</license.verbose>
<license.failOnNotUptodateHeader>true</license.failOnNotUptodateHeader>
</properties>
<build>
@@ -46,50 +47,49 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<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>
<execution>
<id>first</id>
<goals>
<goal>update-file-header</goal>
</goals>
<phase>process-sources</phase>
<phase>none</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>
</executions>
</plugin>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>14.15-SNAPSHOT</version>
<version>16.103</version>
</parent>
<modules>
@@ -37,6 +37,16 @@
<skipTests>${skip.automationtests}</skipTests>
</configuration>
</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>
</build>
</project>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -32,8 +32,8 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Tuna Aksoy
* @since 2.6
*/
public class FilePlanComponentFields {
public class FilePlanComponentFields
{
/** 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_IDENTIFIER = "rma:identifier";
@@ -44,35 +44,24 @@ public class FilePlanComponentFields {
public static final String PROPERTIES_DESCRIPTION = "cm:description";
/** 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_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 */
public static final String PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE =
"rma:recordSearchHasDispositionSchedule";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION =
"rma:recordSearchDispositionPeriodExpression";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY =
"rma:recordSearchDispositionAuthority";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF =
"rma:recordSearchDispositionActionAsOf";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD =
"rma:recordSearchDispositionPeriod";
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";
public static final String PROPERTIES_RECORD_SEARCH_HAS_DISPOSITION_SCHEDULE = "rma:recordSearchHasDispositionSchedule";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD_EXPRESSION = "rma:recordSearchDispositionPeriodExpression";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_AUTHORITY = "rma:recordSearchDispositionAuthority";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_AS_OF = "rma:recordSearchDispositionActionAsOf";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_PERIOD = "rma:recordSearchDispositionPeriod";
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 */
public static final String PROPERTIES_COMPONENT_ID = "st:componentId";
@@ -83,13 +72,10 @@ public class FilePlanComponentFields {
/** Record folder properties */
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_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD =
"rma:recordSearchVitalRecordReviewPeriod";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION =
"rma:recordSearchVitalRecordReviewPeriodExpression";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD = "rma:recordSearchVitalRecordReviewPeriod";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = "rma:recordSearchVitalRecordReviewPeriodExpression";
/**
* Record properties
@@ -102,53 +88,39 @@ public class FilePlanComponentFields {
/** Electronic record properties */
public static final String PROPERTIES_VERSION_TYPE = "cm:versionType";
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_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_FLASH = "exif:flash";
public static final String PROPERTIES_F_NUMBER = "exif:fNumber";
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_MODEL = "exif:model";
public static final String PROPERTIES_ORIENTATION = "exif:orientation";
public static final String PROPERTIES_PIXEL_X_DIMENSION =
"exif:pixelXDimension";
public static final String PROPERTIES_PIXEL_Y_DIMENSION =
"exif:pixelYDimension";
public static final String PROPERTIES_RESOLUTION_UNIT =
"exif:resolutionUnit";
public static final String PROPERTIES_PIXEL_X_DIMENSION = "exif:pixelXDimension";
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_X_RESOLUTION = "exif:xResolution";
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_USER_ID =
"rma:recordOriginatingUserId";
public static final String PROPERTIES_RECORD_ORIGINATING_CREATION_DATE =
"rma:recordOriginatingCreationDate";
public static final String PROPERTIES_RECORD_ORIGINATING_LOCATION = "rma:recordOriginatingLocation";
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 */
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_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";
/** Transfer properties */
public static final String PROPERTIES_PDF_INDICATOR =
"rma:transferPDFIndicator";
public static final String PROPERTIES_TRANSFER_LOCATION =
"rma:transferLocation";
public static final String PROPERTIES_ACCESSION_INDICATOR =
"rma:transferAccessionIndicator";
public static final String PROPERTIES_PDF_INDICATOR = "rma:transferPDFIndicator";
public static final String PROPERTIES_TRANSFER_LOCATION = "rma:transferLocation";
public static final String PROPERTIES_ACCESSION_INDICATOR = "rma:transferAccessionIndicator";
/** Parameters */
public static final String RELATIVE_PATH = "relativePath";
@@ -163,6 +135,5 @@ public class FilePlanComponentFields {
/** CONTENT STORE property */
public static final String PROPERTIES_STORE = "cm:storeName";
/** 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
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -32,21 +32,17 @@ package org.alfresco.rest.rm.community.model.fileplancomponents;
* @author Tuna Aksoy
* @since 2.6
*/
public class FilePlanComponentType {
public class FilePlanComponentType
{
public static final String FILE_PLAN_TYPE = "rma:filePlan";
public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory";
public static final String RECORD_FOLDER_TYPE = "rma:recordFolder";
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_CONTAINER_TYPE =
"rma:transferContainer";
public static final String UNFILED_CONTAINER_TYPE =
"rma:unfiledRecordContainer";
public static final String TRANSFER_CONTAINER_TYPE = "rma:transferContainer";
public static final String UNFILED_CONTAINER_TYPE = "rma:unfiledRecordContainer";
public static final String FOLDER_TYPE = "cm:folder";
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
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -28,6 +28,7 @@ package org.alfresco.rest.rm.community.model.hold;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -44,12 +45,12 @@ import org.alfresco.utility.model.TestModel;
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class HoldEntry extends TestModel {
@JsonProperty(required = true)
@JsonIgnoreProperties (ignoreUnknown = true)
public class HoldEntry extends TestModel
{
@JsonProperty (required = true)
private String name;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String nodeRef;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -26,18 +26,21 @@
*/
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.JsonProperty;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
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
@@ -50,40 +53,40 @@ import org.alfresco.utility.model.TestModel;
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class UnfiledContainerChild extends TestModel {
@JsonIgnoreProperties (ignoreUnknown = true)
public class UnfiledContainerChild extends TestModel
{
/*************************/
/** Mandatory parameters */
/*************************/
@JsonProperty(required = true)
@JsonProperty (required = true)
private String createdAt;
@JsonProperty(required = true)
@JsonProperty (required = true)
private Boolean isUnfiledRecordFolder;
@JsonProperty(required = true)
@JsonProperty (required = true)
private Boolean isRecord;
@JsonProperty(required = true)
@JsonProperty (required = true)
private RestByUserModel createdByUser;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String modifiedAt;
@JsonProperty(required = true)
@JsonProperty (required = true)
private RestByUserModel modifiedByUser;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String name;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String id;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String nodeType;
@JsonProperty(required = true)
@JsonProperty (required = true)
private String parentId;
/************************/

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -35,24 +35,24 @@ import java.util.UUID;
* @author Tom Page
* @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
*/
public static final String USER_FULLNAME_PATTERN = "FN-%1$s LN-%1$s";
/** 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
* collisions when running locally and should also be short enough to maintain readability.
*/
public static String generateTestPrefix(Class<?> clazz) {
return (
clazz.getSimpleName().substring(0, 7) +
UUID.randomUUID().toString().substring(0, 4).toUpperCase()
);
public static String generateTestPrefix(Class<?> clazz)
{
return clazz.getSimpleName().substring(0, 7) + UUID.randomUUID().toString().substring(0, 4).toUpperCase();
}
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -26,11 +26,13 @@
*/
package org.alfresco.rest.rm.community.util;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
/**
@@ -39,8 +41,8 @@ import org.alfresco.rest.rm.community.model.common.ReviewPeriod;
* @author Rodica Sutu
* @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 gen Jackson utility is responsible for writing JSON
@@ -49,18 +51,9 @@ public class ReviewPeriodSerializer extends JsonSerializer<ReviewPeriod> {
* @throws JsonProcessingException
*/
@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
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
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -27,6 +27,7 @@
package org.alfresco.rest.rm.community.util;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildProperties;
/**
@@ -37,8 +38,8 @@ import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChi
* @author Tuna Aksoy
* @since 2.6
*/
public abstract class UnfiledContainerChildMixin {
public abstract class UnfiledContainerChildMixin
{
/**
* Annotation used to indicate that a property should be serialized "unwrapped"
* Its properties are instead included as properties of its containing Object

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -28,6 +28,7 @@ package org.alfresco.rest.v0;
import java.text.MessageFormat;
import java.util.List;
import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.http.HttpResponse;
import org.json.JSONArray;
@@ -43,15 +44,12 @@ import org.springframework.stereotype.Component;
* @since 2.6
*/
@Component
public class CopyToAPI extends BaseAPI {
public class CopyToAPI extends BaseAPI
{
/** 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. */
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.
@@ -65,12 +63,8 @@ public class CopyToAPI extends BaseAPI {
* @return The HTTP 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);
}
@@ -87,22 +81,12 @@ public class CopyToAPI extends BaseAPI {
* @return The HTTP Response.
* @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();
requestParams.put("nodeRefs", new JSONArray(nodeRefs));
return doSlingshotPostJsonRequest(
user,
password,
expectedStatusCode,
requestParams,
MessageFormat.format(COPY_TO_API, "{0}", targetContainerPath)
);
return doSlingshotPostJsonRequest(user, password, expectedStatusCode, requestParams,
MessageFormat.format(COPY_TO_API, "{0}", targetContainerPath));
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -29,6 +29,7 @@ package org.alfresco.rest.v0;
import static org.testng.AssertJUnit.assertTrue;
import java.text.MessageFormat;
import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.rm.community.model.custom.CustomDefinitions;
import org.json.JSONArray;
@@ -45,26 +46,22 @@ import org.springframework.stereotype.Component;
* @since 2.6
*/
@Component
public class CustomDefinitionsAPI extends BaseAPI {
public class CustomDefinitionsAPI extends BaseAPI
{
/**
* 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
*/
private static final String CREATE_RELATIONSHIP_API_ENDPOINT =
"{0}node/{1}/customreferences";
private static final String CREATE_RELATIONSHIP_API_ENDPOINT = "{0}node/{1}/customreferences";
/**
* 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
@@ -76,43 +73,39 @@ public class CustomDefinitionsAPI extends BaseAPI {
* <code> null </code> otherwise
*
*/
public String getCustomReferenceId(
String adminUser,
String adminPassword,
String customDefinition
) {
JSONObject getResponse = doGetRequest(
adminUser,
adminPassword,
CUSTOM_REFERENCE_API_ENDPOINT
);
if (getResponse != null) {
try {
JSONArray customDefinitions = getResponse
.getJSONObject("data")
.getJSONArray("customReferences");
for (int i = 0; i < customDefinitions.length(); i++) {
public String getCustomReferenceId(String adminUser, String adminPassword, String customDefinition)
{
JSONObject getResponse = doGetRequest(adminUser, adminPassword, CUSTOM_REFERENCE_API_ENDPOINT);
if (getResponse != null)
{
try
{
JSONArray customDefinitions = getResponse.getJSONObject("data").getJSONArray("customReferences");
for (int i = 0; i < customDefinitions.length(); i++)
{
JSONObject item = customDefinitions.getJSONObject(i);
boolean hasSource = customDefinition.equalsIgnoreCase(
item.has("source") ? item.getString("source") : null
);
item.has("source") ? item.getString("source") : null
);
boolean hasTarget = customDefinition.equalsIgnoreCase(
item.has("target") ? item.getString("target") : null
);
item.has("target") ? item.getString("target") : null
);
boolean hasLabel = customDefinition.equalsIgnoreCase(
item.has("label") ? item.getString("label") : null
);
if (hasSource || hasTarget || hasLabel) {
item.has("label") ? item.getString("label") : null
);
if ( hasSource || hasTarget || hasLabel)
{
return item.getString("refId");
}
}
} catch (JSONException error) {
LOGGER.error(
"Unable to get the refId for the custom reference definition {}",
customDefinition
);
}
catch (JSONException error)
{
LOGGER.error("Unable to get the refId for the custom reference definition {}", customDefinition);
}
}
return null;
@@ -129,48 +122,23 @@ public class CustomDefinitionsAPI extends BaseAPI {
* @throws AssertionError if the creation fails.
*/
public void createRelationship(
String adminUser,
String adminPassword,
String recordNodeIdFrom,
String recordNodeIdTo,
CustomDefinitions relationshipType
) {
//create the request body
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()
)
);
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
)
);
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
);
boolean success = (setRelationshipStatus != null) && setRelationshipStatus.getBoolean("success");
assertTrue("Creating relationship from " + recordNodeIdFrom + " to " + recordNodeIdTo + " failed.", success);
}
}

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