Compare commits

...

163 Commits

Author SHA1 Message Date
Travis CI User
2c0fb3fe95 [maven-release-plugin][skip ci] prepare release v1.56 2021-03-03 14:14:03 +00:00
Simona C
ea308c1c0a Fix SyncServiceAPITest with unrecognized field (#121) 2021-03-03 16:10:04 +02:00
Travis CI User
a02f0e7e2f [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-02 13:23:04 +00:00
Travis CI User
9f32368582 [maven-release-plugin][skip ci] prepare release v1.55 2021-03-02 13:22:58 +00:00
Simona C
b42b08559a Fix SyncServiceAPITest with unrecognized field (#119)
Fix SyncServiceAPITest with unrecognized field
2021-03-02 15:18:36 +02:00
Travis CI User
95af4d6876 [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-02 09:57:44 +00:00
Travis CI User
9c17870040 [maven-release-plugin][skip ci] prepare release v1.54 2021-03-02 09:57:37 +00:00
dhrn
e93028c30e [REPO-5552] expose aspect/type end points (#117)
* [REPO-5552] TAS rest API

* * docs update
2021-03-02 15:23:35 +05:30
Travis CI User
7741456b79 [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-01 22:40:51 +00:00
Travis CI User
27f7b2ec33 [maven-release-plugin][skip ci] prepare release v1.53 2021-03-01 22:40:45 +00:00
dependabot-preview[bot]
078ae4cd32 Bump commons-lang3 from 3.11 to 3.12.0 (#118) 2021-03-01 22:29:29 +00:00
Travis CI User
ab3a0f00c4 [maven-release-plugin][skip ci] prepare for next development iteration 2021-02-01 10:33:27 +00:00
Travis CI User
829c7ef65d [maven-release-plugin][skip ci] prepare release v1.52 2021-02-01 10:33:20 +00:00
dhrn
0d40d455b2 [REPO-5317] expose site groups apis (#112)
* [REPO-5317] expose site groups method

* Update Site.java

* Update JsonBodyGenerator.java
2021-02-01 10:20:23 +00:00
Travis CI User
3d91bf154d [maven-release-plugin][skip ci] prepare for next development iteration 2021-01-04 22:59:11 +00:00
Travis CI User
d87532ce55 [maven-release-plugin][skip ci] prepare release v1.51 2021-01-04 22:59:04 +00:00
dependabot-preview[bot]
e6f97e979a Bump xercesImpl from 2.12.0 to 2.12.1 (#114) 2021-01-04 22:30:33 +00:00
Travis CI User
b800d4b7e4 [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-13 14:56:58 +00:00
Travis CI User
92bad68c5b [maven-release-plugin][skip ci] prepare release v1.50 2020-11-13 14:56:51 +00:00
Simona C
d77e02f9a8 DESKTOPAPP-475: Ignored Bamboo quarantined test (#101) 2020-11-13 16:53:03 +02:00
Travis CI User
8a6584540f [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-13 09:05:22 +00:00
Travis CI User
2dec33388e [maven-release-plugin][skip ci] prepare release v1.49 2020-11-13 09:05:15 +00:00
Angel Borroy
2c149b412e SEARCH-2460: Additional methods to perform operations and queries in SOLR (#99) 2020-11-13 09:54:13 +01:00
Travis CI User
10b427209d [maven-release-plugin][skip ci] prepare for next development iteration 2020-09-04 21:22:18 +00:00
Travis CI User
a53eb13f9f [maven-release-plugin][skip ci] prepare release v1.48 2020-09-04 21:22:12 +00:00
dependabot-preview[bot]
c0a90dd32b Bump maven-project-info-reports-plugin from 3.1.0 to 3.1.1 (#83) 2020-09-04 21:18:16 +00:00
Travis CI User
d2a414f8a7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-08-06 11:49:03 +00:00
Travis CI User
e484360980 [maven-release-plugin][skip ci] prepare release v1.47 2020-08-06 11:48:56 +00:00
Alex Mukha
691855bed2 Fix json serialisation for StatsSearchTest 2020-08-06 12:44:48 +01:00
Travis CI User
e81a33d770 [maven-release-plugin][skip ci] prepare for next development iteration 2020-07-16 22:22:20 +00:00
Travis CI User
9dab62b490 [maven-release-plugin][skip ci] prepare release v1.46 2020-07-16 22:22:13 +00:00
dependabot-preview[bot]
44f602eee4 Bump commons-lang3 from 3.10 to 3.11 (#76) 2020-07-16 21:48:33 +00:00
Travis CI User
c04c149779 [maven-release-plugin][skip ci] prepare for next development iteration 2020-07-14 12:59:35 +00:00
Travis CI User
9cfa31ca63 [maven-release-plugin][skip ci] prepare release v1.45 2020-07-14 12:59:29 +00:00
dhrn
a061d8d4df * fixed serialization problem (#74) 2020-07-14 18:19:56 +05:30
Travis CI User
8052f7f299 [maven-release-plugin][skip ci] prepare for next development iteration 2020-07-14 11:21:28 +00:00
Travis CI User
962ce7a740 [maven-release-plugin][skip ci] prepare release v1.44 2020-07-14 11:21:21 +00:00
Andrei Forascu
57603871d3 ACS-349: - add methods for running rest-api requests on direct access URL endpoints (#73) 2020-07-14 14:17:28 +03:00
Travis CI User
7d7cc446a4 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-15 22:12:04 +00:00
Travis CI User
2733ece40f [maven-release-plugin][skip ci] prepare release v1.43 2020-06-15 22:11:56 +00:00
dependabot-preview[bot]
f01204bf0a Bump utility from 3.0.20 to 3.0.21 (#63) 2020-06-15 21:32:47 +00:00
Travis CI User
add073938a [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-04 07:59:04 +00:00
Travis CI User
472becd973 [maven-release-plugin][skip ci] prepare release v1.42 2020-06-04 07:58:57 +00:00
Simona C
d9293fff27 DESKTOPAPP-112: Added folderChange variable to SyncService Changes Model (#62)
Co-authored-by: Simona Carp <simona.carp@ness.com>
2020-06-04 10:55:16 +03:00
Travis CI User
361e6b0221 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-02 21:25:50 +00:00
Travis CI User
3aec98cb92 [maven-release-plugin][skip ci] prepare release v1.41 2020-06-02 21:25:43 +00:00
dependabot-preview[bot]
cfd0dd388e Bump maven-project-info-reports-plugin from 3.0.0 to 3.1.0 (#61) 2020-06-02 21:21:46 +00:00
Travis CI User
8aadb2baf1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-27 08:22:20 +00:00
Travis CI User
ca6b4cce24 [maven-release-plugin][skip ci] prepare release v1.40 2020-05-27 08:22:13 +00:00
bogdanbocancea
eb2c76f600 DESKTOPAPP-39: fix list constraint array (#60)
Co-authored-by: bogdan0317 <bogdan.bocancea@gmail.com>
2020-05-27 11:18:24 +03:00
Travis CI User
fa910faea6 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-21 10:36:32 +00:00
Travis CI User
d428c542fc [maven-release-plugin][skip ci] prepare release v1.39 2020-05-21 10:36:26 +00:00
bogdanbocancea
d0d5ce8d9d DESKTOPAPP-39: Create methods to handle custom aspects, types and properties (#57)
Co-authored-by: bogdan0317 <bogdan.bocancea@gmail.com>
2020-05-21 13:32:31 +03:00
Travis CI User
3e4a3a0a31 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-10 05:34:35 +00:00
Travis CI User
7d5f01f3d5 [maven-release-plugin][skip ci] prepare release v1.38 2020-04-10 05:34:28 +00:00
Ciprian Chelaru
1ae1f87cdf added missing quota and quotaUsed properties (#53) 2020-04-10 08:30:36 +03:00
Travis CI User
a5ceb3df00 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-27 22:20:58 +00:00
Travis CI User
18dc254813 [maven-release-plugin][skip ci] prepare release v1.37 2020-03-27 22:20:51 +00:00
dependabot-preview[bot]
b737775fd3 Bump commons-lang3 from 3.9 to 3.10 (#51) 2020-03-27 22:16:48 +00:00
Travis CI User
175a525b64 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-26 16:41:42 +00:00
Travis CI User
8dba7f9468 [maven-release-plugin][skip ci] prepare release v1.36 2020-03-26 16:41:35 +00:00
Meenal Bhave
838794f274 Search-2142: Configuring the right api endpoint, as the context changes from solr, solr admin and alfresco apis (#50) 2020-03-26 16:37:39 +00:00
Travis CI User
917961569d [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-04 11:50:11 +00:00
Travis CI User
8e1c10aae0 [maven-release-plugin][skip ci] prepare release v1.35 2020-03-04 11:50:05 +00:00
Meenal Bhave
580dda50e6 Search-2078: Added a method to configure alfresco endpoint for search api in case its been reset to solr endpoint (#42) 2020-03-04 11:46:13 +00:00
Travis CI User
d0bc3f1ece [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-26 22:29:57 +00:00
Travis CI User
a05f2eb20f [maven-release-plugin][skip ci] prepare release v1.34 2020-02-26 22:29:49 +00:00
dependabot-preview[bot]
51029868a9 Bump utility from 3.0.19 to 3.0.20 (#41) 2020-02-26 22:18:30 +00:00
Travis CI User
e0b1c6f776 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-17 12:38:43 +00:00
Travis CI User
9930f18291 [maven-release-plugin][skip ci] prepare release v1.33 2020-02-17 12:38:37 +00:00
Ciprian Chelaru
ca785cda74 APPSREPO-752 added identityServiceConfig obj into sync service model (#38) 2020-02-17 14:34:48 +02:00
Travis CI User
308a60dcfa [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-17 09:20:22 +00:00
Travis CI User
2518910fe1 [maven-release-plugin][skip ci] prepare release v1.32 2020-02-17 09:20:15 +00:00
ciprianchelaru
4ddfb16bff APPSREPO-752_new object in sync service model 2020-02-17 11:15:51 +02:00
Travis CI User
ffb4df068b [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-11 16:23:10 +00:00
Travis CI User
7fdb040b50 [maven-release-plugin][skip ci] prepare release v1.31 2020-02-11 16:23:04 +00:00
Meenal Bhave
c2e587d640 Search-2096: Added missing API to update Site (#37) 2020-02-11 16:19:15 +00:00
Travis CI User
bed12e40ca [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-06 12:14:27 +00:00
Travis CI User
a53daf152f [maven-release-plugin][skip ci] prepare release v1.30 2020-02-06 12:14:19 +00:00
Angel Borroy
cc03aaf92f RestWrapper for Solr Admin API (#34) 2020-02-06 13:10:30 +01:00
Travis CI User
f9102eae0d [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-05 16:31:10 +00:00
Travis CI User
8f252b69f1 [maven-release-plugin][skip ci] prepare release v1.29 2020-02-05 16:31:04 +00:00
Keerat Lalia
50f884556c SEARCH-1681 Adding the shard params instance to the RestInstanceModel (#33)
* SEARCH-1681 Adding the shard params instance to the RestInstanceModel

* SEARCH-1681 Adding the changes from the review
2020-02-04 13:47:11 +00:00
dependabot-preview[bot]
b1ad95a756 Bump utility from 3.0.18 to 3.0.19 (#32) 2020-01-23 22:18:23 +00:00
Travis CI User
581f82f332 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-15 23:05:25 +00:00
Travis CI User
80fda4ed56 [maven-release-plugin][skip ci] prepare release v1.28 2020-01-15 23:05:19 +00:00
dependabot-preview[bot]
086ca9229e Bump utility from 3.0.17 to 3.0.18 (#27) 2020-01-15 22:26:44 +00:00
Travis CI User
6d84baa34e [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-14 23:19:23 +00:00
Travis CI User
d048054903 [maven-release-plugin][skip ci] prepare release v1.27 2020-01-14 23:19:17 +00:00
dependabot-preview[bot]
faf6cafe5a Bump groovy-json from 2.5.8 to 2.5.9 (#26) 2020-01-14 22:37:31 +00:00
dependabot-preview[bot]
13a134da27 Bump groovy from 2.5.8 to 2.5.9 (#25) 2020-01-14 22:32:53 +00:00
Travis CI User
5e93e937f9 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-17 23:31:54 +00:00
Travis CI User
36c830ecdb [maven-release-plugin][skip ci] prepare release v1.26 2019-12-17 23:31:48 +00:00
dependabot-preview[bot]
013f3fac1c Bump utility from 3.0.16 to 3.0.17 (#23) 2019-12-17 22:57:31 +00:00
Travis CI User
ec675d6123 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-16 22:42:32 +00:00
Travis CI User
e115c673e1 [maven-release-plugin][skip ci] prepare release v1.25 2019-12-16 22:42:27 +00:00
dependabot-preview[bot]
2453b3c9c7 Bump slf4j-api from 1.7.29 to 1.7.30 (#22) 2019-12-16 22:31:24 +00:00
Travis CI User
761554ad83 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-14 00:26:40 +00:00
Travis CI User
20738f6ac5 [maven-release-plugin][skip ci] prepare release v1.24 2019-12-14 00:26:34 +00:00
Alex Mukha
1a90c129bc Revert "Decrease wait time for activity feed requests"
This reverts commit 9e9caec601.
2019-12-14 00:22:46 +00:00
Travis CI User
76ba1ce813 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-12 09:38:08 +00:00
Travis CI User
91bb8651d3 [maven-release-plugin][skip ci] prepare release v1.23 2019-12-12 09:38:02 +00:00
David Edwards
bbdc41555c Revert "Bump httpclient-osgi from 4.5.3 to 4.5.10 (#21)"
This reverts commit d0e94e0d68.
2019-12-12 09:33:42 +00:00
Travis CI User
1d77e2e852 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-11 22:41:31 +00:00
Travis CI User
8155132d69 [maven-release-plugin][skip ci] prepare release v1.22 2019-12-11 22:41:25 +00:00
dependabot-preview[bot]
d0e94e0d68 Bump httpclient-osgi from 4.5.3 to 4.5.10 (#21) 2019-12-11 22:33:19 +00:00
Travis CI User
5c50dbef83 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-11 14:41:31 +00:00
Travis CI User
ef6d2531fb [maven-release-plugin][skip ci] prepare release v1.21 2019-12-11 14:41:25 +00:00
David Edwards
0c3c584ed9 Revert rest-assured 2019-12-11 14:37:37 +00:00
David Edwards
516d15796f REPO-4739 Update Rest-assured and httpclient-osgi
Rest-assured to 4.1.2 (newest version)
httpclient-osgi 4.5.3 (dependency of rest-assured)
2019-12-11 14:32:33 +00:00
Travis CI User
c2a2541a62 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-04 22:50:02 +00:00
Travis CI User
397979a4f9 [maven-release-plugin][skip ci] prepare release v1.20 2019-12-04 22:49:56 +00:00
dependabot-preview[bot]
ec85dd7e61 Bump utility from 3.0.15 to 3.0.16 (#20) 2019-12-04 22:19:25 +00:00
Travis CI User
69ccd06cf2 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-03 12:08:15 +00:00
Travis CI User
6002440be5 [maven-release-plugin][skip ci] prepare release v1.19 2019-12-03 12:08:09 +00:00
Tom Page
1973a9d578 Add some javadoc to explain the type of totalItems. 2019-12-03 12:03:45 +00:00
Travis CI User
8d1e16e9c2 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-30 00:09:40 +00:00
Travis CI User
9e0b26f612 [maven-release-plugin][skip ci] prepare release v1.18 2019-11-30 00:09:34 +00:00
dependabot-preview[bot]
9080d3e0d9 Bump utility from 3.0.8 to 3.0.15 (#19) 2019-11-29 23:02:25 +00:00
Travis CI User
f916a625d0 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-29 14:44:37 +00:00
Travis CI User
e0c278e277 [maven-release-plugin][skip ci] prepare release v1.17 2019-11-29 14:44:31 +00:00
dependabot-preview[bot]
bb64b05534 Bump commons-lang3 from 3.8 to 3.9 (#15) 2019-11-29 14:36:27 +00:00
dependabot-preview[bot]
28be182040 Bump groovy from 2.5.5 to 2.5.8 (#16) 2019-11-29 14:34:25 +00:00
dependabot-preview[bot]
ee88b0bf0c Bump scribejava-apis from 6.5.1 to 6.9.0 (#14) 2019-11-29 14:33:01 +00:00
dependabot-preview[bot]
cd60067bbf Bump servlet-api from 2.4 to 2.5 (#13) 2019-11-29 14:31:42 +00:00
dependabot-preview[bot]
bd64391527 Bump javax.json from 1.0.4 to 1.1.4 (#11) 2019-11-29 14:31:38 +00:00
dependabot-preview[bot]
126ece3dbe Bump groovy-json from 2.5.5 to 2.5.8 (#12) 2019-11-29 14:31:32 +00:00
dependabot-preview[bot]
f7b7eeaf56 Bump slf4j-api from 1.7.2 to 1.7.29 (#8) 2019-11-29 14:29:58 +00:00
dependabot-preview[bot]
53937c963c Bump httpclient-osgi from 4.5.2 to 4.5.10 (#6) 2019-11-29 14:29:49 +00:00
Travis CI User
671116b500 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-29 11:00:11 +00:00
Travis CI User
82369a3dcf [maven-release-plugin][skip ci] prepare release v1.16 2019-11-29 11:00:05 +00:00
Alex Mukha
9e9caec601 Decrease wait time for activity feed requests 2019-11-29 10:56:10 +00:00
Travis CI User
27caf48c79 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-15 16:55:22 +00:00
Travis CI User
e1b1e66e8d [maven-release-plugin][skip ci] prepare release v1.15 2019-11-15 16:55:15 +00:00
Alex Mukha
9186cead13 Move demo tests to test folder 2019-11-15 16:51:16 +00:00
Travis CI User
6c2d084209 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-17 17:07:43 +00:00
Travis CI User
81e0cb939d [maven-release-plugin][skip ci] prepare release v1.14 2019-10-17 17:07:38 +00:00
Alex Mukha
2bd64e48b5 REPO-4705: Allow to reconfigure server URI in RestWrapper 2019-10-17 18:03:20 +01:00
Alex Mukha
3d6c34c8d6 Revert "REPO-4705: Allow to reconfigure server URI (#2)"
This reverts commit 3c818df7f1.
2019-10-17 16:57:57 +01:00
Travis CI User
506dd32b31 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-16 10:44:44 +00:00
Travis CI User
70ed927b3c [maven-release-plugin][skip ci] prepare release v1.13 2019-10-16 10:44:38 +00:00
Alex Mukha
3c818df7f1 REPO-4705: Allow to reconfigure server URI (#2) 2019-10-16 11:33:12 +01:00
Travis CI User
612b65798e [maven-release-plugin][skip ci] prepare for next development iteration 2019-08-02 17:53:10 +00:00
Travis CI User
d0724a0a06 [maven-release-plugin][skip ci] prepare release v1.12 2019-08-02 17:53:03 +00:00
Alex Mukha
beea540ad0 Update utility to 3.0.8 2019-08-02 18:46:30 +01:00
Tom Page
099e1328c0 Remove several references to unthrown checked exceptions. 2019-08-02 18:30:12 +01:00
Tom Page
0f01dea5d2 Don't throw raw Exception when performing search. 2019-08-02 18:30:12 +01:00
eliaporciani
38edaf79c2 [SEARCH-1641]
changed score type to float
2019-08-02 18:30:12 +01:00
Travis CI User
d7e7545482 [maven-release-plugin][skip ci] prepare for next development iteration 2019-08-02 16:06:56 +00:00
Travis CI User
2cdcc7d5ce [maven-release-plugin][skip ci] prepare release v1.11 2019-08-02 16:06:50 +00:00
Alex Mukha
de7431b917 Remove unused config in pom 2019-08-02 17:00:41 +01:00
Travis CI User
14e500cb1f [maven-release-plugin][skip ci] prepare for next development iteration 2019-08-02 15:27:58 +00:00
Travis CI User
4c37f4cda6 [maven-release-plugin][skip ci] prepare release v1.10 2019-08-02 15:27:53 +00:00
Alex Mukha
8470a1962b Cleanup unused resources 2019-08-02 16:21:41 +01:00
Travis CI User
914ad394c3 [maven-release-plugin][skip ci] prepare for next development iteration 2019-07-27 15:48:13 +00:00
Travis CI User
1668baac05 [maven-release-plugin][skip ci] prepare release v1.9 2019-07-27 15:48:07 +00:00
Alex Mukha
17118db32f Fix response status in create tenant request 2019-07-27 16:32:12 +01:00
Travis CI User
13f6aa2044 [maven-release-plugin][skip ci] prepare for next development iteration 2019-07-27 14:13:34 +00:00
Travis CI User
f6b3b62841 [maven-release-plugin][skip ci] prepare release v1.8 2019-07-27 14:13:28 +00:00
Alex Mukha
46c59e50f6 Fix response status in node rendition request 2019-07-27 14:51:15 +01:00
Alex Mukha
7870db5370 Fix response status in person activities request 2019-07-27 14:50:35 +01:00
Alex Mukha
78a8d8d6cb Fix response status in node rendition request 2019-07-27 14:44:56 +01:00
Travis CI User
60083c6145 [maven-release-plugin][skip ci] prepare for next development iteration 2019-07-27 12:36:01 +00:00
75 changed files with 1840 additions and 277 deletions

View File

@@ -22,7 +22,7 @@ jobs:
include:
- stage: test
name: "Build and test"
script: travis_retry mvn test
script: travis_retry mvn test -Dtest=ModelAssertionTest
- stage: release
name: "Push to Nexus"
if: fork = false AND branch = master AND type != pull_request AND commit_message !~ /\[no-release\]/

View File

@@ -4,7 +4,7 @@
<groupId>org.alfresco.tas</groupId>
<artifactId>restapi</artifactId>
<name>alfresco-tas-restapi</name>
<version>1.7</version>
<version>1.56</version>
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-super-pom</artifactId>
@@ -28,19 +28,17 @@
<suiteXmlFile>src/main/resources/shared-resources/testCount.xml</suiteXmlFile>
<maven.build.sourceVersion>11</maven.build.sourceVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<tas.utility.version>3.0.0</tas.utility.version>
<tas.utility.version>3.0.21</tas.utility.version>
<rest-assured.version>3.3.0</rest-assured.version>
<httpclient-osgi-version>4.5.2</httpclient-osgi-version>
<httpclient-osgi-version>4.5.3</httpclient-osgi-version>
<json-path.version>3.3.0</json-path.version>
<xml-path.version>3.3.0</xml-path.version>
<json-schema-validator.version>3.3.0</json-schema-validator.version>
<jackson-databind.version>2.9.8</jackson-databind.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<maven-release.version>2.5.3</maven-release.version>
<org.glassfish.version>1.0.4</org.glassfish.version>
<maven-remote-resources.version>1.6.0</maven-remote-resources.version>
<commons-lang3.version>3.8</commons-lang3.version>
<scribejava-apis.version>6.5.1</scribejava-apis.version>
<org.glassfish.version>1.1.4</org.glassfish.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
<scribejava-apis.version>6.9.0</scribejava-apis.version>
<test.exclude />
<test.include />
<java.version>11</java.version>
@@ -50,7 +48,7 @@
<connection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</connection>
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</developerConnection>
<url>https://github.com/Alfresco/alfresco-tas-restapi</url>
<tag>v1.7</tag>
<tag>v1.56</tag>
</scm>
<issueManagement>
@@ -95,39 +93,6 @@
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>${maven-remote-resources.version}</version>
<configuration>
<includes>
<include>shared-resources/**/*</include>
</includes>
<resourceBundles>
<resourceBundle>org.alfresco.tas:utility:${tas.utility.version}</resourceBundle>
</resourceBundles>
</configuration>
<executions>
<execution>
<goals>
<goal>process</goal>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
@@ -163,18 +128,6 @@
</arguments>
<mainClass>org.alfresco.rest.core.swagger.Generator</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -196,14 +149,6 @@
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>shared-resources/**/*</include>
</includes>
</resource>
</resources>
</build>
<dependencies>
@@ -212,7 +157,7 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<version>2.5</version>
<scope>provided</scope>
</dependency>
@@ -310,7 +255,7 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
<version>1.7.30</version>
</dependency>
<!-- swagger parser -->
@@ -329,7 +274,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0</version>
<version>2.12.1</version>
</dependency>
<!--fixing java.lang.ClassCastException: class [B cannot be cast to class [C ([B and [C are in module java.base of loader 'bootstrap') -->
@@ -337,14 +282,14 @@
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.5.5</version>
<version>2.5.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json-->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>2.5.5</version>
<version>2.5.9</version>
</dependency>
</dependencies>
@@ -354,7 +299,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
<version>3.1.1</version>
<reportSets>
<reportSet>
<reports>

View File

@@ -13,6 +13,7 @@ import org.alfresco.dataprep.CMISUtil.Priority;
import org.alfresco.rest.model.RestProcessVariableModel;
import org.alfresco.rest.model.RestVariableModel;
import org.alfresco.utility.Utility;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.RepoTestModel;
@@ -149,7 +150,7 @@ public class JsonBodyGenerator
}
public static String siteMember(UserModel userModel) throws Exception
public static String siteMember(UserModel userModel)
{
Utility.checkObjectIsInitialized(userModel.getUserRole(), "userModel.getUserRole()");
JsonObject value = defineJSON()
@@ -158,6 +159,15 @@ public class JsonBodyGenerator
return value.toString();
}
public static String siteGroup(String authorityId, UserRole role)
{
Utility.checkObjectIsInitialized(authorityId, "authorityId");
JsonObject value = defineJSON()
.add("role", role.name())
.add("id", authorityId).build();
return value.toString();
}
public static String siteMemberhipRequest(String message, SiteModel siteModel, String title)
{
JsonObject value = defineJSON()
@@ -166,6 +176,19 @@ public class JsonBodyGenerator
.add("title", title).build();
return value.toString();
}
/**
* Method to create a Json object for SiteBody with site title, description, visibility
* @param siteModel
* @return String
*/
public static String updateSiteRequest(SiteModel siteModel)
{
JsonObject value = defineJSON()
.add("title", siteModel.getTitle())
.add("description", siteModel.getDescription())
.add("visibility", siteModel.getVisibility().toString()).build();
return value.toString();
}
public static String process(String processDefinitionKey, UserModel assignee, boolean sendEmailNotifications, Priority priority)
{

View File

@@ -36,12 +36,14 @@ import org.alfresco.rest.requests.authAPI.RestAuthAPI;
import org.alfresco.rest.requests.cmisAPI.RestCmisAPI;
import org.alfresco.rest.requests.coreAPI.RestCoreAPI;
import org.alfresco.rest.requests.discoveryAPI.RestDiscoveryAPI;
import org.alfresco.rest.requests.modelAPI.RestModelAPI;
import org.alfresco.rest.requests.privateAPI.RestPrivateAPI;
import org.alfresco.rest.requests.search.SearchAPI;
import org.alfresco.rest.requests.search.SearchSQLAPI;
import org.alfresco.rest.requests.search.SearchSQLJDBC;
import org.alfresco.rest.requests.search.ShardInfoAPI;
import org.alfresco.rest.requests.search.SolrAPI;
import org.alfresco.rest.requests.search.SolrAdminAPI;
import org.alfresco.rest.requests.workflowAPI.RestWorkflowAPI;
import org.alfresco.utility.LogFactory;
import org.alfresco.utility.Utility;
@@ -96,6 +98,23 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
private RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();
private Headers responseHeaders;
private RestResponse response;
private String serverURI;
private int serverPort;
/**
* After configuring {@link #setServerURI(String)} and {@link #setServerPort(int)} call {@link #configureServerEndpoint()}
*
* @param serverURI in format of "http://localhost", without port. Set port via {@link #setServerPort(int)}
*/
public void setServerURI(String serverURI)
{
this.serverURI = serverURI;
}
public void setServerPort(int serverPort)
{
this.serverPort = serverPort;
}
@Autowired
private RestAisAuthentication aisAuthentication;
@@ -131,11 +150,9 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
@PostConstruct
public void initializeRequestSpecBuilder()
{
requestSpecBuilder = new RequestSpecBuilder();
RestAssured.baseURI = restProperties.envProperty().getTestServerUrl();
RestAssured.port = restProperties.envProperty().getPort();
configureRequestSpec().setBaseUri(restProperties.envProperty().getTestServerUrl());
configureRequestSpec().setPort(restProperties.envProperty().getPort());
this.serverURI = restProperties.envProperty().getTestServerUrl();
this.serverPort = restProperties.envProperty().getPort();
configureServerEndpoint();
}
/**
@@ -348,10 +365,8 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
/**
* Process responses for site relations models, such as {@link RestSiteModel, RestSiteContainerModelsCollection, RestSiteMemberModelsCollection}
*
* @throws Exception
*/
public List<Object> processRelationsJson(RestRequest restRequest) throws Exception
public List<Object> processRelationsJson(RestRequest restRequest)
{
List<Object> jsonObjects = new ArrayList<Object>();
Response returnedResponse = sendRequest(restRequest);
@@ -401,10 +416,8 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
/**
* Process responses for site relations models, such as {@link RestSiteModel, RestSiteContainerModelsCollection, RestSiteMemberModelsCollection}
*
* @throws Exception
*/
public List<List<Object>> processSitesRelationsJson(RestRequest restRequest) throws Exception
public List<List<Object>> processSitesRelationsJson(RestRequest restRequest)
{
List<List<Object>> allObjects = new ArrayList<List<Object>>();
List<Object> sitesList = new ArrayList<Object>();
@@ -621,7 +634,7 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
logResponseInformation(restRequest, returnedResponse);
initializeRequestSpecBuilder();
configureServerEndpoint();
response = new RestResponse(returnedResponse);
return returnedResponse;
}
@@ -920,6 +933,11 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
return new RestAuthAPI(this);
}
public RestModelAPI withModelAPI()
{
return new RestModelAPI(this);
}
public SearchAPI withSearchAPI()
{
return new SearchAPI(this);
@@ -944,6 +962,11 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
{
return new SolrAPI(this);
}
public SolrAdminAPI withSolrAdminAPI()
{
return new SolrAdminAPI(this);
}
/**
* @return {@link RestDiscoveryAPI} using the rest Discovery API as prefix: {@link /alfresco/api/discovery}
@@ -1096,17 +1119,42 @@ public class RestWrapper extends DSLWrapper<RestWrapper>
public void configureSyncServiceEndPoint()
{
RestAssured.baseURI = restProperties.envProperty().getSyncServerUrl();
RestAssured.port = restProperties.envProperty().getSyncPort();
configureRequestSpec().setBaseUri(restProperties.envProperty().getSyncServerUrl());
configureRequestSpec().setPort(restProperties.envProperty().getSyncPort());
this.serverURI = restProperties.envProperty().getSyncServerUrl();
this.serverPort = restProperties.envProperty().getSyncPort();
configureServerEndpoint();
}
public void configureSolrEndPoint()
{
RestAssured.baseURI = restProperties.envProperty().getSolrServerUrl();
RestAssured.port = restProperties.envProperty().getSolrPort();
configureRequestSpec().setBaseUri(restProperties.envProperty().getSolrServerUrl());
configureRequestSpec().setPort(restProperties.envProperty().getSolrPort());
this.serverURI = restProperties.envProperty().getSolrServerUrl();
this.serverPort = restProperties.envProperty().getSolrPort();
configureServerEndpoint();
}
/**
* Use {@link #setServerURI(String)} and {@link #setServerPort(int)}
*/
public void configureServerEndpoint()
{
requestSpecBuilder = new RequestSpecBuilder();
// use static variables for logs, etc
// the request spec is built from data set via setters, see RestWrapper#onRequest
RestAssured.baseURI = this.serverURI;
RestAssured.port = this.serverPort;
configureRequestSpec().setBaseUri(this.serverURI);
configureRequestSpec().setPort(this.serverPort);
}
/**
* Adding new method to configure Alfresco Endpoint.
* Reconfiguration is required when restClient is used to executed apis on different <host>:<port> e.g. solr api followed by search api
*/
public void configureAlfrescoEndpoint()
{
this.serverURI = restProperties.envProperty().getTestServerUrl();
this.serverPort = restProperties.envProperty().getPort();
configureServerEndpoint();
}
}

View File

@@ -0,0 +1,11 @@
package org.alfresco.rest.exception;
public class ModelToJsonConversionException extends RuntimeException
{
private static final long serialVersionUID = 1L;
public <T> ModelToJsonConversionException(Class<T> classz, Exception e)
{
super(String.format("Could not convert model for [%s] to JSON", classz.getName()), e);
}
}

View File

@@ -0,0 +1,158 @@
package org.alfresco.rest.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion;
import org.alfresco.utility.model.TestModel;
import java.util.List;
public class RestAbstractClassModel extends TestModel implements IRestModel<RestAbstractClassModel>
{
@JsonProperty(value = "entry")
RestAbstractClassModel model;
@Override
public RestAbstractClassModel onModel()
{
return model;
}
public String id;
public String title;
public String description;
public String parentId;
public Boolean isContainer = null;
public Boolean isArchive = null;
public Boolean includedInSupertypeQuery = null;
public List<String> mandatoryAspects = null;
public List<RestClassAssociationModel> associations = null;
public List <RestPropertyDefinitionModel> properties = null;
@JsonProperty(value = "model")
public RestClassModel modelInfo;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public String getParentId()
{
return parentId;
}
public void setParentId(String parentId)
{
this.parentId = parentId;
}
public Boolean getContainer()
{
return isContainer;
}
public void setContainer(Boolean container)
{
isContainer = container;
}
public Boolean getArchive()
{
return isArchive;
}
public void setArchive(Boolean archive)
{
isArchive = archive;
}
public Boolean getIncludedInSupertypeQuery()
{
return includedInSupertypeQuery;
}
public void setIncludedInSupertypeQuery(Boolean includedInSupertypeQuery)
{
this.includedInSupertypeQuery = includedInSupertypeQuery;
}
public List<String> getMandatoryAspects()
{
return mandatoryAspects;
}
public void setMandatoryAspects(List<String> mandatoryAspects)
{
this.mandatoryAspects = mandatoryAspects;
}
public List<RestClassAssociationModel> getAssociations()
{
return associations;
}
public void setAssociations(List<RestClassAssociationModel> associations)
{
this.associations = associations;
}
public List<RestPropertyDefinitionModel> getProperties() {
return properties;
}
public void setProperties(List<RestPropertyDefinitionModel> properties)
{
this.properties = properties;
}
public RestClassModel getModelInfo()
{
return modelInfo;
}
public void setModelInfo(RestClassModel modelInfo)
{
this.modelInfo = modelInfo;
}
/**
* DSL for assertion on this rest model
* @return
*/
@Override
public ModelAssertion<RestAbstractClassModel> assertThat()
{
return new ModelAssertion<RestAbstractClassModel>(this);
}
@Override
public ModelAssertion<RestAbstractClassModel> and()
{
return assertThat();
}
}

View File

@@ -0,0 +1,5 @@
package org.alfresco.rest.model;
public class RestAspectModel extends RestAbstractClassModel
{
}

View File

@@ -0,0 +1,7 @@
package org.alfresco.rest.model;
import org.alfresco.rest.core.RestModels;
public class RestAspectsCollection extends RestModels<RestAspectModel, RestAspectsCollection>
{
}

View File

@@ -0,0 +1,62 @@
package org.alfresco.rest.model;
import org.alfresco.utility.model.TestModel;
public class RestClassAssociationDefinitionModel extends TestModel
{
public String role = null;
public String cls = null;
public Boolean isMany = null;
public Boolean isMandatory = null;
public Boolean isMandatoryEnforced = null;
public String getRole()
{
return role;
}
public void setRole(String role)
{
this.role = role;
}
public String getCls()
{
return cls;
}
public void setCls(String cls)
{
this.cls = cls;
}
public Boolean getMany()
{
return isMany;
}
public void setMany(Boolean many)
{
isMany = many;
}
public Boolean getMandatory()
{
return isMandatory;
}
public void setMandatory(Boolean mandatory)
{
isMandatory = mandatory;
}
public Boolean getMandatoryEnforced()
{
return isMandatoryEnforced;
}
public void setMandatoryEnforced(Boolean mandatoryEnforced)
{
isMandatoryEnforced = mandatoryEnforced;
}
}

View File

@@ -0,0 +1,86 @@
package org.alfresco.rest.model;
import org.alfresco.utility.model.TestModel;
public class RestClassAssociationModel extends TestModel
{
public String id;
public String title;
public String description;
public Boolean isChild;
public Boolean isProtected;
public RestClassAssociationDefinitionModel source = null;
public RestClassAssociationDefinitionModel target = null;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public Boolean getChild()
{
return isChild;
}
public void setIsChild(Boolean isChild)
{
this.isChild = isChild;
}
public Boolean getIsProtected()
{
return isProtected;
}
public void setIsProtected(Boolean isProtected)
{
this.isProtected = isProtected;
}
public RestClassAssociationDefinitionModel getSource()
{
return source;
}
public void setSource(RestClassAssociationDefinitionModel source)
{
this.source = source;
}
public RestClassAssociationDefinitionModel getTarget()
{
return target;
}
public void setTarget(RestClassAssociationDefinitionModel target)
{
this.target = target;
}
}

View File

@@ -0,0 +1,62 @@
package org.alfresco.rest.model;
import org.alfresco.utility.model.TestModel;
public class RestClassModel extends TestModel
{
public String id;
public String author;
public String description;
public String namespaceUri;
public String namespacePrefix;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getAuthor()
{
return author;
}
public void setAuthor(String author)
{
this.author = author;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public String getNamespaceUri()
{
return namespaceUri;
}
public void setNamespaceUri(String namespaceUri)
{
this.namespaceUri = namespaceUri;
}
public String getNamespacePrefix()
{
return namespacePrefix;
}
public void setNamespacePrefix(String namespacePrefix)
{
this.namespacePrefix = namespacePrefix;
}
}

View File

@@ -0,0 +1,62 @@
package org.alfresco.rest.model;
import java.util.Map;
public class RestConstraintDefinitionModel
{
private String id;
private String type;
private String title;
private String description;
private Map<String, Object> parameters;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public Map<String, Object> getParameters()
{
return parameters;
}
public void setParameters(Map<String, Object> parameters)
{
this.parameters = parameters;
}
}

View File

@@ -0,0 +1,120 @@
package org.alfresco.rest.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion;
import org.alfresco.utility.model.CustomAspectPropertiesModel;
import org.alfresco.utility.model.TestModel;
import java.util.List;
/**
* @author Bogdan Bocancea
*/
public class RestCustomTypeModel extends TestModel implements IRestModel<RestCustomTypeModel>
{
@JsonProperty(value = "entry")
RestCustomTypeModel model;
@JsonProperty(required = true)
private String name;
@JsonProperty(required = true)
private String parentName;
@JsonProperty
private String title;
@JsonProperty
private String description;
@JsonProperty
private List<CustomAspectPropertiesModel> properties;
public RestCustomTypeModel()
{
}
public RestCustomTypeModel(String name, String parentName)
{
this.name = name;
this.parentName = parentName;
}
public RestCustomTypeModel(String name, String parentName, String title)
{
this.name = name;
this.parentName = parentName;
this.title = title;
}
@Override
public RestCustomTypeModel onModel()
{
return model;
}
@Override
public ModelAssertion<RestCustomTypeModel> and()
{
return assertThat();
}
@Override
public ModelAssertion<RestCustomTypeModel> assertThat()
{
return new ModelAssertion<RestCustomTypeModel>(this);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getParentName()
{
return parentName;
}
public void setParentName(String parentName)
{
this.parentName = parentName;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public List<CustomAspectPropertiesModel> getProperties()
{
return properties;
}
public void setProperties(List<CustomAspectPropertiesModel> properties)
{
this.properties = properties;
}
}

View File

@@ -0,0 +1,127 @@
/*
* Copyright 2020 Alfresco Software, Ltd. All rights reserved.
* License rights for this program may be obtained from Alfresco Software, Ltd.
* pursuant to a written agreement and any use of this program without such an
* agreement is prohibited.
*/
package org.alfresco.rest.model;
import org.alfresco.utility.model.TestModel;
public class RestIdentityServiceConfigurationModel extends TestModel{
public RestIdentityServiceConfigurationModel() {
}
private String authenticationChain;
private String authenticationEnabled;
private String enableBasicAuth;
private String authServerUrl;
private String realm;
private String resource;
private String publicClient;
private String sslRequired;
private String enablePkce;
private String credentialsSecret;
private String credentialsProvider;
public String getAuthenticationChain() {
return authenticationChain;
}
public void setAuthenticationChain(String authenticationChain) {
this.authenticationChain = authenticationChain;
}
public String getAuthenticationEnabled() {
return authenticationEnabled;
}
public void setAuthenticationEnabled(String authenticationEnabled) {
this.authenticationEnabled = authenticationEnabled;
}
public String getEnableBasicAuth() {
return enableBasicAuth;
}
public void setEnableBasicAuth(String enableBasicAuth) {
this.enableBasicAuth = enableBasicAuth;
}
public String getAuthServerUrl() {
return authServerUrl;
}
public void setAuthServerUrl(String authServerUrl) {
this.authServerUrl = authServerUrl;
}
public String getRealm() {
return realm;
}
public void setRealm(String realm) {
this.realm = realm;
}
public String getResource() {
return resource;
}
public void setResource(String resource) {
this.resource = resource;
}
public String getPublicClient() {
return publicClient;
}
public void setPublicClient(String publicClient) {
this.publicClient = publicClient;
}
public String getSslRequired() {
return sslRequired;
}
public void setSslRequired(String sslRequired) {
this.sslRequired = sslRequired;
}
public String getEnablePkce() {
return enablePkce;
}
public void setEnablePkce(String enablePkce) {
this.enablePkce = enablePkce;
}
public String getCredentialsSecret() {
return credentialsSecret;
}
public void setCredentialsSecret(String credentialsSecret) {
this.credentialsSecret = credentialsSecret;
}
public String getCredentialsProvider() {
return credentialsProvider;
}
public void setCredentialsProvider(String credentialsProvider) {
this.credentialsProvider = credentialsProvider;
}
}

View File

@@ -20,6 +20,10 @@ public class RestPaginationModel extends TestModel implements IModelAssertion<Re
{
private int count;
private boolean hasMoreItems;
/**
* {code}totalItems{code} is optional and some endpoints don't include it e.g. GET sites/{siteId}/members
* See the section entitled "The list object" in https://ts.alfresco.com/share/page/site/prodman/document-details?nodeRef=workspace://SpacesStore/17eacc65-28e5-40bb-8113-edb8c21d57a5
*/
private Integer totalItems;
private int skipCount;
private int maxItems;
@@ -44,6 +48,11 @@ public class RestPaginationModel extends TestModel implements IModelAssertion<Re
this.hasMoreItems = hasMoreItems;
}
/**
* Get the totalItems.
*
* @return The total number of items, or null if it was not included in the response.
*/
public Integer getTotalItems()
{
return totalItems;
@@ -75,14 +84,14 @@ public class RestPaginationModel extends TestModel implements IModelAssertion<Re
}
@Override
public ModelAssertion<RestPaginationModel> assertThat()
public ModelAssertion<RestPaginationModel> assertThat()
{
return new ModelAssertion<RestPaginationModel>(this);
}
return new ModelAssertion<>(this);
}
@Override
public ModelAssertion<RestPaginationModel> and()
public ModelAssertion<RestPaginationModel> and()
{
return assertThat();
}
}
}

View File

@@ -71,6 +71,8 @@ public class RestPersonModel extends TestModel implements IModelAssertion<RestPe
private String userStatus;
private String password;
private Object properties;
private String quotaUsed;
private String quota;
private Map<String, Boolean> capabilities;
public RestPersonModel()
@@ -319,7 +321,25 @@ public class RestPersonModel extends TestModel implements IModelAssertion<RestPe
this.displayName = displayName;
}
/**
public String getQuotaUsed() {
return quotaUsed;
}
public void setQuotaUsed(String quotaUsed) {
this.quotaUsed = quotaUsed;
}
public String getQuota() {
return quota;
}
public void setQuota(String quota) {
this.quota = quota;
}
/**
* Generate a PersonModel with random values for all existing fields excluding fields specified as ingnoredFields
*
* @param ignoredFields field to be excluded when generating a random model

View File

@@ -0,0 +1,117 @@
package org.alfresco.rest.model;
import java.util.List;
public class RestPropertyDefinitionModel
{
private String id;
private String title;
private String description;
private String defaultValue;
private String dataType;
private Boolean isMultiValued;
private Boolean isMandatory;
private Boolean isMandatoryEnforced;
private Boolean isProtected;
private List<RestConstraintDefinitionModel> constraints;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public String getDefaultValue()
{
return defaultValue;
}
public void setDefaultValue(String defaultValue)
{
this.defaultValue = defaultValue;
}
public String getDataType()
{
return dataType;
}
public void setDataType(String dataType)
{
this.dataType = dataType;
}
public boolean getIsProtected()
{
return isProtected;
}
public void setIsProtected(boolean isProtected)
{
this.isProtected = isProtected;
}
public List<RestConstraintDefinitionModel> getConstraints()
{
return constraints;
}
public void setConstraints(List<RestConstraintDefinitionModel> constraints)
{
this.constraints = constraints;
}
public boolean getIsMultiValued()
{
return isMultiValued;
}
public void setIsMultiValued(boolean isMultiValued)
{
this.isMultiValued = isMultiValued;
}
public boolean getIsMandatory()
{
return isMandatory;
}
public void setIsMandatory(boolean isMandatory)
{
this.isMandatory = isMandatory;
}
public boolean getIsMandatoryEnforced()
{
return isMandatoryEnforced;
}
public void setIsMandatoryEnforced(boolean isMandatoryEnforced)
{
this.isMandatoryEnforced = isMandatoryEnforced;
}
}

View File

@@ -0,0 +1,78 @@
package org.alfresco.rest.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.TestModel;
import org.testng.Assert;
import static org.alfresco.utility.report.log.Step.STEP;
public class RestSiteGroupModel extends TestModel implements IRestModel<RestSiteGroupModel>
{
@JsonProperty(value = "entry")
RestSiteGroupModel model;
@Override
public RestSiteGroupModel onModel()
{
return model;
}
private UserRole role;
private String id = "no-id";
private RestGroupsModel group;
public UserRole getRole()
{
return role;
}
public void setRole(UserRole role)
{
this.role = role;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public RestGroupsModel getGroup()
{
return group;
}
public void setGroup(RestGroupsModel group)
{
this.group = group;
}
public RestSiteGroupModel assertSiteGroupHasRole(UserRole role) {
STEP(String.format("REST API: Assert that site group role is '%s'", role));
Assert.assertEquals(getRole(), role, "Site group role is not as expected.");
return this;
}
/**
* DSL for assertion on this rest model
* @return
*/
@Override
public ModelAssertion<RestSiteGroupModel> assertThat()
{
return new ModelAssertion<RestSiteGroupModel>(this);
}
@Override
public ModelAssertion<RestSiteGroupModel> and()
{
return assertThat();
}
}

View File

@@ -0,0 +1,32 @@
package org.alfresco.rest.model;
import org.alfresco.rest.core.RestModels;
import java.util.List;
import static org.alfresco.utility.report.log.Step.STEP;
public class RestSiteGroupModelsCollection extends RestModels<RestSiteGroupModel, RestSiteGroupModelsCollection>
{
/**
* Get groups from site groups list
*/
public RestSiteGroupModel getSiteGroups(String groupId)
{
STEP(String.format("REST API: Get site group with id '%s'", groupId));
RestSiteGroupModel siteGroupEntry = null;
List<RestSiteGroupModel> siteGroups = getEntries();
for (int i = 1; i < siteGroups.size(); i++)
{
if (siteGroups.get(i).onModel().getId().equals(groupId))
{
siteGroupEntry = siteGroups.get(i).onModel();
}
}
return siteGroupEntry;
}
}

View File

@@ -23,7 +23,8 @@ public class RestSiteMemberModel extends TestModel implements IRestModel<RestSit
private UserRole role;
private String id = "no-id";
private boolean isMemberOfGroup;
private RestPersonModel person;
public UserRole getRole()
@@ -51,6 +52,16 @@ public class RestSiteMemberModel extends TestModel implements IRestModel<RestSit
return person;
}
public boolean getIsMemberOfGroup()
{
return isMemberOfGroup;
}
public void setIsMemberOfGroup(boolean memberOfGroup)
{
isMemberOfGroup = memberOfGroup;
}
public void setPerson(RestPersonModel person)
{
this.person = person;

View File

@@ -22,6 +22,7 @@ import org.alfresco.rest.core.RestModels;
* {
* "entry": {
* "role": "SiteManager",
* "isMemberOfGroup": false,
* "person": {
* "firstName": "Administrator",
* "emailNotificationsEnabled": true,
@@ -36,6 +37,7 @@ import org.alfresco.rest.core.RestModels;
* {
* "entry": {
* "role": "SiteConsumer",
* "isMemberOfGroup": false,
* "person": {
* "firstName": "CqeKxvPHBd FirstName",
* "lastName": "LN-CqeKxvPHBd",

View File

@@ -36,6 +36,12 @@ public class RestSyncServiceComponentModel extends TestModel
@JsonProperty
private String message;
@JsonProperty
private int duration;
@JsonProperty
private String timestamp;
public Boolean getHealthy()
{
return healthy;
@@ -46,4 +52,14 @@ public class RestSyncServiceComponentModel extends TestModel
return message;
}
public int getDuration()
{
return duration;
}
public String getTimestamp()
{
return timestamp;
}
}

View File

@@ -63,6 +63,8 @@ public class RestSyncServiceConfigModel extends TestModel
@JsonProperty(required = true)
private RestSyncServiceRepoInfoModel repoInfo;
private RestIdentityServiceConfigurationModel identityServiceConfig;
public String getDsyncClientVersionMin()
{
return dsyncClientVersionMin;
@@ -77,5 +79,8 @@ public class RestSyncServiceConfigModel extends TestModel
{
return repoInfo;
}
public RestIdentityServiceConfigurationModel getIdentityServiceConfig() {
return identityServiceConfig;
}
}

View File

@@ -67,6 +67,8 @@ public class RestSyncServiceModel extends TestModel
@JsonProperty(required = true)
private RestSyncServiceConfigModel config;
private RestIdentityServiceConfigurationModel identityServiceConfig;
public String getId()
{
return id;
@@ -81,5 +83,12 @@ public class RestSyncServiceModel extends TestModel
{
return config;
}
public RestIdentityServiceConfigurationModel getIdentityServiceConfig() {
return identityServiceConfig;
}
public void setIdentityServiceConfig(RestIdentityServiceConfigurationModel identityServiceConfig) {
this.identityServiceConfig = identityServiceConfig;
}
}

View File

@@ -56,6 +56,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
"async": false,
"authority": null,
"cascade": false
"folderChange": false
}
]
*/
@@ -147,6 +148,9 @@ public class RestSyncSetChangesModel extends TestModel
@JsonProperty(required = true)
private int numberOfSecondaryAssocs;
@JsonProperty(required = true)
private boolean folderChange;
@@ -294,4 +298,12 @@ public class RestSyncSetChangesModel extends TestModel
{
this.numberOfSecondaryAssocs = numberOfSecondaryAssocs;
}
public boolean isFolderChange() {
return folderChange;
}
public void setFolderChange(boolean folderChange) {
this.folderChange = folderChange;
}
}

View File

@@ -0,0 +1,5 @@
package org.alfresco.rest.model;
public class RestTypeModel extends RestAbstractClassModel
{
}

View File

@@ -0,0 +1,7 @@
package org.alfresco.rest.model;
import org.alfresco.rest.core.RestModels;
public class RestTypesCollection extends RestModels<RestTypeModel, RestTypesCollection>
{
}

View File

@@ -1,7 +1,5 @@
package org.alfresco.rest.requests;
import javax.json.JsonArrayBuilder;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
@@ -18,7 +16,9 @@ public class CustomAspectModelManager extends ModelRequest<CustomAspectModelMana
{
private CustomContentModel customContentModel;
private CustomAspectModel customAspectModel;
private CustomModelProperties customProperties = new CustomModelProperties(restWrapper);
public CustomAspectModelManager(CustomContentModel customContentModel, CustomAspectModel aspectModel, RestWrapper restWrapper)
{
super(restWrapper);
@@ -29,41 +29,58 @@ public class CustomAspectModelManager extends ModelRequest<CustomAspectModelMana
public RestCustomAspectModel getAspect()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "cmm/{modelName}/aspects/{aspectName}?{parameters}",
this.customContentModel.getName(), this.customAspectModel.getName(), restWrapper.getParameters());
this.customContentModel.getName(), this.customAspectModel.getName(), restWrapper.getParameters());
return restWrapper.processModel(RestCustomAspectModel.class, request);
}
public void addProperty(CustomAspectPropertiesModel propertyModel)
{
JsonArrayBuilder array = JsonBodyGenerator.defineJSONArray();
array.add(JsonBodyGenerator.defineJSON()
.add("name", propertyModel.getName())
.add("title", propertyModel.getTitle())
.add("description", propertyModel.getDescription())
.add("dataType", propertyModel.getDataType())
.add("multiValued", propertyModel.isMultiValued())
.add("mandatory", propertyModel.isMandatory())
.add("mandatoryEnforced", propertyModel.isMandatoryEnforced()));
String body = JsonBodyGenerator.defineJSON().add("name", this.customAspectModel.getName()).add("properties", array).build().toString();
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, body, "cmm/{modelName}/aspects/{aspectName}?select=props",
this.customContentModel.getName(), this.customAspectModel.getName());
restWrapper.processEmptyModel(request);
customProperties.addProperty(propertyModel, this.customContentModel, true,
this.customAspectModel.getName(), false, null);
}
public void addPropertyWithMinMaxValueConstraint(CustomAspectPropertiesModel propertyModel, int minValue, int maxValue)
{
customProperties.addProperty(propertyModel, this.customContentModel, true, this.customAspectModel.getName(),
true, customProperties.createMinMaxValueConstraintArray(minValue, maxValue));
}
public void addPropertyWithMinMaxLengthConstraint(CustomAspectPropertiesModel propertyModel, int minLength, int maxLength)
{
customProperties.addProperty(propertyModel, this.customContentModel, true, this.customAspectModel.getName(),
true, customProperties.createMinMaxLengthConstraint(minLength, maxLength));
}
public void addPropertyWithListOfValues(CustomAspectPropertiesModel propertyModel, boolean sorted, String... listOfValues)
{
customProperties.addProperty(propertyModel, this.customContentModel, true, this.customAspectModel.getName(),
true, customProperties.createListOfValuesConstraint(sorted, listOfValues));
}
public void addPropertyWithRegularExpression(CustomAspectPropertiesModel propertyModel, String regex)
{
customProperties.addProperty(propertyModel, this.customContentModel, true, this.customAspectModel.getName(),
true, customProperties.createRegexConstraint(regex));
}
public void deleteAspectProperty(CustomAspectPropertiesModel propertyModel)
{
String body = JsonBodyGenerator.defineJSON()
.add("name", this.customAspectModel.getName()).build().toString();
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, body, "cmm/{modelName}/aspects/{aspectName}?select=props&delete={propertyName}",
this.customContentModel.getName(), this.customAspectModel.getName(), propertyModel.getName());
.add("name", this.customAspectModel.getName()).build().toString();
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, body,
"cmm/{modelName}/aspects/{aspectName}?select=props&delete={propertyName}",
this.customContentModel.getName(),
this.customAspectModel.getName(),
propertyModel.getName());
restWrapper.processEmptyModel(request);
}
public void deleteAspect()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "cmm/{modelName}/aspects/{aspectName}",
this.customContentModel.getName(), this.customAspectModel.getName());
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE,
"cmm/{modelName}/aspects/{aspectName}",
this.customContentModel.getName(),
this.customAspectModel.getName());
restWrapper.processEmptyModel(request);
}
}

View File

@@ -3,10 +3,19 @@ package org.alfresco.rest.requests;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.model.RestCustomAspectModel;
import org.alfresco.rest.model.RestCustomModel;
import org.alfresco.rest.model.RestCustomTypeModel;
import org.alfresco.rest.model.RestGroupsModelsCollection;
import org.alfresco.utility.model.CustomAspectModel;
import org.alfresco.utility.model.CustomAspectPropertiesModel;
import org.alfresco.utility.model.CustomContentModel;
import org.springframework.http.HttpMethod;
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
/**
* @author Bogdan Bocancea
*/
@@ -14,12 +23,30 @@ public class CustomModelManager extends ModelRequest<CustomModelManager>
{
private CustomContentModel customContentModel;
public CustomModelManager(RestWrapper restWrapper)
{
super(restWrapper);
}
public CustomModelManager(CustomContentModel customContentModel, RestWrapper restWrapper)
{
super(restWrapper);
this.customContentModel = customContentModel;
}
/**
* Create a new custom model
*
* @param customContentModel
* @return {@link RestCustomModel}
*/
public RestCustomModel createCustomModel(CustomContentModel customContentModel)
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, customContentModel.toJson(),
"cmm?{parameters}", restWrapper.getParameters());
return restWrapper.processModel(RestCustomModel.class, request);
}
/**
* Retrieve one model using GET call on "cmm/{modelName}"
*
@@ -51,4 +78,18 @@ public class CustomModelManager extends ModelRequest<CustomModelManager>
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "cmm/{modelName}", this.customContentModel.getName());
restWrapper.processEmptyModel(request);
}
public RestCustomAspectModel createAspect(CustomAspectModel aspectModel)
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, aspectModel.toJson(),
"cmm/{modelName}/aspects?{parameters}", this.customContentModel.getName(), restWrapper.getParameters());
return restWrapper.processModel(RestCustomAspectModel.class, request);
}
public RestCustomTypeModel createCustomType(RestCustomTypeModel customType)
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, customType.toJson(),
"cmm/{modelName}/types?{parameters}", this.customContentModel.getName(), restWrapper.getParameters());
return restWrapper.processModel(RestCustomTypeModel.class, request);
}
}

View File

@@ -0,0 +1,164 @@
package org.alfresco.rest.requests;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.utility.model.CustomAspectPropertiesModel;
import org.alfresco.utility.model.CustomContentModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpMethod;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObjectBuilder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* @author Bogdan Bocancea
*/
public class CustomModelProperties extends ModelRequest<CustomModelProperties>
{
public CustomModelProperties(RestWrapper restWrapper)
{
super(restWrapper);
}
public void addProperty(CustomAspectPropertiesModel propertyModel,
CustomContentModel customContentModel,
boolean isAspect,
String aspectOrTypeName,
boolean hasConstraints,
JsonArrayBuilder constraintsArray)
{
JsonArrayBuilder array;
if(hasConstraints)
{
array = getPropertiesArray(propertyModel, true, constraintsArray);
}
else
{
array = getPropertiesArray(propertyModel, false, null);
}
String body = JsonBodyGenerator.defineJSON()
.add("name", aspectOrTypeName)
.add("properties", array).build().toString();
String urlPath;
if(isAspect)
{
urlPath = "cmm/{modelName}/aspects/{aspectName}?select=props";
}
else
{
urlPath = "cmm/{modelName}/types/{typeName}?select=props";
}
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, body, urlPath,
customContentModel.getName(), aspectOrTypeName);
restWrapper.processEmptyModel(request);
}
private JsonArrayBuilder getPropertiesArray(CustomAspectPropertiesModel propertyModel, boolean hasConstraints, JsonArrayBuilder constraintsArray)
{
JsonArrayBuilder array = JsonBodyGenerator.defineJSONArray();;
if(hasConstraints)
{
array.add(JsonBodyGenerator.defineJSON()
.add("name", propertyModel.getName())
.add("title", propertyModel.getTitle())
.add("description", propertyModel.getDescription())
.add("dataType", propertyModel.getDataType())
.add("multiValued", propertyModel.isMultiValued())
.add("mandatory", propertyModel.isMandatory())
.add("mandatoryEnforced", propertyModel.isMandatoryEnforced())
.add("constraints", constraintsArray));
}
else
{
array.add(JsonBodyGenerator.defineJSON()
.add("name", propertyModel.getName())
.add("title", propertyModel.getTitle())
.add("description", propertyModel.getDescription())
.add("dataType", propertyModel.getDataType())
.add("multiValued", propertyModel.isMultiValued())
.add("mandatory", propertyModel.isMandatory())
.add("mandatoryEnforced", propertyModel.isMandatoryEnforced()));
}
return array;
}
public JsonArrayBuilder createMinMaxValueConstraintArray(int minValue, int maxValue)
{
JsonArrayBuilder constraintsArray = JsonBodyGenerator.defineJSONArray();
JsonObjectBuilder param1 = JsonBodyGenerator.defineJSON()
.add("name", "minValue")
.add("simpleValue", Integer.valueOf(minValue));
JsonObjectBuilder param2 = JsonBodyGenerator.defineJSON()
.add("name", "maxValue")
.add("simpleValue", Integer.valueOf(maxValue));
JsonArrayBuilder parameters = JsonBodyGenerator.defineJSONArray();
parameters.add(0, param1).add(1, param2);
constraintsArray.add(JsonBodyGenerator.defineJSON()
.add("name", "MINMAX_" + UUID.randomUUID())
.add("type", "MINMAX")
.add("parameters", parameters));
return constraintsArray;
}
public JsonArrayBuilder createMinMaxLengthConstraint(int minLength, int maxLength)
{
JsonArrayBuilder constraintsArray = JsonBodyGenerator.defineJSONArray();
JsonObjectBuilder param1 = JsonBodyGenerator.defineJSON()
.add("name", "minLength")
.add("simpleValue", Integer.valueOf(minLength));
JsonObjectBuilder param2 = JsonBodyGenerator.defineJSON()
.add("name", "maxLength")
.add("simpleValue", Integer.valueOf(maxLength));
JsonArrayBuilder parameters = JsonBodyGenerator.defineJSONArray();
parameters.add(0, param1).add(1, param2);
constraintsArray.add(JsonBodyGenerator.defineJSON()
.add("name", "LENGTH_" + UUID.randomUUID())
.add("type", "LENGTH")
.add("parameters", parameters));
return constraintsArray;
}
public JsonArrayBuilder createListOfValuesConstraint(boolean sorted, String... listOfValues)
{
JsonArrayBuilder valuesArray = JsonBodyGenerator.defineJSONArray();
Arrays.stream(listOfValues).forEach(valuesArray::add);
JsonArrayBuilder constraintsArray = JsonBodyGenerator.defineJSONArray();
JsonObjectBuilder param1 = JsonBodyGenerator.defineJSON()
.add("name", "allowedValues")
.add("listValue", valuesArray);
JsonObjectBuilder param2 = JsonBodyGenerator.defineJSON()
.add("name", "sorted")
.add("simpleValue", Boolean.valueOf(sorted));
JsonArrayBuilder parameters = JsonBodyGenerator.defineJSONArray();
parameters.add(0, param1).add(1, param2);
constraintsArray.add(JsonBodyGenerator.defineJSON()
.add("name", "LIST_" + UUID.randomUUID())
.add("type", "LIST")
.add("parameters", parameters));
return constraintsArray;
}
public JsonArrayBuilder createRegexConstraint(String regex)
{
JsonArrayBuilder constraintsArray = JsonBodyGenerator.defineJSONArray();
JsonObjectBuilder param1 = JsonBodyGenerator.defineJSON()
.add("name", "expression")
.add("simpleValue", regex);
JsonObjectBuilder param2 = JsonBodyGenerator.defineJSON()
.add("name", "requiresMatch")
.add("simpleValue", true);
JsonArrayBuilder parameters = JsonBodyGenerator.defineJSONArray();
parameters.add(0, param1).add(1, param2);
constraintsArray.add(JsonBodyGenerator.defineJSON()
.add("name", "REGEX_" + UUID.randomUUID())
.add("type", "REGEX")
.add("parameters", parameters));
return constraintsArray;
}
}

View File

@@ -0,0 +1,65 @@
package org.alfresco.rest.requests;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.model.RestCustomTypeModel;
import org.alfresco.utility.model.CustomAspectPropertiesModel;
import org.alfresco.utility.model.CustomContentModel;
import org.springframework.http.HttpMethod;
/**
* @author Bogdan Bocancea
*/
public class CustomTypeManager extends ModelRequest<CustomTypeManager>
{
private CustomContentModel customContentModel;
private RestCustomTypeModel customTypeModel;
private CustomModelProperties customProperties = new CustomModelProperties(restWrapper);
public CustomTypeManager(CustomContentModel customContentModel, RestCustomTypeModel customTypeModel, RestWrapper restWrapper)
{
super(restWrapper);
this.customContentModel = customContentModel;
this.customTypeModel = customTypeModel;
}
public RestCustomTypeModel getCustomType()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "cmm/{modelName}/types/{typeName}?{parameters}",
this.customContentModel.getName(), this.customTypeModel.getName(), restWrapper.getParameters());
return restWrapper.processModel(RestCustomTypeModel.class, request);
}
public void addProperty(CustomAspectPropertiesModel propertyModel)
{
customProperties.addProperty(propertyModel, this.customContentModel, false,
this.customTypeModel.getName(), false, null);
}
public void addPropertyWithMinMaxValueConstraint(CustomAspectPropertiesModel propertyModel, int minValue, int maxValue)
{
customProperties.addProperty(propertyModel, this.customContentModel, false, this.customTypeModel.getName(),
true, customProperties.createMinMaxValueConstraintArray(minValue, maxValue));
}
public void addPropertyWithMinMaxLengthConstraint(CustomAspectPropertiesModel propertyModel, int minLength, int maxLength)
{
customProperties.addProperty(propertyModel, this.customContentModel, false, this.customTypeModel.getName(),
true, customProperties.createMinMaxLengthConstraint(minLength, maxLength));
}
public void addPropertyWithListOfValues(CustomAspectPropertiesModel propertyModel, boolean sorted, String... listOfValues)
{
customProperties.addProperty(propertyModel, this.customContentModel, false, this.customTypeModel.getName(),
true, customProperties.createListOfValuesConstraint(sorted, listOfValues));
}
public void deleteCustomType()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE,
"cmm/{modelName}/types/{typeName}",
this.customContentModel.getName(),
this.customTypeModel.getName());
restWrapper.processEmptyModel(request);
}
}

View File

@@ -382,7 +382,7 @@ public class Node extends ModelRequest<Node>
public void createNodeRenditionIfNotExists(String renditionId) throws Exception
{
getNodeRendition(renditionId);
if (HttpStatus.OK.toString().equals(restWrapper.getStatusCode()))
if (Integer.valueOf(restWrapper.getStatusCode()).equals(HttpStatus.OK.value()))
{
String postBody = JsonBodyGenerator.keyValueJson("id", renditionId);
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, postBody, "nodes/{nodeId}/renditions", repoModel.getNodeRef());
@@ -415,7 +415,7 @@ public class Node extends ModelRequest<Node>
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "nodes/{nodeId}/renditions/{renditionId}",repoModel.getNodeRef(), renditionId);
RestRenditionInfoModel renditions = restWrapper.processModel(RestRenditionInfoModel.class, request);
int retry = 0;
if (restWrapper.getStatusCode().equals(HttpStatus.OK.toString()))
if (Integer.valueOf(restWrapper.getStatusCode()).equals(HttpStatus.OK.value()))
{
while (renditions.getStatus().equals("NOT_CREATED") && retry < Utility.retryCountSeconds - 8)
{
@@ -778,11 +778,6 @@ public class Node extends ModelRequest<Node>
restWrapper.processEmptyModel(request);
}
/**
*
*@param nodeId
*@return
*/
public RestActionDefinitionModelsCollection getActionDefinitions()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "nodes/{nodeId}/action-definitions?{parameters}", repoModel.getNodeRef(), restWrapper.getParameters());
@@ -790,4 +785,51 @@ public class Node extends ModelRequest<Node>
}
/**
* Get Direct Access URL for a node
* @return
*/
public RestResponse createDirectAccessURL()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.POST, "nodes/{nodeId}/request-content-url", this.repoModel.getNodeRef());
return this.restWrapper.process(request);
}
/**
* Get Direct Access URL for a specific node version. E.g "1.1"
* @param versionId
* @return
*/
public RestResponse createDirectAccessURLforVersion(String versionId)
{
RestRequest request = RestRequest
.simpleRequest(HttpMethod.POST, "nodes/{nodeId}/versions/{versionId}/request-content-url", this.repoModel.getNodeRef(), versionId);
return this.restWrapper.process(request);
}
/**
* Get Direct Access URL for a specific node version rendition. E.g ("1.1", "pdf")
* @param versionId
* @param renditionId
* @return
*/
public RestResponse createDirectAccessURLforVersionAndRendition(String versionId, String renditionId)
{
RestRequest request = RestRequest
.simpleRequest(HttpMethod.POST, "nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}/request-content-url", this.repoModel.getNodeRef(), versionId, renditionId);
return this.restWrapper.process(request);
}
/**
* Get Direct Access URL for a specific node rendition E.g "pdf"
* @param renditionId
* @return
*/
public RestResponse createDirectAccessURLforRendition(String renditionId)
{
RestRequest request = RestRequest
.simpleRequest(HttpMethod.POST, "nodes/{nodeId}/renditions/{renditionId}/request-content-url", this.repoModel.getNodeRef(), renditionId);
return this.restWrapper.process(request);
}
}

View File

@@ -81,7 +81,7 @@ public class People extends ModelRequest<People>
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "people/{personId}/activities?{parameters}", this.person.getUsername(), restWrapper.getParameters());
RestActivityModelsCollection activityCollection = restWrapper.processModels(RestActivityModelsCollection.class, request);
int retry = 0;
if (restWrapper.getStatusCode().equals(HttpStatus.OK.toString()))
if (Integer.valueOf(restWrapper.getStatusCode()).equals(HttpStatus.OK.value()))
{
while ((activityCollection.isEmpty() || activityCollection.getPagination().getCount() != expectedNoOfEntries) && retry < Utility.retryCountSeconds + 20)
{

View File

@@ -11,9 +11,12 @@ import org.alfresco.rest.model.RestSiteContainerModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
import org.alfresco.rest.model.RestSiteGroupModel;
import org.alfresco.rest.model.RestSiteGroupModelsCollection;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.rest.model.RestSitePersonMembershipRequestModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel;
import org.springframework.http.HttpMethod;
@@ -35,11 +38,10 @@ public class Site extends ModelRequest<Site>
/**
* Retrieve one site using GET call on "sites/{siteId}"
*
* @param siteId
* @return
* @throws JsonToModelConversionException
*/
public RestSiteModel getSite() throws Exception
public RestSiteModel getSite()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}?{parameters}", this.site.getId(), restWrapper.getParameters());
return restWrapper.processModel(RestSiteModel.class, request);
@@ -48,11 +50,10 @@ public class Site extends ModelRequest<Site>
/**
* Retrieve one site using GET call on "sites/{siteId}" along with relations parameter
*
* @param siteId
* @return
* @throws JsonToModelConversionException
*/
public List<Object> getSiteWithRelations() throws Exception
public List<Object> getSiteWithRelations()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}?{parameters}", this.site.getId(), restWrapper.getParameters());
return restWrapper.processRelationsJson(request);
@@ -64,7 +65,7 @@ public class Site extends ModelRequest<Site>
* @return
* @throws JsonToModelConversionException
*/
public RestSiteModelsCollection getSites() throws Exception
public RestSiteModelsCollection getSites()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites?{parameters}", restWrapper.getParameters());
return restWrapper.processModels(RestSiteModelsCollection.class, request);
@@ -76,7 +77,7 @@ public class Site extends ModelRequest<Site>
* @return
* @throws JsonToModelConversionException
*/
public List<List<Object>> getSitesWithRelations() throws Exception
public List<List<Object>> getSitesWithRelations()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites?{parameters}", restWrapper.getParameters());
return restWrapper.processSitesRelationsJson(request);
@@ -87,10 +88,9 @@ public class Site extends ModelRequest<Site>
*
* @param person {@link UserModel}
* @return
* @throws Exception
* @throws JsonToModelConversionException
*/
public RestSiteMemberModel addPerson(UserModel person) throws Exception
public RestSiteMemberModel addPerson(UserModel person)
{
String siteMemberBody = JsonBodyGenerator.siteMember(person);
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, siteMemberBody, "sites/{siteId}/members?{parameters}", site.getId(), restWrapper.getParameters());
@@ -103,7 +103,7 @@ public class Site extends ModelRequest<Site>
* @return
* @throws JsonToModelConversionException
*/
public RestSiteMemberModelsCollection getSiteMembers() throws Exception
public RestSiteMemberModelsCollection getSiteMembers()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/members?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModels(RestSiteMemberModelsCollection.class, request);
@@ -112,12 +112,11 @@ public class Site extends ModelRequest<Site>
/**
* Retrieve specific member of a site using GET call on "sites/{siteId}/members/{personId}"
*
* @param siteId
* @param personid
* @param user A model containing the username to look for.
* @return
* @throws JsonToModelConversionException
*/
public RestSiteMemberModel getSiteMember(UserModel user) throws Exception
public RestSiteMemberModel getSiteMember(UserModel user)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/members/{personId}?{parameters}", site.getId(), user.getUsername(), restWrapper.getParameters());
return restWrapper.processModel(RestSiteMemberModel.class, request);
@@ -129,7 +128,7 @@ public class Site extends ModelRequest<Site>
* @return
* @throws JsonToModelConversionException
*/
public RestSiteMemberModel updateSiteMember(UserModel siteMember) throws Exception
public RestSiteMemberModel updateSiteMember(UserModel siteMember)
{
String json = JsonBodyGenerator.keyValueJson("role", siteMember.getUserRole().toString());
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/members/{personId}", site.getId(), siteMember.getUsername());
@@ -139,9 +138,8 @@ public class Site extends ModelRequest<Site>
/**
* Delete site member with DELETE call on "sites/{siteId}/members/{personId}"
* @param person
* @throws Exception
*/
public void deleteSiteMember(UserModel person) throws Exception
public void deleteSiteMember(UserModel person)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "sites/{siteId}/members/{personId}", site.getId(), person.getUsername());
restWrapper.processEmptyModel(request);
@@ -153,7 +151,7 @@ public class Site extends ModelRequest<Site>
* @return
* @throws JsonToModelConversionException
*/
public RestSiteContainerModelsCollection getSiteContainers() throws Exception
public RestSiteContainerModelsCollection getSiteContainers()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/containers?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModels(RestSiteContainerModelsCollection.class, request);
@@ -162,12 +160,11 @@ public class Site extends ModelRequest<Site>
/**
* Retrieve specific container of a site using GET call on "sites/{siteId}/containers/{containerId}"
*
* @param siteId
* @param folderId
* @param container A model containing the folderId to look for.
* @return
* @throws JsonToModelConversionException
*/
public RestSiteContainerModel getSiteContainer(RestSiteContainerModel container) throws Exception
public RestSiteContainerModel getSiteContainer(RestSiteContainerModel container)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/containers/{containerId}?{parameters}", site.getId(), container.getFolderId(), restWrapper.getParameters());
return restWrapper.processModel(RestSiteContainerModel.class, request);
@@ -176,12 +173,11 @@ public class Site extends ModelRequest<Site>
/**
* Retrieve specific container of a site using GET call on "sites/{siteId}/containers/{containerId}"
*
* @param siteId
* @param folderId
* @param containerFolder The id of the container to look for.
* @return
* @throws JsonToModelConversionException
*/
public RestSiteContainerModel getSiteContainer(String containerFolder) throws Exception
public RestSiteContainerModel getSiteContainer(String containerFolder)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/containers/{containerId}?{parameters}", site.getId(), containerFolder, restWrapper.getParameters());
return restWrapper.processModel(RestSiteContainerModel.class, request);
@@ -190,7 +186,6 @@ public class Site extends ModelRequest<Site>
/**
* Create a collaboration site
*
* @param site information on the site to create
* @return the properties of the created site
* @throws Exception
*/
@@ -200,13 +195,44 @@ public class Site extends ModelRequest<Site>
return restWrapper.processModel(RestSiteModel.class, request);
}
/**
* Update a site: Site title, description, visibility can be updated
* Body:
* {
* "title": "string",
* "description": "string",
* "visibility": "PRIVATE"
* }
*
* Response:
* {
* "entry": {
* "id": "string",
* "guid": "string",
* "title": "string",
* "description": "string",
* "visibility": "PRIVATE",
* "preset": "string",
* "role": "SiteConsumer"
* }
* }
*
* @return the properties of an updated site
* @throws Exception
*/
public RestSiteModel updateSite(SiteModel site) throws Exception
{
String siteBody = JsonBodyGenerator.updateSiteRequest(site);
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, siteBody, "sites/{siteId}", site.getId());
return restWrapper.processModel(RestSiteModel.class, request);
}
/**
* Get site membership requests by using GET /site-membership-requests
*
* @return site memberships
* @throws Exception
*/
public RestSitePersonMembershipRequestModelsCollection getSiteMemberships() throws Exception
public RestSitePersonMembershipRequestModelsCollection getSiteMemberships()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "site-membership-requests?{parameters}", restWrapper.getParameters());
return restWrapper.processModels(RestSitePersonMembershipRequestModelsCollection.class, request);
@@ -216,9 +242,8 @@ public class Site extends ModelRequest<Site>
* Approve a site membership request by using POST call on /sites/{siteId}/site-membership-requests/{inviteeId}/approve
*
* @param siteMember
* @throws Exception
*/
public RestResponse approveSiteMembership(UserModel siteMember) throws Exception
public RestResponse approveSiteMembership(UserModel siteMember)
{
String json = JsonBodyGenerator.keyValueJson("role", siteMember.getUserRole().toString());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/site-membership-requests/{inviteeId}/approve", site.getId(), siteMember.getUsername());
@@ -229,11 +254,72 @@ public class Site extends ModelRequest<Site>
* Reject a site membership request by using POST call /sites/{siteId}/site-membership-requests/{inviteeId}/reject
*
* @param siteMember
* @throws Exception
*/
public RestResponse rejectSiteMembership(UserModel siteMember) throws Exception
public RestResponse rejectSiteMembership(UserModel siteMember)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.POST, "sites/{siteId}/site-membership-requests/{inviteeId}/reject", site.getId(), siteMember.getUsername());
return restWrapper.process(request);
}
/**
* Retrieve all group membership of a site using GET call on "sites/{siteId}/group-members"
*
* @return RestSiteGroupModelsCollection
* @throws JsonToModelConversionException
*/
public RestSiteGroupModelsCollection getSiteGroups()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/group-members?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModels(RestSiteGroupModelsCollection.class, request);
}
/**
* Add new site group membership using POST call on "sites/{siteId}/group-members"
*
* @param authorityId The authorityId of the group
* @param role role to assign
* @return
* @throws JsonToModelConversionException
*/
public RestSiteGroupModel addSiteGroup(String authorityId, UserRole role)
{
String siteMemberBody = JsonBodyGenerator.siteGroup(authorityId, role);
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, siteMemberBody, "sites/{siteId}/group-members?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Retrieve specific group membership of a site using GET call on "sites/{siteId}/group-members/{groupId}"
*
* @param groupId
* @return RestSiteGroupModel
*/
public RestSiteGroupModel getSiteGroup(String groupId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Update site group membership role with PUT call on "sites/{siteId}/group-members/{groupId}"
* @param groupId
* @return RestSiteGroupModel
* @throws JsonToModelConversionException
*/
public RestSiteGroupModel updateSiteGroup(String groupId, UserRole role)
{
String json = JsonBodyGenerator.keyValueJson("role", role.toString());
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Delete site group membership with DELETE call on "sites/{siteId}/group-members/{groupId}"
* @param groupId
*/
public void deleteSiteGroup(String groupId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
restWrapper.processEmptyModel(request);
}
}

View File

@@ -43,7 +43,7 @@ public class Tenant extends ModelRequest<Tenant>
.contentType(ContentType.JSON);
Response returnedResponse = request.contentType(ContentType.JSON).body(json)
.post(String.format("%s/%s", restProperties.envProperty().getFullServerUrl(), "alfresco/service/api/tenants")).andReturn();
if (!String.valueOf(returnedResponse.getStatusCode()).equals(HttpStatus.OK.toString()))
if (!Integer.valueOf(returnedResponse.getStatusCode()).equals(HttpStatus.OK.value()))
{
throw new Exception(String.format("Tenant is not created: %s", returnedResponse.asString()));
}

View File

@@ -21,9 +21,8 @@ public class Trashcan extends ModelRequest<Trashcan>
* GET on deleted-nodes
*
* @return RestNodeModelsCollection
* @throws Exception
*/
public RestNodeModelsCollection findDeletedNodes() throws Exception
public RestNodeModelsCollection findDeletedNodes()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes?{parameters}", restWrapper.getParameters());
return restWrapper.processModels(RestNodeModelsCollection.class, request);
@@ -34,9 +33,8 @@ public class Trashcan extends ModelRequest<Trashcan>
*
* @param repoModel
* @return RestNodeModel
* @throws Exception
*/
public RestNodeModel findDeletedNode(RepoTestModel repoModel) throws Exception
public RestNodeModel findDeletedNode(RepoTestModel repoModel)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes/{nodeId}?{parameters}", repoModel.getNodeRefWithoutVersion(), restWrapper.getParameters());
return restWrapper.processModel(RestNodeModel.class, request);
@@ -47,9 +45,8 @@ public class Trashcan extends ModelRequest<Trashcan>
*
* @param repoModel
* @return
* @throws Exception
*/
public void deleteNodeFromTrashcan(RepoTestModel repoModel) throws Exception
public void deleteNodeFromTrashcan(RepoTestModel repoModel)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "deleted-nodes/{nodeId}", repoModel.getNodeRefWithoutVersion());
restWrapper.processEmptyModel(request);
@@ -60,9 +57,8 @@ public class Trashcan extends ModelRequest<Trashcan>
*
* @param repoModel
* @return RestNodeModel
* @throws Exception
*/
public RestNodeModel restoreNodeFromTrashcan(RepoTestModel repoModel) throws Exception
public RestNodeModel restoreNodeFromTrashcan(RepoTestModel repoModel)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.POST, "deleted-nodes/{nodeId}/restore?{parameters}", repoModel.getNodeRefWithoutVersion(), restWrapper.getParameters());
return restWrapper.processModel(RestNodeModel.class, request);
@@ -73,9 +69,8 @@ public class Trashcan extends ModelRequest<Trashcan>
*
* @param repoModel
* @return RestResponse
* @throws Exception
*/
public RestResponse getDeletedNodeContent(RepoTestModel repoModel) throws Exception
public RestResponse getDeletedNodeContent(RepoTestModel repoModel)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes/{nodeId}/content?{parameters}", repoModel.getNodeRefWithoutVersion(), restWrapper.getParameters());
return restWrapper.process(request);
@@ -86,9 +81,8 @@ public class Trashcan extends ModelRequest<Trashcan>
*
* @param repoModel
* @return RestRenditionInfoModelCollection
* @throws Exception
*/
public RestRenditionInfoModelCollection getDeletedNodeRenditions(RepoTestModel repoModel) throws Exception
public RestRenditionInfoModelCollection getDeletedNodeRenditions(RepoTestModel repoModel)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes/{nodeId}/renditions?{parameters}", repoModel.getNodeRefWithoutVersion(), restWrapper.getParameters());
return restWrapper.processModels(RestRenditionInfoModelCollection.class, request);
@@ -100,9 +94,8 @@ public class Trashcan extends ModelRequest<Trashcan>
* @param repoModel
* @param renditionId
* @return RestRenditionInfoModel
* @throws Exception
*/
public RestRenditionInfoModel getDeletedNodeRendition(RepoTestModel repoModel, String renditionId) throws Exception
public RestRenditionInfoModel getDeletedNodeRendition(RepoTestModel repoModel, String renditionId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes/{nodeId}/renditions/{renditionId}?{parameters}", repoModel.getNodeRefWithoutVersion(), renditionId, restWrapper.getParameters());
return restWrapper.processModel(RestRenditionInfoModel.class, request);
@@ -114,9 +107,8 @@ public class Trashcan extends ModelRequest<Trashcan>
* @param repoModel
* @param renditionId
* @return RestResponse
* @throws Exception
*/
public RestResponse getDeletedNodeRenditionContent(RepoTestModel repoModel, String renditionId) throws Exception
public RestResponse getDeletedNodeRenditionContent(RepoTestModel repoModel, String renditionId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "deleted-nodes/{nodeId}/renditions/{renditionId}/content?{parameters}", repoModel.getNodeRefWithoutVersion(), renditionId, restWrapper.getParameters());
return restWrapper.process(request);

View File

@@ -0,0 +1,71 @@
package org.alfresco.rest.requests.modelAPI;
import io.restassured.RestAssured;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.*;
import org.alfresco.rest.requests.ModelRequest;
import org.springframework.http.HttpMethod;
/**
* Defines the entire Rest Model API
* {@link https://api-explorer.alfresco.com/api-explorer/} select "Model API"
*/
public class RestModelAPI extends ModelRequest<RestModelAPI>
{
public RestModelAPI(RestWrapper restWrapper)
{
super(restWrapper);
RestAssured.basePath = "alfresco/api/-default-/public/alfresco/versions/1";
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
}
/**
* Retrieve all aspects using GET call on "aspects"
*
* @return RestAspectsCollection
* @throws JsonToModelConversionException
*/
public RestAspectsCollection getAspects()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "aspects?{parameters}", restWrapper.getParameters());
return restWrapper.processModels(RestAspectsCollection.class, request);
}
/**
* Retrieve aspect by id using GET call on "aspects/{aspectId}"
*
* @return RestAspectModel
* @throws JsonToModelConversionException
*/
public RestAspectModel getAspect(String aspectId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "aspects/{aspectId}?{parameters}", aspectId, restWrapper.getParameters());
return restWrapper.processModel(RestAspectModel.class, request);
}
/**
* Retrieve all types using GET call on "types"
*
* @return RestTypesCollection
* @throws JsonToModelConversionException
*/
public RestTypesCollection getTypes()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "types?{parameters}", restWrapper.getParameters());
return restWrapper.processModels(RestTypesCollection.class, request);
}
/**
* Retrieve Type by id using GET call on "types/{typeId}"
*
* @return RestTypeModel
* @throws JsonToModelConversionException
*/
public RestTypeModel getType(String typeId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "types/{typeId}?{parameters}", typeId, restWrapper.getParameters());
return restWrapper.processModel(RestTypeModel.class, request);
}
}

View File

@@ -1,10 +1,12 @@
package org.alfresco.rest.requests.privateAPI;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.model.RestCustomTypeModel;
import org.alfresco.rest.model.RestSubscriberModel;
import org.alfresco.rest.model.RestSyncNodeSubscriptionModel;
import org.alfresco.rest.requests.CustomAspectModelManager;
import org.alfresco.rest.requests.CustomModelManager;
import org.alfresco.rest.requests.CustomTypeManager;
import org.alfresco.rest.requests.ModelRequest;
import org.alfresco.rest.requests.syncServiceAPI.Healthcheck;
import org.alfresco.rest.requests.syncServiceAPI.Subscribers;
@@ -38,6 +40,11 @@ public class RestPrivateAPI extends ModelRequest<RestPrivateAPI>
return new CustomModelManager(customContentModel, restWrapper);
}
public CustomModelManager usingCustomModel()
{
return new CustomModelManager(restWrapper);
}
/**
* Provides DSL on all REST calls under <code>cmm/{modelName}/aspects/{aspectName}...</code> API path
*
@@ -50,6 +57,18 @@ public class RestPrivateAPI extends ModelRequest<RestPrivateAPI>
return new CustomAspectModelManager(customContentModel, aspectModel, restWrapper);
}
/**
* Provides DSL on all REST calls under <code>cmm/{modelName}/types/{typeName}...</code> API path
*
* @param customContentModel {@link CustomContentModel}
* @param customType {@link RestCustomTypeModel}
* @return {@link CustomTypeManager}
*/
public CustomTypeManager usingCustomType(CustomContentModel customContentModel, RestCustomTypeModel customType)
{
return new CustomTypeManager(customContentModel, customType, restWrapper);
}
/**
* Provides DSL on all REST calls under <code>subscribers/</code> API path
*

View File

@@ -18,14 +18,13 @@
*/
package org.alfresco.rest.requests.search;
import io.restassured.RestAssured;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.requests.ModelRequest;
import org.alfresco.rest.search.SearchRequest;
import org.alfresco.rest.search.SearchResponse;
import org.springframework.http.HttpMethod;
import io.restassured.RestAssured;
/**
* Wrapper for Search API.
* @author Michael Suzuki
@@ -36,11 +35,12 @@ public class SearchAPI extends ModelRequest<SearchAPI>
public SearchAPI(RestWrapper restWrapper)
{
super(restWrapper);
restWrapper.configureAlfrescoEndpoint();
RestAssured.basePath = "alfresco/api/-default-/public/search/versions/1";
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
}
public SearchResponse search(SearchRequest queryBody) throws Exception
public SearchResponse search(SearchRequest queryBody)
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, queryBody.toJson(), "search");
return restWrapper.processModels(SearchResponse.class, request);

View File

@@ -127,11 +127,12 @@ public class SearchSQLAPI extends ModelRequest<SearchSQLAPI>
public SearchSQLAPI(RestWrapper restWrapper)
{
super(restWrapper);
restWrapper.configureAlfrescoEndpoint();
RestAssured.basePath = "alfresco/api/-default-/public/search/versions/1";
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
}
public RestResponse searchSql(SearchSqlRequest query) throws Exception
public RestResponse searchSql(SearchSqlRequest query)
{
String stmt = (null == query.getSql() || query.getSql().isEmpty()) ? "" : query.getSql();

View File

@@ -42,6 +42,7 @@ public class ShardInfoAPI extends ModelRequest<ShardInfoAPI>
public ShardInfoAPI(RestWrapper restWrapper)
{
super(restWrapper);
restWrapper.configureAlfrescoEndpoint();
RestAssured.basePath = "alfresco/api/-default-/private/search/versions/1";
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
}

View File

@@ -67,6 +67,17 @@ public class SolrAPI extends ModelRequest<SolrAPI>
return restWrapper.processTextResponse(request);
}
/**
* Executes an action (like "delete") on SOLR alfresco core
* @param urlActionPath some action name (like "delete")
* @param queryBody parameters for the action
*/
public RestTextResponse postAction(String urlActionPath, String queryBody) throws Exception
{
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, queryBody, urlActionPath);
return restWrapper.processTextResponse(request);
}
public RestTextResponse getSelectQuery() throws Exception
{
List<Header> headers = new ArrayList<Header>();
@@ -77,4 +88,19 @@ public class SolrAPI extends ModelRequest<SolrAPI>
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "select?q={parameters}", restWrapper.getParameters());
return restWrapper.processTextResponse(request);
}
/**
* Executes a query in SOLR using JSON format for the results
*/
public RestTextResponse getSelectQueryJson() throws Exception
{
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("Content-Type", "application/json"));
Headers header = new Headers(headers);
restWrapper.setResponseHeaders(header);
restWrapper.configureRequestSpec().setUrlEncodingEnabled(false);
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "select?q={parameters}&wt=json", restWrapper.getParameters());
return restWrapper.processTextResponse(request);
}
}

View File

@@ -0,0 +1,58 @@
/*
* Copyright (C) 2020 Alfresco Software Limited.
* This file is part of Alfresco
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.rest.requests.search;
import java.util.ArrayList;
import java.util.List;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestResponse;
import org.alfresco.rest.core.RestWrapper;
import org.alfresco.rest.requests.ModelRequest;
import org.springframework.http.HttpMethod;
import io.restassured.RestAssured;
import io.restassured.http.Header;
import io.restassured.http.Headers;
/**
* Wrapper for SOLR Admin REST API
*
* @author aborroy
*
*/
public class SolrAdminAPI extends ModelRequest<SolrAdminAPI>
{
public SolrAdminAPI(RestWrapper restWrapper)
{
super(restWrapper);
RestAssured.basePath = "solr/admin";
restWrapper.configureSolrEndPoint();
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
}
public RestResponse getAction(String action) throws Exception
{
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("Content-Type", "application/json"));
Headers header = new Headers(headers);
restWrapper.setResponseHeaders(header);
restWrapper.configureRequestSpec().setUrlEncodingEnabled(false);
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET,
"cores?action=" + action + "&wt=json&{parameters}", restWrapper.getParameters());
return restWrapper.process(request);
}
}

View File

@@ -57,6 +57,9 @@ public class RestInstanceModel
/** Transactions remaining */
private Long transactionsRemaining;
/** Sharding Parameters */
private String shardParams;
/**
* @return the baseUrl
@@ -233,4 +236,21 @@ public class RestInstanceModel
{
this.transactionsRemaining = transactionsRemaining;
}
/**
* @return the shardParams
*/
public String getShardParams()
{
return this.shardParams;
}
/**
* @param shardParams the shardParams to set
*/
public void setShardParams(String shardParams)
{
this.shardParams = shardParams;
}
}

View File

@@ -1,5 +1,6 @@
package org.alfresco.rest.search;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion;
@@ -12,6 +13,16 @@ import java.util.List;
* Generated from 'Alfresco Content Services REST API' swagger file
* Base Path {@linkplain /alfresco/api/-default-/public/search/versions/1}
*/
/*
From Jackson 2.8 this annotation is required to make sure that defaults are read from the actual field values,
as opposing to field type defaults. For example, the default for boolean primitive is "false",
but the default for the "min" field in this class is "true".
This configuration does not affect the product and is only related to test framework and how it serializes the request into JSON.
See org.alfresco.utility.model.TestModel#toJson
Note: This change was required for org.alfresco.test.search.functional.searchServices.search.StatsSearchTest
*/
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class RestRequestStatsModel extends TestModel implements IRestModel<RestRequestStatsModel>
{
@Override

View File

@@ -34,16 +34,16 @@ public class SearchScoreModel extends TestModel implements IRestModel<SearchScor
{
@JsonProperty(required = true)
private int score;
private float score;
private List<ResponseHighLightModel> highlight;
public int getScore()
public float getScore()
{
return score;
}
public void setScore(int score)
public void setScore(float score)
{
this.score = score;
}

View File

@@ -1,63 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="REST API" parallel="false" preserve-order="true" thread-count="1">
<listeners>
<listener class-name="org.alfresco.utility.report.HtmlReportListener"></listener>
<listener class-name="org.alfresco.utility.testrail.TestRailExecutorListener"></listener>
<listener class-name="org.alfresco.utility.testng.OSTestMethodSelector"></listener>
</listeners>
<test name="RestAPI">
<method-selectors>
<!-- -DincludeGroups=sanity,comments,people -DexcludeGroups=networks,othergroup -DrunBugs=true-->
<method-selector>
<script language="beanshell"><![CDATA[
includedGroups = System.getProperty("includeGroups");
excludedGroups = System.getProperty("excludeGroups");
runBugs = System.getProperty("runBugs");
if((runBugs != null))
{
bugAnnotated = method.getAnnotation(org.alfresco.utility.report.Bug.class);
if (bugAnnotated != null && runBugs.equals("false") )
{
return false;
}
}
if ((includedGroups == null) || (includedGroups.isEmpty())) {
return false;
} else
{
StringTokenizer includedGroupsList = new StringTokenizer(includedGroups, ",");
if ((excludedGroups != null)) {
StringTokenizer excludedGroupsList = new StringTokenizer(excludedGroups, ",");
while (excludedGroupsList.hasMoreTokens()) {
exG = excludedGroupsList.nextToken();
if (groups.containsKey(exG))
{
return false;
}
}
}
while (includedGroupsList.hasMoreTokens()) {
grp = includedGroupsList.nextToken();
if ((groups.containsKey(grp)))
{
return true;
}
}
}
return false;
]]>
</script>
</method-selector>
</method-selectors>
<packages>
<package name="org.alfresco.rest.*" />
</packages>
</test> <!-- Test -->
</suite> <!-- Suite -->

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="REST API">
<listeners>
<listener class-name="org.alfresco.utility.report.TestCountListener"></listener>
</listeners>
<test name="RestAPITests">
<groups>
<run>
<exclude name="demo" />
<exclude name="unit" />
</run>
</groups>
<packages>
<package name="org.alfresco.rest.*"></package>
</packages>
</test> <!-- Test -->
</suite> <!-- Suite -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 KiB

View File

@@ -1 +0,0 @@
<html><head><title>aegif Mind Share Leader Generating New Paradigms by aegif corporation</title></head><body><p> Test html</p></body></html></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,7 +0,0 @@
The quick brown fox jumps over the lazy dog
Le renard brun rapide saute par-dessus le chien paresseux
Der schnelle braune Fuchs springt über den faulen Hund
براون وكس السريع يقفز فوق الكلب كسالي

View File

@@ -56,7 +56,8 @@ public class RestDemoTests extends RestTest
* Update existing comment using PUT call, check that comment content is updated <br/>
* @throws Exception
*/
@Test(groups = { "demo" })
//Opened DESKTOPAPP-475 for fixing the failing test
// @Test(groups = { "demo" })
public void adminCanPostAndUpdateComments() throws Exception
{
FileModel fileModel = dataContent.usingUser(userModel)