Compare commits

..

581 Commits

Author SHA1 Message Date
Travis CI User
50d9b6b8a1 [maven-release-plugin][skip ci] prepare release 7.199.314 2021-03-26 15:53:35 +00:00
evasques
6027854b4d MNT-22295 - FixedACLJob not processing all nodes due to unordered results (#359) (#363)
* Added method selectNodesWithAspects that accepts a boolean as param to order values
* Added param ordered to IdsEntity class
* Added optional ordered param to the query template that orderes the results by node id in asc order
* Added method getNodesWithAspects that accepts a boolean as param to order values in nodeDAO
* FixedACLUpdater Job calls the new getNodesWithAspects, with the ordered param as true

(cherry picked from commit 3a495f7b3f)
2021-03-26 14:39:16 +00:00
Travis CI User
ebed22937d [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-15 17:01:29 +00:00
Travis CI User
49a9d6c89f [maven-release-plugin][skip ci] prepare release 7.199.313 2021-03-15 17:01:23 +00:00
evasques
e4d2a7522f MNT-21898 Unexpected ACLs when job runs Fix (#344) (#348)
* On move node, verify if parent has pending acl aspect applied and consider the pending shared ACL to update inheritance to avoid ending up with mixed permissions as children of pending acl nodes do not have the correct acls and when moved, keep their wrong acl.
* Add public method setInheritanceForChildren that receives an additional param: forceSharedACL. If an unexpected ACL occurs in a child, it can be overridden by setting it.
* Implement method setInheritanceForChildren that receives an additional parameter: forceSharedACL
* Add method setFixedAcls that receives an additional parameter: forceSharedACL - When a child node has an unexpected ACL, setting this parameter to true will force it to assume the new shared ACL instead of throwing a concurrency exception. When the shared ACL is forces, a warning is thrown in the log informing on what node exactly are we forcing the ACL. This is only possible when the child ACL is type SHARED and when it has an unexpected ACL
* All methods that called setFixedAcls without the new parameter will continue to operate as normal, as having forceSharedACL=false
* Added property forceSharedACL to the FixedACLUpdaterJob. If set to true it will force shared ACL to propagate through children even if there is an unexpected ACL
* When there is a exception detected when doing setInheritanceForChildren on the job, catch and log the error, but do not rollback the entire batch
* On copy/move unit tests I changed the ACL of the target folders on copy and move tests so that the old shared ACL accessed was never the same for origin and target folders as happens when performing these operations between sites
* Added unit test to verify fix for MNT-21898 - testAsyncWithNodeMoveChildToChildPendingFolder
* Added unit test to verify system property for the job: forceSharedACL - testAsyncWithErrorsForceSharedACL

(cherry picked from commit ace87c9c3b)
2021-03-15 16:35:36 +00:00
Travis CI User
9e910c7427 [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-15 14:04:53 +00:00
Travis CI User
87eca02048 [maven-release-plugin][skip ci] prepare release 7.199.312 2021-03-15 14:04:46 +00:00
evasques
09392a9837 MNT-22040 Copying nodes that contain sys:pendingFixAcl aspect (#188) (#347)
* MNT-22040 - Copying nodes that contain sys:pendingFixAcl aspect
* Increased coverage of unit tests
* Added public method removePendingAclAspect
* Changed the job to use the removePendingAclAspect method instead of
repeating the same set of operations twice
* Changed method setFixedAcls to use sharedAclToReplace property of node
if it has the pendingFixAcl aspect applied instead of using the current
shared ACL to be replaced

* Added more tests and validations

* Fixed cuncurrency issues when updating parent and child at the same time, permissions triggered by a move on a node with a pending acl and permissions needeing to be reapplied on nodes that already have the pending acl aspect

* Increase the tree strcuture as sometimes we don't reach the timeout in tests

* code cleanup and formatting

(cherry picked from commit 1b2c5d4c37)
2021-03-15 13:36:55 +00:00
Travis CI User
074baf84ab [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-15 12:29:32 +00:00
Travis CI User
7b3e3a1a97 [maven-release-plugin][skip ci] prepare release 7.199.311 2021-03-15 12:29:28 +00:00
evasques
ba1eb7d7fd MNT-22009 - When setting permissions async, nodes with the aspect app… (#111) (#346)
* MNT-22009 - When setting permissions async, nodes with the aspect applied cannot be deleted
* Added unit test that deletes a node with the sys:pendingFixAcl aspect
before the job runs
* Added verification to the job to verify if node is in archive store
and if so, it shall not process that node and remove sys:pendingFixAcl aspect and properties

(cherry picked from commit 6438a2732a)
2021-03-15 12:01:24 +00:00
Travis CI User
ab7670b7b3 [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-15 11:35:20 +00:00
Travis CI User
253929f415 [maven-release-plugin][skip ci] prepare release 7.199.310 2021-03-15 11:35:14 +00:00
evasques
6261c372c6 [MNT-21847] - Aync permissions fail when new nodes are created (#1188) (#345)
Fix:
*Changed method setFixedAcls on class ADMAccessControlListDAO to continue to propagate through children to apply the correct acl not only when the current child acl matches the shared acl to replace but also when the current child acl matches the new shared acl
Unit Test:
*Refactored the unit test FixedAclUpdaterTest to be able to add in a new test without repeating code: separating the operations that set the permissions from the one that triggers the job into separate methods
*As it was if one test failed, leaving aspects to be processed, the test would run indefinitely (it was programmed to keep running the job while there where nodes with the aspect). Added a verification to stop triggering the job if the number of nodes with the pendingFixAcl did not change between executions.
*Also, if one test failed, it would leave nodes with pendingFixAcl aspect in the database, and the other tests that ran after would also fail, not completing the goal of processing all nodes with the aspect. If a test fails, the folder structure it ran is now deleted so no nodes with the aspect from that structure are processed by the other tests.
*Added a test to find the first folder in a tree where permissions where set async that has the pendingFixAcl aspect and that creates a new node in it to verify the issue

(cherry picked from commit 443e5e226430a2760492fb82214ad520e7e1cb75)
2021-03-15 11:08:18 +00:00
Travis CI User
eba5043ffe [maven-release-plugin][skip ci] prepare for next development iteration 2021-03-05 11:13:11 +00:00
Travis CI User
0c02b7e9f2 [maven-release-plugin][skip ci] prepare release 7.199.309 2021-03-05 11:13:06 +00:00
alandavis
85710587f6 ACS-1071 revision not set in version.properties (#335)
(cherry picked from commit 1e5188a4a7)
2021-03-05 10:47:05 +00:00
Travis CI User
e14003a436 [maven-release-plugin][skip ci] prepare for next development iteration 2021-02-19 14:45:55 +00:00
Travis CI User
23ba8f2d41 [maven-release-plugin][skip ci] prepare release 7.199.308 2021-02-19 14:45:49 +00:00
Alexandru-Eusebiu Epure
905e861396 MNT-21671 : Download as zip REST api does not include custom folders (#1090) (#1092) (#302)
Add dictionaryService to CreateDwonloadArchiveAction
   ZipDownloadExporter constructor now required dictionaryService
   ZipDownloadExporter#startNode will include into archive all subclasses of node type cm:folder.
   Add a custom model and create a custom node in DownloadServiceIntegrationTest, this use case will be tested in DownloadServiceIntegrationTest#createDownload()

(cherry picked from commit 3a31ac3634)
(cherry picked from commit 28bebe0e6d)
2021-02-19 15:47:14 +02:00
Travis CI User
4ec2a93535 [maven-release-plugin][skip ci] prepare for next development iteration 2021-02-10 08:22:48 +00:00
Travis CI User
9d1b966ad5 [maven-release-plugin][skip ci] prepare release 7.199.307 2021-02-10 08:22:41 +00:00
Epure Alexandru-Eusebiu
a9210f6086 Empty commit to trigger build 2021-02-10 09:00:11 +02:00
evasques
fafc3e7e1d MNT-22135 Filter policy to only run on admin auth - Unit test (#275) (#282)
Created unit test testIfGroupIsAdminAuthority to check if public method isAdminAuthority correctly validates groups:
* Verify it can identify GROUP_ALFRESCO_ADMINISTRATORS as an admin group
* Verify created groups (non administrators) and users are not considered administrators
* Add a subgroup to the parent group and verify if its still identified as non admin
* Add the group to the administrators group and verify if both group and subgroup are identified correctly as admins
* Add the user to the subgroup and verify if he's an admin
* Create a group with the same name as an admin user, group should not be identified as admin

(cherry picked from commit 592dde531f)
2021-02-09 16:22:21 +00:00
alandavis
376f146e7c Remove Whitesource [skip ci]
(cherry picked from commit 471492c8e0)
2021-01-25 08:54:44 +00:00
Travis CI User
5559ad446e [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-20 09:41:24 +00:00
Travis CI User
ac5396031d [maven-release-plugin][skip ci] prepare release 7.199.306 2020-11-20 09:41:17 +00:00
Alexandru-Eusebiu Epure
0ed32cf65d Merge pull request #170 from Alfresco/fix/MNT-22055_metadata_extraction_fails
MNT-22055 : Metadata extraction fails for certain documents
2020-11-20 10:07:51 +02:00
Epure Alexandru-Eusebiu
578d779183 MNT-22055 : Metadata extraction fails for certain documents when using legacy transformations
(cherry picked from commit 3351862)
2020-11-20 09:41:50 +02:00
Travis CI User
a5821023e2 [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-19 17:13:06 +00:00
Travis CI User
809e943d15 [maven-release-plugin][skip ci] prepare release 7.199.305 2020-11-19 17:12:59 +00:00
tiagosalvado10
70a7334e0d Merge pull request #168 from Alfresco/fix/MNT-22061_FixPrimaryPath_622
MNT-22061: REST api does not update the primary path on new version upload
2020-11-19 16:14:51 +00:00
Epure Alexandru-Eusebiu
98df0752d8 MNT-22055 : Metadata extraction fails for certain documents when using legacy transformations
Bump tika to 1.24.1
   Remove metadata-extractor dependency
   Bump poi to 4.1.2
2020-11-19 17:45:36 +02:00
tiagos
a076f28a4c [MNT-22015] REST api does not update the primary path on new version upload
(cherry picked from commit 73b393a541)
2020-11-18 10:51:56 +00:00
Travis CI User
a2021092df [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-16 20:31:56 +00:00
Travis CI User
93260c0bc8 [maven-release-plugin][skip ci] prepare release 7.199.304 2020-11-16 20:31:48 +00:00
Alexandru-Eusebiu Epure
c205c94caa Merge pull request #156 from Alfresco/fix/MNT-22036_API_always_applies_versioning_622
MNT-22036 : REST API always applies versioning
2020-11-16 21:56:33 +02:00
Epure Alexandru-Eusebiu
5135482fd2 Remove bad assertion of property count. 2020-11-16 21:34:32 +02:00
Alexandru-Eusebiu Epure
ed9aa57849 Merge pull request #149 from Alfresco/fix/MNT-22036_API_always_applies_versioning
MNT-22036 : REST API always applies versioning
  Add property boolean versioningEnabled
  Add versioningEnabled to node creation using multipart/form-data
  Add versioningEnabled to node creation using JSON
  Add unit tests for node creation using JSON.
(cherry picked from commit 09c2c95081)
2020-11-16 18:11:37 +02:00
Travis CI User
7b578827d1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-09 11:08:00 +00:00
Travis CI User
11a5731ca7 [maven-release-plugin][skip ci] prepare release 7.199.303 2020-11-09 11:07:53 +00:00
evasques
ce48f64a14 MNT-21800 - CMIS Web Service Check Out returns error (#137)
* Fix/MNT-21800 CMIS Web Service Check Out returns error (#1232)

* MNT-21800 : CMIS Web Service Check Out returns error
   Integrate path into codebase.

(cherry picked from commit 51a7793668ba1c969c5de37603190244e3839cd0)

Co-authored-by: Alexandru-Eusebiu Epure <alexeusebiu@gmail.com>
2020-11-09 10:41:06 +00:00
Travis CI User
4a9a7ba4de [maven-release-plugin][skip ci] prepare for next development iteration 2020-11-06 17:25:29 +00:00
Travis CI User
0dc7d62d3f [maven-release-plugin][skip ci] prepare release 7.199.302 2020-11-06 17:25:22 +00:00
evasques
7f54671ca2 MNT-21967 - ClassCastException when using CMIS query with SCORE() function (#136)
* MNT-21967 - ClassCastException when using CMIS query with SCORE() function (#128)

* Added missing validation before if columnName is the expected column
before normalizing value to float, in case the column is Score

(cherry picked from commit acac23f29a)
2020-11-06 16:22:05 +00:00
Alan Davis
84e2ff5f1f Should be using TRAVIS_ACCESS_TOKEN rather than TRAVIS_ACCESS_TOKEN_TEMP [skip ci] 2020-10-14 08:31:28 +01:00
Travis CI User
75fbb557fe [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-13 17:02:09 +00:00
Travis CI User
d40fb4f988 [maven-release-plugin][skip ci] prepare release 7.199.301 2020-10-13 17:02:01 +00:00
Alan Davis
f50a76d20d Should be using TRAVIS_ACCESS_TOKEN rather than TRAVIS_ACCESS_TOKEN_TEMP to trigger downstream project builds 2020-10-13 17:33:20 +01:00
Travis CI User
c170ed725a [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-11 08:59:51 +00:00
Travis CI User
62ccbe9da2 [maven-release-plugin][skip ci] prepare release 7.199.300 2020-10-11 08:59:45 +00:00
Alan Davis
310689994d Switch to alfresco-community-repo project 2020-10-11 09:28:54 +01:00
Travis CI User
62a506da47 [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-09 09:27:29 +00:00
Travis CI User
399a29eef2 [maven-release-plugin][skip ci] prepare release 7.199.300-TEST5 2020-10-09 09:27:21 +00:00
Alan Davis
4167f6810e Add back in missing keystore scripts 2020-10-09 08:05:37 +01:00
Travis CI User
01fe638d60 [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-08 12:09:16 +00:00
Travis CI User
3ad2db96ab [maven-release-plugin][skip ci] prepare release 7.199.300-TEST4 2020-10-08 12:09:09 +00:00
Alan Davis
1c9366dcaf Only copy win64 and linux pdf-renderer to dist zip
Sort out what get included in dist jar and zip

(cherry picked from commit 779f8af717)

Remove READMEs that have been moved to the top level.

(cherry picked from commit 9826fd6bb0)
2020-10-08 12:27:35 +01:00
Travis CI User
9c1daf0795 [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-04 19:16:34 +00:00
Travis CI User
fb7a6a8a1f [maven-release-plugin][skip ci] prepare release 7.199.300-TEST3 2020-10-04 19:16:28 +00:00
Alan Davis
4307444e2d Merge commits for 6.2.2.3 changes to release/6.2.2
* [MNT-21766]: Significant degradation of performance as file and site count increase (#1217)
- Added the following indexes on alf_transaction:
idx_alf_txn_ctms_sc, cols (commit_time_ms)
idx_alf_txn_id_ctms, cols (id, commit_time_ms)
- Added the following indexes on alf_node:
idx_alf_node_ver, cols (version)
idx_alf_node_txn, cols (transaction_id)
- Created patch patch.db-V6.3-add-indexes-node-transaction
- Updated version.schema to 14002
- Added system property system.new-node-transaction-indexes.ignored, set
as true by default to not apply the patch automatically
- Created the MySQL update dbscripts to add the new indexes - and also
drop and recreate the pre-existing index idx_alf_txn_ctms on alf_transaction that was
inconsistent with the other DBMS: was indexing only commit_time_ms when
on all other DBMS index idx_alf_txn_ctms was on (commit_time_ms, id)
- Created the Postgres update dbscripts to add the new indexes

(cherry picked from commit d70746f63a6e6a2154d2e37c577955a17c42256e)

* Change schema upgrade from to 13005..13006 on patch apply

* Fixed merge from cherry pick, missing colon

(cherry picked from commit 73f94fc5ca0d2ea322d12a59cf3ae980ef94bf1c)
2020-10-04 19:50:40 +01:00
Travis CI User
89ae5bc193 [maven-release-plugin][skip ci] prepare for next development iteration 2020-10-02 10:38:02 +00:00
Travis CI User
fe537e97d5 [maven-release-plugin][skip ci] prepare release 7.199.300-TEST2 2020-10-02 10:37:55 +00:00
Alan Davis
c7b29613d4 REPO-5358 Deployment modules should extend each other
The alfresco-community-repo's deployment module now provides the basis for alfresco-enterprise-repo and acs-packaging
deployment modules. This makes it like the other branches and avoids duplication of licenses between projects.

(partial picked from commit c4d1f5824d)
2020-10-02 11:06:47 +01:00
Cezar.Leahu
4d1f6ae91e REPO-5111 Update build scripts [skip ci] 2020-09-30 22:30:52 +03:00
Travis CI User
1f2d85e252 [maven-release-plugin][skip ci] prepare for next development iteration 2020-09-27 10:25:31 +00:00
Travis CI User
efa330adf5 [maven-release-plugin][skip ci] prepare release 7.199.300-TEST1 2020-09-27 10:25:24 +00:00
Alan Davis
abde3fa4cb REPO-5271 Backport new structure to relaese/6.2.2 (#21)
- Simplify dependencies and standardise order
- README updated
- Green builds
- Changes to make Jars in enterprise war match
- Changes to make files in enterprise image match
- Added travis_wait 40 to the initial build as it can take 20 minutes to download artifacts
- Removed NodesTest.siteConsumerWillGet403OnFileWithDisabledInherittedPermissions introduced in 7.0.0 and fails in earlier versions.
- GetSiteMember[s]Tests changed in 7.0.0. Setting test back to previous values.
2020-09-27 10:53:02 +01:00
Cezar.Leahu
1d6a775f22 ACS-550 Add .gitignore
(cherry picked from commit 36ccfe2bea)
2020-09-03 11:24:33 +03:00
Iulian Aftene
6596825462 Merge pull request #12 from Alfresco/feature/REPO-5318_622
REPO-5318-Create l10n.properties release 6.2.2
2020-08-21 11:43:30 +03:00
aftene
30a9c0c065 REPO-5318-Create l10n.properties
- delete l10n.properties files from data-model, remote-api and repository
 - add new global l10n.properties file
2020-08-19 19:40:13 +03:00
Chris Shields
1399b363cc Merge remote-tracking branch 'acs-community-packaging/develop' into release/6.2.2 2020-07-21 10:45:00 +01:00
Chris Shields
6416432f42 Merge remote-tracking branch 'alfresco-remote-api/support/HF/7.147.N' into release/6.2.2 2020-07-21 10:44:59 +01:00
Chris Shields
1c7c87caee Merge remote-tracking branch 'alfresco-repository/support/HF/7.199.N' into release/6.2.2 2020-07-21 10:44:57 +01:00
Chris Shields
42de0e1607 Merge remote-tracking branch 'alfresco-data-model/support/HF/8.50.18.N' into release/6.2.2 2020-07-21 10:44:57 +01:00
Chris Shields
9da76f53e0 Merge remote-tracking branch 'alfresco-core/support/HF/7.34.N' into release/6.2.2 2020-07-21 10:44:57 +01:00
Chris Shields
c70fdd47a7 Moved remote-api support/HF/7.147.N into its own directory 2020-07-21 10:44:14 +01:00
Chris Shields
d96e726db4 Moved repository support/HF/7.199.N into its own directory 2020-07-21 10:43:42 +01:00
Chris Shields
fc66677977 Moved data-model support/HF/8.50.18.N into its own directory 2020-07-21 10:43:27 +01:00
Chris Shields
2a9f61076c Moved core support/HF/7.34.N into its own directory 2020-07-21 10:43:19 +01:00
Travis CI User
12c66a09d1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 18:57:20 +00:00
Travis CI User
5882e3d002 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.147.0 2020-06-26 18:57:13 +00:00
Ancuta Morarasu
c15bace290 ACS-248: [6.2.2] HF branch - version 7.147.0-SNAPSHOT 2020-06-26 21:39:06 +03:00
Travis CI User
40eb3f1649 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 18:30:40 +00:00
Travis CI User
edd5c3ac7b [maven-release-plugin][skip ci] prepare release alfresco-repository-7.199.0 2020-06-26 18:30:32 +00:00
Ancuta Morarasu
71eb5f3011 ACS-248: [6.2.2] HF branch - version 7.199.0-SNAPSHOT 2020-06-26 21:07:51 +03:00
Travis CI User
1bf2cf015c [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 17:51:56 +00:00
Travis CI User
cd97fb3c3a [maven-release-plugin][skip ci] prepare release 8.50.18.0 2020-06-26 17:51:50 +00:00
Ancuta Morarasu
fc729dd26f ACS-248: [6.2.2] HF branch - version 8.50.18.0-SNAPSHOT 2020-06-26 20:43:59 +03:00
Travis CI User
8c21deee57 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 17:36:12 +00:00
Travis CI User
0cf79474a1 [maven-release-plugin][skip ci] prepare release 7.34.0 2020-06-26 17:36:06 +00:00
Ancuta Morarasu
5a840b7ecf ACS-248: [6.2.2] HF branch - version 7.34.0-SNAPSHOT 2020-06-26 20:32:04 +03:00
Travis CI User
f3f3ed7e61 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 16:18:34 +00:00
Travis CI User
15ca57bcd2 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.199 2020-06-26 16:18:27 +00:00
Nebil Kisa
b24b144c3e ATS-791: Update to T-Engines 2.3.1 (#1072) (#1073)
(cherry picked from commit 8bf1a0752a)
2020-06-26 16:58:16 +01:00
Travis CI User
f56726a75a [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 15:12:17 +00:00
Travis CI User
3f78c9a729 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.147 2020-06-26 15:12:09 +00:00
Cristian Turlica
2ffcfaee4e Updated dependencies 2020-06-26 17:55:38 +03:00
Travis CI User
73784ab389 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 14:49:11 +00:00
Travis CI User
ff612b2233 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.198 2020-06-26 14:49:04 +00:00
Cristian Turlica
60093108db Update dependencies 2020-06-26 17:21:23 +03:00
Travis CI User
3e2b0a0f22 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 14:15:49 +00:00
Travis CI User
fe9f6b73cd [maven-release-plugin][skip ci] prepare release 8.50.18 2020-06-26 14:15:42 +00:00
Cristian Turlica
3d1e326d38 Updated core version 2020-06-26 16:55:47 +03:00
Travis CI User
2b6185021e [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-26 11:05:46 +00:00
Travis CI User
8b2b52bd47 [maven-release-plugin][skip ci] prepare release 7.34 2020-06-26 11:05:39 +00:00
Ancuta Morarasu
41eeacac47 MNT-21641: Update surf version to 7.16 (#137) 2020-06-26 14:00:23 +03:00
Travis CI User
81e9ae40ca [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-25 11:38:58 +00:00
Travis CI User
d9283af46b [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.146 2020-06-25 11:38:50 +00:00
Alex Mukha
d8d00b1430 SEARCH-2321 Update dependencies
alfresco-repository 7.197
surf webscripts 7.16
2020-06-25 11:59:06 +01:00
Travis CI User
ec22b6b39a [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-25 09:46:50 +00:00
Travis CI User
69fc15dd0c [maven-release-plugin][skip ci] prepare release alfresco-repository-7.197 2020-06-25 09:46:43 +00:00
Jamal Kaabi-Mofrad
19a31ec32b ACS-300: Bump keycloak version from 9.0.3 to 11.0.0-alfresco-001 (#1062)
(cherry picked from commit 9d67d29abb)

# Conflicts:
#	pom.xml
2020-06-25 10:17:37 +01:00
Travis CI User
4a83e7f83f [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-25 08:56:52 +00:00
Travis CI User
023583e67a [maven-release-plugin][skip ci] prepare release alfresco-repository-7.196 2020-06-25 08:56:44 +00:00
Alex Mukha
daf7ec44e4 SEARCH-2321 Change SAX parser config in QueryRegister 2020-06-25 09:37:20 +01:00
Alex Mukha
ec131b33a5 Revert "SEARCH-2321 Change SAX parser config in QueryRegister (#1066)"
This reverts commit d1ce85398c.
2020-06-25 09:34:17 +01:00
Alex Mukha
d1ce85398c SEARCH-2321 Change SAX parser config in QueryRegister (#1066) 2020-06-25 09:27:38 +01:00
Travis CI User
c79e3f8550 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-24 17:03:38 +00:00
Travis CI User
7a8996463a [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.145 2020-06-24 17:03:30 +00:00
Ancuta Morarasu
8242b34604 ACS-370: Newer metadata-extractor - update components
- alfresco-data-model 8.50.17, alfresco-repository 7.195
2020-06-24 19:40:06 +03:00
Travis CI User
f34dd7ad16 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-24 16:28:36 +00:00
Travis CI User
4f517f9c41 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.195 2020-06-24 16:28:29 +00:00
Ancuta Morarasu
187038d4ca ACS-370: Newer metadata-extractor - update components
- alfresco-data-model 8.50.17
2020-06-24 19:05:42 +03:00
Travis CI User
f189f71fb8 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-24 12:52:20 +00:00
Travis CI User
82425433c4 [maven-release-plugin][skip ci] prepare release 8.50.17 2020-06-24 12:52:13 +00:00
cturlica
0703d10899 ACS-370: Newer metadata-extractor 2020-06-24 15:46:55 +03:00
Travis CI User
5ffacd315e [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-20 07:20:44 +00:00
Travis CI User
70ad374f8a [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.144 2020-06-20 07:20:37 +00:00
Travis CI User
88bec51910 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-20 07:17:51 +00:00
Travis CI User
fdce5a76ca [maven-release-plugin][skip ci] prepare release alfresco-repository-7.194 2020-06-20 07:17:44 +00:00
Cristian Turlica
93a4b9c0dd Updated alfresco-repository version to 7.193 2020-06-20 10:00:18 +03:00
Alan Davis
d123af8664 REPO-5215 Deprecated metadata extractors in 6.2.x (#1059)
These OOTB extractors / embedders are likely to be remove in a future release.
2020-06-19 16:52:37 +01:00
Travis CI User
2ef82ccc56 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-16 23:43:50 +00:00
Travis CI User
7a6beb433a [maven-release-plugin][skip ci] prepare release alfresco-repository-7.193 2020-06-16 23:43:42 +00:00
Alan Davis
257fa68432 Revert "REPO-4334 Move metadata extraction into T-Engines (#1015)"
This reverts commit 6f4ebcca3e.
2020-06-17 00:22:01 +01:00
Travis CI User
7c07b6c974 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-16 21:42:34 +00:00
Travis CI User
87ca3ac91a [maven-release-plugin][skip ci] prepare release alfresco-repository-7.192 2020-06-16 21:42:27 +00:00
Alan Davis
6f4ebcca3e REPO-4334 Move metadata extraction into T-Engines (#1015)
* ContentMetadataExtracter (the Action service Executer):
        * Code refactored so that post processing of extracted properties can be called after a
          transform has taken place in an async call. Previously done in the same Thread.
        * The source size is passed to the metadataExtracterRegistry as this is needed to select
          the transform.
        * Passes the source nodeRef to the metadataExtractor, so that it is possible to update
          the correct node after the async transform call.
    * AbstractMappingMetadataExtracter (the base class for all extractors):
        * Post extract processing extracted into separate methods.
        * NodeRef made available to sub classes.
    * AsynchronousExtractor (new metadata extractor and embedder) that will use
      a T-Engine.
    * Set targetExtension in transform for metadata extract and embed requests to T-Engines
      in both LocalTransforms (community) and RenditionEventProducer (enterprise).
    * RenditionService2Impl (used to request and respond to async transform requests).
        * Add consumeExtractedMetadata and consumeEmbeddedMetadata methods, which
          handle the response, normally be calling AsynchronousExtractor.
    * Discovered that the JodConverterMetadataExtracter was superseded by the
    * TikaPoweredMetadataExtracter for all the types that it support in 6.0.1 and could have been
      deprecated at that time as part of REPO-2910. It will now be deprecated so that it can be
      removed in 7.0.0.

Additional tests are being added to AsynchronousExtractorTest for overwritePolicy, enableStringTagging and carryAspectProperties in a separate PR, as these will cover tests at a likely to be removed when delete local extractors.

(cherry picked from commit 63ace3abd8)

Also pick up T-Engine 2.3.0
2020-06-16 22:16:56 +01:00
Travis CI User
eb1b7c320f [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-12 11:05:43 +00:00
Travis CI User
cf476f4629 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.191 2020-06-12 11:05:35 +00:00
Nebil Kisa
109e87f7af ACS-753: Update alfresco-transform-core from 2.2.1 to 2.2.2 (#1044)
Update of alfresco-transform-core from 2.2.1 to 2.2.2
2020-06-12 11:46:02 +01:00
Travis CI User
bc96fcb4e2 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-11 20:14:12 +00:00
Travis CI User
098ef5f8e9 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.143 2020-06-11 20:14:05 +00:00
Jan Vonka
12d1f2f7fd Revert "ACS-254: Update internal REST fwk to support sub-relations"
This reverts commit 3e1d862c2d.
2020-06-11 20:56:01 +01:00
Jan Vonka
bc6dd55629 Revert "ACS-197 / ACS-207 : Add REST API for Version Renditions (#654)"
This reverts commit 670b4e6245.
2020-06-11 20:55:43 +01:00
Jan Vonka
d3d4f3bf35 Revert "ACS-295: Fix bug with new REST API for Version Renditions (#665)"
This reverts commit 70423195e9.
2020-06-11 20:55:34 +01:00
Travis CI User
e627010d1b [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-11 09:49:53 +00:00
Travis CI User
4b82c70015 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.190 2020-06-11 09:49:46 +00:00
Abdul Mohammed
5f1d7432ae Cherry-pick changes for MNT-21487 2020-06-11 10:29:23 +01:00
Travis CI User
251fb079a7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-04 14:47:37 +00:00
Travis CI User
da57e725c0 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.142 2020-06-04 14:47:30 +00:00
montgolfiere
70423195e9 ACS-295: Fix bug with new REST API for Version Renditions (#665)
* ACS-295: Fix bug with new REST API for Version Renditions

- also added test that fails before fix / succeeds after fix
- note: the issue existed in previous versions of Repo (but was never exposed) ...
- ...so needs to be handled for upgrades to 6.2.2 (+)

- see also ACS-197 / ACS-207

(cherry picked from commit fdfe20e442)
2020-06-04 15:29:35 +01:00
Travis CI User
90574ee73b [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-03 08:04:39 +00:00
Travis CI User
2e412f2e59 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.141 2020-06-03 08:04:32 +00:00
Cristian Turlica
5b3e93c077 ACS-284: AuthenticationUtil.runAs method should leave the security context as it found it 2020-06-03 10:48:03 +03:00
Travis CI User
2c9c91d7be [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-03 07:38:30 +00:00
Travis CI User
b7479205d5 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.189 2020-06-03 07:38:23 +00:00
Cristian Turlica
5238f1297c ACS-284: AuthenticationUtil.runAs method should leave the security context as it found it 2020-06-03 10:18:26 +03:00
Travis CI User
0632e1268e [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-03 06:12:33 +00:00
Travis CI User
8e36d4f4c1 [maven-release-plugin][skip ci] prepare release 8.50.16 2020-06-03 06:12:26 +00:00
Cristian Turlica
99b92f67ee ACS-284: AuthenticationUtil.runAs method should leave the security context as it found it 2020-06-03 09:05:02 +03:00
Travis CI User
8f97585cb7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-01 11:45:36 +00:00
Travis CI User
323f26850d [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.140 2020-06-01 11:45:28 +00:00
evasques
e667470f66 MNT-17907 Bump repo version (#662) 2020-06-01 12:27:45 +01:00
Travis CI User
90210bd532 [maven-release-plugin][skip ci] prepare for next development iteration 2020-06-01 09:04:20 +00:00
Travis CI User
afbc56e6e2 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.188 2020-06-01 09:04:11 +00:00
evasques
0a39b667c8 MNT-17907 - cm:addressees label renamed to All Recipients (#1026)
* MNT-17907 - Change label of cm:addressee to All Recipients (#985)

* Fix for MNT-17907 in ALL 15 LANGUAGES (#1009)

Co-authored-by: Gloria Broadbent <gloria.broadbent@alfresco.com>
2020-06-01 09:41:40 +01:00
Travis CI User
2c1d7ac627 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-27 11:17:29 +00:00
Travis CI User
c081c3a420 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.139 2020-05-27 11:17:22 +00:00
montgolfiere
670b4e6245 ACS-197 / ACS-207 : Add REST API for Version Renditions (#654)
* ACS-197 / ACS-207 : Add REST API for Version Renditions

- add four new endpoints for version-specific renditions and automated tests (+ve & -ve)

-- GET /nodes/{nodeId}/versions/{versionId}/renditions - List renditions for a version
-- POST /nodes/{nodeId}/versions/{versionId}/renditions - Create rendition for a version
-- GET /nodes/{nodeId}/versions/{versionId}/renditions/{renditionId} - Get rendition information for a version
-- GET /nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}/content - Get rendition content for a version

- note: the RenditionsImpl implementation is also tested via RenditionsTest

(cherry picked from commit 5cd8899a52)
2020-05-27 11:43:27 +01:00
Travis CI User
700491d80a [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-26 11:21:54 +00:00
Travis CI User
d161574edc [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.138 2020-05-26 11:21:47 +00:00
Jan Vonka
3e1d862c2d ACS-254: Update internal REST fwk to support sub-relations
- for example: /entities-a/{a-id}/relations-a-b/{b-id}/relations-b-c/...
- see also ACS-197, ACS-202, REPO-297

- cherry-pick from master
2020-05-26 12:05:39 +01:00
Travis CI User
c19f2d71f8 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-22 12:04:54 +00:00
Travis CI User
c1d2b84582 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.137 2020-05-22 12:04:47 +00:00
evasques
c7d7bf9347 MNT-18308 - Bump repo version (#651) 2020-05-22 12:48:53 +01:00
Travis CI User
8b03573135 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-22 09:45:36 +00:00
Travis CI User
5759d76953 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.187 2020-05-22 09:45:29 +00:00
evasques
70bad61905 MNT-18308 Force Async ACL Creation (#1008) 2020-05-22 10:22:25 +01:00
Travis CI User
fe4e738521 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-21 17:44:36 +00:00
Travis CI User
080787a3f2 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.136 2020-05-21 17:44:29 +00:00
Mykhail DIachenko
2ed64c64db ACS-22: pick up upstream projects 2020-05-21 20:26:33 +03:00
Travis CI User
ff769bc6c7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-20 23:08:55 +00:00
Travis CI User
2d6397c367 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.135 2020-05-20 23:08:48 +00:00
Jared Ottley
d56e81154c [MNT-21363][MNT-21511] Create Site fails with Kerb SSO in 6.2 (#647)
- Add catch for exception thrown when there is no web script found in the Public API Web Script Container
2020-05-20 16:51:02 -06:00
Travis CI User
8329ef8cc8 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-15 11:42:15 +00:00
Travis CI User
1cc88ff688 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.186 2020-05-15 11:42:07 +00:00
Mykhail-Diachenko
a1a00c8bb1 ACS-22: code enhance (#994)
* * ACS-22: changed naming in ticket related cache components

(cherry picked from commit cc9e78f152)
2020-05-15 14:20:29 +03:00
Travis CI User
933d0505d7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-15 10:46:18 +00:00
Travis CI User
86d8739af2 [maven-release-plugin][skip ci] prepare release 8.50.15 2020-05-15 10:46:11 +00:00
Mykhail-Diachenko
38c07132e5 ACS-22: Enhance code of InMemoryTicketComponentImpl (#251)
* ACS-22: Enhance code of InMemoryTicketComponentImpl (#248)

(cherry picked from commit 86af3e0a1f)
2020-05-15 13:41:09 +03:00
Travis CI User
b3a3b76112 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 19:27:45 +00:00
Travis CI User
a90529b8fc [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.134 2020-05-06 19:27:38 +00:00
Cristian Turlica
332fed005f ACS-125: Update spring version to 5.1.15 (#637) 2020-05-06 22:11:28 +03:00
Travis CI User
e0050d99f1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 18:46:23 +00:00
Travis CI User
46ac5eaaa1 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.185 2020-05-06 18:46:15 +00:00
Cristian Turlica
489bf035de ACS-125: Update spring version to 5.1.15 (#981) 2020-05-06 21:24:27 +03:00
Travis CI User
574fa342f1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 18:19:21 +00:00
Travis CI User
2ab8cf8b1e [maven-release-plugin][skip ci] prepare release 8.50.14 2020-05-06 18:19:14 +00:00
Cristian Turlica
9ea4a0a643 ACS-125: Update spring version to 5.1.15 (#247) 2020-05-06 21:13:14 +03:00
Travis CI User
b90d617c15 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 17:59:42 +00:00
Travis CI User
2d5c67fa27 [maven-release-plugin][skip ci] prepare release 7.33 2020-05-06 17:59:35 +00:00
Cristian Turlica
bffdcf2d99 ACS-125: Update spring version to 5.1.15 (#131) 2020-05-06 20:54:27 +03:00
Travis CI User
ef5eb81c8a [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 16:55:16 +00:00
Travis CI User
d8c415e74a [maven-release-plugin][skip ci] prepare release alfresco-repository-7.184 2020-05-06 16:55:09 +00:00
Alan Davis
fea086de8d Increment version.schema to 13005 for ACS 6.2.2 (4 more than 6.2.1) 2020-05-06 17:35:05 +01:00
Travis CI User
e403345bea [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 14:27:24 +00:00
Travis CI User
c60c165b7c [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.133 2020-05-06 14:27:17 +00:00
Antonio Felix
5230c2ab2b Revert "ACS-120 - Added commons-lang to be used in the share-services, to avoid the -force option of the alfresco-mmt.jar (#640)"
This reverts commit debd0dad26.
2020-05-06 15:11:54 +01:00
Travis CI User
7ae3204c2a [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-06 11:45:46 +00:00
Travis CI User
4a3f1631c5 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.132 2020-05-06 11:45:38 +00:00
antoniojfelix
debd0dad26 ACS-120 - Added commons-lang to be used in the share-services, to avoid the -force option of the alfresco-mmt.jar (#640) 2020-05-06 12:29:36 +01:00
Travis CI User
501b9691a4 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-05 22:16:00 +00:00
Travis CI User
bfffa040c3 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.131 2020-05-05 22:15:53 +00:00
Alan Davis
94aab58b77 Pick up upstream projects 2020-05-05 22:58:58 +01:00
Travis CI User
b4e3bca479 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-05 12:36:54 +00:00
Travis CI User
1f8dc69ce7 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.183 2020-05-05 12:36:47 +00:00
David Edwards
1015001c4f ATS-743 Bump T-engines to 2.2.1 (#983) 2020-05-05 13:16:17 +01:00
Travis CI User
66d7a4ff6f [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-04 14:20:39 +00:00
Travis CI User
6708a538a8 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.182 2020-05-04 14:20:32 +00:00
Chris Shields
aeb86f7c3b ACS-109 : Fix upload new image for logo (#982) 2020-05-04 14:57:57 +01:00
Travis CI User
e744098ed9 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-04 11:34:34 +00:00
Travis CI User
5cf1bf8b65 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.130 2020-05-04 11:34:27 +00:00
tzclucian
fa8fd5b348 REPO-4859 : HTTP_UNAUTHORIZED instead of HTTP_FORBIDDEN for some CMIS apis
- bumped alfresco-enterprise-repository to 7.181
2020-05-04 14:18:27 +03:00
Travis CI User
34caf837dd [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-04 10:34:54 +00:00
Travis CI User
a290c20f88 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.181 2020-05-04 10:34:47 +00:00
Lucian Tuca
59cb203762 REPO-4859 : HTTP_UNAUTHORIZED instead of HTTP_FORBIDDEN for some CMIS apis
- moved the fix to a more suitable place
    - added explanatory comment

(cherry picked from commit a219162 master to 6.2.N)
2020-05-04 13:09:34 +03:00
Travis CI User
f530f4f27a [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-03 11:44:07 +00:00
Travis CI User
bc53b1c89e [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.129 2020-05-03 11:44:00 +00:00
Alan Davis
57ae90489c Pick up upstream projects 2020-05-03 12:28:29 +01:00
Travis CI User
273f68ef0a [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 18:36:59 +00:00
Travis CI User
2ff344aa6e [maven-release-plugin][skip ci] prepare release alfresco-repository-7.180 2020-05-01 18:36:52 +00:00
Travis CI User
88314a10fd [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 18:28:39 +00:00
Travis CI User
08f1fee170 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.128 2020-05-01 18:28:31 +00:00
Alan Davis
8aca8b45ca ACS-127 Repo Admin - List Mimetypes (Transforms) fails with 500 error (#979)
A V0 API is supplying transformer names. It really should not as the caller should not know the name, but just that the repo can do the transform.

(cherry picked from commit 9aeccfb693)
2020-05-01 19:15:48 +01:00
Abdul Mohammed
3608c9f2bf Bump alfresco-data-model to 8.50.13 2020-05-01 19:11:19 +01:00
Abdul Mohammed
7f9c671524 cherry-pick 19ca722 to support/SP/7.N and bump alfresco-repository to 7.179 2020-05-01 19:08:59 +01:00
Travis CI User
3a5d8c96f6 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 17:50:22 +00:00
Travis CI User
cab66e441d [maven-release-plugin][skip ci] prepare release alfresco-repository-7.179 2020-05-01 17:50:15 +00:00
Abdul Mohammed
a2ec0f7a1f Fix AuthenticationTest for new exception IllegalArgumentException 2020-05-01 18:14:14 +01:00
Abdul Mohammed
82d99d68cd Use IllegalArgumentException for invalid characters found in authority and person name (#980) 2020-05-01 18:04:45 +01:00
Travis CI User
778e5146fb [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 16:33:58 +00:00
Travis CI User
92bfc91852 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.178 2020-05-01 16:33:50 +00:00
Abdul Mohammed
d5470a3e15 Rename authority and person exceptions for MNT-20764 (#978) 2020-05-01 17:08:11 +01:00
Travis CI User
f1f9d6d4a7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 14:20:19 +00:00
Travis CI User
171f772071 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.177 2020-05-01 14:20:01 +00:00
Abdul Mohammed
41b3843935 MNT-20764: Searches fail for users who are members of groups where the authorityName contains double quotes (#933)
* Guard authorityName and person names against invalid characters
2020-05-01 14:55:25 +01:00
Travis CI User
df5dce7fdb [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 13:42:09 +00:00
Travis CI User
2667243e27 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.176 2020-05-01 13:42:02 +00:00
Alan Davis
0156f669ee REPO-5110 readConfigAndReplace NPE on shutdown (#977)
Suppresses reading of new config if the system is shutting down.

(cherry picked from commit d3ce87f643)
2020-05-01 14:21:34 +01:00
Travis CI User
7a2c97950b [maven-release-plugin][skip ci] prepare for next development iteration 2020-05-01 13:15:25 +00:00
Travis CI User
2a9682cf50 [maven-release-plugin][skip ci] prepare release 8.50.13 2020-05-01 13:15:18 +00:00
Alan Davis
df1c08d230 REPO-5110 readConfigAndReplace NPE on shutdown (#246)
Suppresses reading of new config if the system is shutting down.

(cherry picked from commit e0317d681b)
2020-05-01 14:10:27 +01:00
Travis CI User
f2cf9fde80 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 17:16:28 +00:00
Travis CI User
e158c0af23 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.127 2020-04-28 17:16:20 +00:00
Alex Mukha
e15e5f32c6 ACS-105: Update repository to 7.175 2020-04-28 17:59:41 +01:00
Travis CI User
9ca368a1e5 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 16:50:56 +00:00
Travis CI User
bd5683f2e8 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.175 2020-04-28 16:50:48 +00:00
Alex Mukha
878323a92d Revert "REPO-4547 Remove alf_server table (#534)"
This reverts commit cba9899215.
2020-04-28 17:28:07 +01:00
Alex Mukha
39558f9030 ACS-105: Fix schema version suitable for 6.2 2020-04-28 17:01:07 +01:00
Travis CI User
cefc9b216a [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 15:06:36 +00:00
Travis CI User
54c801efef [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.126 2020-04-28 15:06:28 +00:00
Travis CI User
26b4a41f9f [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 15:05:29 +00:00
Travis CI User
45aa6a10b1 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.174 2020-04-28 15:05:21 +00:00
Cristian Turlica
38e71f5e30 ACS-78: Revert Spring 5.2.1 update (#627) 2020-04-28 17:50:28 +03:00
antoniojfelix
b482ffa8f9 REPO-4915 - Keycloak upgrade to 9.0.3 (#962) 2020-04-28 15:44:37 +01:00
Travis CI User
1b15b546b1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 14:24:22 +00:00
Travis CI User
2ff2cda897 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.173 2020-04-28 14:24:14 +00:00
Cristian Turlica
66a4999041 ACS-78: Revert Spring 5.2.1 update (#963) 2020-04-28 17:02:12 +03:00
Travis CI User
426e4b498d [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 13:25:48 +00:00
Travis CI User
d573a6905d [maven-release-plugin][skip ci] prepare release 8.50.12 2020-04-28 13:25:41 +00:00
Cristian Turlica
eeac8f88b5 ACS-78: Revert Spring 5.2.1 update (#240) 2020-04-28 16:20:42 +03:00
Travis CI User
e2d10eaa50 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-28 13:13:11 +00:00
Travis CI User
979ece477e [maven-release-plugin][skip ci] prepare release 7.32 2020-04-28 13:13:05 +00:00
Cristian Turlica
867eac0c54 ACS-78: Revert Spring 5.2.1 update (#128) 2020-04-28 16:08:13 +03:00
Travis CI User
a37d69f6bf [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-25 10:47:56 +00:00
Travis CI User
a609b7705e [maven-release-plugin][skip ci] prepare release alfresco-repository-7.172 2020-04-25 10:47:50 +00:00
Alan Davis
6ce6afa1c3 Use version 2.2.0 of T-Enngines 2020-04-25 10:53:10 +01:00
Travis CI User
ddaa08685b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-24 09:45:06 +00:00
Travis CI User
6db970feba [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.125 2020-04-24 09:44:59 +00:00
Alan Davis
1e538ea3f2 Pick up upstream projects 2020-04-24 10:28:19 +01:00
Travis CI User
915f67750b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-24 09:20:05 +00:00
Travis CI User
39d5a07b5d [maven-release-plugin][skip ci] prepare release alfresco-repository-7.171 2020-04-24 09:19:57 +00:00
Alan Davis
e879e3813f Pick up T-Engine 2.2.0-A5
(cherry picked from commit 1b3098e613)
2020-04-24 10:00:02 +01:00
Travis CI User
75b87de6bc [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 20:02:08 +00:00
Travis CI User
5cd6cbb956 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.170 2020-04-23 20:01:59 +00:00
Ancuta Morarasu
7b57864f85 MNT-21417: LDAP Sync not working after making changes via admin UI (#939)
Use AlfrescoSchedulerAccessorBean to ensure the ldap sync job is unscheduled when the 'Synchronization' subsystem is restarted

(cherry-picked from master commit ef7b2b3f1b)
2020-04-23 22:34:55 +03:00
Travis CI User
dd8095e948 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 18:01:09 +00:00
Travis CI User
ad5e2a607f [maven-release-plugin][skip ci] prepare release alfresco-repository-7.169 2020-04-23 18:01:01 +00:00
Mykhail DIachenko
5b84c2ad11 MNT-21514  ACS-22:  Added new secondary cache map to avoid performance bottleneck in InMe… (#949)
* Added new secondary cache map to avoid performance bottleneck in InMemoryTicketComponent in clustered environment

* Fixed AuthenticationTest

* Change line separators back
2020-04-23 20:39:16 +03:00
Travis CI User
b82594ad59 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 17:18:36 +00:00
Travis CI User
6742812548 [maven-release-plugin][skip ci] prepare release 8.50.11 2020-04-23 17:18:29 +00:00
Mykhail-Diachenko
9aac7efea6 Added secondary cache to reduce numbers of calls to distributed map in clustered environment
(cherry picked from commit ae6e2b3f00)
2020-04-23 19:42:41 +03:00
Travis CI User
4c594b6246 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 16:39:47 +00:00
Travis CI User
15591b9952 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.124 2020-04-23 16:39:40 +00:00
Travis CI User
50da066416 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 16:27:39 +00:00
Travis CI User
3f52f57632 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.168 2020-04-23 16:27:32 +00:00
Chris Shields
6ee88d6906 MNT-19682 : Fix upload of document versions with different mime types (#623) 2020-04-23 17:21:35 +01:00
SaraAspery
4aa494da71 Fix/mnt 19682 fix upload versions different mime types (#955)
* MNT-19682 : Fix upload of document versions with different mime types

* MNT-19682 : Remove blank line

* MNT-19682 : Add doc comment and rename variable.

* MNT-19682 Tests for fix upload new version with different mimetype

Co-authored-by: Chris Shields <christopher.shields@alfresco.com>
2020-04-23 17:05:09 +01:00
Travis CI User
0fc5c6b7bc [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 09:35:55 +00:00
Travis CI User
fcda1691d6 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.123 2020-04-23 09:35:48 +00:00
Cezar.Leahu
5a57770fb9 MNT-19887: Pick up upstream projects 2020-04-23 12:18:50 +03:00
Travis CI User
d73ce2628c [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-23 06:11:35 +00:00
Travis CI User
5ae148ac84 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.167 2020-04-23 06:11:28 +00:00
CezarLeahu
7e4cbd7e23 MNT-19887: Non-responsive SOLR address breaks admin console pages
- add HttpClientFactory timeout properties in the SOLR contexts

(cherry picked from commit cc340a33aa)
2020-04-22 22:11:05 +03:00
Travis CI User
a5f8afe6d0 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-22 18:47:10 +00:00
Travis CI User
9b05b9a5eb [maven-release-plugin][skip ci] prepare release 8.50.10 2020-04-22 18:47:03 +00:00
Cezar.Leahu
b1036202a6 MNT-19887: Pick up upstream projects 2020-04-22 21:40:15 +03:00
Travis CI User
778ff9d7b8 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-22 18:31:57 +00:00
Travis CI User
58afaefab1 [maven-release-plugin][skip ci] prepare release 7.31 2020-04-22 18:31:50 +00:00
CezarLeahu
ce31b06477 MNT-19887: Non-responsive SOLR address breaks admin console pages (#126)
- add setter for Socket Timeout

(cherry picked from commit 5609c805d4)
2020-04-22 21:25:15 +03:00
Travis CI User
f85f5f9d71 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-22 13:46:59 +00:00
Travis CI User
d32faa2429 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.166 2020-04-22 13:46:52 +00:00
evasques
5bae8eb049 MNT-21510 - Update Freemarker version to 2.3.20-alfresco-patched-20200421 (#952) 2020-04-22 14:21:50 +01:00
Travis CI User
cd563798b3 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-21 15:26:03 +00:00
Travis CI User
288e5b8777 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.165 2020-04-21 15:25:56 +00:00
NITHIN NAMBIAR
13b387e185 Fix/mnt 20916 log4j configuration hierarchy
* MNT-20916 Log4j configuration hierarchy

* MNT-20916 Log4j configuration hierarchy

* MNT-20916 Log4j configuration hierarchy

* MNT-20916 Log4j configuration hierarchy,code cleanup

* MNT-20916 Log4j configuration hierarchy,code cleanup

* MNT-20916 Log4j configuration hierarchy,code cleanup

(cherry picked from commit 7fadc254f7)
2020-04-21 16:04:18 +01:00
Travis CI User
e9a75eb55b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 23:37:48 +00:00
Travis CI User
93ecefa864 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.122 2020-04-20 23:37:41 +00:00
Alan Davis
7ee22d35c8 Pick up upstream projects 2020-04-21 00:20:10 +01:00
Travis CI User
eafc654736 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 23:11:11 +00:00
Travis CI User
9252450e4b [maven-release-plugin][skip ci] prepare release alfresco-repository-7.164 2020-04-20 23:11:04 +00:00
Alan Davis
d8b12e24ec REPO-5079,ATS-707: Use all-in-one T-Engine and fix tests (#943)
(cherry picked from commit 23690187cc)
2020-04-20 23:48:40 +01:00
Travis CI User
86ba3d5fd7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 17:11:52 +00:00
Travis CI User
4b54c69195 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.163 2020-04-20 17:11:45 +00:00
Travis CI User
66577e083f [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 16:58:17 +00:00
Travis CI User
a058aea33a [maven-release-plugin][skip ci] prepare release 8.50.9 2020-04-20 16:58:10 +00:00
Alan Davis
8e23108fbc Pick up upstream projects. 2020-04-20 17:46:44 +01:00
Sara Aspery
665fd1e6f6 update latest version of whitesource 2020-04-20 17:44:41 +01:00
Travis CI User
edeba4ae52 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 16:38:33 +00:00
Travis CI User
476731080e [maven-release-plugin][skip ci] prepare release 7.30 2020-04-20 16:38:26 +00:00
Alan Davis
dcfc0129f7 REPO-4974 Pick up latest released version of the whitesource jar
(cherry picked from commit e3b4c98a72)
2020-04-20 17:33:06 +01:00
Travis CI User
59f07ce344 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-20 16:23:07 +00:00
Travis CI User
9dcc5e46aa [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.121 2020-04-20 16:23:01 +00:00
Chris Shields
50d382e272 REPO-4974 Pick up latest released version of the whitesource jar 2020-04-20 17:07:05 +01:00
SaraAspery
ea5175141d Fix/mnt 20433 a fix for japanese copy of label (#941)
* MNT-20433 Append translated Copy Of after removing any file extension

* MNT-20433 Integration Tests

* MNT-20433 Replace integration test with unit tests

* MNT-20433 Review changes

* MNT-20433 Updates from review
2020-04-20 16:49:41 +01:00
Chris Shields
46984a705b MNT-21305 : ACS - Unable to retrieve comments for node using REST api after user deletion 2020-04-20 16:04:11 +01:00
Travis CI User
400317d08b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-12 15:54:30 +00:00
Travis CI User
f08099164d [maven-release-plugin][skip ci] prepare release 8.50.8 2020-04-12 15:54:24 +00:00
Alan Davis
c14d372d21 REPO-4974 Pick up latest released version of the whitesource jar
(cherry picked from commit 857e3bc1e9)
2020-04-12 16:49:26 +01:00
Alan Davis
8d441c9688 Add client @id to ConfigScheduler jobs for the case where there are multiple instances of a given class (sometimes in tests). (#235)
(cherry picked from commit 92bd1741c4)
2020-04-12 11:45:34 +01:00
Travis CI User
312807d92b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 19:40:40 +00:00
Travis CI User
557f093dd4 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.120 2020-04-07 19:40:32 +00:00
Travis CI User
f2b4d88885 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 19:36:58 +00:00
Travis CI User
87aee131c6 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.162 2020-04-07 19:36:51 +00:00
dependabot-preview[bot]
26970522d4 Bump postgresql from 42.2.11 to 42.2.12 (#600) 2020-04-07 20:22:31 +01:00
dependabot-preview[bot]
361038a4d6 Bump postgresql from 42.2.10 to 42.2.12 (#914) 2020-04-07 20:14:08 +01:00
Travis CI User
1a0ce5770b [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 07:52:08 +00:00
Travis CI User
833909d281 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.119 2020-04-07 07:52:01 +00:00
Alan Davis
0a395d4708 REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 08:34:56 +01:00
Travis CI User
1779a7c030 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 07:19:05 +00:00
Travis CI User
ee5a1a1fa8 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.161 2020-04-07 07:18:58 +00:00
Alan Davis
1dcbbfd512 REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 07:58:46 +01:00
Alan Davis
8e36a0a462 REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 07:52:14 +01:00
Alan Davis
ffcd2de1ae REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 07:51:42 +01:00
Travis CI User
c1b14fb592 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 01:14:09 +00:00
Travis CI User
9f8fb4e680 [maven-release-plugin][skip ci] prepare release 8.50.7 2020-04-07 01:14:03 +00:00
Alan Davis
f0023df7fb REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 02:09:18 +01:00
Travis CI User
73b9b623b7 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-07 01:00:40 +00:00
Travis CI User
170bcf3a0f [maven-release-plugin][skip ci] prepare release 7.29 2020-04-07 01:00:33 +00:00
Alan Davis
0c0e2652b5 REPO-4901/REPO-4904 Pick up alfresco-super-pom:12 which includes new versions of MySql annd Postgres drivers 2020-04-07 01:55:32 +01:00
Travis CI User
aab1595552 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-06 20:25:14 +00:00
Travis CI User
08411e4d15 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.160 2020-04-06 20:25:07 +00:00
Chris Shields
84e751f2e8 REPO-4904 Upgrade MySQL JDBC library 5.1.48 -> 8.0.19 (#917) 2020-04-06 21:01:02 +01:00
Travis CI User
0cadd6a48a [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-01 15:11:50 +00:00
Travis CI User
260bf52ad5 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.159 2020-04-01 15:11:42 +00:00
Alan Davis
3a9308cd41 MNT-21398 Unable to override standard rendition definitions (#913)
Relaxed the checks so that it is possible to override rendition definitions. DEBUG is logged in this case.

(cherry picked from commit 79698488cd)
2020-04-01 15:51:16 +01:00
Travis CI User
f709e4c273 [maven-release-plugin][skip ci] prepare for next development iteration 2020-04-01 11:49:38 +00:00
Travis CI User
85d80b7689 [maven-release-plugin][skip ci] prepare release 8.50.6 2020-04-01 11:49:31 +00:00
Alexandru-Eusebiu Epure
ea74f137d0 MNT-21472 : Space in Windows installation path for ACS 6.2 causes repeated rendition exceptions in logs (#232)
Decode urlPath in ConfigFileFinder.readFiles() .
   Add a tests for ConfigFileFinder.readFiles() for this case.
2020-04-01 14:44:51 +03:00
Travis CI User
2b2209d13d [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-31 12:12:48 +00:00
Travis CI User
80025fb56a [maven-release-plugin][skip ci] prepare release alfresco-repository-7.158 2020-03-31 12:12:41 +00:00
Denis Ungureanu
3ea4922f04 MNT-19773 : Marker aspects are not copied to the version store (#910)
- copy marker aspects when creating node's version
- add test marker aspect
- add marker aspect checks on testRevert()

(cherry picked from commit b9aaff95bd)
2020-03-31 14:51:37 +03:00
Travis CI User
114545ce31 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-31 10:14:01 +00:00
Travis CI User
b6435f9e20 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.157 2020-03-31 10:13:54 +00:00
Sridharraj Vellingiri
0fc5f0480c REPO-3993 Upgrade MariaDB library 2.2.5 -> 2.6.0 and fix dialect error (#899)
* REPO-3993 Upgrade MariaDB library 2.2.5 -> 2.6.0 and fix dialect error

* REPO-3993 Override mapping to fix dialect error
2020-03-31 10:40:13 +01:00
Travis CI User
ce075a3194 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-26 14:46:53 +00:00
Travis CI User
74d5a97be7 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.118 2020-03-26 14:46:46 +00:00
Alan Davis
9cb05adadc Pick up alfresco-repository 7.156 which includes REPO-5078 Corrections to TransformOptionsConverter 2020-03-26 14:29:48 +00:00
Travis CI User
e53530faff [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-25 23:19:36 +00:00
Travis CI User
a144daa3ad [maven-release-plugin][skip ci] prepare release alfresco-repository-7.156 2020-03-25 23:19:28 +00:00
Alan Davis
5d6d6d42c6 REPO-5078 Corrections to TransformOptionsConverter (#845)
Having done some work trying to remove legacy transformers REPO-4710, it became clear that there were still some problems in the TransformOptionsConverter that only came to light because legacy transformers were not being used. These are:

    alphaRemove should have been set if the target mimetype is jpeg.

    allowEnlargement, autoOrient, maintainAspectRatio were only being added if set to true. They should have been set to true if already true, or true if null (because that was the default in the legacy options) or false if set to false. The maintainAspectRatio value was extra special, because historically (for legacy transforms) it was only being set if the value was false and the latest T-Engines were only passing the maintainAspectRatio if true. In other words the default was the other way around.

    cropXOffset, cropYOffset should always be set if there are crop options. 0 was excluded previously.

    page should be set rather than startPage and endPage were the same but only if the source mimetype was pdf. There was no check for pdf. This is for pdfrenderer rather than imagemagic.

As both source and target mimetypes are required, a number of calling classes needed to change.

The RenditionServiceIntegrationTest was the only test that has an actual change in it. It now sets maintainAspectRatio to true as the legacy ImageRenderingEngine defaulted it to false (the opposite default to the legacy options). This was fine as long as a legacy transform was used, because it would either set "!" in the argument to a local imagemagic process when false or because of the errors described above to do with maintainAspectRatio the converted value became true and would be past to a T-Engine which in turn set "!". Until the TransformOptionsConverter was fixed, no local transform appeared able to do the transform. After the fix, the false value was past to the T-Engine and then ignore, so the "!" was not set resulting in a unexpected size of image on transform.

(cherry picked from commit 4a1b0f3596)
2020-03-25 22:55:17 +00:00
Travis CI User
74ddbf9e7c [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-24 11:11:06 +00:00
Travis CI User
f235ae694d [maven-release-plugin][skip ci] prepare release alfresco-repository-7.155 2020-03-24 11:11:00 +00:00
Alan Davis
d727d30b41 REPO-5076 BitlyUrlShortenerTest failing as URL is now longer 2020-03-24 10:24:24 +00:00
Alan Davis
62b7650925 REPO-5076 BitlyUrlShortenerTest failing as URL is now longer
(cherry picked from commit f3364098c2)
2020-03-24 10:20:13 +00:00
Travis CI User
9db78d663c [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-19 14:34:43 +00:00
Travis CI User
2d2213c860 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.154 2020-03-19 14:34:35 +00:00
Ancuta Morarasu
a370505f65 Revert REPO-4963 - fix netty-codec-http security vulnerability (#828) 2020-03-19 15:54:13 +02:00
Travis CI User
a110411eb1 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-09 14:01:43 +00:00
Travis CI User
9c39f1abd8 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.153 2020-03-09 14:01:37 +00:00
Oussama Messeguem
5fe4ebc045 MNT-20933: Does noderef exist before updating rendition (#865) (#868)
* mnt-20933 Does noderef exist before updating rendition

In the context of creating renditions after updating nodes properties, a check of node's existence must be done because of the asynchronousity of renditions.

(cherry picked from commit 63b6077700)
2020-03-09 13:37:52 +00:00
Travis CI User
15785a5188 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-09 08:47:27 +00:00
Travis CI User
588b62c78a [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.117 2020-03-09 08:47:21 +00:00
Cristian Turlica
fe740c8de6 Updated repo version 2020-03-09 10:30:52 +02:00
Travis CI User
d5364b3a04 [maven-release-plugin][skip ci] prepare for next development iteration 2020-03-09 08:14:24 +00:00
Travis CI User
14e353434c [maven-release-plugin][skip ci] prepare release alfresco-repository-7.152 2020-03-09 08:14:17 +00:00
cturlica
4ac5672940 MNT-21083: Alternative clean up script
Cherry-picked from 102065f master to support/SP/7.N
2020-03-09 09:52:35 +02:00
Elia Porciani
28086c1d4f Fix/search 2122 to 7.n (#861)
* [SEARCH-2122]
Added shard protocol in solr request for manual sharding.
Changed unit tests

* [SEARCH-2122]
added comment
2020-03-06 15:03:57 +01:00
Tom Page
c1acc88b12 MNT-20822 Delete CMISTest.testQueryNodesWithCorruptedIndexes. (#849) (#850)
This test was written for Lucene systems, and no longer applies to Solr systems.

(cherry picked from commit 2127724306)
2020-03-05 09:53:27 +00:00
Travis CI User
ef95672052 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-28 12:38:18 +00:00
Travis CI User
253cc19a3a [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.116 2020-02-28 12:38:12 +00:00
Oussama Messeguem
f02cb05caa MNT-21118: quickshare xss prevention (#536) (#550)
* MNT-21118: quickshare xss prevention

The selected way to prevent from xss attacks is forcing browsers to download files by adding Content-Disposition to the response headers as it is done in V1.

Forcing browsers to download files will always be the true for QuickShareContentGet,
QuickShareThumbnailContentGet extends QuickShareContentGet, therefore the attach value will be overridden according to the url parameter "a".

In the test, the thumbnail must be generated by a logged in user before sharing the link to the document.

(cherry picked from commit 2b3003a84f)
2020-02-28 12:15:44 +00:00
Travis CI User
397933a0db [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-28 07:50:23 +00:00
Travis CI User
edfe204d5a [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.115 2020-02-28 07:50:17 +00:00
Ancuta Morarasu
40f3b539c4 REPO-4969: Merge branch 'master' into support/SP/7.N (#546)
- merge branch 'master' into support/SP/7.N
2020-02-28 09:33:44 +02:00
Travis CI User
b339991d52 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-27 19:16:32 +00:00
Travis CI User
9eff1509b3 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.151 2020-02-27 19:16:26 +00:00
Ancuta Morarasu
86980643f0 Merge branch 'master' into support/SP/7.N 2020-02-27 20:29:51 +02:00
Travis CI User
06adb15a4f [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-27 12:18:46 +00:00
Travis CI User
adb3209192 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.150 2020-02-27 12:18:40 +00:00
Andrei Forascu
eee488bcfb REPO-4949: - merge branch 'master' into support/SP/7.N 2020-02-27 13:53:13 +02:00
Travis CI User
e9fc89ac19 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-27 10:27:19 +00:00
Travis CI User
d1d8e8bbcd [maven-release-plugin][skip ci] prepare release alfresco-repository-7.149 2020-02-27 10:27:13 +00:00
Andrei Forascu
6d7e95e143 Revert "REPO-4969: Prepare branches for the 6.2.1 release (former 6.3) (#836)"
This reverts commit b6a99dbba8.
2020-02-27 11:59:40 +02:00
Travis CI User
396ddca1ae [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-27 09:36:16 +00:00
Travis CI User
fbd11a20e7 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.148 2020-02-27 09:36:10 +00:00
Andrei Forascu
b6a99dbba8 REPO-4969: Prepare branches for the 6.2.1 release (former 6.3) (#836)
- merge master to support/SP/7.N
2020-02-27 11:14:11 +02:00
Travis CI User
9ba912b613 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-26 18:04:28 +00:00
Travis CI User
aa8bb477bd [maven-release-plugin][skip ci] prepare release 8.50.5 2020-02-26 18:04:23 +00:00
Ancuta Morarasu
e8893e7bfb Update alfresco-core to 7.28 2020-02-26 19:59:16 +02:00
Travis CI User
f23aa55db9 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-26 17:52:12 +00:00
Travis CI User
e02c3bf1bc [maven-release-plugin][skip ci] prepare release 7.28 2020-02-26 17:52:07 +00:00
Ancuta Morarasu
0209c549ed Update surf-webscrips version to 7.12 (released from the support/SP/7.N branch) 2020-02-26 19:46:49 +02:00
Travis CI User
49c03d7476 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-26 13:40:21 +00:00
Travis CI User
807c484d87 [maven-release-plugin][skip ci] prepare release 8.50.4 2020-02-26 13:40:15 +00:00
Andrei Forascu
651e7187c1 REPO-4969: -merge branch 'master' into support/SP/8.50.N 2020-02-26 15:35:03 +02:00
Travis CI User
8337ddc903 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-26 13:10:43 +00:00
Travis CI User
cbc502feea [maven-release-plugin][skip ci] prepare release 7.27 2020-02-26 13:10:37 +00:00
Andrei Forascu
b22453afe8 REPO-4969: - merge branch 'master' into support/SP/7.N 2020-02-26 15:05:17 +02:00
Travis CI User
4839fe180e [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-24 22:04:42 +00:00
Travis CI User
94bc72b46e [maven-release-plugin][skip ci] prepare release alfresco-repository-7.147 2020-02-24 22:04:36 +00:00
Andreea Nechifor
d0753c9c42 MNT-20932: Unguarded access to a Pair value retrieved using nodeDao.getNodePair method which can return null
Cherry-picked from master 2d9b5e5 to support/SP/7.N
2020-02-24 23:33:28 +02:00
Travis CI User
ece88565bb [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-24 10:25:20 +00:00
Travis CI User
aff271b0a8 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.146 2020-02-24 10:25:14 +00:00
Alexandru-Eusebiu Epure
a054f6440b MNT-21083: Alternative clean up script (#821)
* MNT-21083: Alternative clean up script
   Cherry picked commit fea4ad3366

* MNT-21083: Alternative clean up script
   Disable default usage of V2 script.

Co-authored-by: Cristian Turlica <cristian.turlica@ness.com>
2020-02-24 12:04:54 +02:00
Travis CI User
6f148c056c [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-13 09:32:03 +00:00
Travis CI User
8efbe18818 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.145 2020-02-13 09:31:56 +00:00
estan
98fcba54d8 MNT-18345 : Feed Notifier encounters FTL template exception when user leaves a site
cherry picked from master commit: 9e4421cd18 [9e4421c]
2020-02-13 11:10:12 +02:00
Travis CI User
1c06199762 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-03 10:44:28 +00:00
Travis CI User
7e9cfc62bf [maven-release-plugin][skip ci] prepare release alfresco-repository-7.144 2020-02-03 10:44:21 +00:00
Oussama Messeguem
c866593237 REPO-4753: removing googlecode isoparser dependency (#796) (#800)
* REPO-4753: remove com.google.mp4parser:isoparser dependency

This dependency is not required in this project and triggers some conflicts in other projects (tika) due to the difference of versions.

(cherry picked from commit 77f08bd143)
2020-02-03 10:22:20 +00:00
Travis CI User
97423baa34 [maven-release-plugin][skip ci] prepare for next development iteration 2020-02-03 09:49:42 +00:00
Travis CI User
4cd0317088 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.143 2020-02-03 09:49:36 +00:00
Alex Mukha
01ee91a022 SEARCH-2051 Performance of metadata tracking (#788)
Unites two cycles of getChildAssocs and getParentAssocs calls.
2020-02-03 09:28:16 +00:00
Travis CI User
faa2f57a11 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-31 14:33:21 +00:00
Travis CI User
ffc5371e6e [maven-release-plugin][skip ci] prepare release alfresco-repository-7.142 2020-01-31 14:33:14 +00:00
Angel Borroy
9eee86a112 SEARCH-2074: Add new queries tests to ensure these ANSI SQL queries work with different database engines.
0237f4d aborroy Test SQL queries
2020-01-31 15:13:23 +01:00
Travis CI User
9889c2467e [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-31 11:16:37 +00:00
Travis CI User
1aaa81e193 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.141 2020-01-31 11:16:30 +00:00
Oussama Messeguem
c79549b91b MNT-18895: Extension of Behaviour Filter for Smart Folders (#791) (#797)
The MNT-18895 ticket has highlighted the fact that behaviour filter service did not have an extension when it comes to smart folders.

The issue had to do with the creation of renditions as children of documents, when a document hasn't got any rendition yet, and the rendition is created as a new node from a smart folder, it is only the virtual node that gets its aspect cm:auditable disbaled and not the actual node linked to it.
The cm:auditable is responsible for certain updates of node's properties, in particular the properties cm:modifier and cm:modified.

This merge delivers an extension for behaviour filter service as it is the case already for other services (node, coci, lock, fileFolder..)

* Extension of the BehaviourFilter service for smart folders:
   - VirtualBehaviourFilterExtension: specific implementation of BehaviourFilter service, executed in smart folder context
   - BehaviourFilterExtension/BehaviourFilterTrait/annotations on top of override BehaviourFilterImpl methods: allow AOP mechanism
   - smartfolder-context: declaration of the new beans and injection into the virtualisation bundle
   - VirtualBehaviourFilterExtensionTest and AppContextExtraTestSuite: to ensure that the extension is used instead of the original implementation

(cherry picked from commit 9399a743fd)
2020-01-31 10:55:46 +00:00
Travis CI User
a5ee34eeb6 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-27 15:57:46 +00:00
Travis CI User
3a87570a7b [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.114 2020-01-27 15:57:39 +00:00
Alexandru-Eusebiu Epure
04f34274a0 MNT-21150 : Restrict immutable properties when updating person. (#514)
Restrict immutable properties when updating person.
   Use a list of userProperties and iterate trough it.
   Treat ogranization as special case.

(cherry picked from commit caf53c1266)
2020-01-27 17:40:50 +02:00
Travis CI User
8c246c0140 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-27 14:37:37 +00:00
Travis CI User
9c757c9cfd [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.113 2020-01-27 14:37:30 +00:00
Angel Borroy
215227c657 Merged master to 7.N
2132bb1 SEARCH-2071 Escaping JSON strings for Authorities and Property values.
Using Freemarker "json_string" function instead of ad-hoc code, as it's provided by default from 2.3.1 version
2020-01-27 15:20:33 +01:00
Travis CI User
fe0cee1030 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-27 09:22:34 +00:00
Travis CI User
ab606ba30e [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.112 2020-01-27 09:22:28 +00:00
cturlica
f571956de7 MNT-21250: The fix for MNT-20734 introduces a problem whereby files larger than 4MB cannot be downloaded
- fixed temp file handling issue

Cherry-picked 059f256 master to support/SP/7.N
2020-01-27 11:05:57 +02:00
Travis CI User
adcc4fa1ee [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-20 13:48:41 +00:00
Travis CI User
3292aace29 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.111 2020-01-20 13:48:35 +00:00
Angel Borroy
c88a1c6360 Merged master to 7.N
7df658c SEARCH-2028: New Web Script Service to provide the next transaction commit time from a given time commit.
2020-01-20 14:31:35 +01:00
Travis CI User
599dd69b8a [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-20 13:24:33 +00:00
Travis CI User
0055934b34 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.140 2020-01-20 13:24:26 +00:00
Angel Borroy
291a5ea1e0 Merged master to 7.N
aa41767 SEARCH-2028: New SOLR database query to provide the next transaction commit time from a given time commit.
2020-01-20 14:02:10 +01:00
Travis CI User
b130e55bbd [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-17 14:51:00 +00:00
Travis CI User
c7b623721e [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.110 2020-01-17 14:50:52 +00:00
Angel Borroy
045fafbd14 Merged 8.68 to 7.N
SEARCH-2028: New SOLR Web Script to provide the minimum and maximum transaction id for a given nodeId range.
This feature will be used by SOLR MetadataTracker to improve performance.
2020-01-17 15:33:37 +01:00
Travis CI User
ac68ff3e79 [maven-release-plugin][skip ci] prepare for next development iteration 2020-01-17 14:24:02 +00:00
Travis CI User
1cab30cfd1 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.139 2020-01-17 14:23:56 +00:00
Angel Borroy
e148321e60 Merged 8.68 to 7.N
SEARCH-2028: New database queries to provide the minimum and maximum transaction id for a given nodeId range.
This feature will be used by SOLR MetadataTracker to improve performance.
2020-01-17 15:04:16 +01:00
Travis CI User
f1a7171627 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-20 15:15:10 +00:00
Travis CI User
dfe67a0a49 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.109 2019-12-20 15:15:04 +00:00
eliaporciani
5af08756cb Fix/search 1916 (#436) (#475)
* [SEARCH-1916]
Modified test in order to check if empty label is inserted in json

* [SEARCH-1916]
Add annotation to allow empty labels in facet buckets

(cherry picked from commit 21dd2fb066)
2019-12-20 15:45:25 +01:00
Travis CI User
c98612fe78 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-17 16:15:12 +00:00
Travis CI User
397b13e182 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.138 2019-12-17 16:15:06 +00:00
eknizat
54ebad0fce MNT-20992: Workaround for having wrong MLText values in the database (#450)
* Catch class cast exceptions from trying to convert MLText values to string when querying for audit and handle as if they were HashMaps

(cherry picked from commit c3b4196775)
2019-12-17 16:01:54 +00:00
eknizat
98633bc15e MNT-20992: Don't cache empty property maps (#724)
* PropertyValueCallbackDAO will return null for Map values excluding empty maps from being looked up in caches when performing property value dao operations

(cherry picked from commit 5ce5c6d411)
2019-12-17 15:49:44 +00:00
Travis CI User
2c93e0df28 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-17 09:53:32 +00:00
Travis CI User
8864c5a124 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.137 2019-12-17 09:53:25 +00:00
estan
e6f09b17c7 REPO-4314 Service Pack: MNT-20415 HTML tags displayed on notification email for user added to site
cherry pick. Commit: 38c1deb350
2019-12-17 11:30:21 +02:00
Travis CI User
f359af4e74 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-04 09:55:43 +00:00
Travis CI User
c6e01cb75d [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.108 2019-12-04 09:55:33 +00:00
anechifor
dfb668e24a MNT-21009 : Sandboxed arbitrary Code Execution. 2019-12-04 11:34:47 +02:00
Travis CI User
7f03e4f12f [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-04 08:22:28 +00:00
Travis CI User
cfe60fc0ca [maven-release-plugin][skip ci] prepare release alfresco-repository-7.136 2019-12-04 08:22:22 +00:00
Andreea Nechifor
110040db2d 6438f0b Merged master to 6.2.N: MNT-21009 : Sandboxed arbitrary Code EXECUTION 2019-12-04 10:00:21 +02:00
Travis CI User
2c461b0d40 [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-03 18:33:20 +00:00
Travis CI User
b3264c594f [maven-release-plugin][skip ci] prepare release alfresco-repository-7.135 2019-12-03 18:33:14 +00:00
Abdul Mohammed
8bc465a192 Bump alfresco-data-model and alfresco-versions and cherry-pick commits to exclude spring-jcl 2019-12-03 18:03:44 +00:00
Abdul Mohammed
82eb5c0cd5 Exclude spring-jcl sub module that is being brought in by spring-core to avoid classpath confict 2019-12-03 17:59:39 +00:00
Abdul Mohammed
9ad349fee7 Exclude spring-jcl from spring-orm to extra guard classpath collission of commons-logging module 2019-12-03 17:59:39 +00:00
Travis CI User
67ef6ecc2a [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-03 17:49:50 +00:00
Travis CI User
5c47e3153a [maven-release-plugin][skip ci] prepare release 8.50.3 2019-12-03 17:49:44 +00:00
Abdul Mohammed
a55546379b Bump alfresco-core version to 7.26 2019-12-03 17:45:01 +00:00
Travis CI User
2ab9b5086a [maven-release-plugin][skip ci] prepare for next development iteration 2019-12-03 15:03:09 +00:00
Travis CI User
0e6843d107 [maven-release-plugin][skip ci] prepare release 7.26 2019-12-03 15:03:03 +00:00
cturlica
8a7891a974 Prepare for next major release 2019-12-03 16:57:05 +02:00
Travis CI User
f6382d9130 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-06 15:10:08 +00:00
Travis CI User
a610bde4e0 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.107 2019-11-06 15:10:02 +00:00
Cristian Turlica
85832c81ce Updated alfresco-repository version 2019-11-06 16:50:17 +02:00
Travis CI User
f5c9a556f2 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-06 14:31:27 +00:00
Travis CI User
6fcdedffc1 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.134 2019-11-06 14:31:20 +00:00
cturlica
0f5f912a76 MNT-20770: Share non responsive during direct download from S3 if content store selector is also configured
- add specific implementation for exists to bypass getting the complete reader and in some cases (e.g. aggregating a CachingContentStore) trigger a complete download of the file

cherry-picked from 933161a master to support/SP/7.N
2019-11-06 16:00:56 +02:00
Travis CI User
f1df0b4b55 [maven-release-plugin][skip ci] prepare for next development iteration 2019-11-01 12:41:59 +00:00
Travis CI User
eca3747650 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.106 2019-11-01 12:41:53 +00:00
estan
6e810e93ad REPO-4636 [MNT-20863] Changing cm:name with REST API /nodes/{nodeId} does not update Primary Path
cherry pick from 9167d421d7
2019-11-01 14:23:10 +02:00
Travis CI User
23fe161354 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-24 15:40:12 +00:00
Travis CI User
1e098e19d2 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.105 2019-10-24 15:40:07 +00:00
Gracula
9f11fa6d24 REPO-4663: Error accessing Admin Console as non literal admin (#382)
* Run as system while authentication

Authentication to the console as system to get the perms
for non literal admin.

* Test when run as system while authentication

Authentication to the console as system to get the permissions
for a non literal admin user. Basic Auth is test.

* Test: Clear System runner before authentication

Run authentication as user not System to make the fix act

* Test: Modifications after PR comments

Usage of this removed, unnecessary
Rid of delete user because it slows down test execution.
Wrapping the authentication process to give a clearer message.
2019-10-24 16:21:37 +01:00
Travis CI User
2473e3504e [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-17 16:02:10 +00:00
Travis CI User
b70aef199d [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.104 2019-10-17 16:02:04 +00:00
Erik Knizat
633072b847 Update alfresco-repository version 2019-10-17 16:42:08 +01:00
Andrei Forascu
2e2a766edf MNT-20714: /nodes/{nodeId}/content REST API fails for content created by a deleted user
cherry-pick 3bf2a0ce73 from master
2019-10-17 17:22:11 +03:00
Travis CI User
ce2cb22342 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-17 11:00:03 +00:00
Travis CI User
cf57cd15b5 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.133 2019-10-17 10:59:56 +00:00
eknizat
8bf64b502a REPO-4689: Update HB sender and remove unused properties (#641)
* Remove HB sender cron expression and test mode properties

(cherry picked from commit 76ebd2d850)
2019-10-17 11:29:48 +01:00
Travis CI User
aef618761e [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-16 05:55:39 +00:00
Travis CI User
b245a24621 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.103 2019-10-16 05:55:33 +00:00
Alan Davis
220d41e5e1 Pick up upstream projects 2019-10-15 16:34:26 +01:00
Travis CI User
b411fe4a9b [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-15 13:09:16 +00:00
Travis CI User
9ed738a8d0 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.132 2019-10-15 13:09:09 +00:00
alandavis
535fd9d1d5 REPO-4712 AIS default AI rendition definitions (via XML) are lost after startup (at **:30) (#639)
- Remember 'static' renditions created via spring beans.
2019-10-15 13:46:52 +01:00
Travis CI User
3040b76398 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-15 12:01:22 +00:00
Travis CI User
8d8e278dd7 [maven-release-plugin][skip ci] prepare release 8.50.2 2019-10-15 12:01:17 +00:00
alandavis
0bede55ff0 REPO-4712 AIS default AI rendition definitions (via XML) are lost after startup (at **:30) (#168)
- Open up a method on ConfigScheduler to allow a test in alfresco-repository to force a reload of its registry data.
2019-10-15 12:57:06 +01:00
Alex Mukha
026cdc9950 Cleanup maven cache before committing to Travis [no-release] 2019-10-10 10:35:27 +01:00
Travis CI User
07e6fdc414 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-10 08:34:33 +00:00
Travis CI User
0b2488dc92 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.102 2019-10-10 08:34:27 +00:00
Eliza Stan
3502854fcc REPO-4303 Service Pack: MNT-20436 (#364)
* REPO-4303 Service Pack: MNT-20436 "POST /nodes/{nodeId}/children" RestAPI does not create a node without having a mandatory value object, but it outputs the 201 successful response
2019-10-10 11:12:47 +03:00
Travis CI User
ddbfac8bfb [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-10 07:21:54 +00:00
Travis CI User
141f53190c [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.101 2019-10-10 07:21:49 +00:00
Alan Davis
dc3a7a1f83 Pick up upstream projects 2019-10-10 07:58:22 +01:00
Travis CI User
00a68eb4a1 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-10 06:16:58 +00:00
Travis CI User
f6021a2223 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.131 2019-10-10 06:16:52 +00:00
Alan Davis
d11a55097b Pick up upstream projects 2019-10-10 06:52:17 +01:00
Alan Davis
248326181b Pick up upstream projects 2019-10-09 23:09:49 +01:00
Travis CI User
24c70c15b5 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-09 18:25:30 +00:00
Travis CI User
ad07052b3e [maven-release-plugin][skip ci] prepare release alfresco-repository-7.130 2019-10-09 18:25:23 +00:00
Alan Davis
763a047e17 Pick up 2.1.0-RC3 T-Engines 2019-10-09 18:59:13 +01:00
Alex Mukha
a9eebb6eb0 Cleanup maven cache before committing to Travis (#632) [no-release] 2019-10-09 11:49:31 +01:00
Travis CI User
beaf23f267 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-03 08:40:27 +00:00
Travis CI User
e7dc32fdf6 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.129 2019-10-03 08:40:20 +00:00
Travis CI User
b3e484a4c2 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-02 17:54:30 +00:00
Travis CI User
2e0de740fd [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.100 2019-10-02 17:54:23 +00:00
Alexandru-Eusebiu Epure
db74f631b3 Bump jackson-databind to version 2.9.10 (#619) 2019-10-02 20:31:50 +03:00
Alexandru-Eusebiu Epure
331a6ccad0 Bump jackson-databind to version 2.9.10 (#360) 2019-10-02 20:30:57 +03:00
Travis CI User
a04b6e4143 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-02 10:15:14 +00:00
Travis CI User
202e5d6134 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.99 2019-10-02 10:15:08 +00:00
David Edwards
26b3274c8a Merge branches 'support/SP/7.N' and 'support/SP/7.N' of github.com:Alfresco/alfresco-remote-api into support/SP/7.N 2019-10-02 10:52:57 +01:00
Travis CI User
ab26456624 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-02 09:29:59 +00:00
Travis CI User
82b0cb662f [maven-release-plugin][skip ci] prepare release alfresco-repository-7.128 2019-10-02 09:29:52 +00:00
Travis CI User
7eb8e7f0ae [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-02 09:11:13 +00:00
Travis CI User
3043047a4e [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.98 2019-10-02 09:11:08 +00:00
David Edwards
ceeb0cd4bd Bump alfresco-repository 7.128 2019-10-02 09:48:11 +01:00
gbroadbent
546733bb13 CZECH, POLISH, DANISH, FINNISH, SWEDISH updated files to fix LOC-163 as per REPO-4675
(cherry picked from commit b3a22f3f78)
2019-10-02 09:35:52 +01:00
gbroadbent
ce4a18a346 CZECH, POLISH, DANISH, FINNISH and SWEDISH updated files to fix LOC-163 this is related to REPO-4674 and REPO-4675
(cherry picked from commit 18745e383d)
2019-10-02 09:34:21 +01:00
Travis CI User
1ad0c910d6 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-01 17:07:14 +00:00
Travis CI User
c123c5c219 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.97 2019-10-01 17:07:08 +00:00
David Edwards
ed8c248638 REPO-4674/ REPO-4675 Reinstate removed deprecated functionality for ACS6.2: Add Discussions (Forums+Blogs) (#357)
* Update alfresco-repository to 7.127

* REPO-4674 Reinstate removed deprecated functionality for ACS6.2: Add Discussions (Forums) (#352)

* REPO-4674 Revert"REPO-3235Removediscussions(#171)"

This reverts commit f299959ac5.

* REPO-4675 Reinstate removed deprecated functionality for ACS6.2: Add Blogs (remote-api) (#355)

* Revert "REPO-3236: Remove blogs (#177)"

This reverts commit f63354466a.

* Apply from 6.1.N REPO-4360 : remove xmlrpc-client dependency (#220)
   Remove external publishing and retrieval V0 APIs

(cherry picked from commit 499c0c3b02)
(cherry picked from commit b500375ee6)
(cherry picked from commit e1a2b245df)
2019-10-01 17:44:49 +01:00
Travis CI User
f3c491f188 [maven-release-plugin][skip ci] prepare for next development iteration 2019-10-01 15:52:43 +00:00
Travis CI User
c67b8f4d85 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.127 2019-10-01 15:52:36 +00:00
David Edwards
9d516199cb REPO-4674/ REPO-4675 Reinstate removed deprecated functionality for ACS6.2: Add Discussions (Forums+Blogs) (#617)
* REPO-4674 Reinstate removed deprecated functionality for ACS6.2: Add Discussions (Forums)  (#613)

* REPO-4674 Revert"REPO-3235Removediscussions(#352)"

This reverts commit 5498ce5719.

* Refactor test models to prevent clashes

(cherry picked from commit ceff4996cee1bafa447eef25b8511cefed897c40)

(cherry picked from commit 172f868a40)

* REPO-4675 Reinstate removed deprecated functionality for ACS6.2: Add Blogs (repository) (#614)

* Revert "REPO-3236
This reverts commit df450676b4.
This reverts commit 92b5439b00.

* Reapply 6.1.N REPO-4360 : remove xmlrpc-client dependency (#424)
   Remove external blog publishing and retrieving.
   remove xmlrpc-client 3.1.3 dependency
   deprecate blogIntegrationModel.xml
(cherry picked from commit 323e5eb523)

Revert of L10n changes for REPO-3236 included these two files even though they were unrelated to Blogs.

(cherry picked from commit 85866a23b2)
2019-10-01 16:03:06 +01:00
Travis CI User
1502520eff [maven-release-plugin][skip ci] prepare for next development iteration 2019-09-27 12:38:41 +00:00
Travis CI User
b548d8ef9b [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.96 2019-09-27 12:38:35 +00:00
Travis CI User
c96c6a5d86 [maven-release-plugin][skip ci] prepare for next development iteration 2019-09-27 12:35:18 +00:00
Travis CI User
dadc6ed188 [maven-release-plugin][skip ci] prepare release alfresco-repository-7.126 2019-09-27 12:35:12 +00:00
Nithin Nambiar
dd7452d08b REPO-4358 updated spring-webscript version 2019-09-27 12:35:44 +01:00
Nithin Nambiar
c2e750c6b8 REPO-4358 updated spring-webscript version 2019-09-27 12:23:04 +01:00
Travis CI User
ba0fa51c0b [maven-release-plugin][skip ci] prepare for next development iteration 2019-09-23 15:45:02 +00:00
Travis CI User
a7685a6f39 [maven-release-plugin][skip ci] prepare release alfresco-remote-api-7.95 2019-09-23 15:44:56 +00:00
Travis CI User
aad5452dd4 [maven-release-plugin][skip ci] prepare for next development iteration 2019-09-23 15:16:07 +00:00
Travis CI User
6a1d5c662f [maven-release-plugin][skip ci] prepare release alfresco-repository-7.125 2019-09-23 15:16:00 +00:00
Alex Mukha
9aa65a8059 Set up support/SP/7.N branch 2019-09-23 15:36:41 +01:00
Alex Mukha
f69af626d5 Set up support/SP/7.N branch 2019-09-23 15:29:18 +01:00
Travis CI User
891d42409e [maven-release-plugin][skip ci] prepare for next development iteration 2019-09-23 14:26:23 +00:00
Travis CI User
3b03252dea [maven-release-plugin][skip ci] prepare release 8.50.1 2019-09-23 14:26:17 +00:00
Alex Mukha
6f42e4f9c1 Release 8.50.1 2019-09-23 15:21:32 +01:00
Alex Mukha
39bcff8631 Update the project version to 8.50.N [no-release] 2019-09-23 15:17:08 +01:00
1096 changed files with 78360 additions and 41224 deletions

View File

@@ -1,4 +1,4 @@
# For SmartGit
[bugtraq "jira"]
url = https://alfresco.atlassian.net/browse/%BUGID%
url = https://issues.alfresco.com/jira/browse/%BUGID%
logRegex = ([A-Z]+-\\d+)

3
.gitignore vendored
View File

@@ -35,6 +35,3 @@ target
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Alfresco runtime
alf_data

View File

@@ -15,7 +15,7 @@
<enabled>true</enabled>
</snapshots>
<name>Alfresco Internal Repository</name>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
<url>https://artifacts.alfresco.com/nexus/content/groups/internal</url>
</repository>
</repositories>
<pluginRepositories>
@@ -43,5 +43,15 @@
<username>${env.MAVEN_USERNAME}</username>
<password>${env.MAVEN_PASSWORD}</password>
</server>
<server>
<id>quay.io</id>
<username>${env.QUAY_USERNAME}</username>
<password>${env.QUAY_PASSWORD}</password>
</server>
<server>
<id>docker.io</id>
<username>${env.DOCKERHUB_USERNAME}</username>
<password>${env.DOCKERHUB_PASSWORD}</password>
</server>
</servers>
</settings>

View File

@@ -1,5 +1,5 @@
---
dist: focal
dist: xenial
language: java
jdk: openjdk11
@@ -21,8 +21,6 @@ branches:
only:
- master
- /release\/.*/
- /feature\/.*/
- /fix\/.*/
env:
global:
@@ -45,6 +43,13 @@ install: travis_retry travis_wait 40 bash scripts/travis/build.sh
jobs:
include:
# - name: "Source Clear Scan"
# # only on release branches or master and if it is not a PR
# if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request
# script: skip
# addons:
# srcclr: true
- name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test"
script:
- travis_retry mvn -B test -pl core,data-model
@@ -52,166 +57,120 @@ jobs:
- name: "Repository - AppContext01TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext02TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext03TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dalfresco-pdf-renderer.url=http://localhost:8090/ -Djodconverter.url=http://localhost:8090/ -Dimg.url=http://localhost:8090/ -Dtika.url=http://localhost:8090/ -Dtransform.misc.url=http://localhost:8090/
- name: "Repository - AppContext04TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext05TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
- mkdir -p "${HOME}/tmp"
- cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp"
- export HOST_IP=$(hostname -I | cut -f1 -d' ')
- docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json alfresco/alfresco-identity-service:1.2
- docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json quay.io/alfresco/alfresco-identity-service:1.2
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext05TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco "-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth"
- name: "Repository - AppContext06TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext06TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext06TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dalfresco-pdf-renderer.url=http://localhost:8090/ -Djodconverter.url=http://localhost:8090/ -Dimg.url=http://localhost:8090/ -Dtika.url=http://localhost:8090/ -Dtransform.misc.url=http://localhost:8090/
- name: "Repository - AppContextExtraTestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - MiscContextTestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
script: travis_wait 20 mvn -B test -pl repository -Dtest=MiscContextTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=MiscContextTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dalfresco-pdf-renderer.url=http://localhost:8090/ -Djodconverter.url=http://localhost:8090/ -Dimg.url=http://localhost:8090/ -Dtika.url=http://localhost:8090/ -Dtransform.misc.url=http://localhost:8090/
- name: "Repository - SearchTestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=SearchTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dindex.subsystem.name=solr6
- name: "Repository - MariaDB 10.2.18 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.2.18 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MariaDB 10.4 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.4 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MariaDB 10.5 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.5 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Repository - MySQL 5.7.23 tests"
- name: "Repository - MySQL tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:5.7.23 --transaction-isolation='READ-COMMITTED'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - MySQL 8 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 10.9 tests"
- name: "Repository - PostgreSQL 10 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:10.9 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 11.7 tests"
- name: "Repository - PostgreSQL 11 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 12.4 tests"
- name: "Repository - MariaDB tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:12.4 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - PostgreSQL 13.1 tests"
if: commit_message !~ /\[skip db\]/
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.2.18 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl repository -Dtest=AllDBTestsTestSuite -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver
- name: "Remote-api - AppContext01TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext02TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext03TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext04TestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.3.10
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContextExtraTestSuite"
before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.1 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:11.7 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.15.8
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "REST API TAS tests part1"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
@@ -219,7 +178,7 @@ jobs:
- travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false
- name: "REST API TAS tests part2"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
@@ -227,39 +186,23 @@ jobs:
- travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false
- name: "REST API TAS tests part3"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script:
- travis_wait 60 mvn -B install -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - BROWSER binding"
if: branch = master OR commit_message =~ /\[tas\]/
- name: "CMIS TAS tests"
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script:
- travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - ATOM binding"
if: branch = master OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script:
- travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false
- name: "CMIS TAS tests - WEBSERVICES binding"
if: branch = master OR commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
script:
- travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false
- travis_wait 40 mvn -B install -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "Email TAS tests"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
@@ -267,7 +210,7 @@ jobs:
- travis_wait 30 mvn -B install -f packaging/tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "WebDAV TAS tests"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
@@ -275,7 +218,7 @@ jobs:
- travis_wait 30 mvn -B install -f packaging/tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
- name: "Integration TAS tests"
if: branch = master OR commit_message =~ /\[tas\]/
if: commit_message =~ /\[tas\]/
before_script:
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"

View File

@@ -34,7 +34,7 @@ Repository is a library packaged as a jar file which contains the following:
Tests are combined into test classes split by test type or Spring application context used in the test, see classes
in _src/test/java/org/alfresco_. All of these classes as well as individual tests can be run by specifying the test
class name and a set of DB connection properties. Check the travis.yml file for docker images that should be started
to provide a suitable test environment. For example:
to provide a sutable test environment. For example:
~~~
mvn clean test -Dtest=SomeRepoTest -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql:alfresco -Ddb.username=alfresco -Ddb.password=alfresco
~~~
@@ -113,27 +113,27 @@ and `acs-community-packaging` in a single Intellij IDEA project. They depend on
want to make changes to both of them if you are changing the repository code.
~~~
mkdir work
cd work
git clone git@github.com:Alfresco/alfresco-community-repo.git
git clone git@github.com:Alfresco/acs-community-packaging.git
$ mkdir work
$ cd work
$ git clone git@github.com:Alfresco/alfresco-community-repo.git
$ git clone git@github.com:Alfresco/acs-community-packaging.git
~~~
If you wish to build these projects from the command line, use the following commands.
~~~
cd alfresco-community-repo
mvn clean install -PcommunityDocker -DskipTests=true -Dversion.edition=Community
cd ..
$ cd alfresco-community-repo
$ mvn clean install -PcommunityDocker -DskipTests=true -Dversion.edition=Community
$ cd ..
cd acs-community-packaging
mvn clean install -PcommunityDocker -Dmaven.javadoc.skip=true
cd ..
$ cd acs-community-packaging
$ mvn clean install -PcommunityDocker -Dmaven.javadoc.skip=true
$ cd ..
~~~
In Intellij IDEA, create a new project using the `work` directory as the source.
In Itellij IDEA, create a new project using the `work` directory as the source.
* File > New Project from Existing Sources > .../work > Maven
## Branches
As multiple projects have been combined, branch names use the ACS version they are targeting.
For example the code used to create the repository in ACS 6.2.1 is a branch called `releases/6.2.1`.
For example the code used to create the repository in ACS 6.2.1 in a branch called `releases/6.2.1`.
The actual version number of the **repository artifacts** created by `alfresco-community-repo` are however different.
For example `release/6.2.1` artifacts are `7.183.x`. This adds some complexity, but ensures that

View File

@@ -1,5 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>alfresco-core</artifactId>
<name>Alfresco Core</name>
<description>Alfresco core libraries and utils</description>
@@ -7,28 +8,14 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>9.1</version>
<version>7.199.314</version>
</parent>
<dependencies>
<!-- Jakarta... -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>
<!-- REPO-5047 - Replaces org.apache.geronimo.specs:geronimo-jta_1.1_spec -->
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
@@ -37,10 +24,12 @@
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -65,6 +54,7 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${dependency.spring.version}</version>
<!-- exclude spring-jcl which is brought in by spring-core -->
<!-- see https://issues.alfresco.com/jira/browse/REPO-4774 -->
<exclusions>
@@ -77,10 +67,12 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${dependency.spring.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
<!-- exclude c3p0 -->
<!-- see https://issues.alfresco.com/jira/browse/REPO-3447 -->
<exclusions>
@@ -94,20 +86,42 @@
<groupId>org.alfresco.surf</groupId>
<artifactId>spring-surf-core-configservice</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.guessencoding</groupId>
<artifactId>guessencoding</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.5</version>
</dependency>
<!-- provided dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
@@ -120,24 +134,40 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4-DBCP330</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>@{project.version}</tagNameFormat>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>

View File

@@ -322,7 +322,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
try
{
keyInfoManager = getKeyInfoManager(getKeyStoreParameters());
keyInfoManager = getKeyInfoManager(getKeyMetaDataFileLocation());
KeyStore ks = loadKeyStore(keyStoreParameters, keyInfoManager);
logger.debug("Initializing key managers");
@@ -355,7 +355,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
try
{
keyInfoManager = getKeyInfoManager(getKeyStoreParameters());
keyInfoManager = getKeyInfoManager(getKeyMetaDataFileLocation());
KeyStore ks = loadKeyStore(getKeyStoreParameters(), keyInfoManager);
logger.debug("Initializing trust managers");
@@ -376,7 +376,12 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
}
}
}
protected String getKeyMetaDataFileLocation()
{
return keyStoreParameters.getKeyMetaDataFileLocation();
}
protected InputStream getKeyStoreStream(String location) throws FileNotFoundException
{
if(location == null)
@@ -391,17 +396,9 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
return new FileOutputStream(getKeyStoreParameters().getLocation());
}
protected KeyInfoManager getKeyInfoManager(KeyStoreParameters keyStoreParameters) throws IOException
protected KeyInfoManager getKeyInfoManager(String metadataFileLocation) throws FileNotFoundException, IOException
{
return new KeyInfoManager(keyStoreParameters, keyResourceLoader);
}
@Deprecated
protected KeyInfoManager getKeyInfoManager(String metadataFileLocation) throws IOException
{
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setKeyMetaDataFileLocation(metadataFileLocation);
return new KeyInfoManager(keyStoreParameters, keyResourceLoader);
return new KeyInfoManager(metadataFileLocation, keyResourceLoader);
}
protected KeyMap cacheKeys(KeyStore ks, KeyInfoManager keyInfoManager)
@@ -566,7 +563,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
try
{
keyInfoManager = getKeyInfoManager(keyStoreParameters);
keyInfoManager = getKeyInfoManager(keyStoreParameters.getKeyMetaDataFileLocation());
ks = loadKeyStore(keyStoreParameters, keyInfoManager);
// Loaded
}
@@ -638,7 +635,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
try
{
keyInfoManager = getKeyInfoManager(getKeyStoreParameters());
keyInfoManager = getKeyInfoManager(getKeyMetaDataFileLocation());
Key key = getSecretKey(keyInfoManager.getKeyInformation(keyAlias));
encryptionKeysRegistry.registerKey(keyAlias, key);
keys.setKey(keyAlias, key);
@@ -681,7 +678,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
{
if(!keyStoreExists(keyStoreParameters.getLocation()))
{
keyInfoManager = getKeyInfoManager(keyStoreParameters);
keyInfoManager = getKeyInfoManager(keyStoreParameters.getKeyMetaDataFileLocation());
KeyStore ks = initialiseKeyStore(keyStoreParameters.getType(), keyStoreParameters.getProvider());
String keyStorePassword = keyInfoManager.getKeyStorePassword();
@@ -689,7 +686,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
{
throw new AlfrescoRuntimeException("Key store password is null for keystore at location "
+ getKeyStoreParameters().getLocation()
+ ". Either specify it as a JVM property or in key store meta data location.");
+ ", key store meta data location" + getKeyMetaDataFileLocation());
}
for(String keyAlias : keys.getKeyAliases())
@@ -768,13 +765,8 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
}
}
protected Key getSecretKey(KeyInformation keyInformation) throws AlfrescoRuntimeException, NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException
protected Key getSecretKey(KeyInformation keyInformation) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException
{
if (keyInformation == null)
{
throw new AlfrescoRuntimeException("Unable to get secret key: no key information is provided");
}
byte[] keyData = keyInformation.getKeyData();
if(keyData == null)
@@ -804,7 +796,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
writeLock.lock();
try
{
keyInfoManager = getKeyInfoManager(getKeyStoreParameters());
keyInfoManager = getKeyInfoManager(getKeyMetaDataFileLocation());
KeyStore ks = loadKeyStore(getKeyStoreParameters(), keyInfoManager);
// loading Key
@@ -993,7 +985,7 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
public static class KeyInfoManager
{
private KeyResourceLoader keyResourceLoader;
private KeyStoreParameters keyStoreParameters;
private String metadataFileLocation;
private Properties keyProps;
private String keyStorePassword = null;
private Map<String, KeyInformation> keyInfo;
@@ -1013,10 +1005,10 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
}
}
KeyInfoManager(KeyStoreParameters keyStoreParameters, KeyResourceLoader keyResourceLoader) throws IOException, FileNotFoundException
KeyInfoManager(String metadataFileLocation, KeyResourceLoader keyResourceLoader) throws IOException, FileNotFoundException
{
this.keyResourceLoader = keyResourceLoader;
this.keyStoreParameters = keyStoreParameters;
this.metadataFileLocation = metadataFileLocation;
keyInfo = new HashMap<String, KeyInformation>(2);
loadKeyMetaData();
}
@@ -1033,73 +1025,31 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
* Where required, <tt>null</tt> values must be inserted into the map to indicate the presence
* of a key that is not protected by a password. They entry for {@link #KEY_KEYSTORE_PASSWORD}
* is required if the keystore is password protected.
*
* WARNING. Storing passwords (keyMetaDataFileLocation) on the file system is not following best security practices.
*
* <p/>Loading of keys info from system (JVM) properties takes precedence over metadata file.
* <p/>Set the unique ID of the keystore and remove the metadata file location property to use JVM properties lookup instead. The property lookup format is the following:
* <ul>
* <li>[keystore-id].password - keystore password</li>
* <li>[keystore-id].aliases - comma separated list of aliases for the keys in the keystore</li>
* <li>[keystore-id].[alias].keyData - key data bytes in base64</li>
* <li>[keystore-id].[alias].algorithm - key algorithm</li>
* <li>[keystore-id].[alias].password - key password</li>
* </ul>
*
*/
protected void loadKeyMetaData() throws IOException, FileNotFoundException
{
if (keyStoreParameters.getId() != null &&
(keyStoreParameters.getKeyMetaDataFileLocation() == null ||
keyStoreParameters.getKeyMetaDataFileLocation().isEmpty()))
keyProps = keyResourceLoader.loadKeyMetaData(metadataFileLocation);
if(keyProps != null)
{
Properties jvmProperties = System.getProperties();
keyStorePassword = jvmProperties.getProperty(keyStoreParameters.getId() + ".password");
String aliases = jvmProperties.getProperty(keyStoreParameters.getId() + ".aliases");
if (aliases == null || aliases.isEmpty())
String aliases = keyProps.getProperty("aliases");
if(aliases == null)
{
logger.warn("No aliases were specified for " + keyStoreParameters.getId()
+ " keystore");
throw new AlfrescoRuntimeException("Passwords file must contain an aliases key");
}
else
this.keyStorePassword = keyProps.getProperty(KEY_KEYSTORE_PASSWORD);
StringTokenizer st = new StringTokenizer(aliases, ",");
while(st.hasMoreTokens())
{
StringTokenizer st = new StringTokenizer(aliases, ",");
while(st.hasMoreTokens())
{
String keyAlias = st.nextToken();
keyInfo.put(keyAlias, loadKeyInformation(jvmProperties, keyAlias, keyStoreParameters.getId() + "."));
}
String keyAlias = st.nextToken();
keyInfo.put(keyAlias, loadKeyInformation(keyAlias));
}
}
else
{
logger.warn("Storing passwords (" + keyStoreParameters.getKeyMetaDataFileLocation()
+ ") on the file system is not following best security practices." +
" Please refer to documentation and use JVM properties instead");
keyProps = keyResourceLoader.loadKeyMetaData(keyStoreParameters.getKeyMetaDataFileLocation());
if(keyProps != null)
{
String aliases = keyProps.getProperty("aliases");
if(aliases == null)
{
throw new AlfrescoRuntimeException("Passwords file must contain an aliases key");
}
this.keyStorePassword = keyProps.getProperty(KEY_KEYSTORE_PASSWORD);
StringTokenizer st = new StringTokenizer(aliases, ",");
while(st.hasMoreTokens())
{
String keyAlias = st.nextToken();
keyInfo.put(keyAlias, loadKeyInformation(keyProps, keyAlias, ""));
}
}
else
{
// TODO
//throw new FileNotFoundException("Cannot find key metadata file " + getKeyMetaDataFileLocation());
}
// TODO
//throw new FileNotFoundException("Cannot find key metadata file " + getKeyMetaDataFileLocation());
}
}
@@ -1117,11 +1067,11 @@ public class AlfrescoKeyStoreImpl implements AlfrescoKeyStore
this.keyProps.remove(keyAlias);
}
protected KeyInformation loadKeyInformation(Properties keyProps, String keyAlias, String prefix)
protected KeyInformation loadKeyInformation(String keyAlias)
{
String keyPassword = keyProps.getProperty(prefix + keyAlias + ".password");
String keyData = keyProps.getProperty(prefix + keyAlias + ".keyData");
String keyAlgorithm = keyProps.getProperty(prefix + keyAlias + ".algorithm");
String keyPassword = keyProps.getProperty(keyAlias + ".password");
String keyData = keyProps.getProperty(keyAlias + ".keyData");
String keyAlgorithm = keyProps.getProperty(keyAlias + ".algorithm");
byte[] keyDataBytes = null;
if(keyData != null && !keyData.equals(""))

View File

@@ -22,15 +22,12 @@ import org.alfresco.util.PropertyCheck;
/**
* Stores Java keystore initialisation parameters.
*
* WARNING. Storing passwords (keyMetaDataFileLocation) on the file system is not following best security practices.
*
*
* @since 4.0
*
*/
public class KeyStoreParameters
{
private String id;
private String name;
private String type;
private String provider;
@@ -41,40 +38,8 @@ public class KeyStoreParameters
{
}
/**
* WARNING. Storing passwords (keyMetaDataFileLocation) on the file system is not following best security practices.
*
* <p/>Set the unique ID of the keystore and aliases to use Java system properties lookup instead. The property lookup format is:
* <ul>
* <li>[keystore-id].password - keystore password</li>
* <li>[keystore-id].aliases - comma separated list of aliases for the keys in the keystore</li>
* <li>[keystore-id].[alias].keydata - key data bytes in base64</li>
* <li>[keystore-id].[alias].algorithm - key algorithm</li>
* <li>[keystore-id].[alias].password - key password</li>
* </ul>
*
* Loading of keys info from system (JVM) properties takes precedence over metadata file.
*
* @param id unique identifier of the keystore
* @param name human readable name of the keystore
* @param type type of the keystore
* @param keyStoreProvider keystore provider
* @param keyMetaDataFileLocation path to keystore metadata file on the file system
* @param location path to keystore on the file system
*/
public KeyStoreParameters(String id, String name, String type, String keyStoreProvider,
String keyMetaDataFileLocation, String location)
{
this(name, type, keyStoreProvider, keyMetaDataFileLocation, location);
this.id = id;
}
/**
* Use {@link #KeyStoreParameters(String, String, String, String, String, String)} instead
*/
@Deprecated()
public KeyStoreParameters(String name, String type, String keyStoreProvider,
String keyMetaDataFileLocation, String location)
String keyMetaDataFileLocation, String location)
{
super();
this.name = name;
@@ -84,13 +49,8 @@ public class KeyStoreParameters
this.location = location;
}
public void init()
{
if (!PropertyCheck.isValidPropertyString(getId()))
{
setId(null);
}
if (!PropertyCheck.isValidPropertyString(getLocation()))
{
setLocation(null);
@@ -109,11 +69,6 @@ public class KeyStoreParameters
}
}
public String getId()
{
return id;
}
public String getName()
{
return name;
@@ -138,12 +93,7 @@ public class KeyStoreParameters
{
return location;
}
public void setId(String id)
{
this.id = id;
}
public void setName(String name)
{
this.name = name;

View File

@@ -113,7 +113,7 @@ public abstract class AbstractCannedQuery<R> implements CannedQuery<R>
final List<List<R>> finalPages = pages;
// Has more items beyond requested pages ? ... ie. at least one more page (with at least one result)
final boolean hasMoreItems = (rawResults.size() > pagingDetails.getResultsRequiredForPaging()) || (totalCount.getFirst() > pagingDetails.getResultsRequiredForPaging());
final boolean hasMoreItems = (rawResults.size() > pagingDetails.getResultsRequiredForPaging());
results = new CannedQueryResults<R>()
{

View File

@@ -24,10 +24,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.time.Duration;
import java.util.concurrent.atomic.AtomicLong;
import org.alfresco.api.AlfrescoPublicApi;
import org.alfresco.api.AlfrescoPublicApi;
import org.alfresco.error.AlfrescoRuntimeException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -350,17 +348,6 @@ public class TempFileProvider
{
public static final String KEY_PROTECT_HOURS = "protectHours";
public static final String KEY_DIRECTORY_NAME = "directoryName";
public static final String KEY_MAX_FILES_TO_DELETE = "maxFilesToDelete";
public static final String KEY_MAX_TIME_TO_RUN = "maxTimeToRun";
/** The time when the job has actually started */
private static long jobStartTime;
/** The maximum number of files that can be deleted when the cleaning jobs runs */
private static AtomicLong maxFilesToDelete;
/** The maximum time allowed for the cleaning job to run */
private static Duration maxTimeToRun;
/**
* Gets a list of all files in the {@link TempFileProvider#ALFRESCO_TEMP_FILE_DIR temp directory}
@@ -389,59 +376,24 @@ public class TempFileProvider
}
String directoryName = (String) context.getJobDetail().getJobDataMap().get(KEY_DIRECTORY_NAME);
try
{
final Object oMaxFilesToDelete = context.getJobDetail().getJobDataMap().get(KEY_MAX_FILES_TO_DELETE);
if (oMaxFilesToDelete != null)
{
final String strMaxFilesToDelete = (String) oMaxFilesToDelete;
maxFilesToDelete = new AtomicLong(Long.parseLong(strMaxFilesToDelete));
logger.debug("Set the maximum number of temp files to be deleted to: " + maxFilesToDelete.get());
}
else
{
logger.debug("No maximum number of files was configured for the temp file clean job.");
}
}
catch (Exception e)
{
logger.warn(e);
throw new JobExecutionException("Invalid job data, maxFilesToDelete");
}
try
{
final Object oMaxTimeToRun = context.getJobDetail().getJobDataMap().get(KEY_MAX_TIME_TO_RUN);
if (oMaxTimeToRun != null)
{
final String strMaxTimeToRun = (String) oMaxTimeToRun;
maxTimeToRun = Duration.parse(strMaxTimeToRun);
logger.debug("Set the maximum duration time of the temp file clean job to: " + maxTimeToRun);
}
else
{
logger.debug("No maximum duration was configured for the temp file clean job.");
}
}
catch (Exception e)
{
logger.warn(e);
throw new JobExecutionException("Invalid job data, maxTimeToRun");
}
if (directoryName == null)
{
directoryName = ALFRESCO_TEMP_FILE_DIR;
}
jobStartTime = System.currentTimeMillis();
long aFewHoursBack = jobStartTime - (3600L * 1000L * protectHours);
long aLongTimeBack = jobStartTime - (24 * 3600L * 1000L);
long now = System.currentTimeMillis();
long aFewHoursBack = now - (3600L * 1000L * protectHours);
long aLongTimeBack = now - (24 * 3600L * 1000L);
File tempDir = TempFileProvider.getTempDir(directoryName);
int count = removeFiles(tempDir, aFewHoursBack, aLongTimeBack, false); // don't delete this directory
logger.debug("Removed " + count + " files from temp directory: " + tempDir);
// done
if (logger.isDebugEnabled())
{
logger.debug("Removed " + count + " files from temp directory: " + tempDir);
}
}
/**
@@ -477,23 +429,29 @@ public class TempFileProvider
}
// list all files
File[] files = directory.listFiles();
File[] filesToIterate = files != null ? files : new File[0];
int count = 0;
for (File file : filesToIterate)
for (File file : files)
{
if (shouldTheDeletionStop())
{
break;
}
if (file.isDirectory())
{
// long life for this folder and its children
// OR
// enter subdirectory and clean it out and remove itsynetics
int countRemoved = removeFiles(file,
isLongLifeTempDir(file) ? longLifeBefore : removeBefore, longLifeBefore,
true);
logger.debug("Removed " + countRemoved + " files from " + (isLongLifeTempDir(file) ? "temp " : " ") + "directory: " + file);
if(isLongLifeTempDir(file))
{
// long life for this folder and its children
int countRemoved = removeFiles(file, longLifeBefore, longLifeBefore, true);
if (logger.isDebugEnabled())
{
logger.debug("Removed " + countRemoved + " files from temp directory: " + file);
}
}
else
{
// enter subdirectory and clean it out and remove itsynetics
int countRemoved = removeFiles(file, removeBefore, longLifeBefore, true);
if (logger.isDebugEnabled())
{
logger.debug("Removed " + countRemoved + " files from directory: " + file);
}
}
}
else
{
@@ -506,19 +464,11 @@ public class TempFileProvider
// it is a file - attempt a delete
try
{
logger.debug("Deleting temp file: " + file);
if(logger.isDebugEnabled())
{
logger.debug("Deleting temp file: " + file);
}
file.delete();
if (maxFilesToDelete != null)
{
maxFilesToDelete.decrementAndGet();
logger.debug(maxFilesToDelete.get() + " files left to delete.");
}
if (maxTimeToRun != null)
{
logger.debug((jobStartTime + maxTimeToRun.toMillis() - System.currentTimeMillis()) + " millis left to delete.");
}
count++;
}
catch (Throwable e)
@@ -537,8 +487,10 @@ public class TempFileProvider
if(listing != null && listing.length == 0)
{
// directory is empty
logger.debug("Deleting empty directory: " + directory);
// ignore the limits for empty directories that just need cleanup
if(logger.isDebugEnabled())
{
logger.debug("Deleting empty directory: " + directory);
}
directory.delete();
}
}
@@ -547,21 +499,8 @@ public class TempFileProvider
logger.info("Failed to remove temp directory: " + directory, e);
}
}
// done
return count;
}
/**
* Decides whether or not the job should continue iterating through the temp files and delete.
* It achieves the result by checking the number of files deleted against the limit and whether
* or not it is within the time limit
*
* @return true or false
*/
private static boolean shouldTheDeletionStop()
{
return maxFilesToDelete != null && maxFilesToDelete.get() <= 0
|| maxTimeToRun != null && ((jobStartTime + maxTimeToRun.toMillis()) < System
.currentTimeMillis());
}
}
}

View File

@@ -424,7 +424,6 @@ public abstract class AbstractAsynchronouslyRefreshedCache<T>
@Override
public Void call()
{
liveLock.writeLock().lock();
try
{
doCall();
@@ -445,10 +444,6 @@ public abstract class AbstractAsynchronouslyRefreshedCache<T>
}
return null;
}
finally
{
liveLock.writeLock().unlock();
}
}
private void doCall() throws Exception

View File

@@ -18,10 +18,7 @@
*/
package org.alfresco.util.transaction;
import static java.util.Collections.emptyList;
import java.lang.reflect.Method;
import java.util.Collection;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -39,7 +36,6 @@ import org.springframework.transaction.CannotCreateTransactionException;
import org.springframework.transaction.NoTransactionException;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.transaction.interceptor.TransactionAttribute;
@@ -138,9 +134,7 @@ public class SpringAwareUserTransaction
private long threadId = Long.MIN_VALUE;
/** make sure that we clean up the thread transaction stack properly */
private boolean finalized = false;
private Collection<String> labels = emptyList();
/**
* Creates a user transaction that defaults to {@link TransactionDefinition#PROPAGATION_REQUIRED}.
*
@@ -205,21 +199,6 @@ public class SpringAwareUserTransaction
return null;
}
/**
* Associate one or more labels with this transaction attribute.
* <p>This may be used for applying specific transactional behavior
* or follow a purely descriptive nature.
*/
public void setLabels(Collection<String> labels) {
this.labels = labels;
}
@Override
public Collection<String> getLabels()
{
return this.labels;
}
/**
* The {@link UserTransaction } must rollback regardless of the error. The
* {@link #rollback() rollback} behaviour is implemented by simulating a caught
@@ -431,15 +410,8 @@ public class SpringAwareUserTransaction
// begin a transaction
try
{
TransactionManager tm = getTransactionManager();
if (tm != null && !(tm instanceof PlatformTransactionManager))
{
throw new IllegalStateException("Specified transaction manager is not a PlatformTransactionManager: " + tm);
}
internalTxnInfo = createTransactionIfNecessary(
(PlatformTransactionManager) tm, getTransactionAttribute(null, null), getName());
getTransactionManager(), getTransactionAttribute(null, null), getName());
}
catch (CannotCreateTransactionException e)
{

View File

@@ -1,388 +0,0 @@
/*
* Copyright (C) 2005-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.encryption;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class AlfrescoKeyStoreTest
{
@Mock
private EncryptionKeysRegistry encryptionKeysRegistry;
@Rule
public TestName testName = new TestName();
@Test
public void testSysPropConfig()
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
String alias2 = "mykey2";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-2.jks");
System.setProperty(keyStoreId + "." + "password", "ksPwd2");
System.setProperty(keyStoreId + "." + "aliases", alias1 + "," + alias2);
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "aliasPwd1");
System.setProperty(keyStoreId + "." + alias2 + "." + "password", "aliasPwd2");
try
{
AlfrescoKeyStore alfrescoKeyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
Set<String> expectedAliases = new HashSet<>();
expectedAliases.add(alias1);
expectedAliases.add(alias2);
Assert.assertEquals("The aliases are not correct", expectedAliases, alfrescoKeyStore.getKeyAliases());
Assert.assertNotNull("Failed to retrieve a key from keystore.", alfrescoKeyStore.getKey(alias1));
Assert.assertNotNull("Failed to retrieve a key from keystore.", alfrescoKeyStore.getKey(alias2));
}
finally
{
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
System.clearProperty(keyStoreId + "." + alias2 + "." + "password");
}
}
@Test
public void testSysPropConfigWithoutAliases()
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "password", "ksPwd1");
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "aliasPwd1");
try
{
AlfrescoKeyStore keyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
Assert.assertNull(keyStore.getKey(alias1));
}
finally
{
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
}
}
@Test
public void testMetaDataFileConfig()
{
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/ks1-metadata.properties");
AlfrescoKeyStore alfrescoKeyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
Set<String> expectedAliases = new HashSet<>();
expectedAliases.add(alias1);
Assert.assertEquals("The aliases are not correct", expectedAliases, alfrescoKeyStore.getKeyAliases());
Assert.assertNotNull("Failed to retrieve a key from keystore.", alfrescoKeyStore.getKey(alias1));
}
/**
* Config via System props should be default, but if the metadata file location is set, it will be used instead.
* This is done to maintain backwards compatibility and simplify testing use cases.
*/
@Test(expected = AlfrescoRuntimeException.class)
public void testConfigBothSystemAndFile()
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
String alias2 = "mykey2";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-2.jks");
// use metadata file from keystore with one key
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/ks1-metadata.properties");
System.setProperty(keyStoreId + "." + "password", "ksPwd2");
System.setProperty(keyStoreId + "." + "aliases", alias1 + "," + alias2);
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "aliasPwd1");
System.setProperty(keyStoreId + "." + alias2 + "." + "password", "aliasPwd2");
try
{
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
finally
{
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
System.clearProperty(keyStoreId + "." + alias2 + "." + "password");
}
}
@Test(expected = AlfrescoRuntimeException.class)
public void testValidateKeysWrongAliasMetadataFile() throws Exception
{
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/wrong-alias-metadata.properties");
AlfrescoKeyStoreImpl alfrescoKeyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
alfrescoKeyStore.setKeysToValidate(Collections.singleton(alias1));
alfrescoKeyStore.setValidateKeyChanges(true);
alfrescoKeyStore.setEncryptionKeysRegistry(encryptionKeysRegistry);
alfrescoKeyStore.validateKeys();
}
@Test
public void testEmptyKeysMetadataFile()
{
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/empty-alias-metadata.properties");
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
@Test(expected = AlfrescoRuntimeException.class)
public void testWrongKeystorePasswordMetadataFile()
{
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/wrong-keystore-password-metadata.properties");
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
@Test(expected = AlfrescoRuntimeException.class)
public void testWrongKeyPasswordMetadataFile()
{
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
keyStoreParameters.setKeyMetaDataFileLocation("classpath:keystore-tests/wrong-key-password-metadata.properties");
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
@Test(expected = AlfrescoRuntimeException.class)
public void testValidateKeysWrongAliasSysProps() throws Exception
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "aliases", "wrong-alias,another-wrong-alias");
System.setProperty(keyStoreId + "." + "password", "ksPwd1");
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "aliasPwd1");
try
{
AlfrescoKeyStoreImpl alfrescoKeyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
alfrescoKeyStore.setValidateKeyChanges(true);
alfrescoKeyStore.setKeysToValidate(Collections.singleton(alias1));
alfrescoKeyStore.setEncryptionKeysRegistry(encryptionKeysRegistry);
alfrescoKeyStore.validateKeys();
}
finally
{
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
}
}
@Test
public void testEmptyKeysSysProps()
{
String keyStoreId = testName.getMethodName() + "-keystore";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "aliases", "empty-alias,another-empty-alias");
System.setProperty(keyStoreId + "." + "password", "ksPwd1");
try
{
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
finally
{
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + "password");
}
}
@Test(expected = AlfrescoRuntimeException.class)
public void testWrongKeystorePasswordSysProps()
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "aliases", alias1);
System.setProperty(keyStoreId + "." + "password", "wrong-password");
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "aliasPwd1");
try
{
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
finally
{
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
}
}
@Test(expected = AlfrescoRuntimeException.class)
public void testWrongKeyPasswordSysProps()
{
String keyStoreId = testName.getMethodName() + "-keystore";
String alias1 = "mykey1";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "aliases", alias1);
System.setProperty(keyStoreId + "." + "password", "ksPwd1");
System.setProperty(keyStoreId + "." + alias1 + "." + "password", "wrong-key-password");
try
{
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
finally
{
System.clearProperty(keyStoreId + "." + "aliases");
System.clearProperty(keyStoreId + "." + "password");
System.clearProperty(keyStoreId + "." + alias1 + "." + "password");
}
}
/**
* No exception is expected. An empty keystore can be created.
*/
@Test
public void testConfigEmptyKeystore()
{
String keyStoreId = testName.getMethodName() + "-keystore";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:non-existing-path/some-keystore.jks");
new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
}
@Test(expected = AlfrescoRuntimeException.class)
public void testValidateKeysEmptyAliasSysProps() throws Exception
{
String keyStoreId = testName.getMethodName() + "-keystore";
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
keyStoreParameters.setId(keyStoreId);
keyStoreParameters.setName(testName.getMethodName());
keyStoreParameters.setType("JCEKS");
keyStoreParameters.setProvider("SunJCE");
keyStoreParameters.setLocation("classpath:keystore-tests/ks-test-1.jks");
System.setProperty(keyStoreId + "." + "password", "ksPwd1");
try
{
AlfrescoKeyStoreImpl alfrescoKeyStore = new AlfrescoKeyStoreImpl(keyStoreParameters, new SpringKeyResourceLoader());
alfrescoKeyStore.setValidateKeyChanges(true);
alfrescoKeyStore.setKeysToValidate(Collections.singleton("non-existing-alias"));
alfrescoKeyStore.setEncryptionKeysRegistry(encryptionKeysRegistry);
alfrescoKeyStore.validateKeys();
}
finally
{
System.clearProperty(keyStoreId + "." + "password");
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2020 Alfresco Software Limited.
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -74,22 +74,6 @@ public class VersionNumberTest extends TestCase
{
// OK
}
try
{
new VersionNumber("1.2.3-M4");
fail("Should not have created an invalid version");
} catch (Exception exception)
{
// OK
}
try
{
new VersionNumber("1.2.3-A4");
fail("Should not have created an invalid version");
} catch (Exception exception)
{
// OK
}
}
public void testEquals()

View File

@@ -1,28 +0,0 @@
/*
* Copyright (C) 2005-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.util.testing.category;
/**
* Category marker for tests that fail very frequently so are excluded from the build. Only run by developers while
* working on a specific feature/class. An issue should be raised to identify and fix the reason the test fails.
* @see IntermittentlyFailingTests for tests that fail intermittently but not that frequently
*/
public interface FrequentlyFailingTests extends NonBuildTests
{
}

View File

@@ -1,29 +0,0 @@
/*
* Copyright (C) 2005-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.util.testing.category;
/**
* Category marker for tests that intermittently fail, but not that frequently. Still included in the build. If the
* instability increases or we have time to investigate, an issue should be raised to investigate and possibly
* be switch to {@link FrequentlyFailingTests}. Use by developers to aid in working out if the build job should just be
* retried.
*/
public interface IntermittentlyFailingTests
{
}

View File

@@ -1,2 +0,0 @@
aliases=empty-alias
keystore.password=ksPwd1

View File

@@ -1,3 +0,0 @@
aliases=mykey1
keystore.password=ksPwd1
mykey1.password=aliasPwd1

View File

@@ -1,24 +0,0 @@
The keystores contained in this folder are used by tests.
==================
== ks-test-1.ks ==
==================
Keystore password: ksPwd1
Keystore type: JCEKS
Keystore provider: SunJCE
Your keystore contains 1 entry
mykey1: aliasPwd1
==================
== ks-test-2.ks ==
==================
Keystore password: ksPwd2
Keystore type: JCEKS
Keystore provider: SunJCE
Your keystore contains 2 entries
mykey1: aliasPwd1
mykey2: aliasPwd2

View File

@@ -1,3 +0,0 @@
aliases=non-existing-alias
keystore.password=ksPwd1
mykey1.password=aliasPwd1

View File

@@ -1,3 +0,0 @@
aliases=mykey1
keystore.password=ksPwd1
mykey1.password=wrong-key-password

View File

@@ -1,3 +0,0 @@
aliases=mykey1
keystore.password=wrong-password
mykey1.password=aliasPwd1

View File

@@ -7,11 +7,11 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-community-repo</artifactId>
<version>9.1</version>
<version>7.199.314</version>
</parent>
<properties>
<!-- Files to exclude from SonarQube analysis -->
<!-- Files to exclude from SonarQube analysis -->
<sonar.exclusions>
source/java/org/alfresco/repo/search/impl/parsers/CMIS*er.java,
source/java/org/alfresco/repo/search/impl/parsers/FTSParser.java,
@@ -64,6 +64,7 @@
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
@@ -108,6 +109,13 @@
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>@{project.version}</tagNameFormat>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
@@ -125,30 +133,12 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- Jakarta... -->
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
</dependency>
<!-- REPO-5047 - Replaces com.sun.activation:javax.activation -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</dependency>
<!-- REPO-5047 - Replaces javax.annotation:javax.annotation-api -->
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</dependency>
<!-- REPO-5047 - Replaces org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec -->
<dependency>
<groupId>jakarta.jws</groupId>
<artifactId>jakarta.jws-api</artifactId>
</dependency>
<!--
| compile dependencies
-->
<dependency>
<groupId>org.jibx</groupId>
<artifactId>jibx-run</artifactId>
@@ -156,71 +146,36 @@
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<artifactId>jackson-annotations</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>${dependency.antlr.version}</version>
<version>3.5.2</version>
</dependency>
<!-- REPO-5047 - Replaces org.codehaus.woodstox:woodstox-core-asl -->
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>6.2.4</version>
</dependency>
<!-- the cxf libs were updated, see dependencyManagement section -->
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-impl</artifactId>
<version>${dependency.opencmis.version}</version>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
</exclusion>
<!-- Duplicates classes from com.fasterxml.woodstox:woodstox-core -->
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</exclusion>
<!-- [ACS-544] Excluded as conflicts with JDK9+ as it includes javax.transaction -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
</exclusions>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-server-bindings</artifactId>
<version>${dependency.opencmis.version}</version>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.jws:jakarta.jws-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.annotation:jakarta.annotation-api -->
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
<!-- Duplicates classes from com.sun.activation:jakarta.activation -->
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- This is now deployed at:
@@ -239,6 +194,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0-alfresco-patched-20191004</version>
</dependency>
<!-- Tika -->
<dependency>
@@ -263,26 +219,6 @@
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.jws:jakarta.jws-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.transaction:jakarta.transaction-api -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
<!-- Duplicates classes from jakarta.annotation:jakarta.annotation-api -->
<exclusion>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</exclusion>
<!-- Duplicates classes from com.sun.activation:jakarta.activation -->
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
@@ -290,16 +226,19 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>gunit</artifactId>
<scope>test</scope>
<version>3.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.2.4</version>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -28,8 +28,8 @@ package org.alfresco.opencmis.dictionary;
import java.io.Serializable;
import java.util.Collection;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
@@ -45,14 +45,14 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param not Boolean
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E;
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E;
/**
* @param value Serializable
@@ -61,7 +61,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param value Serializable
@@ -70,7 +70,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param not Boolean
@@ -78,7 +78,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E;
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E;
/**
* @param value PredicateMode
@@ -87,7 +87,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param value Serializable
@@ -96,7 +96,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param value Serializable
@@ -105,7 +105,7 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param value Serializable
@@ -113,14 +113,14 @@ public interface CMISPropertyLuceneBuilder
* @return the query - may be null if no query is required
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E;
/**
* @param lqpa TODO
* @return the sort field
* @throws E
*/
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa) throws E;
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa) throws E;
/**
* @return the field name

View File

@@ -27,9 +27,9 @@ package org.alfresco.opencmis.mapping;
import java.io.Serializable;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.namespace.QName;
@@ -66,13 +66,13 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
protected abstract QName getQNameForExists();
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
return lqpa.getFieldQuery(getLuceneFieldName(), getValueAsString(value), AnalysisMode.IDENTIFIER, luceneFunction);
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{
@@ -85,7 +85,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -93,7 +93,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -101,7 +101,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -109,7 +109,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -117,7 +117,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -131,7 +131,7 @@ public abstract class AbstractSimpleLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa) throws E
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa) throws E
{
return getLuceneFieldName();
}

View File

@@ -29,9 +29,9 @@ import java.io.Serializable;
import java.util.Collection;
import org.alfresco.opencmis.dictionary.CMISPropertyLuceneBuilder;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.QueryParserExpressionAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserExpressionAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
/**
@@ -50,33 +50,33 @@ public class BaseLuceneBuilder implements CMISPropertyLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
{
QueryParserExpressionAdaptor<Q, E> expressionAdaptor = lqpa.getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> expressionAdaptor = lqpa.getExpressionAdaptor();
for(Serializable value : values)
{
expressionAdaptor.addOptional(buildLuceneEquality(lqpa, value, mode, LuceneFunction.FIELD));
@@ -92,25 +92,25 @@ public class BaseLuceneBuilder implements CMISPropertyLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
return lqpa.getNegatedQuery(buildLuceneEquality(lqpa, value, mode, luceneFunction));
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
throw new UnsupportedOperationException();
}
@@ -122,7 +122,7 @@ public class BaseLuceneBuilder implements CMISPropertyLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa) throws E
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa) throws E
{
throw new UnsupportedOperationException();
}

View File

@@ -29,9 +29,9 @@ import java.io.Serializable;
import org.alfresco.opencmis.dictionary.CMISDictionaryService;
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
@@ -56,13 +56,13 @@ public class BaseTypeIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
return lqpa.getFieldQuery("TYPE", getType(getValueAsString(value)), AnalysisMode.IDENTIFIER, luceneFunction);
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{

View File

@@ -27,7 +27,7 @@ package org.alfresco.opencmis.mapping;
import java.io.Serializable;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
@@ -52,7 +52,7 @@ public class DirectLuceneBuilder extends AbstractSimpleLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa) throws E
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa) throws E
{
String field = getLuceneFieldName();
// need to find the real field to use

View File

@@ -30,8 +30,8 @@ import java.util.Collection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.util.EqualsHelper;
@@ -58,7 +58,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (EqualsHelper.nullSafeEquals(value, value))
{
@@ -71,7 +71,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{
@@ -100,7 +100,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
@Override
@SuppressWarnings("unchecked")
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (value instanceof Comparable)
{
@@ -122,7 +122,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
@Override
@SuppressWarnings("unchecked")
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (value instanceof Comparable)
{
@@ -143,7 +143,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
{
boolean in = false;
for (Serializable value : values)
@@ -166,7 +166,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (!EqualsHelper.nullSafeEquals(value, value))
{
@@ -180,7 +180,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
@Override
@SuppressWarnings("unchecked")
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (value instanceof Comparable)
{
@@ -201,7 +201,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
@Override
@SuppressWarnings("unchecked")
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
if (value instanceof Comparable)
{
@@ -222,7 +222,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
if (value != null)
{
@@ -255,7 +255,7 @@ public class FixedValueLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa)
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
throw new UnsupportedOperationException();
}

View File

@@ -28,9 +28,9 @@ package org.alfresco.opencmis.mapping;
import java.io.Serializable;
import java.util.ArrayList;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
@@ -66,7 +66,7 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
return "ID";
}
private <Q, S, E extends Throwable> StoreRef getStore(QueryParserAdaptor<Q, S, E> lqpa)
private <Q, S, E extends Throwable> StoreRef getStore(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
ArrayList<StoreRef> stores = lqpa.getSearchParameters().getStores();
if(stores.size() < 1)
@@ -77,7 +77,7 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
return stores.get(0);
}
private <Q, S, E extends Throwable> String getValueAsString(QueryParserAdaptor<Q, S, E> lqpa, Serializable value)
private <Q, S, E extends Throwable> String getValueAsString(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value)
{
String nodeRefStr = null;
if(!NodeRef.isNodeRef((String)value))
@@ -97,7 +97,7 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(lqpa, value);
@@ -105,7 +105,7 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{
@@ -117,36 +117,36 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_ID + " can not be used in a 'greater than' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_ID
+ " can not be used in a 'greater than or equals' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_ID + " can not be used in a 'less than' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_ID + " can not be used in a 'less than or equals' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(lqpa, value);
@@ -160,7 +160,7 @@ public class ObjectIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa)
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
return getLuceneFieldName();
}

View File

@@ -29,9 +29,9 @@ import java.io.Serializable;
import org.alfresco.opencmis.dictionary.CMISDictionaryService;
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.apache.chemistry.opencmis.commons.PropertyIds;
@@ -72,8 +72,8 @@ public class ObjectTypeIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -83,7 +83,7 @@ public class ObjectTypeIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{
@@ -95,43 +95,43 @@ public class ObjectTypeIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_TYPE_ID + " can not be used in a 'greater than' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_TYPE_ID
+ " can not be used in a 'greater than or equals' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
return lqpa.getNegatedQuery(buildLuceneEquality(lqpa, value, mode, luceneFunction));
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_TYPE_ID + " can not be used in a 'less than' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
throw new CmisInvalidArgumentException("Property " + PropertyIds.OBJECT_TYPE_ID + " can not be used in a 'less than or equals' comparison");
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(value);
@@ -147,7 +147,7 @@ public class ObjectTypeIdLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa)
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
return getLuceneFieldName();
}

View File

@@ -28,9 +28,9 @@ package org.alfresco.opencmis.mapping;
import java.io.Serializable;
import java.util.ArrayList;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
@@ -60,7 +60,7 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
this.dictionaryService = dictionaryService;
}
private <Q, S, E extends Throwable> StoreRef getStore(QueryParserAdaptor<Q, S, E> lqpa)
private <Q, S, E extends Throwable> StoreRef getStore(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
ArrayList<StoreRef> stores = lqpa.getSearchParameters().getStores();
if(stores.size() < 1)
@@ -77,7 +77,7 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
return "PARENT";
}
private <Q, S, E extends Throwable> String getValueAsString(QueryParserAdaptor<Q, S, E> lqpa, Serializable value)
private <Q, S, E extends Throwable> String getValueAsString(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value)
{
String nodeRefStr = (String)value;
if(!NodeRef.isNodeRef((String)value))
@@ -93,8 +93,8 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, PredicateMode mode,
LuceneFunction luceneFunction) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(lqpa, value);
@@ -102,7 +102,7 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, Boolean not) throws E
{
if (not)
{
@@ -114,7 +114,7 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, Serializable value, Boolean not) throws E
{
String field = getLuceneFieldName();
String stringValue = getValueAsString(lqpa, value);
@@ -128,7 +128,7 @@ public class ParentLuceneBuilder extends BaseLuceneBuilder
}
@Override
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa)
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa)
{
return getLuceneFieldName();
}

View File

@@ -30,7 +30,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.impl.parsers.CMIS_FTSLexer;
import org.alfresco.repo.search.impl.parsers.CMIS_FTSParser;
import org.alfresco.repo.search.impl.parsers.FTSQueryException;

View File

@@ -34,9 +34,9 @@ import org.alfresco.opencmis.dictionary.CMISDictionaryService;
import org.alfresco.opencmis.dictionary.CMISNodeInfo;
import org.alfresco.opencmis.dictionary.PropertyDefinitionWrapper;
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.QueryConstants;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
import org.alfresco.repo.search.impl.querymodel.FunctionArgument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
@@ -258,8 +258,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
this.score = score;
}
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneEquality(lqpa, value, mode, luceneFunction);
@@ -272,7 +272,7 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* buildLuceneExists(org.alfresco.repo.search.impl.lucene.LuceneQueryParser,
* org.alfresco.service.namespace.QName, java.lang.Boolean)
*/
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneExists(lqpa, not);
@@ -287,8 +287,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneGreaterThan(lqpa, value, mode, luceneFunction);
@@ -303,8 +303,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneGreaterThanOrEquals(lqpa, value, mode, luceneFunction);
@@ -319,8 +319,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* java.lang.Boolean,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values,
Boolean not, PredicateMode mode) throws E
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values,
Boolean not, PredicateMode mode) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneIn(lqpa, values, not, mode);
@@ -335,8 +335,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneInequality(lqpa, value, mode, luceneFunction);
@@ -351,8 +351,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneLessThan(lqpa, value, mode, luceneFunction);
@@ -367,8 +367,8 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* org.alfresco.repo.search.impl.querymodel.PredicateMode)
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value,
PredicateMode mode, LuceneFunction luceneFunction) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().buildLuceneLessThanOrEquals(lqpa, value, mode, luceneFunction);
@@ -382,7 +382,7 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* org.alfresco.service.namespace.QName, java.io.Serializable,
* java.lang.Boolean)
*/
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not)
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not)
throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
@@ -395,7 +395,7 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
* @see org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext#
* getLuceneSortField(org.alfresco.service.namespace.QName)
*/
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E
{
PropertyDefinitionWrapper propertyDef = cmisDictionaryService.findProperty(propertyName);
return propertyDef.getPropertyLuceneBuilder().getLuceneSortField(lqpa);

View File

@@ -31,9 +31,6 @@ import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentStreamListener;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.DirectAccessUrl;
import java.util.Date;
/**
* Provides low-level retrieval of content
@@ -238,29 +235,4 @@ public interface ContentStore
* if an IO error occurs
*/
public boolean delete(String contentUrl);
/**
* Gets a presigned URL to directly access a binary content. It is up to the actual store
* implementation if it can fulfil this request with an expiry time or not.
*
* @param contentUrl A content store URL
* @param expiresAt An optional expiry date, so the direct access url would become invalid when the expiry date is reached
* @return A direct access URL object for a binary content
* @throws UnsupportedOperationException if the store is unable to provide the information
*/
default DirectAccessUrl getDirectAccessUrl(String contentUrl, Date expiresAt)
{
throw new UnsupportedOperationException(
"Retrieving direct access URLs is not supported by this content store.");
}
/**
* Checks if the store supports the retrieving of direct access URLs.
*
* @return true if direct access URLs retrieving is supported, false otherwise
*/
default boolean isDirectAccessSupported()
{
return false;
}
}

View File

@@ -662,6 +662,7 @@ public class MimetypeMap implements MimetypeService
boolean successReadingConfig = true;
if (jsonConfigFileFinder != null)
{
// This should not be "alfresco/mimetype" which is used for the in JVM jodconverter
successReadingConfig &= jsonConfigFileFinder.readFiles("alfresco/mimetypes", logger);
if (mimetypeJsonConfigDir != null && !mimetypeJsonConfigDir.isBlank())
{
@@ -876,6 +877,11 @@ public class MimetypeMap implements MimetypeService
*/
private MediaType detectType(String filename, ContentReader reader)
{
// Metadata metadata = new Metadata();
// if (filename != null)
// {
// metadata.add(Metadata.RESOURCE_NAME_KEY, filename);
// }
TikaInputStream inp = null;
try
{

View File

@@ -117,6 +117,12 @@ public class CustomModelDefinitionImpl implements CustomModelDefinition
return this.active;
}
@Override
public String getAnalyserResourceBundleName()
{
return m2ModelDefinition.getAnalyserResourceBundleName();
}
@Override
public String getAuthor()
{

View File

@@ -280,6 +280,11 @@ public interface DictionaryDAO extends ModelQuery
// MT-specific
boolean isModelInherited(QName name);
/**
* @return String
*/
String getDefaultAnalyserResourceBundleName();
/**
* @return ClassLoader
*/

View File

@@ -101,6 +101,18 @@ public class DictionaryDAOImpl implements DictionaryDAO, NamespaceDAO,
this.dictionaryRegistryCache = dictionaryRegistryCache;
}
@Override
public String getDefaultAnalyserResourceBundleName()
{
return defaultAnalyserResourceBundleName;
}
public void setDefaultAnalyserResourceBundleName(
String defaultAnalyserResourceBundleName)
{
this.defaultAnalyserResourceBundleName = defaultAnalyserResourceBundleName;
}
/**
* Construct
*

View File

@@ -234,6 +234,15 @@ import org.alfresco.service.namespace.QName;
return Collections.unmodifiableMap(childassociations);
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.ClassDefinition#getAnalyserResourceBundleName()
*/
@Override
public String getAnalyserResourceBundleName()
{
return type.getAnalyserResourceBundleName();
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.ClassDefinition#getParentClassDefinition()
*/

View File

@@ -48,7 +48,7 @@ public abstract class M2Class
private Boolean archive = null;
private Boolean includedInSuperTypeQuery = null;
private String analyserResourceBundleName = null;
private List<M2Property> properties = new ArrayList<M2Property>();
private List<M2PropertyOverride> propertyOverrides = new ArrayList<M2PropertyOverride>();
private List<M2ClassAssociation> associations = new ArrayList<M2ClassAssociation>();
@@ -270,6 +270,19 @@ public abstract class M2Class
{
return Collections.unmodifiableList(mandatoryAspects);
}
/**
* @return String
*/
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
public void setAnalyserResourceBundleName(String analyserResourceBundleName)
{
this.analyserResourceBundleName = analyserResourceBundleName;
}
public void setConfigProperties(Properties configProperties)
{

View File

@@ -206,6 +206,8 @@ import org.alfresco.util.EqualsHelper;
defaultAspectNames.add(name);
}
}
this.analyserResourceBundleName = m2Class.getAnalyserResourceBundleName();
}
@Override
@@ -759,6 +761,15 @@ import org.alfresco.util.EqualsHelper;
return modelDiffs;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.ClassDefinition#getAnalyserResourceBundleName()
*/
@Override
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.ClassDefinition#getParentClassDefinition()
*/

View File

@@ -40,50 +40,86 @@ public class M2DataType
private String defaultAnalyserClassName = null;
private String javaClassName = null;
private String analyserResourceBundleName = null;
/*package*/ M2DataType()
{
super();
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
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 getDefaultAnalyserClassName()
{
return defaultAnalyserClassName;
}
public void setDefaultAnalyserClassName(String defaultAnalyserClassName)
{
this.defaultAnalyserClassName = defaultAnalyserClassName;;
}
public String getJavaClassName()
{
return javaClassName;
}
public void setJavaClassName(String javaClassName)
{
this.javaClassName = javaClassName;;
}
/**
* @return String
*/
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
public void setAnalyserResourceBundleName(String analyserResourceBundleName)
{
this.analyserResourceBundleName = analyserResourceBundleName;
}
}

View File

@@ -67,6 +67,7 @@ import org.alfresco.service.namespace.QName;
throw new DictionaryException(ERR_NOT_DEFINED_NAMESPACE, name.toPrefixString(), name.getNamespaceURI(), model.getName().toPrefixString());
}
this.dataType = propertyType;
this.analyserResourceBundleName = dataType.getAnalyserResourceBundleName();
}
@@ -145,9 +146,108 @@ import org.alfresco.service.namespace.QName;
return value;
}
@Override
public String getDefaultAnalyserClassName()
{
return dataType.getDefaultAnalyserClassName();
}
@Override
public String getJavaClassName()
{
return dataType.getJavaClassName();
}
@Override
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
@Override
public String resolveAnalyserClassName()
{
return resolveAnalyserClassName(I18NUtil.getLocale());
}
/**
* @param locale Locale
* @return String
*/
@Override
public String resolveAnalyserClassName(Locale locale)
{
ClassLoader resourceBundleClassLoader = getModel().getDictionaryDAO().getResourceClassLoader();
if(resourceBundleClassLoader == null)
{
resourceBundleClassLoader = this.getClass().getClassLoader();
}
StringBuilder keyBuilder = new StringBuilder(64);
keyBuilder.append(getModel().getName().toPrefixString());
keyBuilder.append(".datatype");
keyBuilder.append(".").append(getName().toPrefixString());
keyBuilder.append(".analyzer");
String key = StringUtils.replace(keyBuilder.toString(), ":", "_");
String analyserClassName = null;
String defaultAnalyserResourceBundleName = this.getModel().getDictionaryDAO().getDefaultAnalyserResourceBundleName();
if(defaultAnalyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(defaultAnalyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
String analyserResourceBundleName;
if(analyserClassName == null)
{
analyserResourceBundleName = dataType.getAnalyserResourceBundleName();
if(analyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(analyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
}
if(analyserClassName == null)
{
analyserResourceBundleName = getModel().getAnalyserResourceBundleName();
if(analyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(analyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
}
if(analyserClassName == null)
{
// MLTEXT should fall back to TEXT for analysis
if(name.equals(DataTypeDefinition.MLTEXT))
{
analyserClassName = model.getDictionaryDAO().getDataType(DataTypeDefinition.TEXT).resolveAnalyserClassName(locale);
if(analyserClassName == null)
{
analyserClassName = dataType.getDefaultAnalyserClassName();
}
}
else
{
analyserClassName = dataType.getDefaultAnalyserClassName();
}
}
return analyserClassName;
}
}

View File

@@ -469,6 +469,21 @@ public class M2Model
return new ArrayList();
}
/**
* @return String
*/
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
public void setAnalyserResourceBundleName(String analyserResourceBundleName)
{
this.analyserResourceBundleName = analyserResourceBundleName;
}
public void setConfigProperties(Properties configProperties)
{
if (types != null)

View File

@@ -55,6 +55,7 @@ public class M2ModelDefinition implements ModelDefinition
{
this.name = QName.createQName(model.getName(), resolver);
this.model = model;
this.analyserResourceBundleName = model.getAnalyserResourceBundleName();
this.dictionaryDAO = dictionaryDAO;
}
@@ -174,6 +175,17 @@ public class M2ModelDefinition implements ModelDefinition
return model.getChecksum(bindingType);
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.ModelDefinition#getAnalyserResourceBundleName()
*/
@Override
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
@Override
public DictionaryDAO getDictionaryDAO()
{

View File

@@ -312,6 +312,20 @@ public class M2Property
}
}
}
/**
* @return String
*/
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
public void setAnalyserResourceBundleName(String analyserResourceBundleName)
{
this.analyserResourceBundleName = analyserResourceBundleName;
}
public void setConfigProperties(Properties configProperties)
{

View File

@@ -78,6 +78,7 @@ import org.springframework.util.StringUtils;
// Resolve Names
this.name = QName.createQName(m2Property.getName(), prefixResolver);
this.propertyTypeName = QName.createQName(m2Property.getType(), prefixResolver);
this.analyserResourceBundleName = m2Property.getAnalyserResourceBundleName();
}
@@ -551,43 +552,19 @@ import org.springframework.util.StringUtils;
// check mandatory
if (isMandatory() != propDef.isMandatory())
{
// Change from mandatory to NON mandatory is an incremental change
if (isMandatory() && !propDef.isMandatory())
{
isUpdatedIncrementally = true;
}
else
{
isUpdated = true;
}
isUpdated = true;
}
// check mandatory enforced
if (isMandatoryEnforced() != propDef.isMandatoryEnforced())
{
// Change from mandatory enforced to NON mandatory enforced is an incremental change
if (isMandatoryEnforced() && ! propDef.isMandatoryEnforced())
{
isUpdatedIncrementally = true;
}
else
{
isUpdated = true;
}
{
isUpdated = true;
}
// check protected
if (isProtected() != propDef.isProtected())
{
// Change from protected to NON protected is an incremental change
if (isProtected() && !propDef.isProtected())
{
isUpdatedIncrementally = true;
}
else
{
isUpdated = true;
}
{
isUpdated = true;
}
//
@@ -688,4 +665,119 @@ import org.springframework.util.StringUtils;
return modelDiffs;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.PropertyDefinition#getAnalyserResourceBundleName()
*/
@Override
public String getAnalyserResourceBundleName()
{
return analyserResourceBundleName;
}
@Override
public String resolveAnalyserClassName()
{
return resolveAnalyserClassName(I18NUtil.getLocale());
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.dictionary.PropertyDefinition#getAnalyserClassName(java.lang.String, java.util.Locale)
*/
@Override
public String resolveAnalyserClassName(Locale locale
)
{
ClassLoader resourceBundleClassLoader = getModel().getDictionaryDAO().getResourceClassLoader();
if(resourceBundleClassLoader == null)
{
resourceBundleClassLoader = this.getClass().getClassLoader();
}
StringBuilder keyBuilder = new StringBuilder(64);
keyBuilder.append(getDataType().getModel().getName().toPrefixString());
keyBuilder.append(".datatype");
keyBuilder.append(".").append(getDataType().getName().toPrefixString());
keyBuilder.append(".analyzer");
String key = StringUtils.replace(keyBuilder.toString(), ":", "_");
String analyserClassName = null;
String analyserResourceBundleName = getAnalyserResourceBundleName();
if(analyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(analyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
// walk containing class and its hierarchy
ClassDefinition classDefinition = null;
ClassDefinition parentClassDefinition = null;
while(analyserClassName == null)
{
if(classDefinition == null)
{
classDefinition = getContainerClass();
}
else
{
if(parentClassDefinition == null)
{
break;
}
else
{
classDefinition = parentClassDefinition;
}
}
parentClassDefinition = classDefinition.getParentClassDefinition();
analyserResourceBundleName = classDefinition.getAnalyserResourceBundleName();
if(analyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(analyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
if(analyserClassName == null)
{
if((parentClassDefinition == null) || !classDefinition.getModel().getName().equals(parentClassDefinition.getModel().getName()))
{
analyserResourceBundleName = classDefinition.getModel().getAnalyserResourceBundleName();
if(analyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(analyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
}
}
}
String defaultAnalyserResourceBundleName = this.getContainerClass().getModel().getDictionaryDAO().getDefaultAnalyserResourceBundleName();
if(analyserClassName == null)
{
if(defaultAnalyserResourceBundleName != null)
{
ResourceBundle bundle = ResourceBundle.getBundle(defaultAnalyserResourceBundleName, locale, resourceBundleClassLoader);
if(bundle.containsKey(key))
{
analyserClassName = bundle.getString(key);
}
}
}
if(analyserClassName == null)
{
analyserClassName = getDataType().resolveAnalyserClassName(locale);
}
return analyserClassName;
}
}

View File

@@ -12,7 +12,7 @@
<value name="published" field="published" usage="optional"/>
<value name="version" field="version" usage="optional"/>
<value name="analyserResourceBundleName" field="analyserResourceBundleName" usage="optional"/>
<structure name="imports" usage="optional">
<collection field="imports" factory="org.alfresco.repo.dictionary.M2Model.createList">
<structure name="import" type="org.alfresco.repo.dictionary.M2Namespace" usage="optional">
@@ -37,7 +37,7 @@
<value style="attribute" name="name" field="name"/>
<value name="title" field="title" usage="optional"/>
<value name="description" field="description" usage="optional"/>
<value name="default-analyser-class" field="defaultAnalyserClassName" usage="optional"/>
<value name="default-analyser-class" field="defaultAnalyserClassName"/>
<value name="analyserResourceBundleName" field="analyserResourceBundleName" usage="optional"/>
<value name="java-class" field="javaClassName"/>
</structure>
@@ -179,4 +179,4 @@
<value name="propagateTimestamps" field="propagateTimestamps" usage="optional"/>
</mapping>
</binding>
</binding>

View File

@@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.search.adaptor;
package org.alfresco.repo.search.adaptor.lucene;
public enum AnalysisMode
{

View File

@@ -24,7 +24,7 @@
* #L%
*/
package org.alfresco.repo.search.adaptor;
package org.alfresco.repo.search.adaptor.lucene;
/**
* Functions that can be applied to lucene fields

View File

@@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.search.adaptor;
package org.alfresco.repo.search.adaptor.lucene;
import java.util.List;
@@ -33,8 +33,8 @@ import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.search.SearchParameters;
/**
* Adaptor class to wrap search parser implementations and encapsulate changes between search versions of query
* building.
* Adaptor class principally to wrap lucene parser implementations and encapsulate changes between lucene versions
* of query building.
*
* @param <Q> the query type used by the query engine implementation
* @param <S> the sort type used by the query engine implementation
@@ -43,7 +43,7 @@ import org.alfresco.service.cmr.search.SearchParameters;
* @author Andy
*
*/
public interface QueryParserAdaptor<Q, S, E extends Throwable>
public interface LuceneQueryParserAdaptor<Q, S, E extends Throwable>
{
/**
@@ -215,9 +215,9 @@ public interface QueryParserAdaptor<Q, S, E extends Throwable>
/**
* Utility to build conjunctions, disjunctions and negation
* @return QueryParserExpressionAdaptor
* @return LuceneQueryParserExpressionAdaptor
*/
QueryParserExpressionAdaptor<Q, E> getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> getExpressionAdaptor();
/**
* A query that matches all alfresco nodes (not extra stuff that may be in the underlying index)

View File

@@ -23,13 +23,13 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.search.adaptor;
package org.alfresco.repo.search.adaptor.lucene;
/**
* @author Andy
*
*/
public interface QueryParserExpressionAdaptor<Q, E extends Throwable>
public interface LuceneQueryParserExpressionAdaptor<Q, E extends Throwable>
{
public void addRequired(Q q) throws E;
public void addExcluded(Q q) throws E;

View File

@@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.search.adaptor;
package org.alfresco.repo.search.adaptor.lucene;
/**
* This class defines
@@ -181,24 +181,6 @@ public interface QueryConstants
public static final String FIELD_SOLR_NOLOCALE_TOKENISED_SUFFIX = ".__";
public static final String FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX = "_unit_of_time_second";
public static final String FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX = "_unit_of_time_minute";
public static final String FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX = "_unit_of_time_hour";
public static final String FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX = "_unit_of_time_day_of_month";
public static final String FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX = "_unit_of_time_day_of_week";
public static final String FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX = "_unit_of_time_day_of_year";
public static final String FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX = "_unit_of_time_month";
public static final String FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX = "_unit_of_time_quarter";
public static final String FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX = "_unit_of_time_year";
public static final String FIELD_SITE = "SITE";
public static final String FIELD_GEO = "GEO";

View File

@@ -27,7 +27,7 @@ package org.alfresco.repo.search.impl;
import java.util.HashSet;
import org.alfresco.repo.search.adaptor.QueryConstants;
import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
import org.alfresco.service.cmr.dictionary.AspectDefinition;
import org.alfresco.service.cmr.dictionary.ClassDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
@@ -384,51 +384,6 @@ public class QueryParserUtils implements QueryConstants
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_NOLOCALE_TOKENISED_SUFFIX.length());
ending = FIELD_SOLR_NOLOCALE_TOKENISED_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX;
}
else if (field.endsWith(FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX))
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0, field.length() - FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX.length());
ending = FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX;
}
else
{
propertyFieldName = field.substring(field.startsWith("@") ? 1 : 0);

View File

@@ -31,9 +31,9 @@ import java.util.HashSet;
import java.util.Map;
import org.alfresco.repo.dictionary.IndexTokenisationMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.QueryConstants;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
import org.alfresco.repo.search.impl.querymodel.FunctionArgument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
@@ -136,54 +136,54 @@ public class AlfrescoFunctionEvaluationContext implements FunctionEvaluationCont
this.defaultNamespace = defaultNamespace;
}
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction)
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction)
throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction)
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction)
throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not) throws E
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not) throws E
{
throw new UnsupportedOperationException();
}
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E
{
// Score is special
if (propertyName.equalsIgnoreCase("Score"))
@@ -263,12 +263,12 @@ public class AlfrescoFunctionEvaluationContext implements FunctionEvaluationCont
}
/**
* @param lqpa QueryParserAdaptor<Q, S, E>
* @param lqpa LuceneQueryParserAdaptor<Q, S, E>
* @param field String
* @return ... extends Throwable
* @throws E
*/
private <Q, S, E extends Throwable> String findSortField(QueryParserAdaptor<Q, S, E> lqpa, String field) throws E
private <Q, S, E extends Throwable> String findSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa, String field) throws E
{
return lqpa.getSortField(field);
}
@@ -499,129 +499,6 @@ public class AlfrescoFunctionEvaluationContext implements FunctionEvaluationCont
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX+" only supported on datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX+" only supported on datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX+" only supported on datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else if(field.endsWith(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX))
{
QName propertyField = QName.createQName(field.substring(0, field.length() - QueryConstants.FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX.length()));
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyField);
if (!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) &&
!propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
throw new FTSQueryException(QueryConstants.FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX+" only supported on date and datetime properties");
}
else
{
return propertyField;
}
}
else
{
return qname;

View File

@@ -32,7 +32,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.Column;
import org.alfresco.repo.search.impl.querymodel.Constraint;

View File

@@ -29,8 +29,8 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.Map;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -79,7 +79,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneEquality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneEquality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* Note: null and not null are not required to support functions from the spec
@@ -88,7 +88,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneExists(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E;
public <Q, S, E extends Throwable> Q buildLuceneExists(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Boolean not) throws E;
/**
* @param propertyName String
@@ -98,7 +98,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneGreaterThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param propertyName String
@@ -108,7 +108,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneGreaterThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param propertyName String
@@ -118,7 +118,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThan(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLessThan(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* @param propertyName String
@@ -128,7 +128,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLessThanOrEquals(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* Note: Like is not required to support functions from the spec
@@ -138,7 +138,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneLike(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not) throws E;
public <Q, S, E extends Throwable> Q buildLuceneLike(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, Boolean not) throws E;
/**
* @param propertyName String
@@ -148,7 +148,7 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneInequality(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
public <Q, S, E extends Throwable> Q buildLuceneInequality(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws E;
/**
* Note: In is not required to support functions from the spec
@@ -158,14 +158,14 @@ public interface FunctionEvaluationContext
* @return the query
* @throws E
*/
public <Q, S, E extends Throwable> Q buildLuceneIn(QueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E;
public <Q, S, E extends Throwable> Q buildLuceneIn(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName, Collection<Serializable> values, Boolean not, PredicateMode mode) throws E;
/**
* @param propertyName String
* @return the field used for sorting the given property
* @throws E
*/
public <Q, S, E extends Throwable> String getLuceneSortField(QueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E;
public <Q, S, E extends Throwable> String getLuceneSortField(LuceneQueryParserAdaptor<Q, S, E> lqpa, String propertyName) throws E;
/**
* @param propertyName String

View File

@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserExpressionAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserExpressionAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.Constraint;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
@@ -52,14 +52,14 @@ public class LuceneConjunction<Q, S, E extends Throwable> extends BaseConjunctio
* (non-Javadoc)
*
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.lang.String,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext,
* org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserExpressionAdaptor<Q, E> expressionAdaptor = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> expressionAdaptor = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
boolean must = false;
boolean must_not = false;
for (Constraint constraint : getConstraints())

View File

@@ -30,7 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserExpressionAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserExpressionAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.Constraint;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
@@ -54,13 +54,13 @@ public class LuceneDisjunction<Q, S, E extends Throwable> extends BaseDisjunctio
* (non-Javadoc)
*
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.lang.String,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext,
* org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserExpressionAdaptor<Q, E> expressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> expressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
ArrayList<Pair<Constraint, Q>> queriestoDisjoin = new ArrayList<>();
for (Constraint constraint : getConstraints())
{
@@ -80,7 +80,7 @@ public class LuceneDisjunction<Q, S, E extends Throwable> extends BaseDisjunctio
expressionBuilder.addOptional(constraintQuery, constraint.getBoost());
break;
case EXCLUDE:
QueryParserExpressionAdaptor<Q, E> subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
subExpressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
subExpressionBuilder.addExcluded(constraintQuery);
expressionBuilder.addOptional(subExpressionBuilder.getQuery(), constraint.getBoost());

View File

@@ -51,7 +51,7 @@ public class LuceneFunctionalConstraint<Q, S, E extends Throwable> extends BaseF
/* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(org.apache.lucene.search.BooleanQuery, org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService, java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
{
Function function = getFunction();
if(function != null)

View File

@@ -30,7 +30,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserExpressionAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserExpressionAdaptor;
import org.alfresco.repo.search.impl.querymodel.Column;
import org.alfresco.repo.search.impl.querymodel.Constraint;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
@@ -67,9 +67,9 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
*
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilder#buildQuery()
*/
public Q buildQuery(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
public Q buildQuery(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
{
QueryParserExpressionAdaptor<Q, E> expressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
LuceneQueryParserExpressionAdaptor<Q, E> expressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
boolean must = false;
boolean must_not = false;
@@ -148,10 +148,10 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
* (non-Javadoc)
*
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilder#buildSort(java.lang.String,
* org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext,
* org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext,
* org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public S buildSort(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
public S buildSort(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
{
if ((getOrderings() == null) || (getOrderings().size() == 0))
{
@@ -161,7 +161,7 @@ public class LuceneQuery<Q, S, E extends Throwable> extends BaseQuery implements
return luceneContext.getLuceneQueryParserAdaptor().buildSort(getOrderings(), functionContext);
}
public List<SortDefinition> buildSortDefinitions(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public List<SortDefinition> buildSortDefinitions(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
{
if ((getOrderings() == null) || (getOrderings().size() == 0))
{

View File

@@ -47,7 +47,7 @@ public interface LuceneQueryBuilder <Q, S, E extends Throwable>
* @return - the query
* @throws E
*/
public Q buildQuery(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
public Q buildQuery(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
/**
* Build the matching lucene sort
@@ -55,12 +55,12 @@ public interface LuceneQueryBuilder <Q, S, E extends Throwable>
* @return - the sort spec
* @throws E
*/
public S buildSort(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
public S buildSort(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
/**
* Build a sort definition for a sorted result set wrapper
* @param functionContext FunctionEvaluationContext
*/
public List<SortDefinition> buildSortDefinitions(Set<String> selectors, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext);
public List<SortDefinition> buildSortDefinitions(Set<String> selectors, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext);
}

View File

@@ -42,5 +42,5 @@ public interface LuceneQueryBuilderComponent<Q, S, E extends Throwable>
* @return - the lucene query fragment for this component
* @throws E
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E;
}

View File

@@ -25,20 +25,20 @@
*/
package org.alfresco.repo.search.impl.querymodel.impl.lucene;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.service.namespace.NamespacePrefixResolver;
/**
* @author Andy
*
*/
public interface QueryBuilderContext<Q, S, E extends Throwable>
public interface LuceneQueryBuilderContext<Q, S, E extends Throwable>
{
/**
* @return - the parser
*/
public abstract QueryParserAdaptor<Q, S, E> getLuceneQueryParserAdaptor();
public abstract LuceneQueryParserAdaptor<Q, S, E> getLuceneQueryParserAdaptor();
/**
* @return - the namespace prefix resolver

View File

@@ -28,9 +28,10 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.JoinType;
import org.alfresco.repo.search.impl.querymodel.impl.BaseSelector;
import org.alfresco.service.namespace.QName;
@@ -53,9 +54,9 @@ public class LuceneSelector<Q, S, E extends Throwable> extends BaseSelector impl
/* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(org.apache.lucene.search.BooleanQuery, org.apache.lucene.search.BooleanQuery)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext) throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
switch(getJoinType())
{
case INNER:

View File

@@ -29,14 +29,14 @@ import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.QueryConstants;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Child;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -55,7 +55,7 @@ public class LuceneChild<Q, S, E extends Throwable> extends Child implements Luc
super();
}
private StoreRef getStore(QueryBuilderContext<Q, S, E> luceneContext)
private StoreRef getStore(LuceneQueryBuilderContext<Q, S, E> luceneContext)
{
ArrayList<StoreRef> stores = luceneContext.getLuceneQueryParserAdaptor().getSearchParameters().getStores();
if(stores.size() < 1)
@@ -73,10 +73,10 @@ public class LuceneChild<Q, S, E extends Throwable> extends Child implements Luc
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_PARENT);
String id = (String) argument.getValue(functionContext);
argument = functionArgs.get(ARG_SELECTOR);

View File

@@ -29,14 +29,14 @@ import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.QueryConstants;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Descendant;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -56,7 +56,7 @@ public class LuceneDescendant<Q, S, E extends Throwable> extends Descendant impl
super();
}
private StoreRef getStore(QueryBuilderContext<Q, S, E> luceneContext)
private StoreRef getStore(LuceneQueryBuilderContext<Q, S, E> luceneContext)
{
ArrayList<StoreRef> stores = luceneContext.getLuceneQueryParserAdaptor().getSearchParameters().getStores();
if(stores.size() < 1)
@@ -74,10 +74,10 @@ public class LuceneDescendant<Q, S, E extends Throwable> extends Descendant impl
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_ANCESTOR);
String id = (String) argument.getValue(functionContext);
argument = functionArgs.get(ARG_SELECTOR);

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Equals;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -58,10 +58,10 @@ public class LuceneEquals<Q, S, E extends Throwable> extends Equals implements
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);
Q query = functionContext.buildLuceneEquality(lqpa, getPropertyName(), getStaticArgument().getValue(functionContext), PredicateMode.ANY, functionContext.getLuceneFunction(getFunctionArgument()));

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Exists;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
/**
@@ -52,10 +52,10 @@ public class LuceneExists<Q, S, E extends Throwable> extends Exists implements L
super();
}
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
Argument inverseArgument = functionArgs.get(ARG_NOT);
Boolean not = DefaultTypeConverter.INSTANCE.convert(Boolean.class, inverseArgument.getValue(functionContext));

View File

@@ -28,13 +28,13 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSFuzzyTerm;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* Fuzzy matching
@@ -59,10 +59,10 @@ public class LuceneFTSFuzzyTerm<Q, S, E extends Throwable> extends FTSFuzzyTerm
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);
argument = functionArgs.get(ARG_MIN_SIMILARITY);

View File

@@ -28,15 +28,15 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSPhrase;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -59,10 +59,10 @@ public class LuceneFTSPhrase<Q, S, E extends Throwable> extends FTSPhrase implem
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_PHRASE);
String term = (String) argument.getValue(functionContext);

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSPrefixTerm;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* Perfix term
@@ -59,10 +59,10 @@ public class LuceneFTSPrefixTerm<Q, S, E extends Throwable> extends FTSPrefixTer
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);
// strip trailing wildcard *

View File

@@ -28,13 +28,13 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSProximity;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* Proximity
@@ -59,10 +59,10 @@ public class LuceneFTSProximity<Q, S, E extends Throwable> extends FTSProximity
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_FIRST);
String first = (String) argument.getValue(functionContext);
argument = functionArgs.get(ARG_LAST);

View File

@@ -28,15 +28,15 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSRange;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* Range
@@ -60,10 +60,10 @@ public class LuceneFTSRange<Q, S, E extends Throwable> extends FTSRange implemen
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_FROM_INC);
Boolean fromInc = (Boolean) argument.getValue(functionContext);
argument = functionArgs.get(ARG_FROM);

View File

@@ -28,15 +28,15 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.LuceneFunction;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneFunction;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSTerm;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -58,10 +58,10 @@ public class LuceneFTSTerm<Q, S, E extends Throwable> extends FTSTerm implements
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);
argument = functionArgs.get(ARG_TOKENISATION_MODE);

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.AnalysisMode;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.AnalysisMode;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSWildTerm;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* Wild Card
@@ -60,10 +60,10 @@ public class LuceneFTSWildTerm<Q, S, E extends Throwable> extends FTSWildTerm im
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.GreaterThan;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -58,10 +58,10 @@ public class LuceneGreaterThan<Q, S, E extends Throwable> extends GreaterThan im
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);
Q query = functionContext.buildLuceneGreaterThan(lqpa, getPropertyName(), getStaticArgument().getValue(functionContext), PredicateMode.ANY, functionContext.getLuceneFunction(getFunctionArgument()));

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.GreaterThanOrEquals;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -59,10 +59,10 @@ public class LuceneGreaterThanOrEquals<Q, S, E extends Throwable> extends Greate
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);
Q query = functionContext.buildLuceneGreaterThanOrEquals(lqpa, getPropertyName(), getStaticArgument().getValue(functionContext), PredicateMode.ANY, functionContext.getLuceneFunction(getFunctionArgument()));

View File

@@ -30,7 +30,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.ListArgument;
@@ -40,7 +40,7 @@ import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.In;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
/**
@@ -64,10 +64,10 @@ public class LuceneIn<Q, S, E extends Throwable> extends In implements LuceneQue
* org.alfresco.service.cmr.dictionary.DictionaryService, java.lang.String)
*/
@SuppressWarnings("unchecked")
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
Argument inverseArgument = functionArgs.get(ARG_NOT);
Boolean not = DefaultTypeConverter.INSTANCE.convert(Boolean.class, inverseArgument.getValue(functionContext));

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.LessThan;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -59,10 +59,10 @@ public class LuceneLessThan<Q, S, E extends Throwable> extends LessThan implemen
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);
Q query = functionContext.buildLuceneLessThan(lqpa, getPropertyName(), getStaticArgument().getValue(functionContext), PredicateMode.ANY, functionContext.getLuceneFunction(getFunctionArgument()));

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.LessThanOrEquals;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -59,10 +59,10 @@ public class LuceneLessThanOrEquals<Q, S, E extends Throwable> extends LessThanO
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);

View File

@@ -29,14 +29,14 @@ import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PropertyArgument;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Like;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
/**
@@ -61,10 +61,10 @@ public class LuceneLike<Q, S, E extends Throwable> extends Like implements Lucen
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
Argument inverseArgument = functionArgs.get(ARG_NOT);
Boolean not = DefaultTypeConverter.INSTANCE.convert(Boolean.class, inverseArgument.getValue(functionContext));

View File

@@ -33,7 +33,7 @@ import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Lower;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -52,10 +52,10 @@ public class LuceneLower<Q, S, E extends Throwable> extends Lower implements Luc
/*
* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext,
* java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext,
* org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
throw new QueryModelException("Unsupported function in query " + getName());

View File

@@ -28,14 +28,14 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene.functions;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.search.adaptor.QueryParserAdaptor;
import org.alfresco.repo.search.adaptor.lucene.LuceneQueryParserAdaptor;
import org.alfresco.repo.search.impl.querymodel.Argument;
import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.NotEquals;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -58,10 +58,10 @@ public class LuceneNotEquals<Q, S, E extends Throwable> extends NotEquals implem
* org.apache.lucene.search.BooleanQuery, org.alfresco.service.cmr.dictionary.DictionaryService,
* java.lang.String)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
QueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
LuceneQueryParserAdaptor<Q, S, E> lqpa = luceneContext.getLuceneQueryParserAdaptor();
setPropertyAndStaticArguments(functionArgs);
Q query = functionContext.buildLuceneInequality(lqpa, getPropertyName(), getStaticArgument().getValue(functionContext), PredicateMode.ANY, functionContext

View File

@@ -33,7 +33,7 @@ import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.PropertyAccessor;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -49,9 +49,9 @@ public class LucenePropertyAccessor<Q, S, E extends Throwable> extends PropertyA
}
/* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
throw new QueryModelException("Unsupported function in query "+getName());

View File

@@ -33,7 +33,7 @@ import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Score;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -51,9 +51,9 @@ public class LuceneScore<Q, S, E extends Throwable> extends Score implements Luc
}
/* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
throw new QueryModelException("Unsupported function in query "+getName());

View File

@@ -33,7 +33,7 @@ import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.impl.functions.Upper;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext;
import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext;
/**
* @author andyh
@@ -50,9 +50,9 @@ public class LuceneUpper<Q, S, E extends Throwable> extends Upper implements Luc
}
/* (non-Javadoc)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
* @see org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent#addComponent(java.util.Set, java.util.Map, org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext, org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext)
*/
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, QueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
public Q addComponent(Set<String> selectors, Map<String, Argument> functionArgs, LuceneQueryBuilderContext<Q, S, E> luceneContext, FunctionEvaluationContext functionContext)
throws E
{
throw new QueryModelException("Unsupported function in query "+getName());

View File

@@ -149,6 +149,12 @@ public interface ClassDefinition
*/
public List<AspectDefinition> getDefaultAspects(boolean inherited);
/**
* Get the name of the property bundle that defines analyser mappings for this class (keyed by the type of the property)
* @return the resource or null if not set.
*/
public String getAnalyserResourceBundleName();
/**
* Get the parent class definition
*

View File

@@ -33,7 +33,6 @@ import org.alfresco.repo.dictionary.CustomModelsInfo;
import org.alfresco.repo.dictionary.M2Model;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.Pair;
/**
* Custom model service configuration API.
@@ -106,14 +105,6 @@ public interface CustomModelService
*/
public NodeRef getModelNodeRef(String modelFileName);
/**
* Gets custom model
*
* @param modelNodeRef the {@code NodeRef} of the custom model
* @return m2Model the {@code M2Model} object
*/
public M2Model getM2Model(NodeRef modelNodeRef);
/**
* Creates custom model
*
@@ -176,8 +167,6 @@ public interface CustomModelService
*/
public boolean isNamespaceUriExists(String modelNamespaceUri);
public boolean isNamespacePrefixExists(NodeRef modelNodeRef);
/**
* Whether a model with the given name exists or not
*
@@ -186,35 +175,10 @@ public interface CustomModelService
*/
public boolean isModelExists(String modelFileName);
/**
* Gets custom models' namespace URI and prefix
*
* @param model the {@code M2Model} object
* @return the custom model URI and prefix as a {@code Pair<String, String}
* @throws CustomModelException if no namespace or more than one namespace exists
*/
public Pair<String, String> getModelNamespaceUriPrefix(M2Model model);
/**
* Validates the custom models' namespace prefix
*
* @param prefix the namespace prefix {@code String}
* @throws CustomModelException if the namespace prefix is already in use by another model
*/
public void validateModelNamespacePrefix(String prefix);
/**
* Validates the custom models' namespace prefix
*
* @param modelNodeRef the nodeRef of the model whose namespace prefix is to be validated {@code NodeRef}
* @throws CustomModelException if the namespace prefix is already in use by another model
*/
public void validateModelNamespacePrefix(NodeRef modelNodeRef);
/**
* Whether the given namespace prefix has already been used or not
*
* @param modelNamespacePrefix the model namespace prefix
* @param modelNamespaceUri the model namespace prefix
* @return true if the prefix has been used, false otherwise
*/
public boolean isNamespacePrefixExists(String modelNamespacePrefix);

View File

@@ -98,8 +98,33 @@ public interface DataTypeDefinition
*/
public String getDescription(MessageLookup messageLookup);
/**
* Get the name of the property bundle that defines analyser mappings for this data type (keyed by the type of the property)
* @return the resource or null if not set.
*/
public String getAnalyserResourceBundleName();
/**
* @return the equivalent java class name (or null, if not mapped)
*/
public String getJavaClassName();
/**
* Get the default analyser class - used when no resource bundles can be found and no repository default is set.
* @return String
*/
public String getDefaultAnalyserClassName();
/**
* @param locale
* @return String
*/
public String resolveAnalyserClassName(Locale locale);
/**
*
* @return String
*/
public String resolveAnalyserClassName();
}

View File

@@ -105,6 +105,12 @@ public interface ModelDefinition
public long getChecksum(XMLBindingType bindingType);
/**
* Get the name of the property bundle that defines analyser mappings for this model (keyed by the type of the property)
* @return the resource or null if not set.
*/
public String getAnalyserResourceBundleName();
/**
* @return DictionaryDAO
*/

View File

@@ -161,4 +161,22 @@ public interface PropertyDefinition extends ClassAttributeDefinition
* @return Returns a list of property constraint definitions
*/
public List<ConstraintDefinition> getConstraints();
/**
* Get the name of the property bundle that defines analyser mappings for this class.
* @return the resource or null if not set.
*/
public String getAnalyserResourceBundleName();
/**
* @param locale Locale
* @return String
*/
public String resolveAnalyserClassName(Locale locale);
/**
*
* @return String
*/
public String resolveAnalyserClassName();
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Data model classes
* %%
* Copyright (C) 2005 - 2020 Alfresco Software Limited
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -33,7 +33,8 @@ import org.alfresco.api.AlfrescoPublicApi;
* same action might succeed, all other things not having changed.
* <p/>
* An example of this would be the case where a request to create a thumbnail
* has failed because the necessary thumbnailing software is not available.
* has failed because the necessary thumbnailing software is not available e.g. because the OpenOffice.org process
* is not currently running.
*
* @author Neil Mc Erlean
* @since 4.0.1

View File

@@ -50,36 +50,23 @@ import org.alfresco.service.namespace.QName;
@AlfrescoPublicApi
public interface SearchService
{
String LANGUAGE_LUCENE = "lucene";
public static final String LANGUAGE_LUCENE = "lucene";
String LANGUAGE_XPATH = "xpath";
public static final String LANGUAGE_XPATH = "xpath";
String LANGUAGE_FTS_ALFRESCO = "fts-alfresco";
public static final String LANGUAGE_FTS_ALFRESCO = "fts-alfresco";
public static final String LANGUAGE_SOLR_FTS_ALFRESCO = "solr-fts-alfresco";
public static final String LANGUAGE_CMIS_STRICT = "cmis-strict";
public static final String LANGUAGE_CMIS_ALFRESCO = "cmis-alfresco";
String LANGUAGE_CMIS_STRICT = "cmis-strict";
public static final String LANGUAGE_SOLR_CMIS = "solr-cmis";
String LANGUAGE_CMIS_ALFRESCO = "cmis-alfresco";
String LANGUAGE_INDEX_CMIS = "index-cmis";
String LANGUAGE_INDEX_ALFRESCO = "index-alfresco";
String LANGUAGE_INDEX_SQL = "index-sql";
String LANGUAGE_INDEX_FTS_ALFRESCO = "index-fts-alfresco";
// Old language names for solr subsystems retro compatibility
@Deprecated
String LANGUAGE_SOLR_FTS_ALFRESCO = "solr-fts-alfresco";
@Deprecated
String LANGUAGE_SOLR_CMIS = "solr-cmis";
@Deprecated
String LANGUAGE_SOLR_ALFRESCO = "solr-alfresco";
@Deprecated
String LANGUAGE_SOLR_SQL = "solr-sql";
public static final String LANGUAGE_SOLR_ALFRESCO = "solr-alfresco";
public static final String LANGUAGE_SOLR_SQL = "solr-sql";
/**
* Search against a store. Pulls back all attributes on each node. Does not
@@ -94,7 +81,7 @@ public interface SearchService
* @return Returns the query results
*/
@Auditable(parameters = {"store", "language", "query"})
ResultSet query(StoreRef store, String language, String query);
public ResultSet query(StoreRef store, String language, String query);
/**
* Search against a store.
@@ -111,8 +98,8 @@ public interface SearchService
* @return Returns the query results
*/
@Auditable(parameters = {"store", "language", "query", "queryParameterDefinitions"})
ResultSet query(StoreRef store, String language, String query,
QueryParameterDefinition[] queryParameterDefinitions);
public ResultSet query(StoreRef store, String language, String query,
QueryParameterDefinition[] queryParameterDefinitions);
/**
@@ -127,14 +114,14 @@ public interface SearchService
* @return Returns the query results
*/
@Auditable(parameters = {"store", "queryId", "queryParameters"})
ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters);
public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters);
/**
* Search using the given SearchParameters
*/
@Auditable(parameters = {"searchParameters"})
ResultSet query(SearchParameters searchParameters);
public ResultSet query(SearchParameters searchParameters);
/**
* Select nodes using an xpath expression.
@@ -156,8 +143,8 @@ public interface SearchService
parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks"},
recordable = {true, true, true, false, true})
List<NodeRef> selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks)
public List<NodeRef> selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks)
throws InvalidNodeRefException, XPathException;
/**
@@ -182,8 +169,8 @@ public interface SearchService
parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks", "language"},
recordable = {true, true, true, false, true, true})
List<NodeRef> selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks, String language)
public List<NodeRef> selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks, String language)
throws InvalidNodeRefException, XPathException;
/**
@@ -206,9 +193,9 @@ public interface SearchService
parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks"},
recordable = {true, true, true, false, true})
List<Serializable> selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks) throws InvalidNodeRefException, XPathException;
public List<Serializable> selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks) throws InvalidNodeRefException, XPathException;
/**
* Select properties using an xpath expression
@@ -232,9 +219,9 @@ public interface SearchService
parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks", "language"},
recordable = {true, true, true, false, true, true})
List<Serializable> selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks, String language) throws InvalidNodeRefException, XPathException;
public List<Serializable> selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks, String language) throws InvalidNodeRefException, XPathException;
/**
* Search for string pattern in both the node text (if present) and node
@@ -249,7 +236,7 @@ public interface SearchService
* @return Returns true if the pattern could be found - uses the default OR operator
*/
@Auditable(parameters = {"nodeRef", "propertyQName", "googleLikePattern"})
boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern)
public boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern)
throws InvalidNodeRefException;
/**
@@ -265,7 +252,7 @@ public interface SearchService
* @return Returns true if the pattern could be found
*/
@Auditable(parameters = {"nodeRef", "propertyQName", "googleLikePattern", "defaultOperator"})
boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern, SearchParameters.Operator defaultOperator)
public boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern, SearchParameters.Operator defaultOperator)
throws InvalidNodeRefException;
/**
@@ -283,6 +270,6 @@ public interface SearchService
* @return Returns true if the pattern could be found
*/
@Auditable(parameters = {"nodeRef", "propertyQName", "sqlLikePattern", "includeFTS"})
boolean like(NodeRef nodeRef, QName propertyQName, String sqlLikePattern, boolean includeFTS)
public boolean like(NodeRef nodeRef, QName propertyQName, String sqlLikePattern, boolean includeFTS)
throws InvalidNodeRefException;
}

View File

@@ -100,25 +100,26 @@ public abstract class BaseApplicationContextHelper
classpath[i] = resources[i].getURL();
}
// Let's give our classloader 'child-first' resource loading qualities!
return new URLClassLoader(classpath, Thread.currentThread().getContextClassLoader())
{
@Override
public URL getResource(String name)
{
URL ret = findResource(name);
return ret == null ? super.getResource(name) : ret;
}
ClassLoader classLoader = new URLClassLoader(classpath, Thread.currentThread().getContextClassLoader())
{
@Override
public URL getResource(String name)
{
URL ret = findResource(name);
return ret == null ? super.getResource(name) : ret;
}
@SuppressWarnings("rawtypes")
@Override
public Enumeration<URL> getResources(String name) throws IOException
{
Enumeration[] tmp = new Enumeration[2];
tmp[0] = findResources(name);
tmp[1] = super.getResources(name);
return new CompoundEnumeration<URL>(tmp);
}
};
@SuppressWarnings("rawtypes")
@Override
public Enumeration<URL> getResources(String name) throws IOException
{
Enumeration[] tmp = new Enumeration[2];
tmp[0] = findResources(name);
tmp[1] = super.getResources(name);
return new CompoundEnumeration<URL>(tmp);
}
};
return classLoader;
}
/**

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited
* Copyright (C) 2005 - 2020 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -57,10 +57,7 @@ public abstract class ConfigScheduler<Data>
public static class ConfigSchedulerJob implements Job
{
@Override
// Synchronized has little effect in normal operation, but on laptops that are suspended, there can be a number
// of Threads calling execute concurrently without it, resulting in errors in the log. Theoretically possible in
// production but not very likely.
public synchronized void execute(JobExecutionContext context) throws JobExecutionException
public void execute(JobExecutionContext context) throws JobExecutionException
{
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
ConfigScheduler configScheduler = (ConfigScheduler)dataMap.get(CONFIG_SCHEDULER);

View File

@@ -41,6 +41,9 @@
<property name="dictionaryRegistryCache">
<ref bean="compiledModelsCache"/>
</property>
<property name="defaultAnalyserResourceBundleName">
<value>${lucene.defaultAnalyserResourceBundleName}</value>
</property>
</bean>
<bean id="threadFactory" class="org.alfresco.util.TraceableThreadFactory">

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