Compare commits

..

109 Commits

Author SHA1 Message Date
alfresco-build
ae00e09b11 [maven-release-plugin][skip ci] prepare release 25.1.0.23 2025-01-09 09:17:17 +00:00
Manish Kumar
38b796f9ce fix/MNT-24542 class cast exception (#3092)
* [MNT-24542] fix class cast exception

* pre-commit-issue

* removed else part

* address review comments

* fix-conflict
2025-01-09 14:07:27 +05:30
alfresco-build
f9be67add6 [maven-release-plugin][skip ci] prepare for next development iteration 2025-01-09 07:19:54 +00:00
alfresco-build
dc458fd54e [maven-release-plugin][skip ci] prepare release 25.1.0.22 2025-01-09 07:19:53 +00:00
mohit-singh4
60a0d6a492 [APPS-3154] fix for number of file field in response (#3108)
* [fix/APPS-3154] Rectifying number of Files field in response.

* [fix/APPS-3154] Rectifying number of Files field in response.

* [fix/APPS-3154] Rectifying number of Files field in response.

* [fix/APPS-3154-fixForNumberOfFileFieldInResponse] fix for NumberOfFiles field in response

* [fix/APPS-3154-fixForNumberOfFileFieldInResponse] Updating numberOfFiles field in response

---------

Co-authored-by: mohit-singh4 <mohit.singh@contractors.hyland.com>
2025-01-09 12:08:33 +05:30
alfresco-build
82f7b5a005 [maven-release-plugin][skip ci] prepare for next development iteration 2025-01-08 12:21:51 +00:00
alfresco-build
0f99564ca0 [maven-release-plugin][skip ci] prepare release 25.1.0.21 2025-01-08 12:21:49 +00:00
Piotr Żurek
b14f1ee7f1 Trigger CI 2025-01-08 12:28:32 +01:00
SathishK-T
99ef818606 [3172] License Header Update (#3126)
Co-authored-by: Sathish Kumar <ST28@ford.com>
2025-01-08 15:11:16 +05:30
Alfresco CI User
24541a9512 [force] Force release for 2025-01-05. 2025-01-05 00:04:25 +00:00
alfresco-build
2f6d097e16 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-29 00:07:27 +00:00
alfresco-build
7b074e1ee2 [maven-release-plugin][skip ci] prepare release 25.1.0.20 2024-12-29 00:07:25 +00:00
Alfresco CI User
1bc5c94ace [force] Force release for 2024-12-29. 2024-12-29 00:04:30 +00:00
alfresco-build
ba68efec67 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-24 11:46:55 +00:00
alfresco-build
bfcca88e63 [maven-release-plugin][skip ci] prepare release 25.1.0.19 2024-12-24 11:46:53 +00:00
SathishK-T
9d704df3c0 [APPS-3152] fix for mnt-24137 (#3102)
* fix for mnt-24137

* [APPS-3152] Fix for MNT-24137
2024-12-24 16:35:16 +05:30
alfresco-build
73d46c1702 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-22 00:08:46 +00:00
alfresco-build
261dcc93bd [maven-release-plugin][skip ci] prepare release 25.1.0.18 2024-12-22 00:08:43 +00:00
Alfresco CI User
2fa44f407c [force] Force release for 2024-12-22. 2024-12-22 00:04:25 +00:00
alfresco-build
8e0377d586 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-20 11:24:39 +00:00
alfresco-build
925a2bb6b9 [maven-release-plugin][skip ci] prepare release 25.1.0.17 2024-12-20 11:24:37 +00:00
Sara
4eafb13ba6 ACS-9044 Remove excluded files from war file for SAST (#3084)
* ACS-9044 Bump dependency.spring.version from 6.1.14 to 6.2.0

* ACS-9044 Bump spring-security to 6.4.1

* ACS-9044 Add file to hold excluded files list

* ACS-9044 POC - script to remove excluded files from alfresco.war

* ACS-9044 POC - change veracode SAST to scan reduced alfresco.war

* ACS-9044 POC - create reduced alfresco.war before SAST

* ACS-9044 POC - keep reduced alfresco.war in target dir

* ACS-9044 Use temporary directory and allow any war file

* ACS-9044 fix failing path

* ACS-9044 update from review

* ACS-9044 fix for temp dir

* ACS-9044 fix for temp dir

* ACS-9044 Revert spring and spring-security versions
2024-12-20 10:21:33 +00:00
alfresco-build
f731c9734c [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-15 00:08:14 +00:00
alfresco-build
e0a3b843f2 [maven-release-plugin][skip ci] prepare release 25.1.0.16 2024-12-15 00:08:12 +00:00
Alfresco CI User
2889b1a8a3 [force] Force release for 2024-12-15. 2024-12-15 00:05:05 +00:00
alfresco-build
22aa1f2725 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-13 09:51:47 +00:00
alfresco-build
77ab7d83fe [maven-release-plugin][skip ci] prepare release 25.1.0.15 2024-12-13 09:51:45 +00:00
Damian Ujma
a8faa94d15 ACS-9074 Bump log4j to 2.24.2 (#3087)
* ACS-9023 Bump log4j to 2.24.2

* ACS-9074 Update license header
2024-12-13 10:11:04 +01:00
alfresco-build
baafbbbeb2 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-12 10:30:47 +00:00
alfresco-build
ed061f2287 [maven-release-plugin][skip ci] prepare release 25.1.0.14 2024-12-12 10:30:45 +00:00
Piotr Żurek
6e435e1a8c ACS-9047 Use Keycloak 26 (#3079) 2024-12-12 10:46:48 +01:00
alfresco-build
05f6b90df8 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-10 10:27:39 +00:00
alfresco-build
0550dcd4f7 [maven-release-plugin][skip ci] prepare release 25.1.0.13 2024-12-10 10:27:37 +00:00
Cezary Witkowski
e137c91152 Revert "Bump dependency.log4j.version from 2.23.1 to 2.24.2 (#3064)" (#3080)
This reverts commit 933aced67c.
2024-12-10 10:48:12 +01:00
Damian Ujma
5a1c8334c8 ACS-9023 Implement PUT method - Preferences API (#3075)
* ACS-9023 Implement PUT method - Preferences API

* ACS-9023 Fix testUserPreferences

* ACS-9023 Add override

* ACS-9023 Update license header
2024-12-10 09:51:56 +01:00
alfresco-build
c7bbb1f74b [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-09 12:49:37 +00:00
alfresco-build
49a34c4fe3 [maven-release-plugin][skip ci] prepare release 25.1.0.12 2024-12-09 12:49:35 +00:00
Cezary Witkowski
70af2ea3ad [ACS-9025] Use acs-event-model 1.0.2 (#3059)
* [ACS-9025] Use acs-event-model 1.0.0

* [ACS-9025] Debugging tests, show more lines

* [ACS-9025] Debugging tests, show all lines

* [ACS-9025] Use acs-event-model 1.0.2

* [ACS-9025] Restore wait-for-alfresco-start.sh script
2024-12-09 13:08:10 +01:00
alfresco-build
ab6c5feba7 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-08 00:08:15 +00:00
alfresco-build
cb3cbb553a [maven-release-plugin][skip ci] prepare release 25.1.0.11 2024-12-08 00:08:13 +00:00
Alfresco CI User
9470c27f3d [force] Force release for 2024-12-08. 2024-12-08 00:04:52 +00:00
alfresco-build
edf263c43f [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-06 11:52:48 +00:00
alfresco-build
69bb9a308a [maven-release-plugin][skip ci] prepare release 25.1.0.10 2024-12-06 11:52:47 +00:00
SathishK-T
853d1bdc1b [APPS-3130] reverting changes of MNT-24137 (#3076)
* [APPS-3130] reverting changes of MNT-24137

* reverting

* reverting the change of mnt-24137

* reverting the change of mnt-24137

* reverting the change of mnt-24137

* reverting the changes of mnt-24137

* reverting the changes of mnt-24137

* reverting the changes of mnt-24137

* [APPS-3130] reverting changes of MNT-24137

---------

Co-authored-by: Sathish Kumar <ST28@ford.com>
2024-12-06 16:40:38 +05:30
alfresco-build
f7d1bbcec3 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-05 15:46:52 +00:00
alfresco-build
731d580f7e [maven-release-plugin][skip ci] prepare release 25.1.0.9 2024-12-05 15:46:49 +00:00
dependabot[bot]
ad4126ffea Bump org.mybatis:mybatis from 3.5.16 to 3.5.17 (#3062)
Bumps [org.mybatis:mybatis](https://github.com/mybatis/mybatis-3) from 3.5.16 to 3.5.17.
- [Release notes](https://github.com/mybatis/mybatis-3/releases)
- [Commits](https://github.com/mybatis/mybatis-3/compare/mybatis-3.5.16...mybatis-3.5.17)

---
updated-dependencies:
- dependency-name: org.mybatis:mybatis
  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>
2024-12-05 09:33:04 +01:00
dependabot[bot]
933aced67c Bump dependency.log4j.version from 2.23.1 to 2.24.2 (#3064)
Bumps `dependency.log4j.version` from 2.23.1 to 2.24.2.

Updates `org.apache.logging.log4j:log4j-slf4j2-impl` from 2.23.1 to 2.24.2

Updates `org.apache.logging.log4j:log4j-api` from 2.23.1 to 2.24.2

Updates `org.apache.logging.log4j:log4j-core` from 2.23.1 to 2.24.2

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-slf4j2-impl
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-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>
2024-12-05 09:31:49 +01:00
mohit-singh4
de0ba15a91 [Fix/MNT-24209] logging for download restapi (#3065)
* [fix/MNT-24209] Adding loggers in ACS download restApi

* [fix/MNT-24209] Adding loggers in ACS download restApi

* [fix/MNT-24209] Adding loggers in ACS download restApi

* Update ZipDownloadExporter.java

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* Revert "Update ZipDownloadExporter.java"

This reverts commit 2d97b34959.

* resolved Pre commit error

* resolved Pre commit error

* Bump io.swagger:swagger-parser from 1.0.71 to 1.0.72 (#3044)

Bumps [io.swagger:swagger-parser](https://github.com/swagger-api/swagger-parser) from 1.0.71 to 1.0.72.
- [Release notes](https://github.com/swagger-api/swagger-parser/releases)
- [Commits](https://github.com/swagger-api/swagger-parser/compare/v1.0.71...v1.0.72)

---
updated-dependencies:
- dependency-name: io.swagger:swagger-parser
  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>

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

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

* Update the SiteMembership Class

* Update the SiteMembership Class

* Update the SiteMembership Class

* Revert "Update the SiteMembership Class"

This reverts commit 15045f9612.

* Update the SiteMembership Class

* Update the SiteMembership Class

* Update the license i SiteMembership

* Revert "Update the license i SiteMembership"

This reverts commit ee8f3bec18.

* Update the license SiteMembership

* Fix Precommit

* Fix Precommit

* Fix Precommit

* Update the SiteMembership

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

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

* Revert "Bump dependency.log4j.version from 2.23.1 to 2.24.2 (#3051)"

This reverts commit 748be1f4a0.

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* resolved Pre commit error

* resolved Pre commit error

* reformatting ZipDownloadExporter file

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

* [fix/MNT-24209-logging-for-download-restapi] Adding loggers in downloads RestAPI

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: mohit-singh4 <mohit.singh@contractors.hyland.com>
Co-authored-by: MohinishSah <88024811+MohinishSah@users.noreply.github.com>
Co-authored-by: Mohinish Sah <Mohinish.Sah@contractors.onbase.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: alfresco-build <8039454+alfresco-build@users.noreply.github.com>
Co-authored-by: varapathijanakiram <172787912+varapathijanakiram@users.noreply.github.com>
Co-authored-by: vjanakiram <varapathi.janakiram@hyland.com>
Co-authored-by: rrajoria <88024787+rrajoria@users.noreply.github.com>
Co-authored-by: Cezary Witkowski <cezary.witkowski@hyland.com>
2024-12-04 14:24:43 +05:30
alfresco-build
00c36251d4 [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-02 15:05:20 +00:00
alfresco-build
ea9ce0c0c2 [maven-release-plugin][skip ci] prepare release 25.1.0.8 2024-12-02 15:05:18 +00:00
Eva Vasques
37231e50a2 MNT-24753 Restore from Archive when we have multiple content stores (#3066)
* Pre-commit changes
* Method requestRestoreContentFromArchive needs to use injected ContentStore
2024-12-02 14:22:51 +00:00
alfresco-build
26d8c7dcbe [maven-release-plugin][skip ci] prepare for next development iteration 2024-12-01 00:09:27 +00:00
alfresco-build
6ea97033d3 [maven-release-plugin][skip ci] prepare release 25.1.0.7 2024-12-01 00:09:23 +00:00
Alfresco CI User
cd0b2ffd24 [force] Force release for 2024-12-01. 2024-12-01 00:05:05 +00:00
alfresco-build
a14cbacb68 [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-29 07:34:35 +00:00
alfresco-build
fc0b9863d4 [maven-release-plugin][skip ci] prepare release 25.1.0.6 2024-11-29 07:34:33 +00:00
Cezary Witkowski
29dc42d445 Merge pull request #3063 from Alfresco/revert-3051-dependabot/maven/dependency.log4j.version-2.24.2
Revert "Bump dependency.log4j.version from 2.23.1 to 2.24.2"
2024-11-28 15:26:55 +01:00
Cezary Witkowski
39da968d76 Revert "Bump dependency.log4j.version from 2.23.1 to 2.24.2 (#3051)"
This reverts commit 748be1f4a0.
2024-11-28 14:36:47 +01:00
alfresco-build
6a4fecd46e [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-28 11:36:08 +00:00
alfresco-build
e083d4fcc2 [maven-release-plugin][skip ci] prepare release 25.1.0.5 2024-11-28 11:36:06 +00:00
varapathijanakiram
53e8a06a6e Merge pull request #3058 from Alfresco/fix/MNT-24571-Site-Membership-API
Fix/MNT-24571-Site Membership API
2024-11-28 16:23:20 +05:30
alfresco-build
c80e1fa94b [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-28 09:56:23 +00:00
alfresco-build
675c6f7aa1 [maven-release-plugin][skip ci] prepare release 25.1.0.4 2024-11-28 09:56:21 +00:00
dependabot[bot]
44d67847da Bump io.swagger:swagger-parser from 1.0.71 to 1.0.72 (#3044)
Bumps [io.swagger:swagger-parser](https://github.com/swagger-api/swagger-parser) from 1.0.71 to 1.0.72.
- [Release notes](https://github.com/swagger-api/swagger-parser/releases)
- [Commits](https://github.com/swagger-api/swagger-parser/compare/v1.0.71...v1.0.72)

---
updated-dependencies:
- dependency-name: io.swagger:swagger-parser
  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>
2024-11-27 18:51:51 +01:00
vjanakiram
d405043c5d Update the SiteMembership 2024-11-27 12:38:50 +05:30
rrajoria
da50f6271c Fix Precommit 2024-11-27 11:20:04 +05:30
rrajoria
a5e713c176 Fix Precommit 2024-11-27 11:11:41 +05:30
rrajoria
2dcd2788b2 Fix Precommit 2024-11-27 11:02:51 +05:30
vjanakiram
6b738342c1 Update the license SiteMembership 2024-11-27 10:59:13 +05:30
vjanakiram
ba5f5418ab Revert "Update the license i SiteMembership"
This reverts commit ee8f3bec18.
2024-11-27 10:58:40 +05:30
vjanakiram
ee8f3bec18 Update the license i SiteMembership 2024-11-27 10:47:56 +05:30
vjanakiram
39395af528 Update the SiteMembership Class 2024-11-26 17:49:12 +05:30
vjanakiram
e6f9d88779 Update the SiteMembership Class 2024-11-26 17:27:33 +05:30
vjanakiram
70f70c6ed3 Revert "Update the SiteMembership Class"
This reverts commit 15045f9612.
2024-11-26 17:26:44 +05:30
vjanakiram
15045f9612 Update the SiteMembership Class 2024-11-26 17:25:23 +05:30
dependabot[bot]
c50c7c6a7e Bump org.apache.activemq:activemq-client-jakarta from 5.18.3 to 5.18.6 (#2962) 2024-11-26 11:19:23 +00:00
dependabot[bot]
60199141f5 Bump org.apache.httpcomponents.client5:httpclient5 from 5.2.1 to 5.4.1 (#3015) 2024-11-26 11:19:14 +00:00
vjanakiram
b5e023950d Update the SiteMembership Class 2024-11-26 16:48:11 +05:30
varapathijanakiram
d4591acf2c Update the SiteMembership Class 2024-11-26 16:31:47 +05:30
dependabot[bot]
f34f2849dd Bump org.eclipse.jetty:jetty-server in /remote-api (#2995) 2024-11-26 09:37:26 +00:00
dependabot[bot]
52f2be49f3 Bump com.networknt:json-schema-validator from 1.5.3 to 1.5.4 (#3054) 2024-11-26 09:15:25 +00:00
dependabot[bot]
748be1f4a0 Bump dependency.log4j.version from 2.23.1 to 2.24.2 (#3051) 2024-11-26 09:14:44 +00:00
alfresco-build
52f1af2da6 [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-25 10:35:23 +00:00
alfresco-build
626a97ff45 [maven-release-plugin][skip ci] prepare release 25.1.0.3 2024-11-25 10:35:21 +00:00
Damian Ujma
4a91132226 ACS-5371 Exclude xpp3 dependency to avoid conflict in JDK9+ (#3049)
* ACS-5371 Exclude xpp3 dependency

* ACS-5371 Set compiler compliance to 17

* ACS-5371 Update xmlpull version

* ACS-5371 Update xmlpull version

* ACS-5371 Use kxml2

* ACS-5371 Refactor
2024-11-25 09:49:47 +01:00
Piotr Żurek
b6fb8725ce Revert "Bump org.springframework.security:spring-security-bom (#3048)"
This reverts commit aacef0c949.
2024-11-25 09:44:21 +01:00
alfresco-build
5fc0d9edde [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-24 00:10:05 +00:00
alfresco-build
44d394b1a0 [maven-release-plugin][skip ci] prepare release 25.1.0.2 2024-11-24 00:10:03 +00:00
Alfresco CI User
c1d62cca4d [force] Force release for 2024-11-24. 2024-11-24 00:05:36 +00:00
Piotr Żurek
24ae4ce57c Revert "Bump dependency.spring.version from 6.1.14 to 6.2.0 (#3038)"
This reverts commit b8f2ec252d.
2024-11-22 15:07:03 +01:00
dependabot[bot]
b8f2ec252d Bump dependency.spring.version from 6.1.14 to 6.2.0 (#3038)
Bumps `dependency.spring.version` from 6.1.14 to 6.2.0.

Updates `org.springframework:spring-aop` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-beans` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-context` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-context-support` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-core` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-expression` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-jdbc` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-jms` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-test` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-orm` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-tx` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-web` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

Updates `org.springframework:spring-webmvc` from 6.1.14 to 6.2.0
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.2.0)

---
updated-dependencies:
- dependency-name: org.springframework:spring-aop
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-beans
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-context
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-context-support
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-expression
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-jdbc
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-jms
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-test
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-orm
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-tx
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-web
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework:spring-webmvc
  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>
2024-11-22 14:22:19 +01:00
dependabot[bot]
ae721c86f6 Bump commons-io:commons-io from 2.17.0 to 2.18.0 (#3046)
Bumps commons-io:commons-io from 2.17.0 to 2.18.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  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>
2024-11-22 14:19:59 +01:00
dependabot[bot]
aacef0c949 Bump org.springframework.security:spring-security-bom (#3048)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.4 to 6.4.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/6.3.4...6.4.1)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-bom
  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>
2024-11-22 14:19:15 +01:00
dependabot[bot]
e4edceda75 Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.1 to 3.5.2 (#3019) 2024-11-22 12:41:46 +00:00
dependabot[bot]
09ec6688c6 Bump org.quartz-scheduler:quartz from 2.3.2 to 2.5.0 (#3035) 2024-11-22 12:41:36 +00:00
dependabot[bot]
14025f00de Bump org.projectlombok:lombok from 1.18.34 to 1.18.36 (#3042) 2024-11-22 12:41:16 +00:00
dependabot[bot]
22c5a5e134 Bump dependency.bouncycastle.version from 1.78.1 to 1.79 (#3016) 2024-11-22 12:39:42 +00:00
dependabot[bot]
154cad1ff8 Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.1 to 3.11.1 (#3021) 2024-11-22 12:39:40 +00:00
dependabot[bot]
7749b89e2b Bump org.apache.santuario:xmlsec from 4.0.2 to 4.0.3 (#3023) 2024-11-22 12:39:35 +00:00
dependabot[bot]
bbb45e667b Bump org.codehaus.groovy:groovy from 3.0.22 to 3.0.23 (#3030) 2024-11-22 12:39:04 +00:00
dependabot[bot]
a5f01e0d94 Bump Alfresco/alfresco-build-tools from 7.1.0 to 8.2.0 (#3018) 2024-11-22 12:39:02 +00:00
dependabot[bot]
0c6d455ec4 Bump com.networknt:json-schema-validator from 1.5.1 to 1.5.3 (#3017) 2024-11-22 12:38:58 +00:00
dependabot[bot]
5e86f5163e Bump org.apache.xmlbeans:xmlbeans from 5.2.1 to 5.2.2 (#3024) 2024-11-22 12:38:23 +00:00
alfresco-build
4981be1564 [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-20 15:49:36 +00:00
alfresco-build
9a30fbb75a [maven-release-plugin][skip ci] prepare release 25.1.0.1 2024-11-20 15:49:34 +00:00
Piotr Żurek
9c86fdb8b5 Trigger CI 2024-11-20 15:42:59 +01:00
Kacper Magdziarz
c52f74832d Updating master branch to 25.1.0 after 23.4.0 ACS release [skip ci] 2024-11-20 13:36:19 +01:00
alfresco-build
70dd7642f4 [maven-release-plugin][skip ci] prepare for next development iteration 2024-11-19 09:48:20 +00:00
1418 changed files with 10077 additions and 9869 deletions

View File

@@ -69,12 +69,12 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v8.2.0
continue-on-error: true
with:
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }}
@@ -92,10 +92,10 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/github-download-file@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/github-download-file@v8.2.0
with:
token: ${{ secrets.BOT_GITHUB_TOKEN }}
repository: "Alfresco/veracode-baseline-archive"
@@ -106,12 +106,16 @@ jobs:
run: |
bash ./scripts/ci/init.sh
bash ./scripts/ci/build.sh
- name: "Remove excluded files"
run: |
mkdir temp-dir-for-sast
bash ./scripts/ci/remove-sast-exclusions.sh ./packaging/war/target/alfresco.war temp-dir-for-sast/reduced.war
- name: "Run SAST Scan"
uses: veracode/Veracode-pipeline-scan-action@v1.0.16
with:
vid: ${{ secrets.VERACODE_API_ID }}
vkey: ${{ secrets.VERACODE_API_KEY }}
file: "packaging/war/target/alfresco.war"
file: "temp-dir-for-sast/reduced.war"
fail_build: true
project_name: alfresco-community-repo
issue_details: true
@@ -129,6 +133,8 @@ jobs:
with:
name: Veracode Pipeline-Scan Results (Human Readable)
path: readable_output.zip
- name: "Remove temporary directory"
run: rm -rfv temp-dir-for-sast
- name: "Clean Maven cache"
run: bash ./scripts/ci/cleanup_cache.sh
@@ -142,9 +148,9 @@ jobs:
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- uses: Alfresco/ya-pmd-scan@v4.1.0
with:
classpath-build-command: "mvn test-compile -ntp -Pags -pl \"-:alfresco-community-repo-docker\""
@@ -175,14 +181,14 @@ jobs:
testAttributes: "-Dtest=AllMmtUnitTestSuite"
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testModule }}
@@ -213,7 +219,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -255,9 +261,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -270,7 +276,7 @@ jobs:
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testSuite }}
@@ -301,7 +307,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -334,9 +340,9 @@ jobs:
version: ['10.2.18', '10.4', '10.5']
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: Run MariaDB ${{ matrix.version }} database
@@ -345,7 +351,7 @@ jobs:
MARIADB_VERSION: ${{ matrix.version }}
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.version }}
@@ -376,7 +382,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -405,9 +411,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MariaDB 10.6 database"
@@ -416,7 +422,7 @@ jobs:
MARIADB_VERSION: 10.6
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -447,7 +453,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -476,9 +482,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run MySQL 8 database"
@@ -487,7 +493,7 @@ jobs:
MYSQL_VERSION: 8
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -518,7 +524,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -546,9 +552,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 13.12 database"
@@ -557,7 +563,7 @@ jobs:
POSTGRES_VERSION: 13.12
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -588,7 +594,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -616,9 +622,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 14.9 database"
@@ -627,7 +633,7 @@ jobs:
POSTGRES_VERSION: 14.9
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -658,7 +664,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -686,9 +692,9 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run PostgreSQL 15.4 database"
@@ -697,7 +703,7 @@ jobs:
POSTGRES_VERSION: 15.4
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -728,7 +734,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -754,16 +760,16 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- 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: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -794,7 +800,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -854,9 +860,9 @@ jobs:
mvn-options: '-Dencryption.ssl.keystore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.keystore -Dencryption.ssl.truststore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.truststore'
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Set transformers tag"
@@ -879,7 +885,7 @@ jobs:
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testSuite }} ${{ matrix.idp }}
@@ -910,7 +916,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -968,9 +974,9 @@ jobs:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -986,7 +992,7 @@ jobs:
run: mvn install -pl :alfresco-community-repo-integration-test -am -DskipTests -Pall-tas-tests
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.test-name }}
@@ -1024,7 +1030,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.tests.outcome }}
@@ -1050,16 +1056,16 @@ jobs:
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- name: "Run Postgres 15.4 database"
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile postgres up -d
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -1090,7 +1096,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -1124,9 +1130,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -1134,7 +1140,7 @@ jobs:
bash ./scripts/ci/build.sh
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} 0${{ matrix.part }} - (PostgreSQL) ${{ matrix.test-name }}
@@ -1170,9 +1176,9 @@ jobs:
REQUIRES_INSTALLED_ARTIFACTS: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -1180,7 +1186,7 @@ jobs:
bash ./scripts/ci/build.sh
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} 0${{ matrix.part }} - (MySQL) ${{ matrix.test-name }}
@@ -1212,9 +1218,9 @@ jobs:
REQUIRES_LOCAL_IMAGES: true
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |
@@ -1228,7 +1234,7 @@ jobs:
mvn -B install -pl :alfresco-governance-services-automation-community-rest-api -am -Pags -Pall-tas-tests -DskipTests
- name: "Prepare Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-prepare@v8.2.0
id: rp-prepare
with:
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }}
@@ -1260,7 +1266,7 @@ jobs:
continue-on-error: true
- name: "Summarize Report Portal"
if: github.ref_name == 'master'
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v7.1.0
uses: Alfresco/alfresco-build-tools/.github/actions/reportportal-summarize@v8.2.0
id: rp-summarize
with:
tests-outcome: ${{ steps.run-tests.outcome }}
@@ -1302,9 +1308,9 @@ jobs:
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: actions/checkout@v4
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Build"
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
run: |

View File

@@ -34,12 +34,12 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.2.0
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}
@@ -63,12 +63,12 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.2.0
- name: "Init"
run: bash ./scripts/ci/init.sh
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v7.1.0
- uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v8.2.0
with:
username: ${{ env.GIT_USERNAME }}
email: ${{ env.GIT_EMAIL }}

View File

@@ -133,21 +133,21 @@
"filename": ".github/workflows/ci.yml",
"hashed_secret": "b86dc2f033a63f2b7b9e7d270ab806d2910d7572",
"is_verified": false,
"line_number": 293
"line_number": 299
},
{
"type": "Secret Keyword",
"filename": ".github/workflows/ci.yml",
"hashed_secret": "1bfb0e20f886150ba59b853bcd49dea893e00966",
"is_verified": false,
"line_number": 368
"line_number": 374
},
{
"type": "Secret Keyword",
"filename": ".github/workflows/ci.yml",
"hashed_secret": "128f14373ccfaff49e3664045d3a11b50cbb7b39",
"is_verified": false,
"line_number": 902
"line_number": 908
}
],
".github/workflows/master_release.yml": [
@@ -1888,5 +1888,5 @@
}
]
},
"generated_at": "2024-10-09T09:32:52Z"
"generated_at": "2024-12-19T08:58:42Z"
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<build>

View File

@@ -71,4 +71,3 @@ public class FilesAPI extends RMModelRequest<FilesAPI>
));
}
}

View File

@@ -117,4 +117,3 @@ public class RecordCategoryAuditLogTest extends BaseRMRestTest {
auditLog.clearAuditLog(getAdminUser().getUsername(), getAdminUser().getPassword());
}
}

View File

@@ -144,5 +144,3 @@ public class CreateElectronicRecordsTests extends BaseRMRestTest {
}
}

View File

@@ -234,4 +234,3 @@ public class MoveToRuleOnFoldersTest extends BaseRMRestTest{
assertStatusCode(OK);
}
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -219,4 +219,3 @@ function getRecordFolder(recordFolder, parentPath)
// Start webscript
main();

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>

View File

@@ -190,4 +190,3 @@ public final class NamePathDataExtractor extends AbstractDataExtractor
return Objects.hash(nodeService, filePlanService, ruleService);
}
}

View File

@@ -120,4 +120,3 @@ public class RecordsManagementBootstrap extends AbstractLifecycleBean
// NOOP
}
}

View File

@@ -43,4 +43,3 @@ public record BulkOperation(Query searchQuery, String operationType) implements
}
}
}

View File

@@ -88,4 +88,3 @@ public class AssocPolicy extends AbstractBasePolicy
}
}

View File

@@ -141,5 +141,3 @@ public class NotifyOfRecordsDueForReviewJobExecuter extends RecordsManagementJob
} // end of execute method
}

View File

@@ -103,4 +103,3 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch
}
}
}

View File

@@ -71,4 +71,3 @@ public class CustomLocalDateDeserializer extends StdDeserializer<LocalDate>
return LOCAL_DATE_OPTIONAL_TIME_PARSER.parseLocalDate(str);
}
}

View File

@@ -926,4 +926,3 @@ public class RMCaveatConfigScriptTest extends BaseRMWebScriptTestCase
}
}
}

View File

@@ -105,5 +105,3 @@ public class RMConstraintScriptTest extends BaseRMWebScriptTestCase
}
}

View File

@@ -3,8 +3,8 @@
#
# Version label
version.major=23
version.minor=5
version.major=25
version.minor=1
version.revision=0
version.label=

View File

@@ -96,5 +96,3 @@ public class RMv32HoldReportUpdatePatchUnitTest
verify(mockedContentWriter, times(1)).putContent((InputStream) any());
}
}

View File

@@ -33,14 +33,15 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.alfresco.module.org_alfresco_module_rm.query.RecordsManagementQueryDAO;
import org.alfresco.repo.domain.propval.PropertyStringValueEntity;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.alfresco.module.org_alfresco_module_rm.query.RecordsManagementQueryDAO;
import org.alfresco.repo.domain.propval.PropertyStringValueEntity;
/**
* RM V3.3 Hold audit entries values patch unit test
*
@@ -55,7 +56,6 @@ public class RMv33HoldAuditEntryValuesPatchUnitTest
@InjectMocks
private RMv33HoldAuditEntryValuesPatch patch;
@Before
public void setUp()
{
@@ -93,15 +93,15 @@ public class RMv33HoldAuditEntryValuesPatchUnitTest
verify(mockedRecordsManagementQueryDAO, times(1)).updatePropertyStringValueEntity(deleteHoldPropertyStringValueEntity);
assertEquals("Add To Hold", addToHoldPropertyStringValueEntity.getStringValue());
assertEquals("add to hold", addToHoldPropertyStringValueEntity.getStringLower());
assertEquals("add to hold", addToHoldPropertyStringValueEntity.getStringEndLower());
assertEquals(Long.valueOf(770_786_109L), addToHoldPropertyStringValueEntity.getStringCrc());
assertEquals("Remove From Hold", removeFromHoldPropertyStringValueEntity.getStringValue());
assertEquals("remove from hold", removeFromHoldPropertyStringValueEntity.getStringLower());
assertEquals("remove from hold", removeFromHoldPropertyStringValueEntity.getStringEndLower());
assertEquals(Long.valueOf(2_967_613_012L), removeFromHoldPropertyStringValueEntity.getStringCrc());
assertEquals("Delete Hold", deleteHoldPropertyStringValueEntity.getStringValue());
assertEquals("delete hold", deleteHoldPropertyStringValueEntity.getStringLower());
assertEquals("delete hold", deleteHoldPropertyStringValueEntity.getStringEndLower());
assertEquals(Long.valueOf(132_640_810L), deleteHoldPropertyStringValueEntity.getStringCrc());
}
@@ -123,5 +123,3 @@ public class RMv33HoldAuditEntryValuesPatchUnitTest
verify(mockedRecordsManagementQueryDAO, times(0)).updatePropertyStringValueEntity(any());
}
}

View File

@@ -47,4 +47,3 @@ public class RMYamlUnitTest extends BaseYamlUnitTest
validateYamlFiles(getYamlFilesList(RM_COMMUNITY_YAML_FILES_PATH));
}
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<build>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<dependencies>

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2024 Alfresco Software Limited.
* Copyright (C) 2005-2025 Alfresco Software Limited.
*
* This file is part of Alfresco
*

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>
@@ -118,6 +118,18 @@
<groupId>org.jibx</groupId>
<artifactId>jibx-run</artifactId>
<version>1.4.2</version>
<exclusions>
<!-- [ACS-5371] Excluded to avoid conflict in JDK9+ as it includes javax.xml-->
<exclusion>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.kxml</groupId>
<artifactId>kxml2</artifactId>
<version>${dependency.kxml2.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Data model classes
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<dependencies>

View File

@@ -9,6 +9,6 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
</project>

View File

@@ -146,6 +146,7 @@ libgif http://giflib.sourceforge.net/
libfreetype http://www.freetype.org/
PostgreSQL http://www.postgresql.org/
PostgreSQL JDBC Driver http://www.postgresql.org/
kXML 2 http://kxml.sourceforge.net/
=== CDDL 1.0 ===

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<organization>

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<developers>

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<developers>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>
@@ -171,7 +171,7 @@
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.22</version>
<version>3.0.23</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json-->

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2022 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -29,6 +29,12 @@ import static io.restassured.RestAssured.given;
import java.io.File;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.ValidatableResponse;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestResponse;
@@ -56,12 +62,6 @@ import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.ValidatableResponse;
/**
* Declares all Rest API under the /people path
@@ -97,9 +97,7 @@ public class People extends ModelRequest<People>
}
/**
* Retrieve list of activities for a specific person using GET call on "people/{personId}/activities"
* Please note that it retries to get the list of activities several times before returning the empty list. The list of activities are not displayed as
* they are created.
* Retrieve list of activities for a specific person using GET call on "people/{personId}/activities" Please note that it retries to get the list of activities several times before returning the empty list. The list of activities are not displayed as they are created.
*/
public RestActivityModelsCollection getPersonActivitiesUntilEntriesCountIs(int expectedNoOfEntries)
{
@@ -173,6 +171,15 @@ public class People extends ModelRequest<People>
return restWrapper.processModel(RestPreferenceModel.class, request);
}
/**
* Updates a specific preference of a specific person using PUT call on "people/{personId}/preferences/{preferenceName}"
*/
public RestPreferenceModel updatePersonPreferenceInformation(String preferenceName, RestPreferenceModel preferenceModel)
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, preferenceModel.toJson(), "people/{personId}/preferences/{preferenceName}", this.person.getUsername(), preferenceName);
return restWrapper.processModel(RestPreferenceModel.class, request);
}
/**
* Remove a specific site from favorite sites list of a person using DELETE call on "people/{personId}/favorite-sites/{siteId}"
*/
@@ -379,7 +386,7 @@ public class People extends ModelRequest<People>
public RestNetworkModel getNetwork(UserModel tenant)
{
Utility.checkObjectIsInitialized(tenant.getDomain(), "tenant.getDomain()");
String personId = tenant.getUsername().contains("-me-@")? "-me-" : tenant.getUsername();
String personId = tenant.getUsername().contains("-me-@") ? "-me-" : tenant.getUsername();
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "people/{personId}/networks/{networkId}?{parameters}", personId, tenant.getDomain(), restWrapper.getParameters());
return restWrapper.processModel(RestNetworkModel.class, request);
}
@@ -412,8 +419,7 @@ public class People extends ModelRequest<People>
}
/**
* Get people avatar image using GET call on '/people/{personId}/avatar Please note that it retries to get the
* renditions response several times because on the alfresco server the rendition can take a while to be created.
* Get people avatar image using GET call on '/people/{personId}/avatar Please note that it retries to get the renditions response several times because on the alfresco server the rendition can take a while to be created.
*/
public RestResponse downloadAvatarContent()
{
@@ -456,17 +462,8 @@ public class People extends ModelRequest<People>
return new WhereClause(this);
}
/**
* Construct the Where clause of getFavorites
* You can use the where parameter to restrict the list in the response to entries of a specific kind. The where parameter takes a value. The value is a
* single predicate that can include one or more EXISTS conditions. The EXISTS condition uses a single operand to limit the list to include entries that
* include that one property. The property values are:-
* target/file
* target/folder
* target/site
* Usage:
* where.. targetFileExist().or().targetSiteExist().filterAnd().getFavorites(...)
* At this point this method is working only with @link {@link RestFavoritesApi#getFavorites(UserModel) method.
/**
* Construct the Where clause of getFavorites You can use the where parameter to restrict the list in the response to entries of a specific kind. The where parameter takes a value. The value is a single predicate that can include one or more EXISTS conditions. The EXISTS condition uses a single operand to limit the list to include entries that include that one property. The property values are:- target/file target/folder target/site Usage: where.. targetFileExist().or().targetSiteExist().filterAnd().getFavorites(...) At this point this method is working only with @link {@link RestFavoritesApi#getFavorites(UserModel) method.
*
* @author paul.brodner
*/

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -119,4 +119,3 @@ public class RestRequestQueryModel extends TestModel implements IRestModel<RestR
return Objects.hash(model, getLanguage(), getUserQuery(), getQuery());
}
}

View File

@@ -1,5 +1,11 @@
package org.alfresco.rest.people.preferences;
import java.nio.file.Paths;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPreferenceModel;
@@ -9,11 +15,6 @@ import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.nio.file.Paths;
public class GetPeoplePreferenceFullTests extends RestTest
{
@@ -29,38 +30,38 @@ public class GetPeoplePreferenceFullTests extends RestTest
dataSite.usingUser(userModel).usingSite(siteModel).addSiteToFavorites();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Check that properties parameter is applied")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Check that properties parameter is applied")
public void propertiesParameterIsAppliedWhenRetrievingPreference() throws Exception
{
restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id").withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").isNull();
.and().field("value").isNull();
restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id,value").withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").is("true");
}
.and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get site preference response")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get site preference response")
public void validateIdElementInGetSitePreferenceResponse() throws Exception
{
restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()))
.and().field("value").is("true");
}
.and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get folder preference response")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get folder preference response")
public void validateIdElementInGetFolderPreferenceResponse() throws Exception
{
FolderModel folderFavorite = new FolderModel("favoriteFolder");
@@ -70,12 +71,12 @@ public class GetPeoplePreferenceFullTests extends RestTest
restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(PreferenceName.FOLDERS_FAVORITES_PREFIX.toString());
restPreferenceModel.assertThat().field("id").is(PreferenceName.FOLDERS_FAVORITES_PREFIX)
.and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", folderFavorite.getNodeRef())));
}
.and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", folderFavorite.getNodeRef())));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get file preference response")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Validate ID element in get file preference response")
public void validateIdElementInGetFilePreferenceResponse() throws Exception
{
FileModel fileFavorite = new FileModel("favoriteFile", FileType.TEXT_PLAIN);
@@ -85,12 +86,12 @@ public class GetPeoplePreferenceFullTests extends RestTest
restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString());
restPreferenceModel.assertThat().field("id").is(PreferenceName.DOCUMENTS_FAVORITES_PREFIX)
.and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", fileFavorite.getNodeRefWithoutVersion())));
}
.and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", fileFavorite.getNodeRefWithoutVersion())));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Get preference of an user that has no preferences")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Get preference of an user that has no preferences")
public void getPreferenceForUserWithoutPreferences() throws Exception
{
UserModel newUser = dataUser.createRandomTestUser();
@@ -112,11 +113,11 @@ public class GetPeoplePreferenceFullTests extends RestTest
restClient.assertLastError().containsSummary(
String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(),
PreferenceName.SITES_FAVORITES_PREFIX.toString()));
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Change one preference for an user then perform get call")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Change one preference for an user then perform get call")
@Bug(id = "REPO-1922")
public void changePreferenceThenPerformGetPreferenceCall() throws Exception
{
@@ -160,11 +161,11 @@ public class GetPeoplePreferenceFullTests extends RestTest
restClient.assertLastError().containsSummary(
String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(),
PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()));
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to get preference of another user")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to get preference of another user")
public void adminIsAbleToGetOtherUserPreference() throws Exception
{
restPreferenceModel = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(userModel)
@@ -173,9 +174,9 @@ public class GetPeoplePreferenceFullTests extends RestTest
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is not able to get preference of admin user")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is not able to get preference of admin user")
public void regularUserIsNotAbleToGetAdminPreference() throws Exception
{
SiteModel newSite = dataSite.usingUser(dataUser.getAdminUser()).createPublicRandomSite();
@@ -186,4 +187,48 @@ public class GetPeoplePreferenceFullTests extends RestTest
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to change own preferences")
public void regularUserIsAbleToChangeOwnPreference() throws Exception
{
var newUser = dataUser.createRandomTestUser();
var newSite = dataSite.usingUser(newUser).createPublicRandomSite();
var preferenceId = String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), newSite.getId());
var updatedPreferenceModel = new RestPreferenceModel();
updatedPreferenceModel.setId(preferenceId);
updatedPreferenceModel.setValue("");
dataSite.usingUser(newUser).usingSite(newSite).addSiteToFavorites();
restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(preferenceId);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser().updatePersonPreferenceInformation(preferenceId, updatedPreferenceModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
var personPreferences = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser().getPersonPreferences();
personPreferences.assertThat().entriesListDoesNotContain("id", preferenceId);
}
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.REGRESSION,
description = "Verify admin is not able to change regular user preferences")
public void adminIsNotAbleToChangeRegularUserPreference() throws Exception
{
var newUser = dataUser.createRandomTestUser();
var newSite = dataSite.usingUser(newUser).createPublicRandomSite();
var preferenceId = String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), newSite.getId());
var updatedPreferenceModel = new RestPreferenceModel();
updatedPreferenceModel.setId(preferenceId);
updatedPreferenceModel.setValue("");
dataSite.usingUser(newUser).usingSite(newSite).addSiteToFavorites();
restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(preferenceId);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(newUser).updatePersonPreferenceInformation(preferenceId, updatedPreferenceModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
}

View File

@@ -1,7 +1,10 @@
package org.alfresco.rest.people.preferences;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPreferenceModel;
import org.alfresco.utility.constants.PreferenceName;
import org.alfresco.utility.constants.UserRole;
@@ -10,9 +13,6 @@ import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Tests for Get a Peference (/people/{personId}/preferences/{preferenceName}) RestAPI call
@@ -33,8 +33,8 @@ public class GetPeoplePreferenceSanityTests extends RestTest
siteModel = dataSite.usingUser(userModel).createPublicRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify manager user gets a specific preference with Rest API and response is successful (200)")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify manager user gets a specific preference with Rest API and response is successful (200)")
public void managerUserGetsAPreferenceWithSuccess() throws Exception
{
UserModel managerUser = dataUser.usingAdmin().createRandomTestUser();
@@ -47,8 +47,8 @@ public class GetPeoplePreferenceSanityTests extends RestTest
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify collaborator user gets a specific preference with Rest API and response is successful (200)")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify collaborator user gets a specific preference with Rest API and response is successful (200)")
public void collaboratorUserGetsAPreferenceWithSuccess() throws Exception
{
UserModel collaboratorUser = dataUser.usingAdmin().createRandomTestUser();
@@ -61,8 +61,24 @@ public class GetPeoplePreferenceSanityTests extends RestTest
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify contributor user gets a specific preference with Rest API and response is successful (200)")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify collaborator user gets a specific preference with Rest API and response is successful (200)")
public void collaboratorUserUpdatesAPreferenceWithSuccess() throws Exception
{
UserModel collaboratorUser = dataUser.usingAdmin().createRandomTestUser();
var updatedRestPreferenceModel = new RestPreferenceModel();
updatedRestPreferenceModel.setId("user.preference");
updatedRestPreferenceModel.setValue("user.value");
restPreferenceModel = restClient.authenticateUser(collaboratorUser).withCoreAPI().usingAuthUser()
.updatePersonPreferenceInformation(updatedRestPreferenceModel.getId(), updatedRestPreferenceModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is("user.preference").and().field("value").is("user.value");
}
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify contributor user gets a specific preference with Rest API and response is successful (200)")
public void contributorUserGetsAPreferenceWithSuccess() throws Exception
{
UserModel contributorUser = dataUser.usingAdmin().createRandomTestUser();
@@ -75,8 +91,8 @@ public class GetPeoplePreferenceSanityTests extends RestTest
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify consumer user gets a specific preference with Rest API and response is successful (200)")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify consumer user gets a specific preference with Rest API and response is successful (200)")
public void consumerUserGetsAPreferenceWithSuccess() throws Exception
{
UserModel consumerUser = dataUser.usingAdmin().createRandomTestUser();
@@ -84,13 +100,13 @@ public class GetPeoplePreferenceSanityTests extends RestTest
dataSite.usingUser(consumerUser).usingSite(siteModel).addSiteToFavorites();
restPreferenceModel = restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(),siteModel.getId()));
.getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.OK);
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(),siteModel.getId())).and().field("value").is("true");
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify admin user gets a specific preference with Rest API and response is successful (200)")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify admin user gets a specific preference with Rest API and response is successful (200)")
public void adminUserGetsAPreferenceWithSuccess() throws Exception
{
UserModel adminUser = dataUser.getAdminUser();
@@ -102,9 +118,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest
restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.PREFERENCES }, executionType = ExecutionType.SANITY, description = "Verify manager user is NOT Authorized to get a specific preference with Rest API when authentication fails (401)")
// @Bug(id = "MNT-16904", description = "fails only on environment with tenants")
@Test(groups = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY})
@TestRail(section = {TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES}, executionType = ExecutionType.SANITY, description = "Verify manager user is NOT Authorized to get a specific preference with Rest API when authentication fails (401)")
// @Bug(id = "MNT-16904", description = "fails only on environment with tenants")
public void managerUserNotAuthorizedFailsToGetsAPreference() throws Exception
{
UserModel managerUser = dataUser.usingAdmin().createRandomTestUser();

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<developers>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<properties>

37
pom.xml
View File

@@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
<packaging>pom</packaging>
<name>Alfresco Community Repo Parent</name>
@@ -23,8 +23,8 @@
</modules>
<properties>
<acs.version.major>23</acs.version.major>
<acs.version.minor>5</acs.version.minor>
<acs.version.major>25</acs.version.major>
<acs.version.minor>1</acs.version.minor>
<acs.version.revision>0</acs.version.revision>
<acs.version.label />
<amp.min.version>${acs.version.major}.0.0</amp.min.version>
@@ -54,7 +54,7 @@
<dependency.alfresco-transform-core.version>5.1.5</dependency.alfresco-transform-core.version>
<dependency.alfresco-transform-service.version>4.1.5</dependency.alfresco-transform-service.version>
<dependency.alfresco-greenmail.version>7.0</dependency.alfresco-greenmail.version>
<dependency.acs-event-model.version>0.0.33</dependency.acs-event-model.version>
<dependency.acs-event-model.version>1.0.2</dependency.acs-event-model.version>
<dependency.aspectj.version>1.9.22.1</dependency.aspectj.version>
<dependency.spring.version>6.1.14</dependency.spring.version>
@@ -64,38 +64,39 @@
<dependency.cxf.version>4.0.5</dependency.cxf.version>
<dependency.opencmis.version>1.0.0-jakarta-1</dependency.opencmis.version>
<dependency.webscripts.version>9.4</dependency.webscripts.version>
<dependency.bouncycastle.version>1.78.1</dependency.bouncycastle.version>
<dependency.bouncycastle.version>1.79</dependency.bouncycastle.version>
<dependency.mockito-core.version>5.14.1</dependency.mockito-core.version>
<dependency.assertj.version>3.26.3</dependency.assertj.version>
<dependency.org-json.version>20240303</dependency.org-json.version>
<dependency.commons-dbcp.version>2.12.0</dependency.commons-dbcp.version>
<dependency.commons-io.version>2.17.0</dependency.commons-io.version>
<dependency.commons-io.version>2.18.0</dependency.commons-io.version>
<dependency.gson.version>2.11.0</dependency.gson.version>
<dependency.guava.version>33.3.1-jre</dependency.guava.version>
<dependency.httpclient.version>4.5.14</dependency.httpclient.version>
<dependency.httpcore.version>4.4.16</dependency.httpcore.version>
<dependency.httpcomponents-httpclient5.version>5.2.1</dependency.httpcomponents-httpclient5.version>
<dependency.httpcomponents-httpclient5.version>5.4.1</dependency.httpcomponents-httpclient5.version>
<dependency.httpcomponents-httpcore5.version>5.3</dependency.httpcomponents-httpcore5.version>
<dependency.commons-httpclient.version>3.1-HTTPCLIENT-1265</dependency.commons-httpclient.version>
<dependency.xercesImpl.version>2.12.2</dependency.xercesImpl.version>
<dependency.slf4j.version>2.0.16</dependency.slf4j.version>
<dependency.log4j.version>2.23.1</dependency.log4j.version>
<dependency.groovy.version>3.0.22</dependency.groovy.version>
<dependency.log4j.version>2.24.2</dependency.log4j.version>
<dependency.groovy.version>3.0.23</dependency.groovy.version>
<dependency.tika.version>2.9.2</dependency.tika.version>
<dependency.truezip.version>7.7.10</dependency.truezip.version>
<dependency.poi.version>5.3.0</dependency.poi.version>
<dependency.jboss.logging.version>3.5.0.Final</dependency.jboss.logging.version>
<dependency.camel.version>4.6.0</dependency.camel.version> <!-- when bumping this version, please keep track/sync with included netty.io dependencies -->
<dependency.netty.version>4.1.113.Final</dependency.netty.version> <!-- must be in sync with camels transitive dependencies, e.g.: netty-common -->
<dependency.activemq.version>5.18.3</dependency.activemq.version>
<dependency.activemq.version>5.18.6</dependency.activemq.version>
<dependency.apache-compress.version>1.27.1</dependency.apache-compress.version>
<dependency.awaitility.version>4.2.2</dependency.awaitility.version>
<dependency.swagger-ui.version>4.1.3</dependency.swagger-ui.version>
<dependency.swagger-parser.version>1.0.71</dependency.swagger-parser.version>
<dependency.swagger-parser.version>1.0.72</dependency.swagger-parser.version>
<dependency.maven-filtering.version>3.1.1</dependency.maven-filtering.version>
<dependency.maven-artifact.version>3.8.6</dependency.maven-artifact.version>
<dependency.jdom2.version>2.0.6.1</dependency.jdom2.version>
<dependency.pooled-jms.version>3.1.6</dependency.pooled-jms.version>
<dependency.kxml2.version>2.3.0</dependency.kxml2.version>
<dependency.jakarta-ee-jaxb-api.version>4.0.2</dependency.jakarta-ee-jaxb-api.version>
<dependency.jakarta-ee-jaxb-impl.version>4.0.5</dependency.jakarta-ee-jaxb-impl.version>
@@ -154,7 +155,7 @@
<connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection>
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection>
<url>https://github.com/Alfresco/alfresco-community-repo</url>
<tag>23.5.0.1</tag>
<tag>25.1.0.23</tag>
</scm>
<distributionManagement>
@@ -371,7 +372,7 @@
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
<version>2.5.0</version>
<!-- exclude c3p0 -->
<!-- see https://issues.alfresco.com/jira/browse/REPO-3447 -->
<exclusions>
@@ -465,7 +466,7 @@
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.2.1</version>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
@@ -703,7 +704,7 @@
<dependency>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>1.5.1</version>
<version>1.5.4</version>
</dependency>
<!-- upgrade dependency from TIKA -->
<dependency>
@@ -950,7 +951,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -1015,7 +1016,7 @@
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.1</version>
<version>3.5.2</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
@@ -1028,7 +1029,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.10.1</version>
<version>3.11.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.5.0.1</version>
<version>25.1.0.23</version>
</parent>
<dependencies>
@@ -45,7 +45,7 @@
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>4.0.2</version>
<version>4.0.3</version>
</dependency>
<!-- newer version, see REPO-3133 -->
<dependency>
@@ -119,7 +119,7 @@
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>11.0.15</version>
<version>11.0.24</version>
<scope>test</scope>
<exclusions>
<exclusion>

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -31,6 +31,9 @@ import org.alfresco.rest.framework.resource.parameters.Paging;
public interface Preferences
{
public Preference getPreference(String personId, String preferenceName);
public CollectionWithPagingInfo<Preference> getPreferences(String personId, Paging paging);
Preference getPreference(String personId, String preferenceName);
CollectionWithPagingInfo<Preference> getPreferences(String personId, Paging paging);
Preference updatePreference(String personId, Preference preference);
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -85,7 +85,7 @@ public class AuditImpl implements Audit
// list of equals filter's auditEntry (via where clause)
private final static Set<String> LIST_AUDIT_ENTRY_EQUALS_QUERY_PROPERTIES = new HashSet<>(
Arrays.asList(new String[] { CREATED_BY_USER, VALUES_KEY, VALUES_VALUE }));
Arrays.asList(new String[]{CREATED_BY_USER, VALUES_KEY, VALUES_VALUE}));
// map of sort parameters for the moment one createdAt
private final static Map<String, String> SORT_PARAMS_TO_NAMES;
@@ -295,23 +295,29 @@ public class AuditImpl implements Audit
}
else
{
if (hasMoreItems) {
if (q != null) {
if (hasMoreItems)
{
if (q != null)
{
// filtering via "where" clause
AuditEntryQueryWalker propertyWalker = new AuditEntryQueryWalker();
QueryHelper.walk(q, propertyWalker);
totalItems = getAuditEntriesCountByAppAndProperties(auditApplication, propertyWalker);
} else {
}
else
{
totalItems = getAuditEntriesCountByApp(auditApplication);
}
} else {
}
else
{
totalItems = totalRetrievedItems;
}
}
entriesAudit = (skipCount >= totalRetrievedItems)
? Collections.emptyList()
: entriesAudit.subList(skipCount, end);
? Collections.emptyList()
: entriesAudit.subList(skipCount, end);
return CollectionWithPagingInfo.asPaged(paging, entriesAudit, hasMoreItems, totalItems);
}
@@ -475,8 +481,7 @@ public class AuditImpl implements Audit
final Map<String, UserInfo> mapUserInfo = new HashMap<>(10);
// create the callback for auditQuery method
final AuditQueryCallback callback = new AuditQueryCallback()
{
final AuditQueryCallback callback = new AuditQueryCallback() {
public boolean valuesRequired()
{
return ((includeParam != null) && (includeParam.contains(PARAM_INCLUDE_VALUES)));
@@ -545,8 +550,7 @@ public class AuditImpl implements Audit
final List<AuditEntry> results = new ArrayList<>();
// create the callback for auditQuery method
final AuditQueryCallback callback = new AuditQueryCallback()
{
final AuditQueryCallback callback = new AuditQueryCallback() {
public boolean valuesRequired()
{
return ((includeParam != null) && (includeParam.contains(PARAM_INCLUDE_VALUES)));
@@ -710,8 +714,7 @@ public class AuditImpl implements Audit
@Override
public CollectionWithPagingInfo<AuditEntry> listAuditEntriesByNodeId(String nodeId, Parameters parameters)
{
AuthenticationUtil.runAs(new RunAsWork<Void>()
{
AuthenticationUtil.runAs(new RunAsWork<Void>() {
public Void doWork() throws Exception
{
checkEnabled();
@@ -772,8 +775,7 @@ public class AuditImpl implements Audit
final List<AuditEntry> results = new ArrayList<>();
String auditAppId = "alfresco-access";
String auditApplicationName = AuthenticationUtil.runAs(new RunAsWork<String>()
{
String auditApplicationName = AuthenticationUtil.runAs(new RunAsWork<String>() {
public String doWork() throws Exception
{
return findAuditAppByIdOr404(auditAppId).getName();
@@ -781,8 +783,7 @@ public class AuditImpl implements Audit
}, AuthenticationUtil.getSystemUserName());
// create the callback for auditQuery method
final AuditQueryCallback callback = new AuditQueryCallback()
{
final AuditQueryCallback callback = new AuditQueryCallback() {
public boolean valuesRequired()
{
return ((includeParam != null) && (includeParam.contains(PARAM_INCLUDE_VALUES)));
@@ -808,8 +809,7 @@ public class AuditImpl implements Audit
Long toTime = propertyWalker.getToTime();
validateWhereBetween(nodeRef.getId(), fromTime, toTime);
AuthenticationUtil.runAs(new RunAsWork<Object>()
{
AuthenticationUtil.runAs(new RunAsWork<Object>() {
public Object doWork() throws Exception
{
// QueryParameters
@@ -820,7 +820,7 @@ public class AuditImpl implements Audit
pathParams.setFromTime(fromTime);
pathParams.setToTime(toTime);
pathParams.setApplicationName(auditApplicationName);
pathParams.addSearchKey("/"+auditAppId+"/transaction/path", nodePath);
pathParams.addSearchKey("/" + auditAppId + "/transaction/path", nodePath);
auditService.auditQuery(callback, pathParams, limit);
AuditQueryParameters copyFromPathParams = new AuditQueryParameters();
@@ -830,7 +830,7 @@ public class AuditImpl implements Audit
copyFromPathParams.setFromTime(fromTime);
copyFromPathParams.setToTime(toTime);
copyFromPathParams.setApplicationName(auditApplicationName);
copyFromPathParams.addSearchKey("/"+auditAppId+"/transaction/copy/from/path", nodePath);
copyFromPathParams.addSearchKey("/" + auditAppId + "/transaction/copy/from/path", nodePath);
auditService.auditQuery(callback, copyFromPathParams, limit);
AuditQueryParameters moveFromPathParams = new AuditQueryParameters();
@@ -840,7 +840,7 @@ public class AuditImpl implements Audit
moveFromPathParams.setFromTime(fromTime);
moveFromPathParams.setToTime(toTime);
moveFromPathParams.setApplicationName(auditApplicationName);
moveFromPathParams.addSearchKey("/"+auditAppId+"/transaction/move/from/path", nodePath);
moveFromPathParams.addSearchKey("/" + auditAppId + "/transaction/move/from/path", nodePath);
auditService.auditQuery(callback, moveFromPathParams, limit);
return null;
@@ -857,7 +857,7 @@ public class AuditImpl implements Audit
public AuditEntriesByNodeIdQueryWalker()
{
super(new HashSet<>(Arrays.asList(new String[] { CREATED_BY_USER })), null);
super(new HashSet<>(Arrays.asList(new String[]{CREATED_BY_USER})), null);
}
@Override
@@ -904,19 +904,22 @@ public class AuditImpl implements Audit
public int getAuditEntriesCountByApp(AuditService.AuditApplication auditApplication)
{
final String applicationName = auditApplication.getKey().substring(1);
return auditService.getAuditEntriesCountByApp(applicationName);
}
public int getAuditEntriesCountByAppAndProperties(AuditService.AuditApplication auditApplication, AuditEntryQueryWalker propertyWalker)
{
final String applicationName = auditApplication.getName();
AuditQueryParameters parameters = new AuditQueryParameters();
parameters.setApplicationName(auditApplication.getName());
parameters.setApplicationName(applicationName);
parameters.setFromTime(propertyWalker.getFromTime());
parameters.setToTime(propertyWalker.getToTime());
parameters.setFromId(propertyWalker.getFromId());
parameters.setToId(propertyWalker.getToId());
parameters.setUser(propertyWalker.getCreatedByUser());
return auditService.getAuditEntriesCountByAppAndProperties(parameters);
return auditService.getAuditEntriesCountByAppAndProperties(applicationName, parameters);
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -27,7 +27,9 @@ package org.alfresco.rest.api.impl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.query.PagingResults;
import org.alfresco.rest.api.People;
@@ -47,45 +49,66 @@ import org.alfresco.util.Pair;
*/
public class PreferencesImpl implements Preferences
{
private People people;
private People people;
private PreferenceService preferenceService;
public void setPeople(People people)
{
this.people = people;
}
public void setPeople(People people)
{
this.people = people;
}
public void setPreferenceService(PreferenceService preferenceService)
{
this.preferenceService = preferenceService;
}
public void setPreferenceService(PreferenceService preferenceService)
{
this.preferenceService = preferenceService;
}
public Preference getPreference(String personId, String preferenceName)
{
personId = people.validatePerson(personId);
Serializable preferenceValue = preferenceService.getPreference(personId, preferenceName);
if(preferenceValue != null)
{
return new Preference(preferenceName, preferenceValue);
}
else
{
throw new RelationshipResourceNotFoundException(personId, preferenceName);
}
}
@Override
public Preference getPreference(String personId, String preferenceName)
{
personId = people.validatePerson(personId);
Serializable preferenceValue = preferenceService.getPreference(personId, preferenceName);
if (preferenceValue != null)
{
return new Preference(preferenceName, preferenceValue);
}
else
{
throw new RelationshipResourceNotFoundException(personId, preferenceName);
}
}
public CollectionWithPagingInfo<Preference> getPreferences(String personId, Paging paging)
{
personId = people.validatePerson(personId);
@Override
public CollectionWithPagingInfo<Preference> getPreferences(String personId, Paging paging)
{
personId = people.validatePerson(personId);
PagingResults<Pair<String, Serializable>> preferences = preferenceService.getPagedPreferences(personId, null, Util.getPagingRequest(paging));
List<Preference> ret = new ArrayList<Preference>(preferences.getPage().size());
for(Pair<String, Serializable> prefEntity : preferences.getPage())
{
Preference pref = new Preference(prefEntity.getFirst(), prefEntity.getSecond());
ret.add(pref);
}
PagingResults<Pair<String, Serializable>> preferences = preferenceService.getPagedPreferences(personId, null, Util.getPagingRequest(paging));
List<Preference> ret = new ArrayList<>(preferences.getPage().size());
for (Pair<String, Serializable> prefEntity : preferences.getPage())
{
Preference pref = new Preference(prefEntity.getFirst(), prefEntity.getSecond());
ret.add(pref);
}
return CollectionWithPagingInfo.asPaged(paging, ret, preferences.hasMoreItems(), preferences.getTotalResultCount().getFirst());
}
}
@Override
public Preference updatePreference(String personId, Preference preference)
{
personId = people.validatePerson(personId, true);
final Map<String, Serializable> preferencesToSet;
if (preference.getValue() == null || "".equals(preference.getValue()))
{
preferencesToSet = new HashMap<>(1);
preferencesToSet.put(preference.getName(), null);
}
else
{
preferencesToSet = Map.of(preference.getName(), preference.getValue());
}
preferenceService.setPreferences(personId, preferencesToSet);
return new Preference(preference.getName(), preferenceService.getPreference(personId, preference.getName()));
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -25,69 +25,81 @@
*/
package org.alfresco.rest.api.people;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.alfresco.rest.api.Preferences;
import org.alfresco.rest.api.model.Preference;
import org.alfresco.rest.framework.WebApiDescription;
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
import org.alfresco.rest.framework.resource.RelationshipResource;
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.util.ParameterCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
@RelationshipResource(name = "preferences", entityResource = PeopleEntityResource.class, title = "Person Preferences")
public class PersonPreferencesRelation implements RelationshipResourceAction.Read<Preference>, RelationshipResourceAction.ReadById<Preference>, InitializingBean
public class PersonPreferencesRelation implements RelationshipResourceAction.Read<Preference>, RelationshipResourceAction.ReadById<Preference>, RelationshipResourceAction.Update<Preference>, InitializingBean
{
private static final Log logger = LogFactory.getLog(PersonPreferencesRelation.class);
private Preferences preferences;
public void setPreferences(Preferences preferences)
{
this.preferences = preferences;
}
public void setPreferences(Preferences preferences)
{
this.preferences = preferences;
}
@Override
@Override
public void afterPropertiesSet()
{
ParameterCheck.mandatory("preferences", this.preferences);
}
/**
* Returns a paged list of preferences for the user personId.
*
* If personId does not exist, NotFoundException (status 404).
*
* @see org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction.Read#readAll(java.lang.String, org.alfresco.rest.framework.resource.parameters.Parameters)
*/
/**
* Returns a paged list of preferences for the user personId.
*
* If personId does not exist, NotFoundException (status 404).
*
* @see org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction.Read#readAll(java.lang.String, org.alfresco.rest.framework.resource.parameters.Parameters)
*/
@Override
@WebApiDescription(title = "A paged list of the persons preferences.")
public CollectionWithPagingInfo<Preference> readAll(String personId, Parameters parameters)
{
return preferences.getPreferences(personId, parameters.getPaging());
}
{
return preferences.getPreferences(personId, parameters.getPaging());
}
/**
* Returns information regarding the preference 'preferenceName' for user personId.
*
* If personId does not exist, NotFoundException (status 404).
*
* @see org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction.ReadById#readById(String, String, org.alfresco.rest.framework.resource.parameters.Parameters)
*/
/**
* Returns information regarding the preference 'preferenceName' for user personId.
*
* If personId does not exist, NotFoundException (status 404).
*
* @see org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction.ReadById#readById(String, String, org.alfresco.rest.framework.resource.parameters.Parameters)
*/
@Override
@WebApiDescription(title = "Preference value for preference 'preferenceName' for person 'personId'.")
public Preference readById(String personId, String preferenceName, Parameters parameters)
{
{
// fix for REPO-855
String url = parameters.getRequest().getURL();
if(url.matches(".*workspace://SpacesStore/.*")){
String url = parameters.getRequest().getURL();
if (url.matches(".*workspace://SpacesStore/.*"))
{
preferenceName += url.substring(url.indexOf("//SpacesStore/"));
}
//
//
return preferences.getPreference(personId, preferenceName);
}
return preferences.getPreference(personId, preferenceName);
}
@Override
public Preference update(String personId, Preference preference, Parameters parameters)
{
if (preference.getName() == null || preference.getName().isBlank())
{
throw new InvalidArgumentException();
}
return preferences.updatePreference(personId, preference);
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2020 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -30,6 +30,15 @@ import java.io.InputStream;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.springframework.extensions.webscripts.WrappingWebScriptRequest;
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.rest.framework.core.ResourceLocator;
import org.alfresco.rest.framework.core.ResourceMetadata;
@@ -47,14 +56,7 @@ import org.alfresco.rest.framework.resource.parameters.Params;
import org.alfresco.rest.framework.resource.parameters.Params.RecognizedParams;
import org.alfresco.rest.framework.tools.RecognizedParamsExtractor;
import org.alfresco.rest.framework.tools.RequestReader;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.springframework.extensions.webscripts.WrappingWebScriptRequest;
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
/**
* Handles the HTTP PUT for a Resource, equivalent to CRUD Update
*
@@ -64,13 +66,13 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
RecognizedParamsExtractor, RequestReader
{
private static Log logger = LogFactory.getLog(ResourceWebScriptPut.class);
private static final Log logger = LogFactory.getLog(ResourceWebScriptPut.class);
public ResourceWebScriptPut()
{
super();
setHttpMethod(HttpMethod.PUT);
setParamsExtractor(this);
super();
setHttpMethod(HttpMethod.PUT);
setParamsExtractor(this);
}
@Override
@@ -86,81 +88,87 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
switch (resourceMeta.getType())
{
case ENTITY:
if (StringUtils.isBlank(entityId))
{
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
} else
{
case ENTITY:
if (StringUtils.isBlank(entityId))
{
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
}
else
{
Object putEnt = extractJsonContent(req, assistant.getJsonHelper(), resourceMeta.getObjectType(operation));
return Params.valueOf(entityId,params,putEnt, req);
}
case RELATIONSHIP:
if (StringUtils.isBlank(relationshipId))
Object putEnt = extractJsonContent(req, assistant.getJsonHelper(), resourceMeta.getObjectType(operation));
return Params.valueOf(entityId, params, putEnt, req);
}
case RELATIONSHIP:
if (StringUtils.isBlank(relationshipId))
{
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
}
Object putRel = extractJsonContent(req, assistant.getJsonHelper(), resourceMeta.getObjectType(operation));
if (StringUtils.isNotBlank(relationship2Id))
{
ResourceWebScriptHelper.setUniqueId(putRel, relationship2Id);
return Params.valueOf(false, entityId, relationshipId, relationship2Id,
putRel, null, null, params, null, req);
}
else
{
ResourceWebScriptHelper.setUniqueId(putRel, relationshipId);
return Params.valueOf(entityId, relationshipId, params, putRel, req);
}
case PROPERTY:
final String resourceName = resourceVars.get(ResourceLocator.RELATIONSHIP_RESOURCE);
final String propertyName = resourceVars.get(ResourceLocator.PROPERTY);
if (StringUtils.isNotBlank(entityId) && StringUtils.isNotBlank(resourceName))
{
if (StringUtils.isNotBlank(propertyName))
{
throw new UnsupportedResourceOperationException("PUT is executed against the instance URL");
}
Object putRel = extractJsonContent(req, assistant.getJsonHelper(), resourceMeta.getObjectType(operation));
if (StringUtils.isNotBlank(relationship2Id))
{
ResourceWebScriptHelper.setUniqueId(putRel, relationship2Id);
return Params.valueOf(false, entityId, relationshipId, relationship2Id,
putRel, null, null, params, null, req);
return Params.valueOf(entityId, relationshipId, null, getStream(req), propertyName, params, getContentInfo(req), req);
}
else
{
ResourceWebScriptHelper.setUniqueId(putRel,relationshipId);
return Params.valueOf(entityId, params, putRel, req);
return Params.valueOf(entityId, null, null, getStream(req), resourceName, params, getContentInfo(req), req);
}
case PROPERTY:
final String resourceName = resourceVars.get(ResourceLocator.RELATIONSHIP_RESOURCE);
final String propertyName = resourceVars.get(ResourceLocator.PROPERTY);
if (StringUtils.isNotBlank(entityId) && StringUtils.isNotBlank(resourceName))
{
if (StringUtils.isNotBlank(propertyName))
{
return Params.valueOf(entityId, relationshipId, null, getStream(req), propertyName, params, getContentInfo(req), req);
}
else
{
return Params.valueOf(entityId, null, null, getStream(req), resourceName, params, getContentInfo(req), req);
}
}
//Fall through to unsupported.
default:
throw new UnsupportedResourceOperationException("PUT not supported for this request.");
}
// Fall through to unsupported.
default:
throw new UnsupportedResourceOperationException("PUT not supported for this request.");
}
}
/**
/**
* Returns the basic content info from the request.
* @param req WebScriptRequest
*
* @param req
* WebScriptRequest
* @return BasicContentInfo
*/
private BasicContentInfo getContentInfo(WebScriptRequest req) {
private BasicContentInfo getContentInfo(WebScriptRequest req)
{
String encoding = "UTF-8";
String contentType = MimetypeMap.MIMETYPE_BINARY;
String encoding = "UTF-8";
String contentType = MimetypeMap.MIMETYPE_BINARY;
if (StringUtils.isNotEmpty(req.getContentType()))
{
MediaType media = MediaType.parseMediaType(req.getContentType());
contentType = media.getType()+'/'+media.getSubtype();
if (media.getCharset() != null)
{
encoding = media.getCharset().toString();
}
}
if (StringUtils.isNotEmpty(req.getContentType()))
{
MediaType media = MediaType.parseMediaType(req.getContentType());
contentType = media.getType() + '/' + media.getSubtype();
if (media.getCharset() != null)
{
encoding = media.getCharset().toString();
}
}
return new ContentInfoImpl(contentType, encoding, -1, Locale.getDefault());
}
}
/**
/**
* Returns the input stream for the request
* @param req WebScriptRequest
*
* @param req
* WebScriptRequest
* @return InputStream
*/
private InputStream getStream(WebScriptRequest req)
@@ -189,8 +197,11 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
/**
* Executes the action on the resource
* @param resource ResourceWithMetadata
* @param params parameters to use
*
* @param resource
* ResourceWithMetadata
* @param params
* parameters to use
* @return anObject the result of the execute
*/
@Override
@@ -198,87 +209,87 @@ public class ResourceWebScriptPut extends AbstractResourceWebScript implements P
{
switch (resource.getMetaData().getType())
{
case ENTITY:
if (EntityResourceAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
case ENTITY:
if (EntityResourceAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(EntityResourceAction.Update.class))
{
if (resource.getMetaData().isDeleted(EntityResourceAction.Update.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
EntityResourceAction.Update<Object> updateEnt = (EntityResourceAction.Update<Object>) resource.getResource();
Object result = updateEnt.update(params.getEntityId(), params.getPassedIn(), params);
return result;
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
else
EntityResourceAction.Update<Object> updateEnt = (EntityResourceAction.Update<Object>) resource.getResource();
Object result = updateEnt.update(params.getEntityId(), params.getPassedIn(), params);
return result;
}
else
{
if (resource.getMetaData().isDeleted(EntityResourceAction.UpdateWithResponse.class))
{
if (resource.getMetaData().isDeleted(EntityResourceAction.UpdateWithResponse.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
EntityResourceAction.UpdateWithResponse<Object> updateEnt = (EntityResourceAction.UpdateWithResponse<Object>) resource.getResource();
Object result = updateEnt.update(params.getEntityId(), params.getPassedIn(), params, withResponse);
return result;
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
case RELATIONSHIP:
if (RelationshipResourceAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
EntityResourceAction.UpdateWithResponse<Object> updateEnt = (EntityResourceAction.UpdateWithResponse<Object>) resource.getResource();
Object result = updateEnt.update(params.getEntityId(), params.getPassedIn(), params, withResponse);
return result;
}
case RELATIONSHIP:
if (RelationshipResourceAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(RelationshipResourceAction.UpdateWithResponse.class))
{
if (resource.getMetaData().isDeleted(RelationshipResourceAction.UpdateWithResponse.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
RelationshipResourceAction.UpdateWithResponse<Object> relationUpdater = (RelationshipResourceAction.UpdateWithResponse<Object>) resource.getResource();
Object relResult = relationUpdater.update(params.getEntityId(), params.getPassedIn(), params, withResponse);
return relResult;
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
else
RelationshipResourceAction.UpdateWithResponse<Object> relationUpdater = (RelationshipResourceAction.UpdateWithResponse<Object>) resource.getResource();
Object relResult = relationUpdater.update(params.getEntityId(), params.getPassedIn(), params, withResponse);
return relResult;
}
else
{
if (resource.getMetaData().isDeleted(RelationshipResourceAction.Update.class))
{
if (resource.getMetaData().isDeleted(RelationshipResourceAction.Update.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
RelationshipResourceAction.Update<Object> relationUpdater = (RelationshipResourceAction.Update<Object>) resource.getResource();
Object relResult = relationUpdater.update(params.getEntityId(), params.getPassedIn(), params);
return relResult;
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
case PROPERTY:
if (BinaryResourceAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
RelationshipResourceAction.Update<Object> relationUpdater = (RelationshipResourceAction.Update<Object>) resource.getResource();
Object relResult = relationUpdater.update(params.getEntityId(), params.getPassedIn(), params);
return relResult;
}
case PROPERTY:
if (BinaryResourceAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(BinaryResourceAction.Update.class))
{
if (resource.getMetaData().isDeleted(BinaryResourceAction.Update.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
BinaryResourceAction.Update<Object> binUpdater = (BinaryResourceAction.Update<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getContentInfo(), params.getStream(), params);
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
if (BinaryResourceAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
BinaryResourceAction.Update<Object> binUpdater = (BinaryResourceAction.Update<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getContentInfo(), params.getStream(), params);
}
if (BinaryResourceAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(BinaryResourceAction.UpdateWithResponse.class))
{
if (resource.getMetaData().isDeleted(BinaryResourceAction.UpdateWithResponse.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
BinaryResourceAction.UpdateWithResponse<Object> binUpdater = (BinaryResourceAction.UpdateWithResponse<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getContentInfo(), params.getStream(), params, withResponse);
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
if (RelationshipResourceBinaryAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
BinaryResourceAction.UpdateWithResponse<Object> binUpdater = (BinaryResourceAction.UpdateWithResponse<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getContentInfo(), params.getStream(), params, withResponse);
}
if (RelationshipResourceBinaryAction.Update.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(RelationshipResourceBinaryAction.Update.class))
{
if (resource.getMetaData().isDeleted(RelationshipResourceBinaryAction.Update.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
RelationshipResourceBinaryAction.Update<Object> binUpdater = (RelationshipResourceBinaryAction.Update<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getRelationshipId(), params.getContentInfo(), params.getStream(), params);
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
if (RelationshipResourceBinaryAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
RelationshipResourceBinaryAction.Update<Object> binUpdater = (RelationshipResourceBinaryAction.Update<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getRelationshipId(), params.getContentInfo(), params.getStream(), params);
}
if (RelationshipResourceBinaryAction.UpdateWithResponse.class.isAssignableFrom(resource.getResource().getClass()))
{
if (resource.getMetaData().isDeleted(RelationshipResourceBinaryAction.UpdateWithResponse.class))
{
if (resource.getMetaData().isDeleted(RelationshipResourceBinaryAction.UpdateWithResponse.class))
{
throw new DeletedResourceException("(UPDATE) "+resource.getMetaData().getUniqueId());
}
RelationshipResourceBinaryAction.UpdateWithResponse<Object> binUpdater = (RelationshipResourceBinaryAction.UpdateWithResponse<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getRelationshipId(), params.getContentInfo(), params.getStream(), params, withResponse);
throw new DeletedResourceException("(UPDATE) " + resource.getMetaData().getUniqueId());
}
default:
throw new UnsupportedResourceOperationException("PUT not supported for Actions");
RelationshipResourceBinaryAction.UpdateWithResponse<Object> binUpdater = (RelationshipResourceBinaryAction.UpdateWithResponse<Object>) resource.getResource();
return binUpdater.updateProperty(params.getEntityId(), params.getRelationshipId(), params.getContentInfo(), params.getStream(), params, withResponse);
}
default:
throw new UnsupportedResourceOperationException("PUT not supported for Actions");
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2024 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -31,6 +31,9 @@ import static org.junit.Assert.fail;
import java.util.*;
import org.apache.commons.httpclient.HttpStatus;
import org.junit.Test;
import org.alfresco.repo.tenant.TenantUtil;
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
import org.alfresco.rest.api.tests.RepoService.TestNetwork;
@@ -42,73 +45,68 @@ import org.alfresco.rest.api.tests.client.PublicApiException;
import org.alfresco.rest.api.tests.client.RequestContext;
import org.alfresco.rest.api.tests.client.data.Preference;
import org.alfresco.util.GUID;
import org.apache.commons.httpclient.HttpStatus;
import org.junit.Test;
public class TestUserPreferences extends EnterpriseTestApi
{
@Test
public void testUserPreferences() throws Exception
{
Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt();
assertTrue(networksIt.hasNext());
final TestNetwork network1 = networksIt.next();
assertTrue(networksIt.hasNext());
final TestNetwork network2 = networksIt.next();
@Test
public void testUserPreferences() throws Exception
{
Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt();
assertTrue(networksIt.hasNext());
final TestNetwork network1 = networksIt.next();
assertTrue(networksIt.hasNext());
final TestNetwork network2 = networksIt.next();
final List<TestPerson> people = new ArrayList<TestPerson>(3);
final List<TestPerson> people = new ArrayList<TestPerson>(3);
// create users and some preferences
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
TestPerson person = network1.createUser();
people.add(person);
person = network1.createUser();
people.add(person);
return null;
}
}, network1.getId());
// create users and some preferences
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception
{
TestPerson person = network1.createUser();
people.add(person);
person = network1.createUser();
people.add(person);
return null;
}
}, network1.getId());
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
TestPerson person = network2.createUser();
people.add(person);
return null;
}
}, network2.getId());
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception
{
TestPerson person = network2.createUser();
people.add(person);
return null;
}
}, network2.getId());
final TestPerson person1 = people.get(0);
final TestPerson person2 = people.get(1);
final TestPerson person3 = people.get(2);
final TestPerson person1 = people.get(0);
final TestPerson person2 = people.get(1);
final TestPerson person3 = people.get(2);
final List<Preference> expectedPreferences = new ArrayList<Preference>();
expectedPreferences.add(new Preference("org.alfresco.share.documentList.testPreference2", String.valueOf(true)));
expectedPreferences.add(new Preference("org.alfresco.share.documentList.testPreference1", String.valueOf(true)));
expectedPreferences.add(new Preference("org.alfresco.share.documentList.sortAscending", String.valueOf(true)));
expectedPreferences.add(new Preference("org.alfresco.share.documentList.testPreference3", String.valueOf(true)));
// new preference name for issue REPO-855
expectedPreferences.add(new Preference("org.alfresco.ext.folders.favourites.workspace://SpacesStore/4e3d0779-388a-4b94-91e1-eab588a7da3d.createdAt", String.valueOf(true)));
// new preference name for issue REPO-855
expectedPreferences.add(new Preference("org.alfresco.ext.folders.favourites.workspace://SpacesStore/4e3d0779-388a-4b94-91e1-eab588a7da3d.createdAt", String.valueOf(true)));
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
for(Preference pref : expectedPreferences)
{
// TODO add preferences thru api
repoService.addPreference(person1.getId(), pref.getId(), pref.getValue());
}
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception
{
for (Preference pref : expectedPreferences)
{
// TODO add preferences thru api
repoService.addPreference(person1.getId(), pref.getId(), pref.getValue());
}
return null;
}
}, person1.getId(), network1.getId());
return null;
}
}, person1.getId(), network1.getId());
Collections.sort(expectedPreferences);
@@ -120,297 +118,294 @@ public class TestUserPreferences extends EnterpriseTestApi
// unknown user
try
{
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences(GUID.generate(), createParams(paging, null));
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences(GUID.generate(), createParams(paging, null));
fail();
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// test paging
{
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
{
int skipCount = 2;
int maxItems = 10;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
int skipCount = 2;
int maxItems = 10;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
// "-me-" user
{
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
ListResponse<Preference> resp = peopleProxy.getPreferences(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null));
checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
// invalid user - 404
// invalid user - 404
try
{
int skipCount = 2;
int maxItems = 10;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences("invalid.user", createParams(paging, null));
fail("");
int skipCount = 2;
int maxItems = 10;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences("invalid.user", createParams(paging, null));
fail("");
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// user from another account - 401
// user from another account - 401
try
{
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
// ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
// checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
fail();
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
// ListResponse<Preference> resp = peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
// checkList(expectedPreferences.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(e.getHttpResponse().getStatusCode(), HttpStatus.SC_UNAUTHORIZED);
assertEquals(e.getHttpResponse().getStatusCode(), HttpStatus.SC_UNAUTHORIZED);
}
// another user from the same account - 403
// another user from the same account - 403
try
{
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
fail();
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedPreferences.size(), expectedPreferences.size());
peopleProxy.getPreferences(person1.getId(), createParams(paging, null));
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
}
// get a single preference
// Test Case: cloud-1493
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Preference pref = expectedPreferences.get(0);
Preference ret = peopleProxy.getPreference(person1.getId(), pref.getId());
pref.expected(ret);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Preference pref = expectedPreferences.get(0);
Preference ret = peopleProxy.getPreference(person1.getId(), pref.getId());
pref.expected(ret);
}
// unknown person id
try
{
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
peopleProxy.getPreference(GUID.generate(), pref.getId());
fail();
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
peopleProxy.getPreference(GUID.generate(), pref.getId());
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// unknown preference id
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreference(person1.getId(), GUID.generate());
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreference(person1.getId(), GUID.generate());
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// Invalid methods
// Test case: cloud-1968
try
{
Preference pref = expectedPreferences.get(0);
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "preferences", pref.getId(), pref.toJSON().toString(), "Unable to POST to a preference");
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "preferences", pref.getId(), pref.toJSON().toString(), "Unable to POST to a preference");
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
{
Preference updatedPref = new Preference("preference.to.update", "updated.value");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Preference response = peopleProxy.updatePreference(person1.getId(), updatedPref);
assertEquals(updatedPref.getId(), response.getId());
assertEquals(updatedPref.getValue(), response.getValue());
}
try
{
Preference pref = expectedPreferences.get(0);
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.update("people", person1.getId(), "preferences", pref.getId(), pref.toJSON().toString(), "Unable to PUT a preference");
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "preferences", pref.getId(), "Unable to DELETE a preference");
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
Preference pref = expectedPreferences.get(0);
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "preferences", pref.getId(), "Unable to DELETE a preference");
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to POST to preferences");
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
Preference pref = expectedPreferences.get(0);
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to POST to preferences");
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.update("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to PUT preferences");
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
Preference pref = expectedPreferences.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.update("people", person1.getId(), "preferences", null, pref.toJSON().toString(), "Unable to PUT preferences");
fail();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "preferences", null, "Unable to DELETE preferences");
fail();
}
catch(PublicApiException e)
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "preferences", null, "Unable to DELETE preferences");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
{
// REPO-1061, REPO-890
try
{
String skipCount = "a";
String maxItems = "hi";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String skipCount = "a";
String maxItems = "null";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String maxItems = "Red";
HashMap<String, String> params = new HashMap<String, String>();
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// REPO-1061, REPO-890
try
{
String skipCount = "a";
String maxItems = "hi";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String skipCount = "yuck";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String skipCount = "a";
String maxItems = "null";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String skipCount = "-1";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String maxItems = "Red";
HashMap<String, String> params = new HashMap<String, String>();
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String maxItems = "0";
HashMap<String, String> params = new HashMap<String, String>();
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
}
}
try
{
String skipCount = "yuck";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String skipCount = "-1";
HashMap<String, String> params = new HashMap<String, String>();
params.put("skipCount", skipCount);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
{
String maxItems = "0";
HashMap<String, String> params = new HashMap<String, String>();
params.put("maxItems", maxItems);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getPreferences(person1.getId(), params);
fail();
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
}
}
}

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