Compare commits

...

193 Commits

Author SHA1 Message Date
alfresco-build
8d6a6aa69d [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-27 00:07:37 +00:00
alfresco-build
293e6b2874 [maven-release-plugin][skip ci] prepare release 23.1.0.203 2023-08-27 00:07:35 +00:00
Alfresco CI User
b0218f93cf [force] Force release for 2023-08-27. 2023-08-27 00:03:15 +00:00
alfresco-build
b45441bd5c [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-25 11:06:57 +00:00
alfresco-build
b17edae40e [maven-release-plugin][skip ci] prepare release 23.1.0.202 2023-08-25 11:06:54 +00:00
Piotr Żurek
b884580688 ACS-5770 Restore activmq Camel support (#2159) 2023-08-25 12:19:18 +02:00
alfresco-build
a7d49cb4c0 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-25 09:12:34 +00:00
alfresco-build
4a274cf12d [maven-release-plugin][skip ci] prepare release 23.1.0.201 2023-08-25 09:12:32 +00:00
dependabot[bot]
abda7368c4 Bump org.springframework.security:spring-security-bom (#2150)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.1.0 to 6.1.3.
- [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.1.0...6.1.3)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-bom
  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>
2023-08-25 10:29:01 +02:00
dependabot[bot]
1024ce468c Bump org.messaginghub:pooled-jms from 3.1.0 to 3.1.1 (#2132)
Bumps [org.messaginghub:pooled-jms](https://github.com/messaginghub/pooled-jms) from 3.1.0 to 3.1.1.
- [Commits](https://github.com/messaginghub/pooled-jms/compare/3.1.0...3.1.1)

---
updated-dependencies:
- dependency-name: org.messaginghub:pooled-jms
  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>
2023-08-25 09:45:03 +02:00
dependabot[bot]
6e1ba5a57d Bump org.codehaus.cargo:cargo-maven3-plugin from 1.10.8 to 1.10.9 (#2121)
Bumps org.codehaus.cargo:cargo-maven3-plugin from 1.10.8 to 1.10.9.

---
updated-dependencies:
- dependency-name: org.codehaus.cargo:cargo-maven3-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-25 09:33:11 +02:00
dependabot[bot]
49ee002d4f Bump com.github.davidmoten:subethasmtp from 6.0.5 to 6.0.6 (#2129)
Bumps [com.github.davidmoten:subethasmtp](https://github.com/davidmoten/subethasmtp) from 6.0.5 to 6.0.6.
- [Release notes](https://github.com/davidmoten/subethasmtp/releases)
- [Changelog](https://github.com/davidmoten/subethasmtp/blob/master/ChangeLog.md)
- [Commits](https://github.com/davidmoten/subethasmtp/compare/6.0.5...6.0.6)

---
updated-dependencies:
- dependency-name: com.github.davidmoten:subethasmtp
  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>
2023-08-25 08:46:24 +02:00
Krystian Dabrowski
a483159269 ACS-5706: ES: Sorting by mimetype, size and modifier doesn't work (#2146)
* ACS-5706: ES: Sorting by cm:content.mimetype, cm:content.size and cm:modifier doesn't work
2023-08-24 18:04:28 +02:00
alfresco-build
467a6d6970 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-24 08:37:11 +00:00
alfresco-build
9ffc211911 [maven-release-plugin][skip ci] prepare release 23.1.0.200 2023-08-24 08:37:09 +00:00
dependabot[bot]
16e9c7b4d1 Bump org.codehaus.groovy:groovy from 3.0.18 to 3.0.19 (#2154)
Bumps [org.codehaus.groovy:groovy](https://github.com/apache/groovy) from 3.0.18 to 3.0.19.
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.groovy:groovy
  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>
2023-08-24 12:49:45 +05:30
kcichonczyk
72ad6232f9 [ACS-5856] bump jakarta-transaction-api version, replace javax.transaction with jakarta.transaction imports 2023-08-24 09:06:53 +02:00
dependabot[bot]
1d53410375 Bump org.codehaus.groovy:groovy-json from 3.0.18 to 3.0.19 (#2153)
Bumps [org.codehaus.groovy:groovy-json](https://github.com/apache/groovy) from 3.0.18 to 3.0.19.
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.groovy:groovy-json
  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>
2023-08-24 11:58:16 +05:30
alfresco-build
62acc9acd7 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-23 15:56:08 +00:00
alfresco-build
f6baf04711 [maven-release-plugin][skip ci] prepare release 23.1.0.199 2023-08-23 15:56:05 +00:00
pardhukota-pk
468003d798 Feature/acs 4880 (#2157)
* update hazelcast merge-policy

* update hazelcast merge-policy

---------

Co-authored-by: Kota Pardhu <Kota.Pardhu@hyland.com>
2023-08-23 20:37:35 +05:30
alfresco-build
c3e8a57328 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-23 10:25:01 +00:00
alfresco-build
2ae93ee629 [maven-release-plugin][skip ci] prepare release 23.1.0.198 2023-08-23 10:24:59 +00:00
pardhukota-pk
c7fc821b74 update hazelcast merge-policy (#2151)
Co-authored-by: Kota Pardhu <Kota.Pardhu@hyland.com>
2023-08-23 11:22:59 +05:30
alfresco-build
2867872733 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-22 08:57:19 +00:00
alfresco-build
644784d78e [maven-release-plugin][skip ci] prepare release 23.1.0.197 2023-08-22 08:57:16 +00:00
Piyush Joshi
b700e7518b Merge pull request #2138 from Alfresco/MNT-23476_UNZIP_FILENAME_ACCENT
MNT-23476 Unable to unzip files in Share if it contains a document with a filename containing an accent
2023-08-22 13:36:09 +05:30
rrajoria
6f505bc673 Update GoogleDrive Version 2023-08-22 13:14:38 +05:30
Krystian Dabrowski
e8a27dd68d ACS-5451: Toggle for direct Event sending (#2082)
* ACS-5451: Toggle for direct Event sending
- added new bean allowing direct event sending and a toggle (switch) property
- refactored EventGenerator logic related with creating and sending events
- refactored consolidators - renamed EventConsolidator -> NodeEventConsolidator, and moved common logic to new abstract EventConsolidator
- added integration tests
- added JavaDoc
- refactored events related tests
2023-08-22 08:30:05 +02:00
alfresco-build
3c242bc62b [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-21 10:59:22 +00:00
alfresco-build
0b3755fda3 [maven-release-plugin][skip ci] prepare release 23.1.0.196 2023-08-21 10:59:19 +00:00
Kacper Magdziarz
b90967d3a4 [ACS-5869] Resolve jaxb clashes by enforcing one version (#2145) 2023-08-21 12:13:05 +02:00
Kacper Magdziarz
d10cbc2ad8 [ACS-5805] Remove common switch form MTLS (#2149) 2023-08-21 10:30:04 +02:00
alfresco-build
54178f0ab2 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-20 00:07:34 +00:00
alfresco-build
e4a4ad8106 [maven-release-plugin][skip ci] prepare release 23.1.0.195 2023-08-20 00:07:30 +00:00
Alfresco CI User
89486b7492 [force] Force release for 2023-08-20. 2023-08-20 00:03:12 +00:00
alfresco-build
88d4279df0 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-19 11:46:23 +00:00
alfresco-build
a1ae116b28 [maven-release-plugin][skip ci] prepare release 23.1.0.194 2023-08-19 11:46:20 +00:00
kcichonczyk
eefa2b7110 [PRODSEC-7274] bump bouncycastle version, add enforce rule for old bouncycastle versions 2023-08-18 12:57:37 +02:00
Tom Page
689dedb01f ACS-2699 Update logic around + and - for lucene queries. (#2144)
Remove unused list of constraints.

Only add match all clause once if necessary.

Also fix a few PMD violations.
2023-08-18 09:50:52 +01:00
alfresco-build
c6212fd711 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-18 07:24:10 +00:00
alfresco-build
597af3ab34 [maven-release-plugin][skip ci] prepare release 23.1.0.193 2023-08-18 07:24:07 +00:00
Kacper Magdziarz
6d33166e24 [ACS-5805] Split configuration for Transform and Shared File Store (#2142)
* [ACS-5805] Split configuration for Transform and Shared File Store and create common switch for MTLS.

* [ACS-5805] Add explicit error logging.
2023-08-17 14:08:23 +02:00
alfresco-build
6c9c1671f8 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-16 22:31:40 +00:00
alfresco-build
db13ac16f9 [maven-release-plugin][skip ci] prepare release 23.1.0.192 2023-08-16 22:31:37 +00:00
tiagosalvado10
27186a56b8 [MNT-23509] Add lock callback to refreshLock method (#2030)
* [MNT-23509] Add lock callback to refreshLock method

* [MNT-23509] Added unit test

* [MNT-23509] PMD scan improvements
2023-08-16 17:34:54 +01:00
alfresco-build
653fb08a3a [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-16 15:45:51 +00:00
alfresco-build
d0b8f9ffdc [maven-release-plugin][skip ci] prepare release 23.1.0.191 2023-08-16 15:45:49 +00:00
tiagosalvado10
1d56eb1dd1 [MNT-23816] Prevent rules aspect removal when there are existing rules (#2114)
* [MNT-23816] Prevent rules aspect removal when there are existing rules
2023-08-16 15:12:11 +01:00
pjoshi31
3a7dd08122 Changing accent character to english alphabet 2023-08-16 18:17:07 +05:30
pjoshi31
a3dffd36fe Changing accent character to english alphabet 2023-08-16 18:03:36 +05:30
pjoshi31
cb6257bf88 unrecogonized characters patterns replaced with underscore 2023-08-16 17:12:35 +05:30
alfresco-build
f67aef557a [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-14 11:54:04 +00:00
alfresco-build
007b17b0b3 [maven-release-plugin][skip ci] prepare release 23.1.0.190 2023-08-14 11:54:01 +00:00
dependabot[bot]
4df27b4627 Bump com.google.guava:guava from 32.1.1-jre to 32.1.2-jre (#2105)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.1.1-jre to 32.1.2-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  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>
2023-08-14 16:39:06 +05:30
dependabot[bot]
663ca65c5c Bump org.apache.httpcomponents.core5:httpcore5 from 5.2.1 to 5.2.2 (#2130)
Bumps [org.apache.httpcomponents.core5:httpcore5](https://github.com/apache/httpcomponents-core) from 5.2.1 to 5.2.2.
- [Changelog](https://github.com/apache/httpcomponents-core/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-core/compare/rel/v5.2.1...rel/v5.2.2)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.core5:httpcore5
  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>
2023-08-14 16:38:08 +05:30
dependabot[bot]
512af60f49 Bump dependency.alfresco-transform-core.version (#2134)
Bumps `dependency.alfresco-transform-core.version` from 4.0.1-A2 to 4.0.1-A3.

Updates `org.alfresco:alfresco-transform-model` from 4.0.1-A2 to 4.0.1-A3
- [Release notes](https://github.com/Alfresco/alfresco-transform-core/releases)
- [Changelog](https://github.com/Alfresco/alfresco-transform-core/blob/master/docs/build-and-release.md)
- [Commits](https://github.com/Alfresco/alfresco-transform-core/compare/4.0.1-A2...4.0.1-A3)

Updates `org.alfresco:alfresco-transform-model:tests` from 4.0.1-A2 to 4.0.1-A3
- [Release notes](https://github.com/Alfresco/alfresco-transform-core/releases)
- [Changelog](https://github.com/Alfresco/alfresco-transform-core/blob/master/docs/build-and-release.md)
- [Commits](https://github.com/Alfresco/alfresco-transform-core/compare/4.0.1-A2...4.0.1-A3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-14 16:37:25 +05:30
alfresco-build
91edbd12d8 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-14 08:30:54 +00:00
alfresco-build
d06c1c483c [maven-release-plugin][skip ci] prepare release 23.1.0.189 2023-08-14 08:30:51 +00:00
dependabot[bot]
f3e2855787 Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 (#2100)
Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  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>
2023-08-14 11:20:41 +05:30
alfresco-build
eacd10d40e [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-13 00:07:02 +00:00
alfresco-build
ed6c22bd62 [maven-release-plugin][skip ci] prepare release 23.1.0.188 2023-08-13 00:06:59 +00:00
Alfresco CI User
0c6eae8ffa [force] Force release for 2023-08-13. 2023-08-13 00:03:07 +00:00
alfresco-build
ee345c6f7a [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-09 17:05:25 +00:00
alfresco-build
bcc9dcae02 [maven-release-plugin][skip ci] prepare release 23.1.0.187 2023-08-09 17:05:22 +00:00
Piotr Żurek
af5738c7c2 ACS-5659 Jakarta Migration (#1983)
Co-authored-by: kcichonczyk <kamil.cichonczyk@hyland.com>
Co-authored-by: Sara Aspery <sara.aspery@alfresco.com>
Co-authored-by: kcichonczyk <88378534+kcichonczyk@users.noreply.github.com>
Co-authored-by: Kacper Magdziarz <95610011+kmagdziarz@users.noreply.github.com>
Co-authored-by: kmagdziarz <Kacper.Magdziarz@hyland.com>
Co-authored-by: Marcin Strankowski <74721865+mstrankowski@users.noreply.github.com>
2023-08-09 17:48:47 +02:00
alfresco-build
d713bc21d4 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-09 13:47:20 +00:00
alfresco-build
35cb8b7c82 [maven-release-plugin][skip ci] prepare release 23.1.0.186 2023-08-09 13:47:17 +00:00
canpan14
48e4b0b48f Add file name to DirectAccessUrl (#2081)
* Add file name to DirectAccessUrl

This will cause it to be returned in the response

* Only set file name if direct url is enabled

* Fix bad mock and protect null pointer

* Update data-model/src/main/java/org/alfresco/service/cmr/repository/DirectAccessUrl.java

null safe comparison

Co-authored-by: Piotr Żurek <Piotr.Zurek@hyland.com>

---------

Co-authored-by: Piotr Żurek <Piotr.Zurek@hyland.com>
2023-08-09 14:58:45 +02:00
alfresco-build
de9d772962 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-09 09:46:08 +00:00
alfresco-build
d55e670c9f [maven-release-plugin][skip ci] prepare release 23.1.0.185 2023-08-09 09:46:04 +00:00
dependabot[bot]
b42521dcf4 Bump org.yaml:snakeyaml from 2.0 to 2.1 (#2119)
Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 2.0 to 2.1.
- [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.1..snakeyaml-2.0)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  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>
2023-08-09 12:46:32 +05:30
Marcin Strankowski
66ff28243f Fix/mnt 23878 timeouting transforms fix (#2126)
* MNT-23878: By default there was no timeout set for HttpClients, we've wrongly directed ourselfes with the values of currently existing mTLS (Solr/Elasticsearch) for Transform that used default http clients with infinite timeouts
2023-08-08 14:21:13 +02:00
alfresco-build
87cab11fe2 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-08 10:28:31 +00:00
alfresco-build
109a7db259 [maven-release-plugin][skip ci] prepare release 23.1.0.184 2023-08-08 10:28:28 +00:00
Domenico Sibilio
91c9191cd5 ACS-5039 Bump ATS version to 4.0.1-A2 / 3.0.1-A2 (#2124) 2023-08-08 11:26:02 +02:00
alfresco-build
700bfbce29 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-07 13:07:49 +00:00
alfresco-build
62435255aa [maven-release-plugin][skip ci] prepare release 23.1.0.183 2023-08-07 13:07:46 +00:00
suneet-gupta
9e7125edbd Preparing build for ACS 23.1.0-M3 release 2023-08-07 16:25:24 +05:30
alfresco-build
a0c39e4d59 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-06 00:06:30 +00:00
alfresco-build
fc206cfd76 [maven-release-plugin][skip ci] prepare release 23.1.0.182 2023-08-06 00:06:27 +00:00
Alfresco CI User
1da5e242bc [force] Force release for 2023-08-06. 2023-08-06 00:03:10 +00:00
alfresco-build
317ac9c5fe [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-04 07:49:37 +00:00
alfresco-build
8b4dcb293b [maven-release-plugin][skip ci] prepare release 23.1.0.181 2023-08-04 07:49:34 +00:00
kcichonczyk
de97875518 [ACS-5756] Introduce locks to make sure the methods are not interfering with each other 2023-08-04 09:03:56 +02:00
alfresco-build
96c3a7cec0 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-03 17:06:28 +00:00
alfresco-build
bf2ec6c36f [maven-release-plugin][skip ci] prepare release 23.1.0.180 2023-08-03 17:06:26 +00:00
Tom Page
36d09c230e PRODENG-222 Update to PMD 7. (#2111) 2023-08-03 15:46:32 +01:00
alfresco-build
2ce4d837c5 [maven-release-plugin][skip ci] prepare for next development iteration 2023-08-01 15:24:32 +00:00
alfresco-build
ffe60440af [maven-release-plugin][skip ci] prepare release 23.1.0.179 2023-08-01 15:24:28 +00:00
Oskar Rajzner
b4eb5b6607 ACS-5020 Fix intermittent test class failure(#2098) 2023-08-01 16:00:08 +02:00
alfresco-build
9e7bd17961 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-30 02:05:19 +00:00
alfresco-build
66426ae9db [maven-release-plugin][skip ci] prepare release 23.1.0.178 2023-07-30 02:05:16 +00:00
suneet-gupta
83a17d0876 Preparing Code freeze Alpha Release 2023-07-30 06:26:33 +05:30
alfresco-build
500d9fa3aa [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-30 00:06:55 +00:00
alfresco-build
992617667e [maven-release-plugin][skip ci] prepare release 23.1.0.177 2023-07-30 00:06:52 +00:00
Alfresco CI User
3a1596c3fa [force] Force release for 2023-07-30. 2023-07-30 00:03:16 +00:00
alfresco-build
d3883e0ad8 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-29 10:35:58 +00:00
alfresco-build
bc621ff4cf [maven-release-plugin][skip ci] prepare release 23.1.0.176 2023-07-29 10:35:53 +00:00
suneet-gupta
ca3f620bc3 Preparing Code freeze Alpha Release 2023-07-29 15:20:02 +05:30
alfresco-build
208f139f57 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-28 11:20:41 +00:00
alfresco-build
780bc94796 [maven-release-plugin][skip ci] prepare release 23.1.0.175 2023-07-28 11:20:38 +00:00
Oskar Rajzner
86189efc4a ACS-5449 Code quality improvements to LockServiceImplTest & RuleServiceImplUnitTest (#2087) 2023-07-28 12:20:18 +02:00
alfresco-build
a39fa50bcf [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-28 10:03:06 +00:00
alfresco-build
bce433fa12 [maven-release-plugin][skip ci] prepare release 23.1.0.174 2023-07-28 10:03:04 +00:00
Piotr Żurek
d7f5e72d2d ACS-5720 Fix NPE while retrieving the RMI Registry (#2095) 2023-07-28 11:07:14 +02:00
alfresco-build
cf5bf05096 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-27 19:25:35 +00:00
alfresco-build
f96014e570 [maven-release-plugin][skip ci] prepare release 23.1.0.173 2023-07-27 19:25:32 +00:00
Maciej Pichura
154614b674 ACS-5624 Search and Favorites API enhancements - E2E test (#2091)
* ACS-5624: Seacrh and Favorites API enhancements.

* ACS-5624: Reverting unwanted test change.

* ACS-5624: Adding isFavorite to SearchNodeModel.

* ACS-5624: Moving E2E test from InsightEngine/SearchServices project.

* ACS-5624: Moving E2E test from InsightEngine/SearchServices project.

* ACS-5624: Splitting test into 2 methods.

* ACS-5624: Fixing test method name

Co-authored-by: Tom Page <tpage-alfresco@users.noreply.github.com>

* ACS-5624: Fixing some static code scan issues.

---------

Co-authored-by: Tom Page <tpage-alfresco@users.noreply.github.com>
2023-07-27 18:01:41 +02:00
alfresco-build
c842e6ba49 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-27 13:46:15 +00:00
alfresco-build
a1d6538223 [maven-release-plugin][skip ci] prepare release 23.1.0.172 2023-07-27 13:46:12 +00:00
Oskar Rajzner
7008875dbc ACS-5449 Add commons-net to dependenciesManagement in pom.xml (#2093) 2023-07-27 14:25:57 +02:00
Tom Page
0b6b405c5f ACS-5698 Allow specifying version when performing force release. (#2089) 2023-07-26 15:51:12 +01:00
alfresco-build
f96b638c38 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-26 13:37:18 +00:00
alfresco-build
8bab9b3331 [maven-release-plugin][skip ci] prepare release 23.1.0.171 2023-07-26 13:37:15 +00:00
Oskar Rajzner
8a75a48f99 ACS-5449 Bump commons-net from 3.8.0 to 3.9.0 (#2080) 2023-07-26 14:48:25 +02:00
alfresco-build
6f27523f5f [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-26 11:01:56 +00:00
alfresco-build
3cb17dc1a5 [maven-release-plugin][skip ci] prepare release 23.1.0.170 2023-07-26 11:01:52 +00:00
Oskar Rajzner
4faeaff6b6 ACS-5449 Bump mockito-core from 4.9.0 to 5.4.0 (#2071) 2023-07-26 11:37:59 +02:00
Tom Page
fcf3e005e4 Merge pull request #2085 from Alfresco/feature/MNT-23763_ImagePreviewWebscript
MNT-23763 Fix image preview webscript for use with ES.
2023-07-26 10:14:39 +01:00
Tom Page
5253e77444 MNT-23763 Fix boolean logic for two more webscripts to match latest search behaviour. 2023-07-25 15:24:00 +01:00
alfresco-build
e2464ffd4f [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-25 14:09:58 +00:00
alfresco-build
57da82028f [maven-release-plugin][skip ci] prepare release 23.1.0.169 2023-07-25 14:09:54 +00:00
Tom Page
90dd44e63b MNT-23763 Update image preview dashlet query to work with Solr and ES.
Also mark previews and thumbnails as isIndexed:false in the sample site.
2023-07-25 15:05:42 +01:00
Piotr Żurek
61cf8a7273 PRODSEC-7238 Upgrade Camel/Netty (#2084) 2023-07-25 14:45:54 +02:00
alfresco-build
7684a74dcc [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-24 14:12:47 +00:00
alfresco-build
4a49c29b3c [maven-release-plugin][skip ci] prepare release 23.1.0.168 2023-07-24 14:12:44 +00:00
Kacper Magdziarz
693f8cd5c9 [ACS-5578] Remove cmistck servlet (#2083) 2023-07-24 15:24:01 +02:00
alfresco-build
083bd3ce35 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-23 00:08:00 +00:00
alfresco-build
aef7febbf5 [maven-release-plugin][skip ci] prepare release 23.1.0.167 2023-07-23 00:07:57 +00:00
Alfresco CI User
db1644dbb2 [force] Force release for 2023-07-23. 2023-07-23 00:03:20 +00:00
Tom Page
b66f9f604b Merge pull request #2065 from canpan14/feature/2064-request-direct-access-url-file-name-option
File name param for direct access url requests
2023-07-20 11:15:44 +01:00
Maciej Pichura
b423a7ae96 Feature/ACS-5624 Search and Favorites API enhancements (#2076)
* ACS-5624: Seacrh and Favorites API enhancements.

* ACS-5624: Reverting unwanted test change.

* ACS-5624: Adding isFavorite to SearchNodeModel.
2023-07-20 10:39:17 +02:00
alfresco-build
114cec4987 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-19 10:12:29 +00:00
alfresco-build
a480370459 [maven-release-plugin][skip ci] prepare release 23.1.0.166 2023-07-19 10:12:25 +00:00
Manish Kumar
22cc54cc03 [MNT-23666] Added fix to delete the link after document deletion (#2045)
* [MNT-23666] Added fix to delete the link after document deletion

* Resolved PMD scan warnings

* Revert "Resolved PMD scan warnings"

This reverts commit 5e0ea61a56.
2023-07-19 13:31:13 +05:30
Oskar Rajzner
af26f07cf3 ACS-5449 Bump commons-io from 2.11.0 to 2.13.0 (#2073) 2023-07-19 09:57:06 +02:00
dependabot[bot]
0e2ac5168c Bump junrar from 7.5.4 to 7.5.5 (#2078)
Bumps [junrar](https://github.com/junrar/junrar) from 7.5.4 to 7.5.5.
- [Release notes](https://github.com/junrar/junrar/releases)
- [Changelog](https://github.com/junrar/junrar/blob/master/CHANGELOG.md)
- [Commits](https://github.com/junrar/junrar/compare/v7.5.4...v7.5.5)

---
updated-dependencies:
- dependency-name: com.github.junrar:junrar
  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>
2023-07-19 09:31:39 +02:00
alfresco-build
2ed631d3c2 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-19 06:33:47 +00:00
alfresco-build
4a02e33a28 [maven-release-plugin][skip ci] prepare release 23.1.0.165 2023-07-19 06:33:44 +00:00
rrajoria
fc7fe40709 Update google drive version 2023-07-19 11:11:33 +05:30
alfresco-build
89b3ba6c74 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-16 00:06:41 +00:00
alfresco-build
8a086f9312 [maven-release-plugin][skip ci] prepare release 23.1.0.164 2023-07-16 00:06:38 +00:00
Alfresco CI User
3bcba75c39 [force] Force release for 2023-07-16. 2023-07-16 00:03:23 +00:00
alfresco-build
bdda3f94f3 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-13 15:44:00 +00:00
alfresco-build
e97868c8c3 [maven-release-plugin][skip ci] prepare release 23.1.0.163 2023-07-13 15:43:56 +00:00
Tom Page
fea4f7f901 PRODENG-222 Try new location for PMD scan. (#2068) 2023-07-13 15:52:43 +01:00
canpan14
3fd3b128be Fix bad interfaces causing loop 2023-07-13 08:36:25 -04:00
Tom Page
d79d864cbb Update links to new location of Community Hub. [no ci] (#2067) 2023-07-13 07:46:12 +01:00
canpan14
cb4dde6035 Update code based on feedback 2023-07-12 15:12:07 -04:00
canpan14
3215bc50c6 Add unit tests, ignore override if empty 2023-07-12 11:07:51 -04:00
canpan14
70430ea96c File name param for direct acccess url requests
Adds optional file name parameter for all direct access url requests
https://github.com/Alfresco/alfresco-community-repo/issues/2064
2023-07-12 10:07:34 -04:00
dependabot[bot]
e8ae90b310 Bump maven-dependency-plugin from 3.5.0 to 3.6.0 (#1943)
Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.5.0 to 3.6.0.
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.5.0...maven-dependency-plugin-3.6.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-dependency-plugin
  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>
2023-07-12 14:42:16 +02:00
dependabot[bot]
303b524158 Bump email from 1.23 to 1.24 (#2060)
Bumps [email](https://github.com/Alfresco/alfresco-tas-email) from 1.23 to 1.24.
- [Changelog](https://github.com/Alfresco/alfresco-tas-email/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/Alfresco/alfresco-tas-email/compare/v1.23...v1.24)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:email
  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>
2023-07-12 12:26:51 +02:00
dependabot[bot]
afa48404c7 Bump buildnumber-maven-plugin from 3.1.0 to 3.2.0 (#1985)
Bumps [buildnumber-maven-plugin](https://github.com/mojohaus/buildnumber-maven-plugin) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/mojohaus/buildnumber-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/buildnumber-maven-plugin/compare/3.1.0...3.2.0)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:buildnumber-maven-plugin
  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>
2023-07-12 11:38:30 +02:00
Tom Page
8af5c38caa PRODENG-222 Upgrade PMD action to include report summary. (#2063) 2023-07-12 10:12:05 +01:00
dependabot[bot]
6f4f3baae2 Bump dependency.jackson.version from 2.15.1 to 2.15.2 (#1974)
Bumps `dependency.jackson.version` from 2.15.1 to 2.15.2.

Updates `jackson-core` from 2.15.1 to 2.15.2
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.1...jackson-core-2.15.2)

Updates `jackson-databind` from 2.15.1 to 2.15.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-datatype-joda` from 2.15.1 to 2.15.2
- [Commits](https://github.com/FasterXML/jackson-datatype-joda/compare/jackson-datatype-joda-2.15.1...jackson-datatype-joda-2.15.2)

Updates `jackson-dataformat-yaml` from 2.15.1 to 2.15.2
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.15.1...jackson-dataformats-text-2.15.2)

Updates `jackson-annotations` from 2.15.1 to 2.15.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-module-jaxb-annotations` from 2.15.1 to 2.15.2
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.15.1...jackson-modules-base-2.15.2)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-joda
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.module:jackson-module-jaxb-annotations
  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>
2023-07-12 11:07:13 +02:00
dependabot[bot]
95d6fce43f Bump webdav from 1.18 to 1.20 (#2061)
Bumps [webdav](https://github.com/Alfresco/alfresco-tas-webdav) from 1.18 to 1.20.
- [Changelog](https://github.com/Alfresco/alfresco-tas-webdav/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/Alfresco/alfresco-tas-webdav/compare/v1.18...v1.20)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:webdav
  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>
2023-07-12 10:59:59 +02:00
alfresco-build
d7722e4f25 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-11 14:48:58 +00:00
alfresco-build
6a87008665 [maven-release-plugin][skip ci] prepare release 23.1.0.162 2023-07-11 14:48:55 +00:00
dependabot[bot]
6d14548119 Bump acs-event-model from 0.0.22 to 0.0.23 (#1950)
Bumps [acs-event-model](https://github.com/Alfresco/acs-event-model) from 0.0.22 to 0.0.23.
- [Commits](https://github.com/Alfresco/acs-event-model/commits)

---
updated-dependencies:
- dependency-name: org.alfresco:acs-event-model
  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>
2023-07-11 16:03:52 +02:00
dependabot[bot]
67c4751676 Bump lombok from 1.18.26 to 1.18.28 (#1960)
Bumps [lombok](https://github.com/projectlombok/lombok) from 1.18.26 to 1.18.28.
- [Release notes](https://github.com/projectlombok/lombok/releases)
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.26...v1.18.28)

---
updated-dependencies:
- dependency-name: org.projectlombok:lombok
  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>
2023-07-11 16:03:24 +02:00
MohinishSah
d4a60a1d24 Update pom.xml 2023-07-11 16:59:20 +05:30
MohinishSah
4388a75924 Update pom.xml 2023-07-11 16:46:31 +05:30
dependabot[bot]
5982ec7172 Bump swagger-parser from 1.0.66 to 1.0.67 (#1966)
Bumps [swagger-parser](https://github.com/swagger-api/swagger-parser) from 1.0.66 to 1.0.67.
- [Release notes](https://github.com/swagger-api/swagger-parser/releases)
- [Commits](https://github.com/swagger-api/swagger-parser/compare/v1.0.66...v1.0.67)

---
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>
2023-07-11 13:11:00 +02:00
dependabot[bot]
7f26658eba Bump webdav from 1.16 to 1.18 (#2055)
Bumps [webdav](https://github.com/Alfresco/alfresco-tas-webdav) from 1.16 to 1.18.
- [Changelog](https://github.com/Alfresco/alfresco-tas-webdav/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/Alfresco/alfresco-tas-webdav/compare/v1.16...v1.18)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:webdav
  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>
2023-07-11 13:03:14 +02:00
dependabot[bot]
88273f3073 Bump commons-codec from 1.15 to 1.16.0 (#2013)
Bumps [commons-codec](https://github.com/apache/commons-codec) from 1.15 to 1.16.0.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.15...rel/commons-codec-1.16.0)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  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>
2023-07-11 13:02:46 +02:00
alfresco-build
7218864a44 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-11 08:07:36 +00:00
alfresco-build
133dd2b1c1 [maven-release-plugin][skip ci] prepare release 23.1.0.161 2023-07-11 08:07:33 +00:00
dependabot[bot]
ade270743e Bump json-smart from 2.4.11 to 2.5.0 (#2056)
Bumps [json-smart](https://github.com/netplex/json-smart-v2) from 2.4.11 to 2.5.0.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](https://github.com/netplex/json-smart-v2/compare/2.4.11...2.5.0)

---
updated-dependencies:
- dependency-name: net.minidev:json-smart
  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>
2023-07-11 09:21:54 +02:00
dependabot[bot]
59b50f0c67 Bump email from 1.21 to 1.23 (#2054)
Bumps [email](https://github.com/Alfresco/alfresco-tas-email) from 1.21 to 1.23.
- [Changelog](https://github.com/Alfresco/alfresco-tas-email/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/Alfresco/alfresco-tas-email/compare/v1.21...v1.23)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:email
  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>
2023-07-11 09:20:23 +02:00
dependabot[bot]
8837c15a67 Bump ftp from 1.17 to 1.18 (#2053)
Bumps [ftp](https://github.com/Alfresco/alfresco-tas-ftp) from 1.17 to 1.18.
- [Changelog](https://github.com/Alfresco/alfresco-tas-ftp/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/Alfresco/alfresco-tas-ftp/compare/v1.17...v1.18)

---
updated-dependencies:
- dependency-name: org.alfresco.tas:ftp
  dependency-type: direct:development
  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>
2023-07-11 09:20:01 +02:00
dependabot[bot]
bac818baf2 Bump cargo-maven3-plugin from 1.10.7 to 1.10.8 (#2036)
Bumps cargo-maven3-plugin from 1.10.7 to 1.10.8.

---
updated-dependencies:
- dependency-name: org.codehaus.cargo:cargo-maven3-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 16:36:05 +02:00
dependabot[bot]
2f6c845865 Bump groovy-json from 3.0.17 to 3.0.18 (#2028)
Bumps [groovy-json](https://github.com/apache/groovy) from 3.0.17 to 3.0.18.
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.groovy:groovy-json
  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>
2023-07-10 15:00:36 +02:00
dependabot[bot]
347627d0fd Bump groovy from 3.0.17 to 3.0.18 (#2029)
Bumps [groovy](https://github.com/apache/groovy) from 3.0.17 to 3.0.18.
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.groovy:groovy
  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>
2023-07-10 15:00:18 +02:00
alfresco-build
a495dae1db [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-10 10:27:06 +00:00
alfresco-build
a07da7308f [maven-release-plugin][skip ci] prepare release 23.1.0.160 2023-07-10 10:27:03 +00:00
dependabot[bot]
8b472e89f5 Bump guava from 32.0.1-jre to 32.1.1-jre (#2050)
Bumps [guava](https://github.com/google/guava) from 32.0.1-jre to 32.1.1-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  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>
2023-07-10 11:37:33 +02:00
dependabot[bot]
a3aaaedb0e Bump docker-java from 3.3.0 to 3.3.2 (#2051)
Bumps [docker-java](https://github.com/docker-java/docker-java) from 3.3.0 to 3.3.2.
- [Release notes](https://github.com/docker-java/docker-java/releases)
- [Changelog](https://github.com/docker-java/docker-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/docker-java/docker-java/compare/3.3.0...3.3.2)

---
updated-dependencies:
- dependency-name: com.github.docker-java:docker-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 11:36:16 +02:00
dependabot[bot]
044d07af86 Bump dependency.webscripts.version from 8.44 to 8.45 (#2048)
Bumps `dependency.webscripts.version` from 8.44 to 8.45.

Updates `spring-surf-core-configservice` from 8.44 to 8.45

Updates `spring-webscripts` from 8.44 to 8.45
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.44...spring-surf-webscripts-parent-8.45)

Updates `spring-webscripts` from 8.44 to 8.45
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.44...spring-surf-webscripts-parent-8.45)

Updates `spring-webscripts-api` from 8.44 to 8.45

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 11:26:58 +02:00
alfresco-build
110ccd5574 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-09 00:06:43 +00:00
alfresco-build
8fbe444266 [maven-release-plugin][skip ci] prepare release 23.1.0.159 2023-07-09 00:06:41 +00:00
Alfresco CI User
5ef0bbb840 [force] Force release for 2023-07-09. 2023-07-09 00:03:34 +00:00
alfresco-build
ba5720b494 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-07 09:42:37 +00:00
alfresco-build
866adc16f3 [maven-release-plugin][skip ci] prepare release 23.1.0.158 2023-07-07 09:42:33 +00:00
Tom Page
577788a8c6 PRODSEC-7249 Update guava. (#2047) 2023-07-07 09:51:27 +01:00
alfresco-build
6b02b4dc05 [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-06 09:39:16 +00:00
alfresco-build
fc847ac7a5 [maven-release-plugin][skip ci] prepare release 23.1.0.157 2023-07-06 09:39:13 +00:00
pardhukota-pk
25e8f0c6f8 Adding dummy logs (#2043)
Co-authored-by: Kota Pardhu <Kota.Pardhu@hyland.com>
2023-07-06 14:21:53 +05:30
alfresco-build
499cf08ecd [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-05 16:22:57 +00:00
alfresco-build
f0c191d7ca [maven-release-plugin][skip ci] prepare release 23.1.0.156 2023-07-05 16:22:54 +00:00
evasques
a1faf97fc5 ACS-5487 - Track Total Hits on ES (#2041)
SearchParameters - added trackTotalHits (int) attribute
SearchRequest - Added trackTotalHitsLimit (int) to the Limits attribute and mapped it to the SearchParameters
Changed the SearchRequest model in TAS to include a new RestRequestLimitsModel that has the new trackTotalHitsLimit attribute
SearchMapperTests to test the changes in the SearchParameters
2023-07-05 15:39:36 +01:00
alfresco-build
d372ff6f5e [maven-release-plugin][skip ci] prepare for next development iteration 2023-07-05 12:06:36 +00:00
506 changed files with 9254 additions and 8544 deletions

View File

@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
if: >
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -52,7 +52,7 @@ jobs:
if: >
((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && github.event_name != 'pull_request') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -76,7 +76,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
steps:
- uses: Alfresco/alfresco-build-tools/.github/actions/pmd@v2.5.0
- uses: Alfresco/ya-pmd-scan@v2.0.0
with:
fail-on-new-issues: "false"
@@ -87,7 +87,7 @@ jobs:
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -108,7 +108,7 @@ jobs:
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -153,7 +153,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -183,7 +183,7 @@ jobs:
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -209,7 +209,7 @@ jobs:
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -234,7 +234,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip db]')) ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -259,7 +259,7 @@ jobs:
contains(github.event.head_commit.message, '[latest db]') ||
contains(github.event.head_commit.message, '[db]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -282,7 +282,7 @@ jobs:
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -303,7 +303,7 @@ jobs:
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -372,7 +372,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip tas]')) ||
contains(github.event.head_commit.message, '[tas]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -439,7 +439,7 @@ jobs:
if: >
!contains(github.event.head_commit.message, '[skip repo]') &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
steps:
- uses: actions/checkout@v3
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0
@@ -462,7 +462,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip ags]')) ||
contains(github.event.head_commit.message, '[ags]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -493,7 +493,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip ags]')) ||
contains(github.event.head_commit.message, '[ags on MySQL]')) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
strategy:
fail-fast: false
matrix:
@@ -524,7 +524,7 @@ jobs:
!contains(github.event.head_commit.message, '[skip ags]') && !contains(github.event.head_commit.message, '[skip tas]')) ||
(contains(github.event.head_commit.message, '[ags]') && contains(github.event.head_commit.message, '[tas]'))) &&
!contains(github.event.head_commit.message, '[skip tests]') &&
!contains(github.event.head_commit.message, '[force]')
!contains(github.event.head_commit.message, '[force')
env:
REQUIRES_LOCAL_IMAGES: true
steps:

View File

@@ -3,14 +3,12 @@ Thanks for your interest in contributing to this project!
The following is a set of guidelines for contributing to this library. Most of them will make the life of the reviewer easier and therefore decrease the time required for the patch be included in the next version.
Because this project forms a part of Alfresco Content Services, the guidelines are hosted in the [Alfresco Social Community](http://community.alfresco.com/community/ecm) where they can be referenced from multiple projects.
Read an [overview on how this project is goverened](https://community.alfresco.com/docs/DOC-6385-project-overview-repository).
Because this project forms a part of Alfresco Content Services, the guidelines are hosted in the [Alfresco Social Community](https://hub.alfresco.com/t5/alfresco-content-services-ecm/ct-p/ECM-software) where they can be referenced from multiple projects.
You can report an issue in the ALF project of the [Alfresco issue tracker](http://issues.alfresco.com).
Read [instructions for a good issue report](https://community.alfresco.com/docs/DOC-6263-reporting-an-issue).
Read [instructions for a good issue report](https://hub.alfresco.com/t5/alfresco-content-services-hub/reporting-an-issue/ba-p/289727).
Read [instructions for making a contribution](https://community.alfresco.com/docs/DOC-6269-submitting-contributions).
Read [instructions for making a contribution](https://hub.alfresco.com/t5/alfresco-content-services-hub/alfresco-contribution-agreement/ba-p/293276).
Please follow [the coding standards](https://community.alfresco.com/docs/DOC-4658-coding-standards).
Please follow [the coding standards](https://hub.alfresco.com/t5/alfresco-content-services-hub/coding-standards-for-alfresco-content-services/ba-p/290457).

View File

@@ -26,7 +26,7 @@ Repository is a library packaged as a jar file which contains the following:
Remote API is a library packaged as a jar file which contains the following:
* REST API framework
* WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know)
* WebScript implementations including [V1 REST APIs](https://hub.alfresco.com/t5/alfresco-content-services-blog/v1-rest-api-10-things-you-should-know/ba-p/287692)
* [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations
#### Artifacts
@@ -94,4 +94,4 @@ The enterprise projects which extend the `alfresco-community-repo` use the same
artifact version number.
### Contributing guide
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<build>
@@ -82,7 +82,25 @@
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.3.0</version>
<version>3.3.2</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15to18</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -28,7 +28,7 @@ package org.alfresco.rest.core;
import static lombok.AccessLevel.PROTECTED;
import javax.annotation.Resource;
import jakarta.annotation.Resource;
import lombok.Getter;
import lombok.Setter;

View File

@@ -50,7 +50,6 @@ import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.junit.Ignore;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.AssertJUnit;
import org.testng.annotations.BeforeClass;
@@ -65,7 +64,9 @@ import java.util.List;
import static org.alfresco.rest.core.v0.BaseAPI.NODE_REF_WORKSPACE_SPACES_STORE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.FILE_PLAN_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAspects.CUT_OFF_ASPECT;
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.*;
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.CREATED_DATE;
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.DATE_FILED;
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.CUT_OFF_DATE;
import static org.alfresco.rest.rm.community.util.CommonTestUtils.generateTestPrefix;
import static org.alfresco.utility.report.log.Step.STEP;
import static org.junit.Assert.assertNull;
@@ -84,28 +85,25 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
@Autowired
private RecordFoldersAPI recordFoldersAPI;
private final static String TEST_PREFIX = generateTestPrefix(DispositionScheduleLinkedRecordsTest.class);
private RecordCategory Category1;
private RecordCategoryChild CopyCatFolder,folder1,CatFolder,folder2;
private static final String categoryRM3077 = TEST_PREFIX + "RM-3077_manager_sees_me";
private static final String copyCategoryRM3077 = "Copy_of_" + categoryRM3077;
private static final String folderRM3077 = "RM-3077_folder_"+ categoryRM3077;
private static final String copyFolderRM3077 = "Copy_of_" + folderRM3077;
private final String folder = TEST_PREFIX + "RM-2937 folder ghosting";
private static final String firstCategoryRM3060 = TEST_PREFIX + "RM-3060_category_record";
private static final String secondCategoryRM3060 = "Copy_of_" + firstCategoryRM3060;
private static final String firstFolderRM3060 = TEST_PREFIX + "RM-3060_folder";
private static final String secondFolderRM3060 = TEST_PREFIX + "RM-3060_disposition_on_Record_Level";
private static final String electronicRecordRM3060 = TEST_PREFIX + "RM-3060_electronic_1_record";
private static final String nonElectronicRecordRM3060 = TEST_PREFIX + "RM-3060_non-electronic_record";
private static final String firstCategoryRM1622 = TEST_PREFIX + "RM-1622_category_record";
private static final String secondCategoryRM1622 = "Copy_of_" + firstCategoryRM1622;;
private static final String firstFolderRM1622 = TEST_PREFIX + "RM-1622_folder";
private static final String electronicRecordRM1622 = TEST_PREFIX + "RM-1622_electronic_1_record";
private static final String secondFolderRM1622 = TEST_PREFIX + "RM-1622_disposition_on_Record_Level";
private static final String CATEGORY_RM_3077 = TEST_PREFIX + "RM-3077_manager_sees_me";
private static final String COPY_CATEGORY_RM_3077 = "Copy_of_" + CATEGORY_RM_3077;
private static final String FOLDER_RM_3077 = "RM-3077_folder_"+ CATEGORY_RM_3077;
private static final String COPY_FOLDER_RM_3077 = "Copy_of_" + FOLDER_RM_3077;
private static final String FIRST_CATEGORY_RM_3060 = TEST_PREFIX + "RM-3060_category_record";
private static final String SECOND_CATEGORY_RM_3060 = "Copy_of_" + FIRST_CATEGORY_RM_3060;
private static final String FIRST_FOLDER_RM_3060 = TEST_PREFIX + "RM-3060_folder";
private static final String SECOND_FOLDER_RM_3060 = TEST_PREFIX + "RM-3060_disposition_on_Record_Level";
private static final String ELECTRONIC_RECORD_RM_3060 = TEST_PREFIX + "RM-3060_electronic_1_record";
private static final String NON_ELECTRONIC_RECORD_RM_3060 = TEST_PREFIX + "RM-3060_non-electronic_record";
private static final String FIRST_CATEGORY_RM_1622 = TEST_PREFIX + "RM-1622_category_record";
private static final String SECOND_CATEGORY_RM_1622 = "Copy_of_" + FIRST_CATEGORY_RM_1622;
private static final String FIRST_FOLDER_RM_1622 = TEST_PREFIX + "RM-1622_folder";
private static final String ELECTRONIC_RECORD_RM_1622 = TEST_PREFIX + "RM-1622_electronic_1_record";
private static final String SECOND_FOLDER_RM_1622 = TEST_PREFIX + "RM-1622_disposition_on_Record_Level";
private static final String TRANSFER_LOCATION = TEST_PREFIX + "RM-3060_transferred_records";
public static final String TRANSFER_TYPE = "rma:transferred";
private FilePlan filePlanModel;
private UserModel rmAdmin, rmManager;
private UserModel rmAdmin;
@BeforeClass(alwaysRun = true)
public void setupDispositionScheduleLinkedRecordsTest() {
@@ -120,11 +118,12 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
UserRoles.ROLE_RM_ADMIN.roleId);
// create "rm Manager" user if it does not exist and assign it to RM Administrator role
rmManager = getDataUser().createRandomTestUser();
UserModel rmManager = getDataUser().createRandomTestUser();
rmRolesAndActionsAPI.assignRoleToUser(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(),rmManager.getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), rmManager.getUsername(),
UserRoles.ROLE_RM_MANAGER.roleId);
}
/**
* Disposition Schedule on Record Folder with linked records test
* <p>
@@ -136,194 +135,202 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
* <p>
* <p/> TestRail Test C775<p/>
**/
// @Ignore("ACS-5020")
// @Test
// @AlfrescoTest(jira = "RM-1622")
// public void dispositionScheduleLinkedRecords() throws UnsupportedEncodingException {
// STEP("Create record category");
// Category1 = createRootCategory(categoryRM3077);
//
// //create retention schedule
// dispositionScheduleService.createCategoryRetentionSchedule(Category1.getName(), false);
//
// // add cut off step
// dispositionScheduleService.addCutOffAfterPeriodStep(Category1.getName(), "day|2", CREATED_DATE);
//
// //create a copy of the category recordsCategory
// String CopyCategoryId = copyCategory(getAdminUser(),Category1.getId(), copyCategoryRM3077);
//
// // create folders in both categories
// CatFolder = createRecordFolder(Category1.getId(), folderRM3077);
// CopyCatFolder = createRecordFolder(CopyCategoryId, copyFolderRM3077);
//
// // create record files
// String electronicRecord = "RM-2801 electronic record";
// Record elRecord = createElectronicRecord(CatFolder.getId(), electronicRecord);
// String elRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), CatFolder.getName(), electronicRecord);
//
// String nonElectronicRecord = "RM-2801 non-electronic record";
// Record nonElRecord = createNonElectronicRecord(CatFolder.getId(), nonElectronicRecord);
// String nonElRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), CatFolder.getName(), nonElectronicRecord);
//
// // link the records to copy folder, then complete them
// List<String> recordLists = new ArrayList<>();
// recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + elRecord.getId());
// recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + nonElRecord.getId());
//
// linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK,copyCategoryRM3077 + "/" +
// copyFolderRM3077, recordLists);
// recordsAPI.completeRecord(rmAdmin.getUsername(), rmAdmin.getPassword(), elRecordFullName);
// recordsAPI.completeRecord(rmAdmin.getUsername(), rmAdmin.getPassword(), nonElRecordFullName);
//
// // edit disposition date
// recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),editDispositionDateJson(),CatFolder.getName());
//
// // cut off the Folder
// recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),CatFolder.getName());
//
// // Verify the Content
// Node electronicNode = getNode(elRecord.getId());
// assertTrue("The content of " + electronicRecord + " is available",
// StringUtils.isEmpty(electronicNode.getNodeContent().getResponse().getBody().asString()));
//
// // verify the Properties
// AssertJUnit.assertNull("The properties are present even after cutting off the record.", elRecord.getProperties().getTitle());
//
// // delete precondition
// deleteRecordCategory(Category1.getId());
// deleteRecordCategory(CopyCategoryId);
// }
// /**
// * Test covering RM-3060
// * Check the disposition steps for a record can be executed
// * When the record is linked to a folder with the same disposition schedule
// * */
// @Ignore("ACS-5020")
//// @Test
// @AlfrescoTest (jira = "RM-3060")
// public void sameDispositionScheduleLinkedRecords() throws UnsupportedEncodingException {
//
// // create a category with retention applied on records level
// RecordCategory recordCategory = getRestAPIFactory().getFilePlansAPI(rmAdmin)
// .createRootRecordCategory(RecordCategory.builder().name(firstCategoryRM3060).build(),
// RecordCategory.DEFAULT_FILE_PLAN_ALIAS);
// dispositionScheduleService.createCategoryRetentionSchedule(firstCategoryRM3060, true);
// dispositionScheduleService.addCutOffAfterPeriodStep(firstCategoryRM3060, "week|1", DATE_FILED);
// dispositionScheduleService.addTransferAfterEventStep(firstCategoryRM3060, TRANSFER_LOCATION, RMEvents.CASE_CLOSED.getEventName());
// dispositionScheduleService.addDestroyWithoutGhostingAfterPeriodStep(firstCategoryRM3060, "week|1", CUT_OFF_DATE);
//
// // make a copy of the category created
// String categorySecondId = copyCategory(getAdminUser(), recordCategory.getId(), secondCategoryRM3060);
//
// // create a folder on the category firstCategoryRM3060 with a complete electronic record
// RecordCategoryChild firstFolderRecordCategoryChild = createRecordFolder(recordCategory.getId(),firstFolderRM3060);
// Record firstElectronicRecord = createElectronicRecord(firstFolderRecordCategoryChild.getId(),electronicRecordRM3060);
//
// String elRecordFullName = recordsAPI.getRecordFullName(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(),firstFolderRM3060, electronicRecordRM3060);
// String elRecordNameNodeRef = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + firstCategoryRM3060 + "/" + firstFolderRM3060);
//
// recordsAPI.completeRecord(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(), elRecordFullName);
//
// // create a folder on the category secondCategoryRM3060 with a non electronic record
// RecordCategoryChild secondFolderRecordCategoryChild = createRecordFolder(categorySecondId,secondFolderRM3060);
// Record secondNonElectronicRecord = createNonElectronicRecord(secondFolderRecordCategoryChild.getId(),nonElectronicRecordRM3060);
//
// // link the nonElectronicRecordRM3060 to firstFolderRM3060
// List<String> recordLists = new ArrayList<>();
// recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + secondNonElectronicRecord.getId());
//
// linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK,secondCategoryRM3060 + "/" +
// secondFolderRM3060, recordLists);
// String nonElRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), secondFolderRM3060, secondNonElectronicRecord.getName());
// String nonElRecordNameNodeRef = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), nonElRecordFullName, "/" + secondCategoryRM3060 + "/" + secondFolderRM3060);
//
// // complete records and cut them off
// recordsAPI.completeRecord(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(), nonElRecordFullName);
//
// // edit the disposition date
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),editDispositionDateJson(),nonElRecordNameNodeRef);
//
// // cut off the record
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),nonElRecordNameNodeRef);
//
// //check the record is cut off
// AssertJUnit.assertTrue("The file " + nonElectronicRecordRM3060 + " has not been successfully cut off.", getRestAPIFactory().getRecordsAPI().getRecord(secondNonElectronicRecord.getId()).getAspectNames().contains(CUT_OFF_ASPECT));
//
// // link the electronic record to secondFolderRM3060
// recordLists.clear();
// recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + secondNonElectronicRecord.getId());
// linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
// getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK,secondCategoryRM3060 + "/" +
// secondFolderRM3060, recordLists);
//
// // edit the disposition date and cut off the record
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),editDispositionDateJson(),elRecordNameNodeRef);
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),elRecordNameNodeRef);
//
// AssertJUnit.assertTrue("The file " + electronicRecordRM3060 + " has not been successfully cut off.", getRestAPIFactory().getRecordsAPI().getRecord(firstElectronicRecord.getId()).getAspectNames().contains(CUT_OFF_ASPECT));
//
// // open the record and complete the disposition schedule event
// rmRolesAndActionsAPI.completeEvent(getAdminUser().getUsername(),
// getAdminUser().getPassword(), elRecordFullName, RMEvents.CASE_CLOSED, Instant.now());
// rmRolesAndActionsAPI.completeEvent(getAdminUser().getUsername(),
// getAdminUser().getPassword(), nonElRecordFullName, RMEvents.CASE_CLOSED, Instant.now());
//
// // transfer the files & complete transfers
// HttpResponse nonElRecordNameHttpResponse = recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","transfer"),recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), nonElRecordFullName, "/" + secondCategoryRM3060 + "/" + secondFolderRM3060));
//
// String nonElRecordNameTransferId = getTransferId(nonElRecordNameHttpResponse,nonElRecordNameNodeRef);
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","transferComplete"),nonElRecordNameTransferId);
//
// HttpResponse elRecordNameHttpResponse = recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","transfer"),recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
// getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + firstCategoryRM3060 + "/" + firstFolderRM3060));
//
// String elRecordNameTransferId = getTransferId(elRecordNameHttpResponse,elRecordNameNodeRef);
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","transferComplete"),elRecordNameTransferId);
//
// AssertJUnit.assertTrue("The file " + electronicRecordRM3060 + " has not been successfully transferred", getRestAPIFactory().getRecordsAPI().getRecord(firstElectronicRecord.getId()).getAspectNames().contains(TRANSFER_TYPE));
// AssertJUnit.assertTrue("The file " + nonElectronicRecordRM3060 + " has not been successfully transferred.", getRestAPIFactory().getRecordsAPI().getRecord(secondNonElectronicRecord.getId()).getAspectNames().contains(TRANSFER_TYPE));
//
// // edit the disposition date for nonElectronicRecordRM3060 & electronicRecordRM3060
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),editDispositionDateJson(),nonElRecordNameNodeRef);
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),editDispositionDateJson(),elRecordNameNodeRef);
//
// // destroy nonElectronicRecordRM3060 & electronicRecordRM3060 records
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","destroy"),nonElRecordNameNodeRef);
// recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
// getAdminUser().getPassword(),new JSONObject().put("name","destroy"),elRecordNameNodeRef);
//
// // check the file is not displayed
// assertNull("The file " + nonElectronicRecordRM3060 + " has not been successfully destroyed.", secondNonElectronicRecord.getContent());
// assertNull("The file " + electronicRecordRM3060 + " has not been successfully destroyed.", firstElectronicRecord.getContent());
//
// // delete precondition
// deleteRecordCategory(recordCategory.getId());
// deleteRecordCategory(categorySecondId);
// }
@Test
@AlfrescoTest(jira = "RM-1622")
public void dispositionScheduleLinkedRecords() throws UnsupportedEncodingException {
STEP("Create record category");
RecordCategory category1 = createRootCategory(CATEGORY_RM_3077);
//create retention schedule
dispositionScheduleService.createCategoryRetentionSchedule(category1.getName(), false);
// add cut off step
dispositionScheduleService.addCutOffAfterPeriodStep(category1.getName(), "day|2", CREATED_DATE);
//create a copy of the category recordsCategory
String copyCategoryId = copyCategory(getAdminUser(), category1.getId(), COPY_CATEGORY_RM_3077);
// create folders in both categories
RecordCategoryChild catFolder = createRecordFolder(category1.getId(), FOLDER_RM_3077);
createRecordFolder(copyCategoryId, COPY_FOLDER_RM_3077);
// create record files
String electronicRecord = "RM-2801 electronic record";
Record elRecord = createElectronicRecord(catFolder.getId(), electronicRecord);
String elRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), catFolder.getName(), electronicRecord);
String nonElectronicRecord = "RM-2801 non-electronic record";
Record nonElRecord = createNonElectronicRecord(catFolder.getId(), nonElectronicRecord);
String nonElRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), catFolder.getName(), nonElectronicRecord);
// link the records to copy folder, then complete them
List<String> recordLists = new ArrayList<>();
recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + elRecord.getId());
recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + nonElRecord.getId());
linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK, COPY_CATEGORY_RM_3077 + "/" +
COPY_FOLDER_RM_3077, recordLists);
recordsAPI.completeRecord(rmAdmin.getUsername(), rmAdmin.getPassword(), elRecordFullName);
recordsAPI.completeRecord(rmAdmin.getUsername(), rmAdmin.getPassword(), nonElRecordFullName);
// edit disposition date
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(), catFolder.getName());
// cut off the Folder
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","cutoff"), catFolder.getName());
// Verify the Content
Node electronicNode = getNode(elRecord.getId());
assertTrue("The content of " + electronicRecord + " is available",
StringUtils.isEmpty(electronicNode.getNodeContent().getResponse().getBody().asString()));
// verify the Properties
AssertJUnit.assertNull("The properties are present even after cutting off the record.", elRecord.getProperties().getTitle());
// delete precondition
deleteRecordCategory(category1.getId());
deleteRecordCategory(copyCategoryId);
}
/**
* Test covering RM-3060
* Check the disposition steps for a record can be executed
* When the record is linked to a folder with the same disposition schedule
* */
@Test
@AlfrescoTest (jira = "RM-3060")
public void sameDispositionScheduleLinkedRecords() throws UnsupportedEncodingException {
// create a category with retention applied on records level
RecordCategory recordCategory = getRestAPIFactory().getFilePlansAPI(rmAdmin)
.createRootRecordCategory(RecordCategory.builder().name(FIRST_CATEGORY_RM_3060).build(),
RecordCategory.DEFAULT_FILE_PLAN_ALIAS);
dispositionScheduleService.createCategoryRetentionSchedule(FIRST_CATEGORY_RM_3060, true);
dispositionScheduleService.addCutOffAfterPeriodStep(FIRST_CATEGORY_RM_3060, "week|1", DATE_FILED);
dispositionScheduleService.addTransferAfterEventStep(
FIRST_CATEGORY_RM_3060, TRANSFER_LOCATION, RMEvents.CASE_CLOSED.getEventName());
dispositionScheduleService.addDestroyWithoutGhostingAfterPeriodStep(FIRST_CATEGORY_RM_3060, "week|1", CUT_OFF_DATE);
// make a copy of the category created
String categorySecondId = copyCategory(getAdminUser(), recordCategory.getId(), SECOND_CATEGORY_RM_3060);
// create a folder on the category firstCategoryRM3060 with a complete electronic record
RecordCategoryChild firstFolderRecordCategoryChild = createRecordFolder(recordCategory.getId(),
FIRST_FOLDER_RM_3060);
Record firstElectronicRecord = createElectronicRecord(firstFolderRecordCategoryChild.getId(),
ELECTRONIC_RECORD_RM_3060);
String elRecordFullName = recordsAPI.getRecordFullName(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), FIRST_FOLDER_RM_3060, ELECTRONIC_RECORD_RM_3060);
String elRecordNameNodeRef = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + FIRST_CATEGORY_RM_3060 + "/" + FIRST_FOLDER_RM_3060);
recordsAPI.completeRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), elRecordFullName);
// create a folder on the category secondCategoryRM3060 with a non electronic record
RecordCategoryChild secondFolderRecordCategoryChild = createRecordFolder(categorySecondId,
SECOND_FOLDER_RM_3060);
Record secondNonElectronicRecord = createNonElectronicRecord(secondFolderRecordCategoryChild.getId(),
NON_ELECTRONIC_RECORD_RM_3060);
// link the nonElectronicRecordRM3060 to firstFolderRM3060
List<String> recordLists = new ArrayList<>();
recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + secondNonElectronicRecord.getId());
linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK, SECOND_CATEGORY_RM_3060 + "/" +
SECOND_FOLDER_RM_3060, recordLists);
String nonElRecordFullName = recordsAPI.getRecordFullName(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(),
SECOND_FOLDER_RM_3060, secondNonElectronicRecord.getName());
String nonElRecordNameNodeRef = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), nonElRecordFullName, "/" + SECOND_CATEGORY_RM_3060
+ "/" + SECOND_FOLDER_RM_3060);
// complete records and cut them off
recordsAPI.completeRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), nonElRecordFullName);
// edit the disposition date
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(),nonElRecordNameNodeRef);
// cut off the record
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),nonElRecordNameNodeRef);
//check the record is cut off
AssertJUnit.assertTrue("The file " + NON_ELECTRONIC_RECORD_RM_3060 + " has not been successfully cut off.", getRestAPIFactory().getRecordsAPI().getRecord(secondNonElectronicRecord.getId()).getAspectNames().contains(CUT_OFF_ASPECT));
// link the electronic record to secondFolderRM3060
recordLists.clear();
recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + secondNonElectronicRecord.getId());
linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK, SECOND_CATEGORY_RM_3060 + "/" +
SECOND_FOLDER_RM_3060, recordLists);
// edit the disposition date and cut off the record
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(),elRecordNameNodeRef);
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),elRecordNameNodeRef);
AssertJUnit.assertTrue("The file " + ELECTRONIC_RECORD_RM_3060 + " has not been successfully cut off.", getRestAPIFactory().getRecordsAPI().getRecord(firstElectronicRecord.getId()).getAspectNames().contains(CUT_OFF_ASPECT));
// open the record and complete the disposition schedule event
rmRolesAndActionsAPI.completeEvent(getAdminUser().getUsername(),
getAdminUser().getPassword(), elRecordFullName, RMEvents.CASE_CLOSED, Instant.now());
rmRolesAndActionsAPI.completeEvent(getAdminUser().getUsername(),
getAdminUser().getPassword(), nonElRecordFullName, RMEvents.CASE_CLOSED, Instant.now());
// transfer the files & complete transfers
HttpResponse nonElRecordNameHttpResponse = recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","transfer"),recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), nonElRecordFullName, "/" + SECOND_CATEGORY_RM_3060
+ "/" + SECOND_FOLDER_RM_3060));
String nonElRecordNameTransferId = getTransferId(nonElRecordNameHttpResponse,nonElRecordNameNodeRef);
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","transferComplete"),nonElRecordNameTransferId);
HttpResponse elRecordNameHttpResponse = recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","transfer"),recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + FIRST_CATEGORY_RM_3060
+ "/" + FIRST_FOLDER_RM_3060));
String elRecordNameTransferId = getTransferId(elRecordNameHttpResponse,elRecordNameNodeRef);
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","transferComplete"),elRecordNameTransferId);
AssertJUnit.assertTrue("The file " + ELECTRONIC_RECORD_RM_3060 + " has not been successfully transferred", getRestAPIFactory().getRecordsAPI().getRecord(firstElectronicRecord.getId()).getAspectNames().contains(TRANSFER_TYPE));
AssertJUnit.assertTrue("The file " + NON_ELECTRONIC_RECORD_RM_3060 + " has not been successfully transferred.", getRestAPIFactory().getRecordsAPI().getRecord(secondNonElectronicRecord.getId()).getAspectNames().contains(TRANSFER_TYPE));
// edit the disposition date for nonElectronicRecordRM3060 & electronicRecordRM3060
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(),nonElRecordNameNodeRef);
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(),elRecordNameNodeRef);
// destroy nonElectronicRecordRM3060 & electronicRecordRM3060 records
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","destroy"),nonElRecordNameNodeRef);
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),new JSONObject().put("name","destroy"),elRecordNameNodeRef);
// check the file is not displayed
assertNull("The file " + NON_ELECTRONIC_RECORD_RM_3060 + " has not been successfully destroyed.", secondNonElectronicRecord.getContent());
assertNull("The file " + ELECTRONIC_RECORD_RM_3060 + " has not been successfully destroyed.", firstElectronicRecord.getContent());
// delete precondition
deleteRecordCategory(recordCategory.getId());
deleteRecordCategory(categorySecondId);
}
private String copyCategory(UserModel user, String categoryId, String copyName) {
RepoTestModel repoTestModel = new RepoTestModel() {};
@@ -354,7 +361,7 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
private String getTransferId(HttpResponse httpResponse,String nodeRef) {
HttpEntity entity = httpResponse.getEntity();
String responseString = null;
String responseString;
try {
responseString = EntityUtils.toString(entity, "UTF-8");
} catch (IOException e) {
@@ -365,7 +372,6 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
.getJSONObject("results")
.get(nodeRef)
.toString();
}
@Test
@@ -374,35 +380,39 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
// create a category with retention applied on records level
RecordCategory catsameLevel1 = getRestAPIFactory().getFilePlansAPI(rmAdmin)
.createRootRecordCategory(RecordCategory.builder().name(firstCategoryRM1622).build(),
.createRootRecordCategory(RecordCategory.builder().name(
FIRST_CATEGORY_RM_1622).build(),
RecordCategory.DEFAULT_FILE_PLAN_ALIAS);
RecordCategory catsameLevel2 = getRestAPIFactory().getFilePlansAPI(rmAdmin)
.createRootRecordCategory(RecordCategory.builder().name(secondCategoryRM1622).build(),
.createRootRecordCategory(RecordCategory.builder().name(
SECOND_CATEGORY_RM_1622).build(),
RecordCategory.DEFAULT_FILE_PLAN_ALIAS);
// create retention schedule applied on records for category 1
dispositionScheduleService.createCategoryRetentionSchedule(firstCategoryRM1622, true);
dispositionScheduleService.createCategoryRetentionSchedule(FIRST_CATEGORY_RM_1622, true);
// with retain immediately after record creation date and cut 1 day after record creation date
dispositionScheduleService.addCutOffAfterPeriodStep(firstCategoryRM1622, "day|1", DATE_FILED);
dispositionScheduleService.addCutOffAfterPeriodStep(FIRST_CATEGORY_RM_1622, "day|1", DATE_FILED);
// create a folder on the category firstCategoryRM1622 with a complete electronic record
RecordCategoryChild firstFolderRecordCategoryChild = createRecordFolder(catsameLevel1.getId(),firstFolderRM1622);
Record firstElectronicRecord = createElectronicRecord(firstFolderRecordCategoryChild.getId(),electronicRecordRM1622);
RecordCategoryChild firstFolderRecordCategoryChild = createRecordFolder(catsameLevel1.getId(),
FIRST_FOLDER_RM_1622);
Record firstElectronicRecord = createElectronicRecord(firstFolderRecordCategoryChild.getId(),
ELECTRONIC_RECORD_RM_1622);
String elRecordFullName = recordsAPI.getRecordFullName(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(),firstFolderRM1622, electronicRecordRM1622);
String elRecordNameNodeRef = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + firstCategoryRM1622 + "/" + firstFolderRM1622);
getDataUser().getAdminUser().getPassword(), FIRST_FOLDER_RM_1622, ELECTRONIC_RECORD_RM_1622);
recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + FIRST_CATEGORY_RM_1622 + "/" + FIRST_FOLDER_RM_1622);
recordsAPI.completeRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), elRecordFullName);
// create a folder on the category secondCategoryRM1622 with a non electronic record
RecordCategoryChild secondFolderRecordCategoryChild = createRecordFolder(catsameLevel2.getId(),secondFolderRM1622);
createRecordFolder(catsameLevel2.getId(), SECOND_FOLDER_RM_1622);
String elRecordNameNodeRefs = recordsAPI.getRecordNodeRef(getDataUser().usingAdmin().getAdminUser().getUsername(),
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + firstCategoryRM1622 + "/" + firstFolderRM1622);
getDataUser().usingAdmin().getAdminUser().getPassword(), elRecordFullName, "/" + FIRST_CATEGORY_RM_1622 + "/" + FIRST_FOLDER_RM_1622);
// link it to the folder in second category through the details page
@@ -410,14 +420,12 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
recordLists.add(NODE_REF_WORKSPACE_SPACES_STORE + firstElectronicRecord.getId());
linksAPI.linkRecord(getDataUser().getAdminUser().getUsername(),
getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK,secondCategoryRM1622 + "/" +
secondFolderRM1622, recordLists);
getDataUser().getAdminUser().getPassword(), HttpStatus.SC_OK, SECOND_CATEGORY_RM_1622 + "/" +
SECOND_FOLDER_RM_1622, recordLists);
// edit disposition date
recordFoldersAPI.postRecordAction(getAdminUser().getUsername(),
getAdminUser().getPassword(),editDispositionDateJson(),elRecordNameNodeRefs);
}
@Test (dependsOnMethods = {"sameLevelDispositionScheduleStepsPeriodsCalculation" })
@@ -428,4 +436,4 @@ public class DispositionScheduleLinkedRecordsTest extends BaseRMRestTest {
// Verify the status code
assertStatusCode(NO_CONTENT);
}
}
}

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-parent</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -1,3 +1,3 @@
SOLR6_TAG=2.0.7-A5
POSTGRES_TAG=14.4
ACTIVEMQ_TAG=5.17.4-jre17-rockylinux8
ACTIVEMQ_TAG=5.18.2-jre17-rockylinux8

View File

@@ -39,7 +39,7 @@ cache.jsonConversionComponentCache.timeToLiveSeconds=0
cache.jsonConversionComponentCache.maxIdleSeconds=0
cache.jsonConversionComponentCache.backup-count=1
cache.jsonConversionComponentCache.eviction-policy=NONE
cache.jsonConversionComponentCache.merge-policy=com.hazelcast.map.merge.PutIfAbsentMapMergePolicy
cache.jsonConversionComponentCache.merge-policy=com.hazelcast.spi.merge.PutIfAbsentMergePolicy
cache.jsonConversionComponentCache.nearCache.maxSize=50
cache.jsonConversionComponentCache.nearCache.maxIdleSeconds=0
cache.jsonConversionComponentCache.nearCache.timeToLiveSeconds=0

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>
@@ -60,9 +60,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
</dependency>
<dependency>
<groupId>org.alfresco.surf</groupId>
@@ -102,9 +105,8 @@
<artifactId>swagger-parser</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.fge/json-schema-validator -->
<dependency>
<groupId>com.github.fge</groupId>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -39,12 +39,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.internet.ContentType;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.Part;
import jakarta.mail.internet.ContentType;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeUtility;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;

View File

@@ -52,7 +52,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.transaction.SystemException;
import jakarta.transaction.SystemException;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;

View File

@@ -29,7 +29,7 @@ package org.alfresco.module.org_alfresco_module_rm.script;
import static org.alfresco.util.WebScriptUtils.getTemplateVars;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.util.Map;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;

View File

@@ -27,7 +27,7 @@
package org.alfresco.module.org_alfresco_module_rm.script;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;

View File

@@ -30,7 +30,7 @@ package org.alfresco.module.org_alfresco_module_rm.script;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService;
import org.alfresco.service.cmr.dictionary.PropertyDefinition;

View File

@@ -34,7 +34,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;

View File

@@ -34,7 +34,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;

View File

@@ -33,7 +33,7 @@ import static org.alfresco.util.WebScriptUtils.getTemplateVars;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
import org.alfresco.service.cmr.repository.NodeRef;

View File

@@ -27,7 +27,7 @@
package org.alfresco.module.org_alfresco_module_rm.script;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

View File

@@ -32,7 +32,7 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;

View File

@@ -32,7 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;

View File

@@ -25,7 +25,7 @@
* #L%
*/
/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -44,7 +44,7 @@
*/
package org.alfresco.repo.web.scripts.roles;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

View File

@@ -25,7 +25,7 @@
* #L%
*/
/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -54,7 +54,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;

View File

@@ -45,12 +45,10 @@ import java.util.Set;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.github.fge.jackson.JsonLoader;
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
import com.github.fge.jsonschema.core.report.ProcessingMessage;
import com.github.fge.jsonschema.core.report.ProcessingReport;
import com.github.fge.jsonschema.main.JsonSchema;
import com.github.fge.jsonschema.main.JsonSchemaFactory;
import com.networknt.schema.JsonSchema;
import com.networknt.schema.JsonSchemaFactory;
import com.networknt.schema.SpecVersion.VersionFlag;
import com.networknt.schema.ValidationMessage;
import io.swagger.models.Swagger;
import io.swagger.parser.SwaggerParser;
@@ -66,8 +64,8 @@ import org.apache.commons.io.filefilter.WildcardFileFilter;
*/
public class BaseYamlUnitTest
{
private static String SWAGGER_2_SCHEMA_LOCATION = "/rest/schema.json";
private static String OPEN_API_SPECIFICATION = "2.0";
private static final String SWAGGER_2_SCHEMA_LOCATION = "/rest/schema.json";
private static final String OPEN_API_SPECIFICATION = "2.0";
/**
* Helper method to obtain path names for all yaml files found on the given path
@@ -86,11 +84,11 @@ public class BaseYamlUnitTest
/**
* Helper method to validate that all given yaml files are valid readable Swagger format
*/
protected void validateYamlFiles(final Set<String> yamlFileNames) throws ProcessingException, IOException
protected void validateYamlFiles(final Set<String> yamlFileNames) throws ValidationException, IOException
{
assertFalse("Expected at least 1 yaml file to validate", yamlFileNames.isEmpty());
final JsonSchema swaggerSchema = getSwaggerSchema(SWAGGER_2_SCHEMA_LOCATION);
final JsonSchema swaggerSchema = getSwaggerSchema();
assertNotNull("Failed to obtain the Swagger schema", swaggerSchema);
for (String yamlFilePath : yamlFileNames)
@@ -106,11 +104,11 @@ public class BaseYamlUnitTest
assertEquals("Failed to obtain Swagger version from yaml file " + yamlFilePath,
swagger.getSwagger(), OPEN_API_SPECIFICATION);
}
catch (ProcessingException ex)
catch (ValidationException ex)
{
// ensure the yaml filename is included in the message
String context = String.format(yamlFilePath + ": %n" + ex.getMessage());
throw new ProcessingException(context) ;
throw new ValidationException(context) ;
}
}
}
@@ -118,16 +116,15 @@ public class BaseYamlUnitTest
/**
* Helper method to read in the Swagger JSON schema file
*/
private JsonSchema getSwaggerSchema(final String schemaLocation) throws IOException, ProcessingException
private JsonSchema getSwaggerSchema() throws IOException
{
JsonSchema swaggerSchema = null;
final InputStream in = this.getClass().getResourceAsStream(schemaLocation);
final InputStream in = this.getClass().getResourceAsStream(SWAGGER_2_SCHEMA_LOCATION);
if (in != null)
{
final String swaggerSchemaAsString = IOUtils.toString(in);
final JsonNode schemaNode = JsonLoader.fromString(swaggerSchemaAsString);
final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
swaggerSchema = factory.getJsonSchema(schemaNode);
final JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V4);
swaggerSchema = factory.getSchema(swaggerSchemaAsString);
}
return swaggerSchema;
}
@@ -135,7 +132,7 @@ public class BaseYamlUnitTest
/**
* Helper method to validate Yaml file against JSON schema
*/
private boolean validateYamlFile(final String yamlFilePath, final JsonSchema jsonSchema) throws IOException, ProcessingException
private boolean validateYamlFile(final String yamlFilePath, final JsonSchema jsonSchema) throws IOException, ValidationException
{
// Get yaml file as a string
final String yaml = new String(Files.readAllBytes(Paths.get(yamlFilePath)));
@@ -152,19 +149,22 @@ public class BaseYamlUnitTest
/**
* Helper method to validate JSON string against JSON schema
*/
private boolean validateJSON(final String jsonData, final JsonSchema schema) throws IOException, ProcessingException
private boolean validateJSON(final String jsonData, final JsonSchema schema) throws IOException, ValidationException
{
final JsonNode dataNode = JsonLoader.fromString(jsonData);
final ProcessingReport report = schema.validate(dataNode);
boolean isOk = report.isSuccess();
if (!isOk)
final JsonNode dataNode = new ObjectMapper().readTree(jsonData);
final Iterator<ValidationMessage> errors = schema.validate(dataNode).iterator();
if (!errors.hasNext()) return true;
final ValidationMessage errorMessage = errors.next();
throw new ValidationException(errorMessage.toString());
}
private static class ValidationException extends Exception
{
public ValidationException(String message)
{
Iterator<ProcessingMessage> messages = report.iterator();
if (messages.hasNext())
{
throw new ProcessingException(messages.next().toString());
}
super(message);
}
return isOk;
}
}

View File

@@ -1,7 +1,7 @@
{
"title": "A JSON Schema for Swagger 2.0 API.",
"id": "#",
"$schema": "#",
"id": "http://swagger.io/v2/schema.json#",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"swagger",
@@ -203,7 +203,7 @@
"additionalProperties": {
"$ref": "#/definitions/response"
},
"description": "One or more JSON representations for parameters"
"description": "One or more JSON representations for responses"
},
"externalDocs": {
"type": "object",

View File

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

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-amps</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>
@@ -128,9 +128,8 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- SHA-2432 -->

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2005 - 2020 Alfresco Software Limited.
* Copyright 2005 - 2023 Alfresco Software Limited.
*
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of the paid license agreement will prevail.
@@ -27,7 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.repo.web.scripts.admin.NodeBrowserPost;

View File

@@ -48,7 +48,7 @@ function tagQuery()
}
query += "ASPECT:\"{http://www.alfresco.org/model/content/1.0}taggable\"";
//MNT-2118 Share inconsistencies when displaying locked files with tags
query += " -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\"";
query += " AND -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\"";
// MNT-20091 check to prevent cm:taggable with NULL
query += " AND ISNOTNULL:\"{http://www.alfresco.org/model/content/1.0}taggable\"";
@@ -60,7 +60,7 @@ function tagQuery()
query: query,
language: "lucene",
page: {
// query minimum rows because all usefull info will come with facets
// query minimum rows because all useful info will come with facets
maxItems: 1,
skipCount: 0
},

View File

@@ -24,7 +24,7 @@ function getCategoryNode()
else
{
var queryPath = "/" + catAspect + "/" + encodePath(path);
categoryResults = search.luceneSearch("+PATH:\"" + queryPath + "/*\" -PATH:\"" + queryPath + "/member\"");
categoryResults = search.luceneSearch("+PATH:\"" + queryPath + "/*\" AND -PATH:\"" + queryPath + "/member\"");
}
// make each result an object and indicate it is selectable in the UI
@@ -71,4 +71,4 @@ function encodePath(path)
function sortByName(a, b)
{
return (b.node.name.toLowerCase() > a.node.name.toLowerCase() ? -1 : 1);
}
}

View File

@@ -29,7 +29,7 @@ function main()
{
query = "+PATH:\"" + parsedArgs.pathNode.qnamePath + "//*\" ";
}
query += "+TYPE:\"cm:content\" +@cm\\:content.mimetype:image/*";
query += "AND +TYPE:\"cm:content\" AND +@cm\\:content.mimetype:\"image/*\"";
// Sort the list before trimming to page chunks
assets = search.query(
@@ -52,4 +52,4 @@ function main()
/**
* Images List Component: images
*/
model.images = main();
model.images = main();

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2005 - 2020 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of the paid license agreement will prevail.
@@ -24,7 +24,7 @@ import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.transaction.UserTransaction;
import jakarta.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.archive.NodeArchiveService;

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2005 - 2021 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of the paid license agreement will prevail.
@@ -24,7 +24,7 @@ import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.transaction.UserTransaction;
import jakarta.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.model.Repository;

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<dependencies>
@@ -111,9 +111,8 @@
<!-- provided dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- Test only dependencies, as popped up while running mvn test -->

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -26,8 +26,8 @@ import java.net.UnknownHostException;
import java.security.AlgorithmParameters;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.alfresco.encryption.MACUtils.MACInput;
import org.alfresco.error.AlfrescoRuntimeException;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -21,8 +21,8 @@ package org.alfresco.encryption;
import java.io.IOException;
import java.security.AlgorithmParameters;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.HttpMethod;

View File

@@ -92,15 +92,16 @@ public class HttpClient4Factory
else
{
//Setting a connectionManager overrides these properties
clientBuilder.setMaxConnTotal(config.getMaxTotalConnections());
clientBuilder.setMaxConnPerRoute(config.getMaxHostConnections());
config.getMaxTotalConnections().ifPresent(v -> clientBuilder.setMaxConnTotal(v));
config.getMaxHostConnections().ifPresent(v -> clientBuilder.setMaxConnPerRoute(v));
}
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(config.getConnectionTimeout())
.setSocketTimeout(config.getSocketTimeout())
.setConnectionRequestTimeout(config.getConnectionRequestTimeout())
.build();
RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
config.getConnectionTimeout().ifPresent(v -> requestConfigBuilder.setConnectTimeout(v));
config.getConnectionRequestTimeout().ifPresent(v -> requestConfigBuilder.setConnectionRequestTimeout(v));
config.getSocketTimeout().ifPresent(v -> requestConfigBuilder.setSocketTimeout(v));
RequestConfig requestConfig = requestConfigBuilder.build();
clientBuilder.setDefaultRequestConfig(requestConfig);
@@ -135,8 +136,8 @@ public class HttpClient4Factory
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.build());
}
poolingHttpClientConnectionManager.setMaxTotal(config.getMaxTotalConnections());
poolingHttpClientConnectionManager.setDefaultMaxPerRoute(config.getMaxHostConnections());
config.getMaxTotalConnections().ifPresent(v -> poolingHttpClientConnectionManager.setMaxTotal(v));
config.getMaxHostConnections().ifPresent(v -> poolingHttpClientConnectionManager.setDefaultMaxPerRoute(v));
return poolingHttpClientConnectionManager;
}

View File

@@ -85,17 +85,27 @@ public class HttpClientConfig
this.keyStore = new AlfrescoKeyStoreImpl(sslEncryptionParameters.getKeyStoreParameters(), keyResourceLoader);
this.trustStore = new AlfrescoKeyStoreImpl(sslEncryptionParameters.getTrustStoreParameters(), keyResourceLoader);
config = retrieveConfig(serviceName);
config = retrieveConfig();
checkUnsupportedProperties(config);
}
/**
* Method used for retrieving HttpClient config from Global Properties
* @param serviceName name of used service
* that can also have values provided/overridden through System Properties
*
* @return map of properties
*/
private Map<String, String> retrieveConfig(String serviceName)
private Map<String, String> retrieveConfig()
{
Map<String, String> resultProperties = getHttpClientPropertiesForService(properties);
Map<String, String> systemProperties = getHttpClientPropertiesForService(System.getProperties());
systemProperties.forEach((k, v) -> resultProperties.put(k, v)); //Override/Add to Global Properties results with values from System Properties
return resultProperties;
}
private Map<String, String> getHttpClientPropertiesForService(Properties properties) {
return properties.keySet().stream()
.filter(key -> key instanceof String)
.map(Object::toString)
@@ -112,79 +122,75 @@ public class HttpClientConfig
.forEach(propertyName -> LOGGER.warn(String.format("For service [%s], an unsupported property [%s] is set", serviceName, propertyName)));
}
private Integer getIntegerProperty(HttpClientPropertiesEnum property)
private Optional<Integer> getIntegerProperty(HttpClientPropertiesEnum property)
{
return Integer.parseInt(extractValueFromConfig(property).orElse("0"));
Optional<String> optionalProperty = extractValueFromConfig(property);
return optionalProperty.isPresent() ? Optional.of(Integer.parseInt(optionalProperty.get())) : Optional.empty();
}
private Boolean getBooleanProperty(HttpClientPropertiesEnum property)
private Optional<Boolean> getBooleanProperty(HttpClientPropertiesEnum property)
{
return Boolean.parseBoolean(extractValueFromConfig(property).orElse("false"));
Optional<String> optionalProperty = extractValueFromConfig(property);
return optionalProperty.isPresent() ? Optional.of(Boolean.parseBoolean(optionalProperty.get())) : Optional.empty();
}
private Optional<String> extractValueFromConfig(HttpClientPropertiesEnum property)
{
Optional<String> optionalProperty = Optional.ofNullable(config.get(property.name));
if(property.isRequired && optionalProperty.isEmpty())
{
String msg = String.format("Required property: '%s' is empty.", property.name);
throw new HttpClientException(msg);
}
return optionalProperty;
return Optional.ofNullable(config.get(property.name));
}
public Integer getConnectionTimeout()
public Optional<Integer> getConnectionTimeout()
{
return getIntegerProperty(HttpClientPropertiesEnum.CONNECTION_REQUEST_TIMEOUT);
}
public Integer getSocketTimeout()
public Optional<Integer> getSocketTimeout()
{
return getIntegerProperty(HttpClientPropertiesEnum.SOCKET_TIMEOUT);
}
public Integer getConnectionRequestTimeout()
public Optional<Integer> getConnectionRequestTimeout()
{
return getIntegerProperty(HttpClientPropertiesEnum.CONNECTION_REQUEST_TIMEOUT);
}
public Integer getMaxTotalConnections()
public Optional<Integer> getMaxTotalConnections()
{
return getIntegerProperty(HttpClientPropertiesEnum.MAX_TOTAL_CONNECTIONS);
}
public Integer getMaxHostConnections()
public Optional<Integer> getMaxHostConnections()
{
return getIntegerProperty(HttpClientPropertiesEnum.MAX_HOST_CONNECTIONS);
}
public Boolean isMTLSEnabled()
public boolean isMTLSEnabled()
{
return getBooleanProperty(HttpClientPropertiesEnum.MTLS_ENABLED);
return getBooleanProperty(HttpClientPropertiesEnum.MTLS_ENABLED).orElse(Boolean.FALSE);
}
public boolean isHostnameVerificationDisabled()
{
return getBooleanProperty(HttpClientPropertiesEnum.HOSTNAME_VERIFICATION_DISABLED);
return getBooleanProperty(HttpClientPropertiesEnum.HOSTNAME_VERIFICATION_DISABLED).orElse(Boolean.FALSE);
}
private enum HttpClientPropertiesEnum
{
CONNECTION_TIMEOUT("connectionTimeout", true),
SOCKET_TIMEOUT("socketTimeout", true),
CONNECTION_REQUEST_TIMEOUT("connectionRequestTimeout", true),
MAX_TOTAL_CONNECTIONS("maxTotalConnections", true),
MAX_HOST_CONNECTIONS("maxHostConnections", true),
HOSTNAME_VERIFICATION_DISABLED("hostnameVerificationDisabled", false),
MTLS_ENABLED("mTLSEnabled", true);
CONNECTION_TIMEOUT("connectionTimeout"),
SOCKET_TIMEOUT("socketTimeout"),
CONNECTION_REQUEST_TIMEOUT("connectionRequestTimeout"),
MAX_TOTAL_CONNECTIONS("maxTotalConnections"),
MAX_HOST_CONNECTIONS("maxHostConnections"),
HOSTNAME_VERIFICATION_DISABLED("hostnameVerificationDisabled"),
MTLS_ENABLED("mTLSEnabled");
private final String name;
private final Boolean isRequired;
HttpClientPropertiesEnum(String propertyName, Boolean isRequired)
HttpClientPropertiesEnum(String propertyName)
{
this.name = propertyName;
this.isRequired = isRequired;
}
private static final List<String> supportedProperties = new ArrayList<>();

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
* Copyright (C) 2005-2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -23,13 +23,13 @@ import static java.util.Collections.emptyList;
import java.lang.reflect.Method;
import java.util.Collection;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.NotSupportedException;
import javax.transaction.RollbackException;
import javax.transaction.Status;
import javax.transaction.SystemException;
import javax.transaction.UserTransaction;
import jakarta.transaction.HeuristicMixedException;
import jakarta.transaction.HeuristicRollbackException;
import jakarta.transaction.NotSupportedException;
import jakarta.transaction.RollbackException;
import jakarta.transaction.Status;
import jakarta.transaction.SystemException;
import jakarta.transaction.UserTransaction;
import org.alfresco.error.StackTraceUtil;
import org.alfresco.util.GUID;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
* Copyright (C) 2005-2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -53,7 +53,7 @@ public interface TransactionListener
* on the state of the transaction.
* <p>
* Although all transaction resources are still available, this method should
* be used only for cleaning up resources after a commit has occured.
* be used only for cleaning up resources after a commit has occurred.
*/
void afterCommit();
@@ -64,7 +64,7 @@ public interface TransactionListener
* on the state of the transaction.
* <p>
* Although all transaction resources are still available, this method should
* be used only for cleaning up resources after a rollback has occured.
* be used only for cleaning up resources after a rollback has occurred.
*/
void afterRollback();
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -20,13 +20,13 @@ package org.alfresco.web.scripts.servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponse;
/**
* Simple servlet filter to add a 'Cache-Control' HTTP header to a response.
@@ -48,7 +48,7 @@ public class StaticAssetCacheFilter implements Filter
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
* @see jakarta.servlet.Filter#init(jakarta.servlet.FilterConfig)
*/
public void init(FilterConfig config) throws ServletException
{
@@ -60,7 +60,7 @@ public class StaticAssetCacheFilter implements Filter
}
/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
* @see jakarta.servlet.Filter#doFilter(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse, jakarta.servlet.FilterChain)
*/
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException
@@ -70,7 +70,7 @@ public class StaticAssetCacheFilter implements Filter
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
* @see jakarta.servlet.Filter#destroy()
*/
public void destroy()
{

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2013 Alfresco Software Limited.
* Copyright (C) 2005 - 2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -21,9 +21,9 @@ package org.alfresco.web.scripts.servlet;
import javax.management.*;
import javax.security.auth.x500.X500Principal;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.cert.X509Certificate;
import java.util.Set;
@@ -134,7 +134,7 @@ public abstract class X509ServletFilterBase implements Filter
logger.debug("Enforcing X509 request");
}
X509Certificate[] certs = (X509Certificate[])httpRequest.getAttribute("javax.servlet.request.X509Certificate");
X509Certificate[] certs = (X509Certificate[])httpRequest.getAttribute("jakarta.servlet.request.X509Certificate");
if(validCert(certs))
{

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
* Copyright (C) 2005-2023 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -21,9 +21,9 @@ package org.alfresco.util.transaction;
import java.util.NoSuchElementException;
import java.util.Objects;
import javax.transaction.RollbackException;
import javax.transaction.Status;
import javax.transaction.UserTransaction;
import jakarta.transaction.RollbackException;
import jakarta.transaction.Status;
import jakarta.transaction.UserTransaction;
import junit.framework.TestCase;

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>
@@ -90,9 +90,8 @@
| see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope
-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- Jakarta... -->
@@ -100,7 +99,6 @@
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
</dependency>
<!-- REPO-5047 - Replaces com.sun.activation:javax.activation -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
@@ -142,53 +140,11 @@
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-impl</artifactId>
<version>${dependency.opencmis.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
</exclusion>
<!-- Duplicates classes from com.fasterxml.woodstox:woodstox-core -->
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<!-- [ACS-544] Excluded as conflicts with JDK9+ as it includes javax.transaction -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-server-bindings</artifactId>
<version>${dependency.opencmis.version}</version>
<exclusions>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.jws:jakarta.jws-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.annotation:jakarta.annotation-api -->
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
<!-- Duplicates classes from com.sun.activation:jakarta.activation -->
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- This is now deployed at:
| http://artifacts.alfresco.com/nexus/content/repositories/thirdparty/org/acegisecurity/acegi-security/0.8.2_patched/
@@ -241,6 +197,10 @@
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
@@ -264,7 +224,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15to18</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>

View File

@@ -58,10 +58,9 @@ public class LuceneConjunction<Q, S, E extends Throwable> extends BaseConjunctio
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserExpressionAdaptor<Q, E> expressionAdaptor = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
boolean must = false;
boolean must_not = false;
boolean mustNot = false;
for (Constraint constraint : getConstraints())
{
if (constraint instanceof LuceneQueryBuilderComponent)
@@ -84,23 +83,20 @@ public class LuceneConjunction<Q, S, E extends Throwable> extends BaseConjunctio
break;
case EXCLUDE:
expressionAdaptor.addExcluded(constraintQuery, constraint.getBoost());
must_not = true;
mustNot = true;
break;
}
}
}
else
{
throw new UnsupportedOperationException();
}
if(!must && must_not)
{
expressionAdaptor.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
}
}
if(!must && mustNot)
{
expressionAdaptor.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
}
return expressionAdaptor.getQuery();
}
}

View File

@@ -40,12 +40,10 @@ import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.Selector;
import org.alfresco.repo.search.impl.querymodel.Source;
import org.alfresco.repo.search.impl.querymodel.impl.BaseQuery;
import org.alfresco.repo.search.impl.querymodel.impl.SimpleConstraint;
import org.alfresco.repo.search.impl.querymodel.impl.functions.PropertyAccessor;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Score;
import org.alfresco.service.cmr.search.SearchParameters.SortDefinition;
import org.alfresco.service.cmr.search.SearchParameters.SortDefinition.SortType;
import org.alfresco.util.Pair;
/**
* @author andyh
@@ -72,10 +70,8 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
QueryParserExpressionAdaptor<Q, E> expressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
boolean must = false;
boolean must_not = false;
boolean mustNot = false;
ArrayList<Pair<Constraint, Q>> queriestoConjoin = new ArrayList<>();
if (selectors != null)
{
for (String selector : selectors)
@@ -86,7 +82,6 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
@SuppressWarnings("unchecked")
LuceneQueryBuilderComponent<Q, S, E> luceneQueryBuilderComponent = (LuceneQueryBuilderComponent<Q, S, E>) current;
Q selectorQuery = luceneQueryBuilderComponent.addComponent(selectors, null, luceneContext, functionContext);
queriestoConjoin.add(new Pair<Constraint, Q>(new SimpleConstraint(org.alfresco.repo.search.impl.querymodel.Constraint.Occur.MANDATORY), selectorQuery));
if (selectorQuery != null)
{
expressionBuilder.addRequired(selectorQuery);
@@ -108,8 +103,7 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
@SuppressWarnings("unchecked")
LuceneQueryBuilderComponent<Q, S, E> luceneQueryBuilderComponent = (LuceneQueryBuilderComponent<Q, S, E>) constraint;
Q constraintQuery = luceneQueryBuilderComponent.addComponent(selectors, null, luceneContext, functionContext);
queriestoConjoin.add(new Pair<Constraint, Q>(constraint, constraintQuery));
if (constraintQuery != null)
{
switch (constraint.getOccur())
@@ -124,7 +118,7 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
break;
case EXCLUDE:
expressionBuilder.addExcluded(constraintQuery, constraint.getBoost());
must_not = true;
mustNot = true;
break;
}
}
@@ -135,13 +129,12 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
}
}
if (!must && must_not)
if (!must && mustNot)
{
expressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
}
return expressionBuilder.getQuery();
}
/*
@@ -165,10 +158,10 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
{
if ((getOrderings() == null) || (getOrderings().size() == 0))
{
return Collections.<SortDefinition>emptyList();
return Collections.emptyList();
}
ArrayList<SortDefinition> definitions = new ArrayList<SortDefinition>(getOrderings().size());
List<SortDefinition> definitions = new ArrayList<>(getOrderings().size());
for (Ordering ordering : getOrderings())
{

View File

@@ -39,6 +39,7 @@ public class DirectAccessUrl implements Serializable
private String contentUrl;
private Date expiryTime;
private boolean attachment;
private String fileName;
public String getContentUrl()
{
@@ -70,18 +71,28 @@ public class DirectAccessUrl implements Serializable
this.attachment = attachment;
}
public String getFileName()
{
return fileName;
}
public void setFileName(String fileName)
{
this.fileName = fileName;
}
@Override public boolean equals(Object obj)
{
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
DirectAccessUrl that = (DirectAccessUrl) obj;
return attachment == that.attachment && Objects.equals(contentUrl,
return Objects.equals(fileName, that.fileName) && attachment == that.attachment && Objects.equals(contentUrl,
that.contentUrl) && Objects.equals(expiryTime, that.expiryTime);
}
@Override public int hashCode()
{
return Objects.hash(contentUrl, expiryTime, attachment);
return Objects.hash(contentUrl, expiryTime, attachment, fileName);
}
}

View File

@@ -201,6 +201,11 @@ public class SearchParameters implements BasicSearchParameters
private String timezone;
/**
* Configure the limit to track the total hits on search results
*/
private int trackTotalHits;
/**
* Default constructor
*/
@@ -251,6 +256,7 @@ public class SearchParameters implements BasicSearchParameters
sp.stats = this.stats;
sp.ranges = this.ranges;
sp.timezone = this.timezone;
sp.trackTotalHits = this.trackTotalHits;
return sp;
}
@@ -1641,6 +1647,21 @@ public class SearchParameters implements BasicSearchParameters
{
this.includeMetadata = includeMetadata;
}
public int getTrackTotalHits()
{
return trackTotalHits;
}
/**
* Set a maximum value for the report of total hits. The reported number of hits will never exceed this limit even
* if more are found. If unset, the engines default tracking limit is applied. To remove any limit, set to -1.
*
* @param trackTotalHits int
*/
public void setTrackTotalHits(int trackTotalHits)
{
this.trackTotalHits = trackTotalHits;
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Data model classes
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -27,7 +27,7 @@ package org.alfresco.util;
import java.io.IOException;
import javax.servlet.ServletContext;
import jakarta.servlet.ServletContext;
import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
import org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener;

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<dependencies>
@@ -20,6 +20,16 @@
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-driver-zip</artifactId>
<version>${dependency.truezip.version}</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
</dependency>
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
@@ -31,6 +41,11 @@
<artifactId>maven-artifact</artifactId>
<version>${dependency.maven-artifact.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>

View File

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

View File

@@ -1,6 +1,6 @@
# Fetch image based on Tomcat 9.0, Java 17 and Rocky Linux 8
# More infos about this image: https://github.com/Alfresco/alfresco-docker-base-tomcat
FROM alfresco/alfresco-base-tomcat:tomcat9-jre17-rockylinux8-202303081618
FROM alfresco/alfresco-base-tomcat:tomcat10-jre17-rockylinux8-202306291245
# Set default docker_context.
ARG resource_path=target

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<modules>

View File

@@ -1,3 +1,3 @@
SOLR6_TAG=2.0.7-A5
POSTGRES_TAG=14.4
ACTIVEMQ_TAG=5.17.4-jre17-rockylinux8
ACTIVEMQ_TAG=5.18.2-jre17-rockylinux8

View File

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

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<organization>
@@ -18,7 +18,6 @@
<properties>
<maven.build.sourceVersion>17</maven.build.sourceVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<chemistry-opencmis-commons-api>1.1.0</chemistry-opencmis-commons-api>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<maven-release.version>2.5.3</maven-release.version>
<java.version>17</java.version>
@@ -69,13 +68,6 @@
</exclusion>
</exclusions>
</dependency>
<!-- open cmis settings -->
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-api</artifactId>
<version>${chemistry-opencmis-commons-api}</version>
</dependency>
</dependencies>
<build>

View File

@@ -280,16 +280,26 @@ public class CmisUtil
protected boolean isPrivateWorkingCopy()
{
boolean result;
final Document document;
try
{
result = getPWCDocument().isVersionSeriesPrivateWorkingCopy();
document = getPWCDocument();
}
catch (CmisVersioningException cmisVersioningException)
{
result = false;
return false;
}
return result;
if (Boolean.FALSE.equals(document.isVersionable())) return false;
if (Boolean.FALSE.equals(document.isVersionSeriesCheckedOut())) return false;
final Boolean isPWC = document.isPrivateWorkingCopy();
if (isPWC != null) return isPWC;
final String vsCoId = document.getVersionSeriesCheckedOutId();
if (vsCoId == null) return false;
return vsCoId.equals(document.getId());
}
/**

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<developers>
@@ -31,6 +31,11 @@
<artifactId>email</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@@ -11,8 +11,8 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.FolderNotFoundException;
import javax.mail.MessagingException;
import jakarta.mail.FolderNotFoundException;
import jakarta.mail.MessagingException;
public class ImapCheckFolderTests extends EmailTest
{

View File

@@ -10,8 +10,8 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.FolderNotFoundException;
import javax.mail.MessagingException;
import jakarta.mail.FolderNotFoundException;
import jakarta.mail.MessagingException;
public class ImapCopyFolderTests extends EmailTest
{

View File

@@ -1,6 +1,6 @@
package org.alfresco.email.imap;
import javax.mail.MessagingException;
import jakarta.mail.MessagingException;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.email.EmailTest;

View File

@@ -12,7 +12,7 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.FolderNotFoundException;
import jakarta.mail.FolderNotFoundException;
/**
* Tests for Create Folder action using IMAP client

View File

@@ -10,7 +10,7 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.FolderNotFoundException;
import jakarta.mail.FolderNotFoundException;
public class ImapDeleteFolderTests extends EmailTest
{

View File

@@ -9,7 +9,7 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.MessagingException;
import jakarta.mail.MessagingException;
public class ImapDeleteMessagesTests extends EmailTest
{

View File

@@ -8,7 +8,7 @@ import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.Test;
import javax.mail.Flags;
import jakarta.mail.Flags;
public class ImapMessageFlagsTests extends EmailTest
{

View File

@@ -1,6 +1,6 @@
package org.alfresco.email.imap;
import javax.mail.FolderNotFoundException;
import jakarta.mail.FolderNotFoundException;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.email.EmailTest;

View File

@@ -10,8 +10,8 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.Flags;
import javax.mail.MessagingException;
import jakarta.mail.Flags;
import jakarta.mail.MessagingException;
import java.io.IOException;
public class ImapReadMessagesTests extends EmailTest

View File

@@ -1,6 +1,6 @@
package org.alfresco.email.imap;
import javax.mail.FolderNotFoundException;
import jakarta.mail.FolderNotFoundException;
import org.alfresco.email.EmailTest;
import org.alfresco.utility.constants.UserRole;

View File

@@ -8,8 +8,8 @@ import org.alfresco.utility.testrail.annotation.TestRail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.mail.FolderNotFoundException;
import javax.mail.MessagingException;
import jakarta.mail.FolderNotFoundException;
import jakarta.mail.MessagingException;
public class ImapSitesTests extends EmailTest
{

View File

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

View File

@@ -2,7 +2,7 @@ package org.alfresco.tas.integration;
import static org.alfresco.utility.report.log.Step.STEP;
import javax.mail.FolderNotFoundException;
import jakarta.mail.FolderNotFoundException;
import org.alfresco.rest.model.RestCommentModel;
import org.alfresco.rest.model.RestDeploymentModel;

View File

@@ -8,8 +8,8 @@ import io.restassured.RestAssured;
import java.io.File;
import javax.json.JsonObject;
import javax.mail.Flags;
import javax.mail.MessagingException;
import jakarta.mail.Flags;
import jakarta.mail.MessagingException;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.dataprep.SiteService.Visibility;

View File

@@ -5,7 +5,7 @@ import static org.alfresco.utility.report.log.Step.STEP;
import java.util.ArrayList;
import java.util.List;
import javax.mail.MessagingException;
import jakarta.mail.MessagingException;
import org.alfresco.rest.model.RestCommentModel;
import org.alfresco.rest.model.RestErrorModel;

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-tests</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>
@@ -18,7 +18,7 @@
<rest.api.explorer.branch>master</rest.api.explorer.branch>
<httpclient-osgi-version>4.5.6</httpclient-osgi-version>
<org.glassfish.version>1.1.4</org.glassfish.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
<commons-lang3.version>3.13.0</commons-lang3.version>
<scribejava-apis.version>8.3.3</scribejava-apis.version>
<java.version>17</java.version>
</properties>
@@ -45,13 +45,9 @@
</profiles>
<dependencies>
<!-- fix the info log messages related to Could not instantiate TestExecutionListener
[org.springframework.test.context.web.ServletTestExecutionListener -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- alfresco tester settings -->
@@ -171,14 +167,14 @@
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.17</version>
<version>3.0.19</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json-->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>3.0.17</version>
<version>3.0.19</version>
</dependency>
<dependency>

View File

@@ -2,7 +2,7 @@
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2022 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -86,6 +86,7 @@ import org.json.JSONObject;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.testng.Assert;
@@ -630,36 +631,42 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
STEP(restRequest.toString());
Response returnedResponse;
switch (restRequest.getHttpMethod())
final Response returnedResponse;
HttpMethod httpMethod = restRequest.getHttpMethod();
if (HttpMethod.GET.equals(httpMethod))
{
case GET:
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case DELETE:
returnedResponse = onRequest().delete(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case HEAD:
returnedResponse = onRequest().head(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case OPTIONS:
returnedResponse = onRequest().options(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case POST:
returnedResponse = onRequest().body(restRequest.getBody())
.post(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case PUT:
returnedResponse = onRequest().body(restRequest.getBody())
.contentType(ContentType.JSON.withCharset(restRequest.getContentType()))
.put(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
case TRACE:
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
default:
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
break;
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.DELETE.equals(httpMethod))
{
returnedResponse = onRequest().delete(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.HEAD.equals(httpMethod))
{
returnedResponse = onRequest().head(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.OPTIONS.equals(httpMethod))
{
returnedResponse = onRequest().options(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.POST.equals(httpMethod))
{
returnedResponse = onRequest().body(restRequest.getBody())
.post(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.PUT.equals(httpMethod))
{
returnedResponse = onRequest().body(restRequest.getBody())
.contentType(ContentType.JSON.withCharset(restRequest.getContentType()))
.put(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else if (HttpMethod.TRACE.equals(httpMethod))
{
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
else
{
returnedResponse = onRequest().get(restRequest.getPath(), restRequest.getPathParams()).andReturn();
}
logResponseInformation(restRequest, returnedResponse);

View File

@@ -25,6 +25,8 @@
*/
package org.alfresco.rest.model;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
@@ -43,6 +45,7 @@ public class RestPersonFavoritesModel extends TestModel implements IRestModel<Re
private String targetGuid;
private String createdAt;
private List<String> allowableOperations;
private RestTargetModel target;
@@ -86,4 +89,12 @@ public class RestPersonFavoritesModel extends TestModel implements IRestModel<Re
{
this.createdAt = createdAt;
}
public List<String> getAllowableOperations() {
return allowableOperations;
}
public void setAllowableOperations(List<String> allowableOperations) {
this.allowableOperations = allowableOperations;
}
}

View File

@@ -0,0 +1,82 @@
/*-
* #%L
* alfresco-tas-restapi
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.search;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.utility.model.TestModel;
import com.fasterxml.jackson.annotation.JsonProperty;
public class RestRequestLimitsModel extends TestModel implements IRestModel<RestRequestLimitsModel>
{
@JsonProperty
RestRequestLimitsModel model;
private Integer permissionEvaluationTime;
private Integer permissionEvaluationCount;
private Integer trackTotalHitsLimit;
@Override
public RestRequestLimitsModel onModel()
{
return model;
}
public RestRequestLimitsModel(Integer permissionEvaluationTime, Integer permissionEvaluationCount,
Integer trackTotalHitsLimit)
{
super();
this.permissionEvaluationTime = permissionEvaluationTime;
this.permissionEvaluationCount = permissionEvaluationCount;
this.trackTotalHitsLimit = trackTotalHitsLimit;
}
public Integer getPermissionEvaluationTime()
{
return permissionEvaluationTime;
}
public void setPermissionEvaluationTime(Integer permissionEvaluationTime)
{
this.permissionEvaluationTime = permissionEvaluationTime;
}
public Integer getPermissionEvaluationCount()
{
return permissionEvaluationCount;
}
public void setPermissionEvaluationCount(Integer permissionEvaluationCount)
{
this.permissionEvaluationCount = permissionEvaluationCount;
}
public Integer getTrackTotalHitsLimit()
{
return trackTotalHitsLimit;
}
public void setTrackTotalHitsLimit(Integer trackTotalHitsLimit)
{
this.trackTotalHitsLimit = trackTotalHitsLimit;
}
}

View File

@@ -101,6 +101,8 @@ public class SearchNodeModel extends TestModel implements IRestModel<SearchNodeM
private String location;
private Boolean isFavorite;
public Map<String, Object> getAssociation()
{
return association;
@@ -326,5 +328,12 @@ public class SearchNodeModel extends TestModel implements IRestModel<SearchNodeM
{
this.location = location;
}
public Boolean isFavorite() {
return isFavorite;
}
public void setIsFavorite(Boolean favorite) {
isFavorite = favorite;
}
}

View File

@@ -79,6 +79,7 @@ public class SearchRequest extends TestModel
List<SortClause> sort;
RestRequestDefaultsModel defaults;
List<RestRequestTemplatesModel> templates;
RestRequestLimitsModel limits;
public SearchRequest()
{
@@ -302,4 +303,15 @@ public class SearchRequest extends TestModel
return this;
}
public RestRequestLimitsModel getLimits()
{
return limits;
}
public void setLimits(RestRequestLimitsModel limits)
{
this.limits = limits;
}
}

View File

@@ -1,11 +1,16 @@
package org.alfresco.rest.favorites;
import java.util.List;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPersonFavoritesModel;
import org.alfresco.rest.model.RestPersonFavoritesModelsCollection;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.search.RestRequestQueryModel;
import org.alfresco.rest.search.SearchRequest;
import org.alfresco.utility.Utility;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.FileModel;
@@ -15,12 +20,14 @@ 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.hamcrest.Matchers;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GetFavoritesTests extends RestTest
{
private static final String ALLOWABLE_OPERATIONS = "allowableOperations";
private UserModel adminUserModel, userModel;
private SiteModel firstSiteModel;
private SiteModel secondSiteModel;
@@ -60,7 +67,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY,
description = "Verify Manager user gets favorites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY })
public void managerIsAbleToRetrieveFavorites() throws Exception
public void managerIsAbleToRetrieveFavorites()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -76,7 +83,7 @@ public class GetFavoritesTests extends RestTest
description = "Verify user gets status code 401 if authentication call fails")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY })
// @Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
public void userIsNotAbleToRetrieveFavoritesIfAuthenticationFails() throws Exception
public void userIsNotAbleToRetrieveFavoritesIfAuthenticationFails()
{
UserModel siteManager = firstSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setPassword("wrongPassword");
@@ -87,7 +94,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Admin user gets favorites sites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void adminIsAbleToRetrieveFavoritesSites() throws Exception
public void adminIsAbleToRetrieveFavoritesSites()
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(firstSiteModel);
restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(secondSiteModel);
@@ -102,7 +109,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Admin user gets favorites folders with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void adminIsAbleToRetrieveFavoritesFolders() throws Exception
public void adminIsAbleToRetrieveFavoritesFolders()
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addFolderToFavorites(firstFolderModel);
restClient.withCoreAPI().usingUser(adminUserModel).addFolderToFavorites(secondFolderModel);
@@ -117,7 +124,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Admin user gets favorites files with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void adminIsAbleToRetrieveFavoritesFiles() throws Exception
public void adminIsAbleToRetrieveFavoritesFiles()
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addFileToFavorites(firstFileModel);
restClient.withCoreAPI().usingUser(adminUserModel).addFileToFavorites(secondFileModel);
@@ -132,7 +139,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Collaborator user gets favorites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void collaboratorIsAbleToRetrieveFavorites() throws Exception
public void collaboratorIsAbleToRetrieveFavorites()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -147,7 +154,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Contributor user gets favorites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void contributorIsAbleToRetrieveFavorites() throws Exception
public void contributorIsAbleToRetrieveFavorites()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -162,7 +169,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify Consumer user gets favorites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void consumerIsAbleToRetrieveFavorites() throws Exception
public void consumerIsAbleToRetrieveFavorites()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -177,7 +184,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get favorites of another user with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsNotAbleToRetrieveFavoritesOfAnotherUser() throws Exception
public void userIsNotAbleToRetrieveFavoritesOfAnotherUser()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).getFavorites();
@@ -188,7 +195,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get favorites of admin user with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsNotAbleToRetrieveFavoritesOfAdminUser() throws Exception
public void userIsNotAbleToRetrieveFavoritesOfAdminUser()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI()
.usingUser(adminUserModel).getFavorites();
@@ -199,7 +206,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin user doesn't have permission to get favorites of another user with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void adminIsNotAbleToRetrieveFavoritesOfAnotherUser() throws Exception
public void adminIsNotAbleToRetrieveFavoritesOfAnotherUser()
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.getFavorites();
@@ -210,7 +217,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites sites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveOnlyFavoritesSites() throws Exception
public void userIsAbleToRetrieveOnlyFavoritesSites()
{
restClient.authenticateUser(secondSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -228,7 +235,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites files with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveOnlyFavoritesFiles() throws Exception
public void userIsAbleToRetrieveOnlyFavoritesFiles()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -246,7 +253,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites folders with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveOnlyFavoritesFolders() throws Exception
public void userIsAbleToRetrieveOnlyFavoritesFolders()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -264,7 +271,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites files or folders with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveFavoritesFilesOrFolders() throws Exception
public void userIsAbleToRetrieveFavoritesFilesOrFolders()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -285,7 +292,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites files or sites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveFavoritesFilesOrSites() throws Exception
public void userIsAbleToRetrieveFavoritesFilesOrSites()
{
restClient.authenticateUser(secondSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -306,7 +313,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets only favorites folders or sites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveFavoritesFoldersOrSites() throws Exception
public void userIsAbleToRetrieveFavoritesFoldersOrSites()
{
restClient.authenticateUser(secondSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -327,7 +334,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets all favorites with Rest API and status code is 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToRetrieveAllFavorites() throws Exception
public void userIsAbleToRetrieveAllFavorites()
{
restClient.authenticateUser(secondSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -358,7 +365,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify request for a user with no favorites returns status 200")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userHasNoFavorites() throws Exception
public void userHasNoFavorites()
{
restClient.authenticateUser(secondSiteUsers.getOneUserWithRole(UserRole.SiteContributor));
@@ -370,7 +377,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify request using invalid where parameter returns status 400")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void getFavoritesUsingInvalidWhereParameter() throws Exception
public void getFavoritesUsingInvalidWhereParameter()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -386,7 +393,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify User gets correct favorites after deleting a favorite")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void checkFavoriteFolderIsRemoved() throws Exception
public void checkFavoriteFolderIsRemoved()
{
restClient.authenticateUser(firstSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel);
@@ -404,7 +411,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites specifying -me- string in place of <personid> for request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesWhenUsingMeAsUsername() throws Exception
public void userIsAbleToGetFavoritesWhenUsingMeAsUsername()
{
userFavorites = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -414,7 +421,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites using empty for where parameter for request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesWhenUsingEmptyWhereParameter() throws Exception
public void userIsAbleToGetFavoritesWhenUsingEmptyWhereParameter()
{
userFavorites = restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().where().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
@@ -424,7 +431,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid maxItems parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void checkInvalidMaxItemsStatusCode() throws Exception
public void checkInvalidMaxItemsStatusCode()
{
restClient.authenticateUser(adminUserModel).withParams("maxItems=AB").withCoreAPI().usingUser(adminUserModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter");
@@ -433,7 +440,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid skipCount parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void checkInvalidSkipCountStatusCode() throws Exception
public void checkInvalidSkipCountStatusCode()
{
restClient.authenticateUser(adminUserModel).withParams("skipCount=AB").withCoreAPI().usingUser(adminUserModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter");
@@ -442,7 +449,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites when using invalid network id for non-tenant user")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void getFavoritesWhenNetworkIdIsInvalid() throws Exception
public void getFavoritesWhenNetworkIdIsInvalid()
{
UserModel networkUserModel = dataUser.createRandomTestUser();
networkUserModel.setDomain("invalidNetwork");
@@ -453,7 +460,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites using AND instead of OR in where parameter for request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsNotAbleToGetFavoritesWhenUsingANDInWhereParameter() throws Exception
public void userIsNotAbleToGetFavoritesWhenUsingANDInWhereParameter()
{
userFavorites = restClient.withCoreAPI().usingAuthUser().where().targetFolderExist().invalidWhereParameter("AND").targetFileExist().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
@@ -463,7 +470,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites using wrong name instead of EXISTS in where parameter for request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsNotAbleToGetFavoritesWhenUsingWrongWhereParameter() throws Exception
public void userIsNotAbleToGetFavoritesWhenUsingWrongWhereParameter()
{
userFavorites = restClient.withCoreAPI().usingAuthUser().where().invalidWhereParameter("EXIST((target/site))").targetFileExist().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
@@ -473,7 +480,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites except the first one for request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesExceptTheFirstOne() throws Exception
public void userIsAbleToGetFavoritesExceptTheFirstOne()
{
userFavorites = restClient.authenticateUser(userModel).withParams("skipCount=1").withCoreAPI().usingUser(userModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -486,7 +493,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get first two favorites sites")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFirstTwoFavorites() throws Exception
public void userIsAbleToGetFirstTwoFavorites()
{
userFavorites = restClient.authenticateUser(userModel).withParams("maxItems=2").withCoreAPI().usingUser(userModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -502,7 +509,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify get favorites sites when using empty values for skipCount and maxItems")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesWhenSkipCountAndMaxItemsAreEmpty() throws Exception
public void userIsAbleToGetFavoritesWhenSkipCountAndMaxItemsAreEmpty()
{
restClient.authenticateUser(userModel).withParams("skipCount= ").withCoreAPI().usingUser(userModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, " "));
@@ -514,7 +521,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify the get favorites request for a high value for skipCount parameter")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesWithHighSkipCount() throws Exception
public void userIsAbleToGetFavoritesWithHighSkipCount()
{
userFavorites = restClient.authenticateUser(userModel).withParams("skipCount=999999999").withCoreAPI().usingUser(userModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -525,7 +532,7 @@ public class GetFavoritesTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify the get favorites request with properties parameter applied")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
public void userIsAbleToGetFavoritesWithPropertiesParamApplied() throws Exception
public void userIsAbleToGetFavoritesWithPropertiesParamApplied()
{
userFavorites = restClient.authenticateUser(userModel).withParams("properties=targetGuid").withCoreAPI().usingUser(userModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -536,7 +543,7 @@ public class GetFavoritesTests extends RestTest
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify entry details for get favorites response with Rest API")
public void checkResponseSchemaForGetFavorites() throws Exception
public void checkResponseSchemaForGetFavorites()
{
userFavorites = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -551,4 +558,36 @@ public class GetFavoritesTests extends RestTest
.field("id").is(thirdSiteModel.getId()).and()
.field("title").is(thirdSiteModel.getTitle());
}
@Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.FAVORITES}, executionType = ExecutionType.REGRESSION,
description = "Verify if get favorites response returns allowableOperations object when requested")
public void checkResponsesForGetFavoritesWithAllowableOperations()
{
final RestPersonFavoritesModelsCollection adminFavorites =
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().include(ALLOWABLE_OPERATIONS).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.OK);
adminFavorites.getEntries().stream()
.map(RestPersonFavoritesModel::onModel)
.forEach(m -> m.assertThat().field(ALLOWABLE_OPERATIONS).isNotEmpty());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.FAVORITES}, executionType = ExecutionType.REGRESSION,
description = "Verify the get favorites request with properties parameter applied")
@Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.REGRESSION})
public void checkSearchResponseContainsIsFavoriteWhenRequested() throws InterruptedException {
final SearchRequest query = new SearchRequest();
final RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery(firstFileModel.getName());
query.setQuery(queryReq);
query.setInclude(List.of("isFavorite"));
Utility.sleep(500, 60000, () ->
{
restClient.authenticateUser(adminUserModel).withSearchAPI().search(query);
restClient.onResponse().assertThat().body("list.entries.entry[0].isFavorite", Matchers.notNullValue());
}
);
}
}

View File

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

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo-packaging</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<properties>
@@ -59,9 +59,8 @@
</dependency>
<!-- 'provided' dependencies, not packaged in war -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- Test dependencies -->
<dependency>
@@ -136,7 +135,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>3.1.0</version>
<version>3.2.0</version>
<executions>
<execution>
<phase>validate</phase>

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository WAR Community
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -25,7 +25,7 @@
*/
package org.alfresco.web.app;
import javax.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository WAR Community
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -30,9 +30,9 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.surf.util.URLDecoder;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.StringTokenizer;
@@ -66,7 +66,7 @@ public class DownloadContentServlet extends HttpServlet
private static final String URL_DIRECT_LONG = "direct";
/**
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse)
* @see jakarta.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse)
*/
protected void doGet(final HttpServletRequest req, final HttpServletResponse res)
throws IOException

View File

@@ -388,12 +388,6 @@
<load-on-startup>8</load-on-startup>
</servlet>
<servlet>
<servlet-name>cmistck</servlet-name>
<servlet-class>org.apache.chemistry.opencmis.tck.runner.WebRunnerServlet</servlet-class>
<load-on-startup>8</load-on-startup>
</servlet>
<servlet>
<servlet-name>publicapiServlet</servlet-name>
<servlet-class>org.alfresco.rest.api.PublicApiWebScriptServlet</servlet-class>
@@ -469,14 +463,6 @@
<servlet-name>publicapiServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<!-- The CMIS TCK is deactivated by default. -->
<!-- CMISTCK
<servlet-mapping>
<servlet-name>cmistck</servlet-name>
<url-pattern>/cmistck</url-pattern>
</servlet-mapping>
CMISTCK -->
<!-- Enterprise servlet-mapping placeholder -->

354
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.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Alfresco Community Repo Parent</name>
@@ -48,70 +48,76 @@
<dependency.alfresco-hb-data-sender.version>1.1.1</dependency.alfresco-hb-data-sender.version>
<dependency.alfresco-trashcan-cleaner.version>2.4.2</dependency.alfresco-trashcan-cleaner.version>
<dependency.alfresco-jlan.version>7.5</dependency.alfresco-jlan.version>
<dependency.alfresco-server-root.version>6.0.1</dependency.alfresco-server-root.version>
<dependency.alfresco-server-root.version>7.0.1</dependency.alfresco-server-root.version>
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version>
<dependency.activiti.version>5.23.0</dependency.activiti.version>
<dependency.alfresco-transform-service.version>3.0.0</dependency.alfresco-transform-service.version>
<dependency.alfresco-transform-core.version>4.0.0</dependency.alfresco-transform-core.version>
<dependency.alfresco-greenmail.version>6.9</dependency.alfresco-greenmail.version>
<dependency.acs-event-model.version>0.0.22</dependency.acs-event-model.version>
<dependency.alfresco-transform-service.version>3.0.1-A2</dependency.alfresco-transform-service.version>
<dependency.alfresco-transform-core.version>4.0.1-A3</dependency.alfresco-transform-core.version>
<dependency.alfresco-greenmail.version>7.0</dependency.alfresco-greenmail.version>
<dependency.acs-event-model.version>0.0.23</dependency.acs-event-model.version>
<dependency.spring.version>5.3.27</dependency.spring.version>
<dependency.spring.version>6.0.9</dependency.spring.version>
<dependency.antlr.version>3.5.3</dependency.antlr.version>
<dependency.jackson.version>2.15.1</dependency.jackson.version>
<dependency.cxf.version>3.5.5</dependency.cxf.version>
<dependency.opencmis.version>1.0.0</dependency.opencmis.version>
<dependency.webscripts.version>8.44</dependency.webscripts.version>
<dependency.bouncycastle.version>1.70</dependency.bouncycastle.version>
<dependency.mockito-core.version>4.9.0</dependency.mockito-core.version>
<dependency.jackson.version>2.15.2</dependency.jackson.version>
<dependency.cxf.version>4.0.2</dependency.cxf.version>
<dependency.opencmis.version>1.0.0-jakarta-1</dependency.opencmis.version>
<dependency.webscripts.version>8.46</dependency.webscripts.version>
<dependency.bouncycastle.version>1.76</dependency.bouncycastle.version>
<dependency.mockito-core.version>5.4.0</dependency.mockito-core.version>
<dependency.assertj.version>3.24.2</dependency.assertj.version>
<dependency.org-json.version>20230618</dependency.org-json.version>
<dependency.commons-dbcp.version>2.9.0</dependency.commons-dbcp.version>
<dependency.commons-io.version>2.11.0</dependency.commons-io.version>
<dependency.commons-io.version>2.13.0</dependency.commons-io.version>
<dependency.gson.version>2.8.9</dependency.gson.version>
<dependency.guava.version>32.1.2-jre</dependency.guava.version>
<dependency.httpclient.version>4.5.13</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-httpcore5.version>5.2.2</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.7</dependency.slf4j.version>
<dependency.log4j.version>2.20.0</dependency.log4j.version>
<dependency.gytheio.version>0.20.0-A1</dependency.gytheio.version>
<dependency.groovy.version>3.0.17</dependency.groovy.version>
<dependency.groovy.version>3.0.19</dependency.groovy.version>
<dependency.tika.version>2.4.1</dependency.tika.version>
<dependency.spring-security.version>5.8.3</dependency.spring-security.version>
<dependency.spring-security.version>6.1.3</dependency.spring-security.version>
<dependency.truezip.version>7.7.10</dependency.truezip.version>
<dependency.poi.version>5.2.2</dependency.poi.version>
<dependency.poi-ooxml-lite.version>5.2.3</dependency.poi-ooxml-lite.version>
<dependency.jboss.logging.version>3.5.0.Final</dependency.jboss.logging.version>
<dependency.camel.version>3.20.2</dependency.camel.version> <!-- when bumping this version, please keep track/sync with included netty.io dependencies -->
<dependency.netty.version>4.1.87.Final</dependency.netty.version> <!-- must be in sync with camels transitive dependencies, e.g.: netty-common -->
<dependency.netty.qpid.version>4.1.82.Final</dependency.netty.qpid.version> <!-- must be in sync with camels transitive dependencies: native-unix-common/native-epoll/native-kqueue -->
<dependency.netty-tcnative.version>2.0.56.Final</dependency.netty-tcnative.version> <!-- must be in sync with camels transitive dependencies -->
<dependency.activemq.version>5.17.4</dependency.activemq.version>
<dependency.camel.version>4.0.0</dependency.camel.version> <!-- when bumping this version, please keep track/sync with included netty.io dependencies -->
<dependency.netty.version>4.1.96.Final</dependency.netty.version> <!-- must be in sync with camels transitive dependencies, e.g.: netty-common -->
<dependency.activemq.version>5.18.2</dependency.activemq.version>
<dependency.apache-compress.version>1.23.0</dependency.apache-compress.version>
<dependency.apache.taglibs.version>1.2.5</dependency.apache.taglibs.version>
<dependency.awaitility.version>4.2.0</dependency.awaitility.version>
<dependency.swagger-ui.version>3.38.0</dependency.swagger-ui.version>
<dependency.swagger-parser.version>1.0.66</dependency.swagger-parser.version>
<dependency.swagger-parser.version>1.0.67</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.1</dependency.pooled-jms.version>
<dependency.jakarta-jaxb-api.version>2.3.3</dependency.jakarta-jaxb-api.version>
<dependency.jakarta-ws-api.version>2.3.3</dependency.jakarta-ws-api.version>
<dependency.jakarta-soap-api.version>1.4.2</dependency.jakarta-soap-api.version>
<dependency.jakarta-activation-api.version>1.2.2</dependency.jakarta-activation-api.version>
<dependency.jakarta-ee-jaxb-api.version>4.0.0</dependency.jakarta-ee-jaxb-api.version>
<dependency.jakarta-ee-jaxb-impl.version>4.0.3</dependency.jakarta-ee-jaxb-impl.version>
<dependency.java-ee-jaxb-api.version>2.3.3</dependency.java-ee-jaxb-api.version>
<dependency.jakarta-ws-api.version>3.0.1</dependency.jakarta-ws-api.version>
<dependency.jakarta-soap-api.version>2.0.1</dependency.jakarta-soap-api.version>
<dependency.jakarta-annotation-api.version>2.1.1</dependency.jakarta-annotation-api.version>
<dependency.jakarta-transaction-api.version>1.3.3</dependency.jakarta-transaction-api.version>
<dependency.jakarta-jws-api.version>2.1.0</dependency.jakarta-jws-api.version>
<dependency.jakarta-mail-api.version>1.6.5</dependency.jakarta-mail-api.version>
<dependency.jakarta-transaction-api.version>2.0.1</dependency.jakarta-transaction-api.version>
<dependency.jakarta-jws-api.version>3.0.0</dependency.jakarta-jws-api.version>
<dependency.jakarta-ee-mail.version>2.0.1</dependency.jakarta-ee-mail.version>
<dependency.jakarta-ee-activation.version>2.0.1</dependency.jakarta-ee-activation.version>
<dependency.jakarta-ee-jms.version>3.0.0</dependency.jakarta-ee-jms.version>
<dependency.java-ee-activation.version>1.2.0</dependency.java-ee-activation.version>
<dependency.jakarta-json-api.version>1.1.6</dependency.jakarta-json-api.version>
<dependency.jakarta-json-path.version>2.8.0</dependency.jakarta-json-path.version>
<dependency.json-smart.version>2.4.11</dependency.json-smart.version>
<dependency.json-smart.version>2.5.0</dependency.json-smart.version>
<dependency.jakarta-rpc-api.version>1.1.4</dependency.jakarta-rpc-api.version>
<alfresco.googledrive.version>3.4.1</alfresco.googledrive.version>
<alfresco.aos-module.version>1.6.1</alfresco.aos-module.version>
<alfresco.googledrive.version>3.4.2-A5</alfresco.googledrive.version>
<alfresco.aos-module.version>1.6.2-A2</alfresco.aos-module.version>
<alfresco.api-explorer.version>23.1.0-A1</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share -->
<alfresco.maven-plugin.version>2.2.0</alfresco.maven-plugin.version>
@@ -121,11 +127,11 @@
<dependency.mysql.version>8.0.30</dependency.mysql.version>
<dependency.mysql-image.version>8</dependency.mysql-image.version>
<dependency.mariadb.version>2.7.4</dependency.mariadb.version>
<dependency.tas-utility.version>4.0.4</dependency.tas-utility.version>
<dependency.tas-utility.version>5.0.0</dependency.tas-utility.version>
<dependency.rest-assured.version>5.3.1</dependency.rest-assured.version>
<dependency.tas-email.version>1.21</dependency.tas-email.version>
<dependency.tas-webdav.version>1.16</dependency.tas-webdav.version>
<dependency.tas-ftp.version>1.17</dependency.tas-ftp.version>
<dependency.tas-email.version>2.0.0</dependency.tas-email.version>
<dependency.tas-webdav.version>1.20</dependency.tas-webdav.version>
<dependency.tas-ftp.version>1.18</dependency.tas-ftp.version>
<dependency.tas-dataprep.version>2.6</dependency.tas-dataprep.version>
<!-- AGS properties shared between community and enterprise -->
@@ -149,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.1.0.155</tag>
<tag>HEAD</tag>
</scm>
<distributionManagement>
@@ -169,12 +175,17 @@
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${dependency.jakarta-jaxb-api.version}</version>
<version>${dependency.jakarta-ee-jaxb-api.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${dependency.jakarta-jaxb-api.version}</version>
<version>${dependency.jakarta-ee-jaxb-impl.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-core</artifactId>
<version>${dependency.jakarta-ee-jaxb-impl.version}</version>
</dependency>
<dependency>
@@ -189,17 +200,6 @@
<version>${dependency.jakarta-soap-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>${dependency.jakarta-activation-api.version}</version>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
<version>${dependency.jakarta-activation-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
@@ -218,15 +218,49 @@
<version>${dependency.jakarta-jws-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>${dependency.jakarta-mail-api.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.sun.mail</groupId>-->
<!-- <artifactId>javax.mail</artifactId>-->
<!-- <version>${dependency.java-ee-mail.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>${dependency.jakarta-mail-api.version}</version>
<version>${dependency.jakarta-ee-mail.version}</version>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>${dependency.jakarta-ee-mail.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
<version>${dependency.jakarta-ee-activation.version}</version>
</dependency>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>${dependency.jakarta-ee-activation.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>${dependency.java-ee-activation.version}</version>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${dependency.jakarta-ee-jms.version}</version>
</dependency>
<dependency>
<groupId>org.messaginghub</groupId>
<artifactId>pooled-jms</artifactId>
<version>${dependency.pooled-jms.version}</version>
</dependency>
<dependency>
@@ -262,6 +296,33 @@
<version>${dependency.jakarta-rpc-api.version}</version>
</dependency>
<!--CMIS-->
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-api</artifactId>
<version>${dependency.opencmis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-bindings</artifactId>
<version>${dependency.opencmis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-impl</artifactId>
<version>${dependency.opencmis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-api</artifactId>
<version>${dependency.opencmis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-impl</artifactId>
<version>${dependency.opencmis.version}</version>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-jlan-embed</artifactId>
@@ -346,6 +407,16 @@
<artifactId>commons-httpclient</artifactId>
<version>${dependency.commons-httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>${dependency.httpcomponents-httpclient5.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
<version>${dependency.httpcomponents-httpcore5.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
@@ -359,7 +430,7 @@
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
<version>1.16.0</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
@@ -383,11 +454,15 @@
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.5</version>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta</artifactId>
<version>2.0.0-M1</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
@@ -517,7 +592,7 @@
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>2.0</version>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@@ -594,12 +669,17 @@
<!-- Enforce newer version -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>${dependency.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<artifactId>bcmail-jdk15to18</artifactId>
<version>${dependency.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15to18</artifactId>
<version>${dependency.bouncycastle.version}</version>
</dependency>
<dependency>
@@ -634,12 +714,12 @@
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>7.5.4</version>
<version>7.5.5</version>
</dependency>
<dependency>
<groupId>com.github.fge</groupId>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.2.6</version>
<version>1.0.86</version>
</dependency>
<!-- upgrade dependency from TIKA -->
<dependency>
@@ -734,9 +814,22 @@
<!-- provided dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-activemq</artifactId>
<version>${dependency.camel.version}</version>
</dependency>
<!-- Test only dependencies, as popped up while running mvn test -->
@@ -771,10 +864,21 @@
<artifactId>gson</artifactId>
<version>${dependency.gson.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${dependency.guava.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>${dependency.camel.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -791,22 +895,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-activemq</artifactId>
<version>${dependency.camel.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- If you are going to bump dependency.camel.version, please check if the netty-codec-http has higher version that the one above.-->
<groupId>org.apache.camel</groupId>
@@ -825,11 +913,6 @@
<artifactId>camel-jackson</artifactId>
<version>${dependency.camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-directvm</artifactId>
<version>${dependency.camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-direct</artifactId>
@@ -845,17 +928,6 @@
<artifactId>camel-mock</artifactId>
<version>${dependency.camel.version}</version>
</dependency>
<!-- Netty non-transitive dependencies declared for depending projects usage in conjunction with Camel's other transitive netty dependencies -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler-proxy</artifactId>
<version>${dependency.netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-classes</artifactId>
<version>${dependency.netty-tcnative.version}</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
@@ -886,7 +958,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -900,6 +972,15 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>${dependency.netty.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-bom</artifactId>
@@ -955,7 +1036,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.5.0</version>
<version>3.6.0</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
@@ -1006,7 +1087,64 @@
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.10.7</version>
<version>1.10.9</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>commons-fileupload:commons-fileupload</exclude>
<exclude>javax.servlet:servlet-api</exclude>
<exclude>com.sun.mail:javax.mail</exclude>
<exclude>javax.jms:javax.jms-api</exclude>
<exclude>javax.activation:activation</exclude>
<exclude>javax.activation:javax.activation-api</exclude>
<exclude>javax.xml.bind:jaxb-api</exclude>
<exclude>javax.xml.soap:saaj-api</exclude>
<exclude>javax.xml.ws:jaxws-api</exclude>
<exclude>javax.mail</exclude>
<exclude>javax.transaction</exclude>
<!-- Enforce minimal versions of jakarta dependencies-->
<exclude>jakarta.servlet:jakarta.servlet-api:(, 5.0.0)</exclude>
<exclude>jakarta.xml.bind:jakarta.xml.bind-api:(, 3.0.1)</exclude>
<exclude>jakarta.json:jakarta.json-api:(, 2.0.1)</exclude>
<exclude>jakarta.servlet.jsp:jakarta.servlet.jsp-api:(, 3.0.0)</exclude>
<exclude>jakarta.annotation:jakarta.annotation-api:(, 2.0.0)</exclude>
<exclude>jakarta.transaction:jakarta.transaction-api:(, 2.0.1)</exclude>
<exclude>jakarta.jms:jakarta.jms-api:(, 3.0.0)</exclude>
<exclude>jakarta.activation:jakarta.activation-api:(, 2.0.1)</exclude>
<exclude>jakarta.xml.ws:jakarta.xml.ws-api:(, 3.0.1)</exclude>
<exclude>jakarta.xml.soap:jakarta.xml.soap-api:(, 2.0.1)</exclude>
<exclude>jakarta.jws:jakarta.jws-api:(, 3.0.0)</exclude>
<!-- Enforce ban bouncycastle dependencies other than specified under <includes> section-->
<exclude>org.bouncycastle</exclude>
<!-- Enforce one version of Jaxb-->
<exclude>com.sun.xml.bind</exclude>
</excludes>
<includes>
<include>org.bouncycastle:bcprov-jdk15to18:[1.74,)</include>
<include>org.bouncycastle:bcmail-jdk15to18:[1.74,)</include>
<include>org.bouncycastle:bcpkix-jdk15to18:[1.74,)</include>
<include>org.bouncycastle:bcutil-jdk15to18:[1.74,)</include>
</includes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
@@ -1015,6 +1153,10 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
</project>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>23.1.0.155</version>
<version>23.1.0.204-SNAPSHOT</version>
</parent>
<dependencies>
@@ -36,9 +36,12 @@
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -59,22 +62,8 @@
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-test-tck</artifactId>
<version>${dependency.opencmis.version}</version>
<exclusions>
<!-- REPO-5009 Excluded to avoid duplicated classes with javax.jws:javax.jws-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
</exclusions>
<!-- <scope>test</scope> -->
<scope>test</scope>
</dependency>
<!-- the cxf libs were updated, see dependencyManagement section -->
<!-- Test dependencies -->
<dependency>
@@ -130,7 +119,7 @@
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>10.0.14</version>
<version>11.0.15</version>
<scope>test</scope>
<exclusions>
<exclusion>
@@ -142,13 +131,13 @@
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
<version>10.0.11</version>
<version>11.0.15</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>10.0.11</version>
<version>11.0.15</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -157,21 +146,10 @@
<version>2.3</version>
<scope>test</scope>
<exclusions>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
<!-- REPO-5009 Excluded to avoid duplicated classes with javax.jws:javax.jws-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<!-- MNT-20557: Excluding javax.annotation:javax.annotation-api, jakarta.annotation:jakarta.annotation-api will be used instead -->
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>

View File

@@ -1,31 +1,31 @@
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.opencmis;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
import org.alfresco.repo.tenant.TenantUtil;

View File

@@ -1,31 +1,31 @@
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.opencmis;
import javax.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServlet;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
import org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet;

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -23,22 +23,22 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.opencmis;
import javax.servlet.http.HttpServletRequest;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
/**
* Generates an OpenCMIS base url based on the request, repository id and binding.
*
* @author steveglover
*
*/
public interface BaseUrlGenerator
{
String getContextPath(HttpServletRequest httpReq);
String getServletPath(HttpServletRequest req);
String getBaseUrl(HttpServletRequest req, String repositoryId, Binding binding);
String getRequestURI(HttpServletRequest req, String repositoryId, String operation, String id);
}
package org.alfresco.opencmis;
import jakarta.servlet.http.HttpServletRequest;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
/**
* Generates an OpenCMIS base url based on the request, repository id and binding.
*
* @author steveglover
*
*/
public interface BaseUrlGenerator
{
String getContextPath(HttpServletRequest httpReq);
String getServletPath(HttpServletRequest req);
String getBaseUrl(HttpServletRequest req, String repositoryId, Binding binding);
String getRequestURI(HttpServletRequest req, String repositoryId, String operation, String id);
}

View File

@@ -1,31 +1,31 @@
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.opencmis;
import javax.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServlet;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
import org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet;

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -25,31 +25,14 @@
*/
package org.alfresco.opencmis;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.AsyncContext;
import javax.servlet.DispatcherType;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
@@ -70,10 +53,9 @@ import org.springframework.extensions.webscripts.servlet.WebScriptServletRuntime
* Wraps an OpenCMIS HttpServletRequest, mapping urls and adding servlet attributes specific to the Alfresco implementation of OpenCMIS.
*/
@SuppressWarnings("rawtypes")
public class CMISHttpServletRequest implements HttpServletRequest
public class CMISHttpServletRequest extends HttpServletRequestWrapper
{
protected WebScriptRequest req;
protected HttpServletRequest httpReq;
protected String networkId;
protected String operation;
protected String id; // object id (or path for browser binding)
@@ -85,6 +67,7 @@ public class CMISHttpServletRequest implements HttpServletRequest
public CMISHttpServletRequest(WebScriptRequest req, String serviceName, BaseUrlGenerator baseUrlGenerator, Binding binding, Descriptor currentDescriptor,
TenantAdminService tenantAdminService)
{
super(WebScriptServletRuntime.getHttpServletRequest(req));
this.req = req;
this.serviceName = serviceName;
this.baseUrlGenerator = baseUrlGenerator;
@@ -119,13 +102,17 @@ public class CMISHttpServletRequest implements HttpServletRequest
Match match = req.getServiceMatch();
Map<String, String> templateVars = match.getTemplateVars();
HttpServletRequest httpReq = WebScriptServletRuntime.getHttpServletRequest(req);
this.httpReq = httpReq;
this.operation = templateVars.get("operation");
this.id = templateVars.get("id");
addAttributes();
}
@Override
public HttpServletRequest getRequest()
{
return (HttpServletRequest) super.getRequest();
}
/*
* Recursively unwrap req if it is a WrappingWebScriptRequest
@@ -145,9 +132,9 @@ public class CMISHttpServletRequest implements HttpServletRequest
{
if(networkId != null)
{
httpReq.setAttribute(Constants.PARAM_REPOSITORY_ID, networkId);
super.setAttribute(Constants.PARAM_REPOSITORY_ID, networkId);
}
httpReq.setAttribute("serviceName", serviceName);
super.setAttribute("serviceName", serviceName);
}
@Override
@@ -155,11 +142,11 @@ public class CMISHttpServletRequest implements HttpServletRequest
{
if(arg0.equals(Dispatcher.BASE_URL_ATTRIBUTE))
{
return baseUrlGenerator.getBaseUrl(this, networkId, binding);
return baseUrlGenerator.getBaseUrl(getRequest(), networkId, binding);
}
else
{
return httpReq.getAttribute(arg0);
return super.getAttribute(arg0);
}
}
@@ -167,7 +154,7 @@ public class CMISHttpServletRequest implements HttpServletRequest
@Override
public Enumeration getAttributeNames()
{
Enumeration e = httpReq.getAttributeNames();
Enumeration e = super.getAttributeNames();
List attrNames = new ArrayList();
while(e.hasMoreElements())
{
@@ -190,60 +177,6 @@ public class CMISHttpServletRequest implements HttpServletRequest
};
}
@Override
public String getCharacterEncoding()
{
return httpReq.getCharacterEncoding();
}
@Override
public int getContentLength()
{
return httpReq.getContentLength();
}
@Override
public String getContentType()
{
return httpReq.getContentType();
}
@Override
public ServletInputStream getInputStream() throws IOException
{
return httpReq.getInputStream();
}
@Override
public String getLocalAddr()
{
return httpReq.getLocalAddr();
}
@Override
public String getLocalName()
{
return httpReq.getLocalName();
}
@Override
public int getLocalPort()
{
return httpReq.getLocalPort();
}
@Override
public Locale getLocale()
{
return httpReq.getLocale();
}
@Override
public Enumeration getLocales()
{
return httpReq.getLocales();
}
@Override
public String getParameter(String arg0)
{
@@ -251,14 +184,14 @@ public class CMISHttpServletRequest implements HttpServletRequest
{
return networkId;
}
return httpReq.getParameter(arg0);
return super.getParameter(arg0);
}
@SuppressWarnings("unchecked")
@Override
public Map getParameterMap()
{
Map map = httpReq.getParameterMap();
Map map = super.getParameterMap();
Map ret = new HashedMap(map);
if(networkId != null)
{
@@ -271,7 +204,7 @@ public class CMISHttpServletRequest implements HttpServletRequest
@Override
public Enumeration getParameterNames()
{
final Enumeration e = httpReq.getParameterNames();
final Enumeration e = super.getParameterNames();
List l = new ArrayList();
while(e.hasMoreElements())
{
@@ -300,152 +233,13 @@ public class CMISHttpServletRequest implements HttpServletRequest
return ret;
}
@Override
public String[] getParameterValues(String arg0)
{
return httpReq.getParameterValues(arg0);
}
@Override
public String getProtocol()
{
return httpReq.getProtocol();
}
@Override
public BufferedReader getReader() throws IOException
{
return httpReq.getReader();
}
@SuppressWarnings("deprecation")
@Override
public String getRealPath(String arg0)
{
return httpReq.getRealPath(arg0);
}
@Override
public String getRemoteAddr()
{
return httpReq.getRemoteAddr();
}
@Override
public String getRemoteHost()
{
return httpReq.getRemoteHost();
}
@Override
public int getRemotePort()
{
return httpReq.getRemotePort();
}
@Override
public RequestDispatcher getRequestDispatcher(String arg0)
{
return httpReq.getRequestDispatcher(arg0);
}
@Override
public String getScheme()
{
return httpReq.getScheme();
}
@Override
public String getServerName()
{
return httpReq.getServerName();
}
@Override
public int getServerPort()
{
return httpReq.getServerPort();
}
@Override
public boolean isSecure()
{
return httpReq.isSecure();
}
@Override
public void removeAttribute(String arg0)
{
httpReq.removeAttribute(arg0);
}
@Override
public void setAttribute(String arg0, Object arg1)
{
httpReq.setAttribute(arg0, arg1);
}
@Override
public void setCharacterEncoding(String arg0) throws UnsupportedEncodingException
{
httpReq.setCharacterEncoding(arg0);
}
@Override
public String getAuthType()
{
return httpReq.getAuthType();
}
@Override
public String getContextPath()
{
String contextPath = baseUrlGenerator.getContextPath(httpReq);
String contextPath = baseUrlGenerator.getContextPath(getRequest());
return contextPath;
}
@Override
public Cookie[] getCookies()
{
return httpReq.getCookies();
}
@Override
public long getDateHeader(String arg0)
{
return httpReq.getDateHeader(arg0);
}
@Override
public String getHeader(String arg0)
{
return httpReq.getHeader(arg0);
}
@Override
public Enumeration getHeaderNames()
{
return httpReq.getHeaderNames();
}
@Override
public Enumeration getHeaders(String arg0)
{
return httpReq.getHeaders(arg0);
}
@Override
public int getIntHeader(String arg0)
{
return httpReq.getIntHeader(arg0);
}
@Override
public String getMethod()
{
return httpReq.getMethod();
}
@Override
public String getPathInfo()
{
@@ -459,17 +253,11 @@ public class CMISHttpServletRequest implements HttpServletRequest
return sb.toString();
}
@Override
public String getPathTranslated()
{
return httpReq.getPathTranslated();
}
@Override
public String getQueryString()
{
StringBuilder queryString = new StringBuilder();
String reqQueryString = httpReq.getQueryString();
String reqQueryString = super.getQueryString();
if(networkId != null && networkId.length() > 0)
{
@@ -488,156 +276,17 @@ public class CMISHttpServletRequest implements HttpServletRequest
return reqQueryString;
}
@Override
public String getRemoteUser()
{
return httpReq.getRemoteUser();
}
@Override
public String getRequestURI()
{
String requestURI = baseUrlGenerator.getRequestURI(httpReq, networkId, operation, id);
String requestURI = baseUrlGenerator.getRequestURI(getRequest(), networkId, operation, id);
return requestURI;
}
@Override
public StringBuffer getRequestURL()
{
return httpReq.getRequestURL();
}
@Override
public String getRequestedSessionId()
{
return httpReq.getRequestedSessionId();
}
@Override
public String getServletPath()
{
String servletPath = baseUrlGenerator.getServletPath(httpReq);
String servletPath = baseUrlGenerator.getServletPath(getRequest());
return servletPath;
}
@Override
public HttpSession getSession()
{
return httpReq.getSession();
}
@Override
public HttpSession getSession(boolean arg0)
{
return httpReq.getSession(arg0);
}
@Override
public Principal getUserPrincipal()
{
return httpReq.getUserPrincipal();
}
@Override
public boolean isRequestedSessionIdFromCookie()
{
return httpReq.isRequestedSessionIdFromCookie();
}
@Override
public boolean isRequestedSessionIdFromURL()
{
return httpReq.isRequestedSessionIdFromURL();
}
@Override
public boolean isRequestedSessionIdFromUrl()
{
return httpReq.isRequestedSessionIdFromURL();
}
@Override
public boolean isRequestedSessionIdValid()
{
return httpReq.isRequestedSessionIdValid();
}
@Override
public boolean isUserInRole(String arg0)
{
return httpReq.isUserInRole(arg0);
}
@Override
public boolean authenticate(HttpServletResponse response) throws IOException, ServletException
{
return httpReq.authenticate(response);
}
@Override
public void login(String username, String password) throws ServletException
{
httpReq.login(username, password);
}
@Override
public void logout() throws ServletException
{
httpReq.logout();
}
@Override
public Collection<Part> getParts() throws IOException, ServletException
{
return httpReq.getParts();
}
@Override
public Part getPart(String name) throws IOException, ServletException
{
return httpReq.getPart(name);
}
@Override
public ServletContext getServletContext()
{
return httpReq.getServletContext();
}
@Override
public AsyncContext startAsync() throws IllegalStateException
{
return httpReq.startAsync();
}
@Override
public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException
{
return httpReq.startAsync(servletRequest, servletResponse);
}
@Override
public boolean isAsyncStarted()
{
return httpReq.isAsyncStarted();
}
@Override
public boolean isAsyncSupported()
{
return httpReq.isAsyncSupported();
}
@Override
public AsyncContext getAsyncContext()
{
return httpReq.getAsyncContext();
}
@Override
public DispatcherType getDispatcherType()
{
return httpReq.getDispatcherType();
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -25,18 +25,12 @@
*/
package org.alfresco.opencmis;
import jakarta.servlet.http.HttpServletResponseWrapper;
import org.alfresco.error.AlfrescoRuntimeException;
import org.springframework.extensions.webscripts.WebScriptResponse;
import org.springframework.extensions.webscripts.servlet.WebScriptServletRuntime;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Collections;
import java.util.Locale;
import java.util.Set;
/**
@@ -44,10 +38,8 @@ import java.util.Set;
*
* @author janv
*/
public class CMISHttpServletResponse implements HttpServletResponse
public class CMISHttpServletResponse extends HttpServletResponseWrapper
{
protected HttpServletResponse httpResp;
protected Set<String> nonAttachContentTypes = Collections.emptySet(); // pre-configured whitelist, eg. images & pdf
private final static String HDR_CONTENT_DISPOSITION = "Content-Disposition";
@@ -57,89 +49,21 @@ public class CMISHttpServletResponse implements HttpServletResponse
public CMISHttpServletResponse(WebScriptResponse res, Set<String> nonAttachContentTypes)
{
httpResp = WebScriptServletRuntime.getHttpServletResponse(res);
super(WebScriptServletRuntime.getHttpServletResponse(res));
this.nonAttachContentTypes = nonAttachContentTypes;
}
@Override
public void addCookie(Cookie cookie)
{
httpResp.addCookie(cookie);
}
@Override
public boolean containsHeader(String name)
{
return httpResp.containsHeader(name);
}
@Override
public String encodeURL(String url)
{
return httpResp.encodeURL(url);
}
@Override
public String encodeRedirectURL(String url)
{
return httpResp.encodeRedirectURL(url);
}
@Override
public String encodeUrl(String url)
{
return encodeUrl(url);
}
@Override
public String encodeRedirectUrl(String url)
{
return httpResp.encodeRedirectUrl(url);
}
@Override
public void sendError(int sc, String msg) throws IOException
{
httpResp.sendError(sc, msg);
}
@Override
public void sendError(int sc) throws IOException
{
httpResp.sendError(sc);
}
@Override
public void sendRedirect(String location) throws IOException
{
httpResp.sendRedirect(location);
}
@Override
public void setDateHeader(String name, long date)
{
httpResp.setDateHeader(name, date);
}
@Override
public void addDateHeader(String name, long date)
{
httpResp.addDateHeader(name, date);
}
@Override
public void setHeader(String name, String value)
{
httpResp.setHeader(name, getStringHeaderValue(name, value, httpResp.getContentType()));
super.setHeader(name, getStringHeaderValue(name, value, super.getContentType()));
}
@Override
public void addHeader(String name, String value)
{
httpResp.addHeader(name, getStringHeaderValue(name, value, httpResp.getContentType()));
super.addHeader(name, getStringHeaderValue(name, value, super.getContentType()));
}
private String getStringHeaderValue(String name, String value, String contentType)
{
@@ -161,142 +85,4 @@ public class CMISHttpServletResponse implements HttpServletResponse
return value;
}
@Override
public void setIntHeader(String name, int value)
{
httpResp.setIntHeader(name, value);
}
@Override
public void addIntHeader(String name, int value)
{
httpResp.addIntHeader(name, value);
}
@Override
public void setStatus(int sc)
{
httpResp.setStatus(sc);
}
@Override
public void setStatus(int sc, String sm)
{
httpResp.setStatus(sc, sm);
}
@Override
public int getStatus()
{
return httpResp.getStatus();
}
@Override
public String getHeader(String name)
{
return httpResp.getHeader(name);
}
@Override
public Collection<String> getHeaders(String name)
{
return httpResp.getHeaders(name);
}
@Override
public Collection<String> getHeaderNames()
{
return httpResp.getHeaderNames();
}
@Override
public String getCharacterEncoding()
{
return httpResp.getCharacterEncoding();
}
@Override
public String getContentType()
{
return httpResp.getContentType();
}
@Override
public ServletOutputStream getOutputStream() throws IOException
{
return httpResp.getOutputStream();
}
@Override
public PrintWriter getWriter() throws IOException
{
return httpResp.getWriter();
}
@Override
public void setCharacterEncoding(String charset)
{
httpResp.setCharacterEncoding(charset);
}
@Override
public void setContentLength(int len)
{
httpResp.setContentLength(len);
}
@Override
public void setContentType(String type)
{
httpResp.setContentType(type);
}
@Override
public void setBufferSize(int size)
{
httpResp.setBufferSize(size);
}
@Override
public int getBufferSize()
{
return httpResp.getBufferSize();
}
@Override
public void flushBuffer() throws IOException
{
httpResp.flushBuffer();
}
@Override
public void resetBuffer()
{
httpResp.resetBuffer();
}
@Override
public boolean isCommitted()
{
return httpResp.isCommitted();
}
@Override
public void reset()
{
httpResp.reset();
}
@Override
public void setLocale(Locale loc)
{
httpResp.setLocale(loc);
}
@Override
public Locale getLocale()
{
return httpResp.getLocale();
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -38,18 +38,19 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.Filter;
import javax.servlet.FilterRegistration;
import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;
import javax.servlet.descriptor.JspConfigDescriptor;
import javax.servlet.http.HttpServlet;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterRegistration;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRegistration;
import jakarta.servlet.ServletRegistration.Dynamic;
import jakarta.servlet.SessionCookieConfig;
import jakarta.servlet.SessionTrackingMode;
import jakarta.servlet.descriptor.JspConfigDescriptor;
import jakarta.servlet.http.HttpServlet;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.opencmis.CMISDispatcherRegistry.Binding;
@@ -306,6 +307,8 @@ public abstract class CMISServletDispatcher implements CMISDispatcher
@Override
public ServletContext getServletContext()
{
return new ServletContext()
{
@@ -423,12 +426,6 @@ public abstract class CMISServletDispatcher implements CMISDispatcher
return null;
}
@Override
public Servlet getServlet(String arg0) throws ServletException
{
return null;
}
@Override
public String getServletContextName()
{
@@ -453,6 +450,12 @@ public abstract class CMISServletDispatcher implements CMISDispatcher
return null;
}
@Override
public Dynamic addJspFile(String servletName, String jspFile)
{
return null;
}
@Override
public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException
{
@@ -574,27 +577,52 @@ public abstract class CMISServletDispatcher implements CMISDispatcher
}
@Override
public Enumeration getServletNames()
public String getVirtualServerName()
{
return null;
}
@Override
public Enumeration getServlets()
public int getSessionTimeout()
{
return 0;
}
@Override
public void setSessionTimeout(int sessionTimeout)
{
}
@Override
public String getRequestCharacterEncoding()
{
return null;
}
@Override
public void setRequestCharacterEncoding(String encoding)
{
}
@Override
public String getResponseCharacterEncoding()
{
return null;
}
@Override
public void setResponseCharacterEncoding(String encoding)
{
}
@Override
public void log(String arg0)
{
}
@Override
public void log(Exception arg0, String arg1)
{
}
@Override
public void log(String arg0, Throwable arg1)
{

View File

@@ -1,31 +1,31 @@
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2023 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.opencmis;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
/**
* Generates an OpenCMIS base url based on the request, repository id and binding. The url scheme, host and port

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