mirror of
				https://github.com/Alfresco/alfresco-community-repo.git
				synced 2025-10-22 15:12:38 +00:00 
			
		
		
		
	Compare commits
	
		
			27 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 01fb7f45a3 | ||
|  | 41c4b34d8d | ||
|  | 36bf081b59 | ||
|  | 2a5892de78 | ||
|  | d302606318 | ||
|  | 7ebad61406 | ||
|  | 587087389e | ||
|  | 57c3605d63 | ||
|  | 2cb318a18e | ||
|  | bd7af1f39c | ||
|  | 7885c6a78b | ||
|  | d42e9ef993 | ||
|  | 197590eef4 | ||
|  | 102f59cde1 | ||
|  | 529699b5e1 | ||
|  | 96456ec719 | ||
|  | 71bbb579e6 | ||
|  | 51dcf28756 | ||
|  | 1639a17451 | ||
|  | 585e6042cb | ||
|  | 8364211384 | ||
|  | f68d304d57 | ||
|  | b55e1114e6 | ||
|  | 0e23ba37c6 | ||
|  | 38a4d378d9 | ||
|  | 65a562cd73 | ||
|  | 8eab098317 | 
							
								
								
									
										32
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -33,7 +33,7 @@ jobs: | |||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -52,7 +52,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       ((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && github.event_name != 'pull_request') && |       ((github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && github.event_name != 'pull_request') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -73,7 +73,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip repo]') && |       !contains(github.event.head_commit.message, '[skip repo]') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -94,7 +94,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip repo]') && |       !contains(github.event.head_commit.message, '[skip repo]') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -139,7 +139,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip db]')) || |       !contains(github.event.head_commit.message, '[skip db]')) || | ||||||
|       contains(github.event.head_commit.message, '[db]')) && |       contains(github.event.head_commit.message, '[db]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -169,7 +169,7 @@ jobs: | |||||||
|       contains(github.event.head_commit.message, '[latest db]') || |       contains(github.event.head_commit.message, '[latest db]') || | ||||||
|       contains(github.event.head_commit.message, '[db]')) && |       contains(github.event.head_commit.message, '[db]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -195,7 +195,7 @@ jobs: | |||||||
|       contains(github.event.head_commit.message, '[latest db]') || |       contains(github.event.head_commit.message, '[latest db]') || | ||||||
|       contains(github.event.head_commit.message, '[db]')) && |       contains(github.event.head_commit.message, '[db]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -220,7 +220,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip db]')) || |       !contains(github.event.head_commit.message, '[skip db]')) || | ||||||
|       contains(github.event.head_commit.message, '[db]')) && |       contains(github.event.head_commit.message, '[db]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -245,7 +245,7 @@ jobs: | |||||||
|       contains(github.event.head_commit.message, '[latest db]') || |       contains(github.event.head_commit.message, '[latest db]') || | ||||||
|       contains(github.event.head_commit.message, '[db]')) && |       contains(github.event.head_commit.message, '[db]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -268,7 +268,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip repo]') && |       !contains(github.event.head_commit.message, '[skip repo]') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -289,7 +289,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip repo]') && |       !contains(github.event.head_commit.message, '[skip repo]') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -358,7 +358,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip tas]')) || |       !contains(github.event.head_commit.message, '[skip tas]')) || | ||||||
|       contains(github.event.head_commit.message, '[tas]')) && |       contains(github.event.head_commit.message, '[tas]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -425,7 +425,7 @@ jobs: | |||||||
|     if: > |     if: > | ||||||
|       !contains(github.event.head_commit.message, '[skip repo]') && |       !contains(github.event.head_commit.message, '[skip repo]') && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v3 | ||||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 |       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||||
| @@ -448,7 +448,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip ags]')) || |       !contains(github.event.head_commit.message, '[skip ags]')) || | ||||||
|       contains(github.event.head_commit.message, '[ags]')) && |       contains(github.event.head_commit.message, '[ags]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -479,7 +479,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip ags]')) || |       !contains(github.event.head_commit.message, '[skip ags]')) || | ||||||
|       contains(github.event.head_commit.message, '[ags on MySQL]')) && |       contains(github.event.head_commit.message, '[ags on MySQL]')) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
| @@ -510,7 +510,7 @@ jobs: | |||||||
|       !contains(github.event.head_commit.message, '[skip ags]') && !contains(github.event.head_commit.message, '[skip tas]')) || |       !contains(github.event.head_commit.message, '[skip ags]') && !contains(github.event.head_commit.message, '[skip tas]')) || | ||||||
|       (contains(github.event.head_commit.message, '[ags]') && contains(github.event.head_commit.message, '[tas]'))) && |       (contains(github.event.head_commit.message, '[ags]') && contains(github.event.head_commit.message, '[tas]'))) && | ||||||
|       !contains(github.event.head_commit.message, '[skip tests]') && |       !contains(github.event.head_commit.message, '[skip tests]') && | ||||||
|       !contains(github.event.head_commit.message, '[force]') |       !contains(github.event.head_commit.message, '[force') | ||||||
|     env: |     env: | ||||||
|       REQUIRES_LOCAL_IMAGES: true |       REQUIRES_LOCAL_IMAGES: true | ||||||
|     steps: |     steps: | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-community-repo-amps</artifactId> |       <artifactId>alfresco-community-repo-amps</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <modules> |    <modules> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-governance-services-community-parent</artifactId> |       <artifactId>alfresco-governance-services-community-parent</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <modules> |    <modules> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-governance-services-automation-community-repo</artifactId> |       <artifactId>alfresco-governance-services-automation-community-repo</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <build> |    <build> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-governance-services-community-parent</artifactId> |       <artifactId>alfresco-governance-services-community-parent</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <modules> |    <modules> | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-governance-services-community-repo-parent</artifactId> |       <artifactId>alfresco-governance-services-community-repo-parent</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <properties> |    <properties> | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| # Version label | # Version label | ||||||
| version.major=7 | version.major=7 | ||||||
| version.minor=4 | version.minor=4 | ||||||
| version.revision=0 | version.revision=1 | ||||||
| version.label= | version.label= | ||||||
|  |  | ||||||
| # Edition label | # Edition label | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-governance-services-community-repo-parent</artifactId> |         <artifactId>alfresco-governance-services-community-repo-parent</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <build> |     <build> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <modules> |     <modules> | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-amps</artifactId> |         <artifactId>alfresco-community-repo-amps</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <properties> |     <properties> | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| @@ -48,7 +48,7 @@ function tagQuery() | |||||||
|    } |    } | ||||||
|    query += "ASPECT:\"{http://www.alfresco.org/model/content/1.0}taggable\""; |    query += "ASPECT:\"{http://www.alfresco.org/model/content/1.0}taggable\""; | ||||||
|    //MNT-2118 Share inconsistencies when displaying locked files with tags |    //MNT-2118 Share inconsistencies when displaying locked files with tags | ||||||
|    query += " -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\""; |    query += " AND -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\""; | ||||||
|  |  | ||||||
|    // MNT-20091 check to prevent cm:taggable with NULL |    // MNT-20091 check to prevent cm:taggable with NULL | ||||||
|    query += " AND ISNOTNULL:\"{http://www.alfresco.org/model/content/1.0}taggable\""; |    query += " AND ISNOTNULL:\"{http://www.alfresco.org/model/content/1.0}taggable\""; | ||||||
| @@ -60,7 +60,7 @@ function tagQuery() | |||||||
|          query: query, |          query: query, | ||||||
|          language: "lucene", |          language: "lucene", | ||||||
|          page: { |          page: { | ||||||
|             // query minimum rows because all usefull info will come with facets  |             // query minimum rows because all useful info will come with facets | ||||||
|             maxItems: 1, |             maxItems: 1, | ||||||
|             skipCount: 0 |             skipCount: 0 | ||||||
|          }, |          }, | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ function getCategoryNode() | |||||||
|       else |       else | ||||||
|       { |       { | ||||||
|          var queryPath = "/" + catAspect + "/" + encodePath(path); |          var queryPath = "/" + catAspect + "/" + encodePath(path); | ||||||
|          categoryResults = search.luceneSearch("+PATH:\"" + queryPath + "/*\" -PATH:\"" + queryPath + "/member\""); |          categoryResults = search.luceneSearch("+PATH:\"" + queryPath + "/*\" AND -PATH:\"" + queryPath + "/member\""); | ||||||
|       } |       } | ||||||
|        |        | ||||||
|       // make each result an object and indicate it is selectable in the UI |       // make each result an object and indicate it is selectable in the UI | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ function main() | |||||||
|    { |    { | ||||||
|       query = "+PATH:\"" + parsedArgs.pathNode.qnamePath + "//*\" "; |       query = "+PATH:\"" + parsedArgs.pathNode.qnamePath + "//*\" "; | ||||||
|    } |    } | ||||||
|    query += "+TYPE:\"cm:content\" +@cm\\:content.mimetype:image/*"; |    query += "AND +TYPE:\"cm:content\" AND +@cm\\:content.mimetype:\"image/*\""; | ||||||
|     |     | ||||||
|    // Sort the list before trimming to page chunks  |    // Sort the list before trimming to page chunks  | ||||||
|    assets = search.query( |    assets = search.query( | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|    <parent> |    <parent> | ||||||
|       <groupId>org.alfresco</groupId> |       <groupId>org.alfresco</groupId> | ||||||
|       <artifactId>alfresco-community-repo</artifactId> |       <artifactId>alfresco-community-repo</artifactId> | ||||||
|       <version>20.161</version> |       <version>21.9</version> | ||||||
|    </parent> |    </parent> | ||||||
|  |  | ||||||
|    <dependencies> |    <dependencies> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <properties> |     <properties> | ||||||
|   | |||||||
| @@ -201,6 +201,11 @@ public class SearchParameters implements BasicSearchParameters | |||||||
|  |  | ||||||
|     private String timezone; |     private String timezone; | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Configure the limit to track the total hits on search results | ||||||
|  |      */ | ||||||
|  |     private int trackTotalHits; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Default constructor |      * Default constructor | ||||||
|      */ |      */ | ||||||
| @@ -251,6 +256,7 @@ public class SearchParameters implements BasicSearchParameters | |||||||
|         sp.stats = this.stats; |         sp.stats = this.stats; | ||||||
|         sp.ranges = this.ranges; |         sp.ranges = this.ranges; | ||||||
|         sp.timezone = this.timezone; |         sp.timezone = this.timezone; | ||||||
|  |         sp.trackTotalHits = this.trackTotalHits; | ||||||
|         return sp; |         return sp; | ||||||
|     } |     } | ||||||
|      |      | ||||||
| @@ -1642,5 +1648,20 @@ public class SearchParameters implements BasicSearchParameters | |||||||
|         this.includeMetadata = includeMetadata; |         this.includeMetadata = includeMetadata; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public int getTrackTotalHits() | ||||||
|  |     { | ||||||
|  |         return trackTotalHits; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set a maximum value for the report of total hits. The reported number of hits will never exceed this limit even | ||||||
|  |      * if more are found. If unset, the engine’s default tracking limit is applied. To remove any limit, set to -1. | ||||||
|  |      * | ||||||
|  |      * @param trackTotalHits int | ||||||
|  |      */ | ||||||
|  |     public void setTrackTotalHits(int trackTotalHits) | ||||||
|  |     { | ||||||
|  |         this.trackTotalHits = trackTotalHits; | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <dependencies> |     <dependencies> | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> |         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
| </project> | </project> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> |         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <properties> |     <properties> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <modules> |     <modules> | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> |         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <modules> |     <modules> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-tests</artifactId> |         <artifactId>alfresco-community-repo-tests</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <organization> |     <organization> | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-tests</artifactId> |         <artifactId>alfresco-community-repo-tests</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <developers> |     <developers> | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-tests</artifactId> |         <artifactId>alfresco-community-repo-tests</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <developers> |     <developers> | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-tests</artifactId> |         <artifactId>alfresco-community-repo-tests</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <properties> |     <properties> | ||||||
|   | |||||||
| @@ -0,0 +1,82 @@ | |||||||
|  | /*- | ||||||
|  |  * #%L | ||||||
|  |  * alfresco-tas-restapi | ||||||
|  |  * %% | ||||||
|  |  * Copyright (C) 2005 - 2023 Alfresco Software Limited | ||||||
|  |  * %% | ||||||
|  |  * This file is part of the Alfresco software.  | ||||||
|  |  * If the software was purchased under a paid Alfresco license, the terms of  | ||||||
|  |  * the paid license agreement will prevail.  Otherwise, the software is  | ||||||
|  |  * provided under the following open source license terms: | ||||||
|  |  *  | ||||||
|  |  * Alfresco is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU Lesser General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 3 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  *  | ||||||
|  |  * Alfresco is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU Lesser General Public License for more details. | ||||||
|  |  *  | ||||||
|  |  * You should have received a copy of the GNU Lesser General Public License | ||||||
|  |  * along with Alfresco. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  |  * #L% | ||||||
|  |  */ | ||||||
|  | package org.alfresco.rest.search; | ||||||
|  |  | ||||||
|  | import org.alfresco.rest.core.IRestModel; | ||||||
|  | import org.alfresco.utility.model.TestModel; | ||||||
|  |  | ||||||
|  | import com.fasterxml.jackson.annotation.JsonProperty; | ||||||
|  |  | ||||||
|  | public class RestRequestLimitsModel extends TestModel implements IRestModel<RestRequestLimitsModel> | ||||||
|  | { | ||||||
|  |     @JsonProperty | ||||||
|  |     RestRequestLimitsModel model; | ||||||
|  |  | ||||||
|  |     private Integer permissionEvaluationTime; | ||||||
|  |     private Integer permissionEvaluationCount; | ||||||
|  |     private Integer trackTotalHitsLimit; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public RestRequestLimitsModel onModel() | ||||||
|  |     { | ||||||
|  |         return model; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public RestRequestLimitsModel(Integer permissionEvaluationTime, Integer permissionEvaluationCount, | ||||||
|  |             Integer trackTotalHitsLimit) | ||||||
|  |     { | ||||||
|  |         super(); | ||||||
|  |         this.permissionEvaluationTime = permissionEvaluationTime; | ||||||
|  |         this.permissionEvaluationCount = permissionEvaluationCount; | ||||||
|  |         this.trackTotalHitsLimit = trackTotalHitsLimit; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Integer getPermissionEvaluationTime() | ||||||
|  |     { | ||||||
|  |         return permissionEvaluationTime; | ||||||
|  |     } | ||||||
|  |     public void setPermissionEvaluationTime(Integer permissionEvaluationTime) | ||||||
|  |     { | ||||||
|  |         this.permissionEvaluationTime = permissionEvaluationTime; | ||||||
|  |     } | ||||||
|  |     public Integer getPermissionEvaluationCount() | ||||||
|  |     { | ||||||
|  |         return permissionEvaluationCount; | ||||||
|  |     } | ||||||
|  |     public void setPermissionEvaluationCount(Integer permissionEvaluationCount) | ||||||
|  |     { | ||||||
|  |         this.permissionEvaluationCount = permissionEvaluationCount; | ||||||
|  |     } | ||||||
|  |     public Integer getTrackTotalHitsLimit() | ||||||
|  |     { | ||||||
|  |         return trackTotalHitsLimit; | ||||||
|  |     } | ||||||
|  |     public void setTrackTotalHitsLimit(Integer trackTotalHitsLimit) | ||||||
|  |     { | ||||||
|  |         this.trackTotalHitsLimit = trackTotalHitsLimit; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |   | ||||||
| @@ -76,6 +76,7 @@ public class SearchRequest extends TestModel | |||||||
|     String facetFormat; |     String facetFormat; | ||||||
|     List<String> include; |     List<String> include; | ||||||
|     List<SortClause> sort; |     List<SortClause> sort; | ||||||
|  |     RestRequestLimitsModel limits; | ||||||
|  |  | ||||||
|     public SearchRequest() |     public SearchRequest() | ||||||
|     { |     { | ||||||
| @@ -279,4 +280,15 @@ public class SearchRequest extends TestModel | |||||||
|  |  | ||||||
|         return this; |         return this; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public RestRequestLimitsModel getLimits() | ||||||
|  |     { | ||||||
|  |         return limits; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setLimits(RestRequestLimitsModel limits) | ||||||
|  |     { | ||||||
|  |         this.limits = limits; | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-tests</artifactId> |         <artifactId>alfresco-community-repo-tests</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <developers> |     <developers> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> |         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <properties> |     <properties> | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||||
|     <modelVersion>4.0.0</modelVersion> |     <modelVersion>4.0.0</modelVersion> | ||||||
|     <artifactId>alfresco-community-repo</artifactId> |     <artifactId>alfresco-community-repo</artifactId> | ||||||
|     <version>20.161</version> |     <version>21.9</version> | ||||||
|     <packaging>pom</packaging> |     <packaging>pom</packaging> | ||||||
|     <name>Alfresco Community Repo Parent</name> |     <name>Alfresco Community Repo Parent</name> | ||||||
|  |  | ||||||
| @@ -25,7 +25,7 @@ | |||||||
|     <properties> |     <properties> | ||||||
|         <acs.version.major>7</acs.version.major> |         <acs.version.major>7</acs.version.major> | ||||||
|         <acs.version.minor>4</acs.version.minor> |         <acs.version.minor>4</acs.version.minor> | ||||||
|         <acs.version.revision>0</acs.version.revision> |         <acs.version.revision>1</acs.version.revision> | ||||||
|         <acs.version.label /> |         <acs.version.label /> | ||||||
|         <amp.min.version>${acs.version.major}.0.0</amp.min.version> |         <amp.min.version>${acs.version.major}.0.0</amp.min.version> | ||||||
|  |  | ||||||
| @@ -62,7 +62,7 @@ | |||||||
|         <dependency.jackson.version>2.15.0-rc1</dependency.jackson.version> |         <dependency.jackson.version>2.15.0-rc1</dependency.jackson.version> | ||||||
|         <dependency.cxf.version>3.5.5</dependency.cxf.version> |         <dependency.cxf.version>3.5.5</dependency.cxf.version> | ||||||
|         <dependency.opencmis.version>1.0.0</dependency.opencmis.version> |         <dependency.opencmis.version>1.0.0</dependency.opencmis.version> | ||||||
|         <dependency.webscripts.version>8.40</dependency.webscripts.version> |         <dependency.webscripts.version>8.44</dependency.webscripts.version> | ||||||
|         <dependency.bouncycastle.version>1.70</dependency.bouncycastle.version> |         <dependency.bouncycastle.version>1.70</dependency.bouncycastle.version> | ||||||
|         <dependency.mockito-core.version>4.9.0</dependency.mockito-core.version> |         <dependency.mockito-core.version>4.9.0</dependency.mockito-core.version> | ||||||
|         <dependency.assertj.version>3.24.2</dependency.assertj.version> |         <dependency.assertj.version>3.24.2</dependency.assertj.version> | ||||||
| @@ -150,7 +150,7 @@ | |||||||
|         <connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection> |         <connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection> | ||||||
|         <developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection> |         <developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection> | ||||||
|         <url>https://github.com/Alfresco/alfresco-community-repo</url> |         <url>https://github.com/Alfresco/alfresco-community-repo</url> | ||||||
|         <tag>20.161</tag> |         <tag>21.9</tag> | ||||||
|     </scm> |     </scm> | ||||||
|  |  | ||||||
|     <distributionManagement> |     <distributionManagement> | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <dependencies> |     <dependencies> | ||||||
|   | |||||||
| @@ -823,6 +823,11 @@ public class SearchMapper | |||||||
|                 sp.setLimitBy(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS); |                 sp.setLimitBy(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS); | ||||||
|                 sp.setMaxPermissionCheckTimeMillis(limits.getPermissionEvaluationTime()); |                 sp.setMaxPermissionCheckTimeMillis(limits.getPermissionEvaluationTime()); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             if(limits.getTrackTotalHitsLimit() != null) | ||||||
|  |             { | ||||||
|  |                 sp.setTrackTotalHits(limits.getTrackTotalHitsLimit()); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -93,7 +93,7 @@ public class FacetField | |||||||
|  |  | ||||||
|     public String toFilterQuery(String value) |     public String toFilterQuery(String value) | ||||||
|     { |     { | ||||||
|         return field+":\""+value+"\""; |         return ("Null".equals(value)) ? "ISNULL:\"" + field + "\"" : field + ":\"" + value + "\""; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public String getPrefix() |     public String getPrefix() | ||||||
|   | |||||||
| @@ -37,13 +37,16 @@ public class Limits | |||||||
|  |  | ||||||
|     private final Integer permissionEvaluationTime; |     private final Integer permissionEvaluationTime; | ||||||
|     private final Integer permissionEvaluationCount; |     private final Integer permissionEvaluationCount; | ||||||
|  |     private final Integer trackTotalHitsLimit; | ||||||
|  |  | ||||||
|     @JsonCreator |     @JsonCreator | ||||||
|     public Limits(@JsonProperty("permissionEvaluationTime") Integer permissionEvaluationTime, |     public Limits(@JsonProperty("permissionEvaluationTime") Integer permissionEvaluationTime, | ||||||
|                   @JsonProperty("permissionEvaluationCount") Integer permissionEvaluationCount) |                   @JsonProperty("permissionEvaluationCount") Integer permissionEvaluationCount, | ||||||
|  |                   @JsonProperty("trackTotalHitsLimit") Integer trackTotalHitsLimit) | ||||||
|     { |     { | ||||||
|         this.permissionEvaluationTime = permissionEvaluationTime; |         this.permissionEvaluationTime = permissionEvaluationTime; | ||||||
|         this.permissionEvaluationCount = permissionEvaluationCount; |         this.permissionEvaluationCount = permissionEvaluationCount; | ||||||
|  |         this.trackTotalHitsLimit = trackTotalHitsLimit; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public Integer getPermissionEvaluationTime() |     public Integer getPermissionEvaluationTime() | ||||||
| @@ -55,4 +58,9 @@ public class Limits | |||||||
|     { |     { | ||||||
|         return permissionEvaluationCount; |         return permissionEvaluationCount; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public Integer getTrackTotalHitsLimit() | ||||||
|  |     { | ||||||
|  |         return trackTotalHitsLimit; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -745,33 +745,56 @@ public class SearchMapperTests | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void fromLimits() throws Exception |     public void fromLimits_setNull() throws Exception | ||||||
|     { |     { | ||||||
|         SearchParameters searchParameters = new SearchParameters(); |         SearchParameters searchParameters = new SearchParameters(); | ||||||
|         searchMapper.setDefaults(searchParameters); |         searchMapper.setDefaults(searchParameters); | ||||||
|  |  | ||||||
|         //Doesn't error |  | ||||||
|         searchMapper.fromLimits(searchParameters, null); |         searchMapper.fromLimits(searchParameters, null); | ||||||
|         assertEquals(500, searchParameters.getLimit()); |         assertEquals("LimitBy default value should be unlimited", LimitBy.UNLIMITED, searchParameters.getLimitBy()); | ||||||
|         assertEquals(LimitBy.UNLIMITED, searchParameters.getLimitBy()); |         assertEquals("Limit default value should be 500", 500, searchParameters.getLimit()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|         searchMapper.fromLimits(searchParameters, new Limits(null, null)); |     @Test | ||||||
|         assertEquals(LimitBy.UNLIMITED, searchParameters.getLimitBy()); |     public void fromLimits_setAllLimitsAsNull() throws Exception | ||||||
|         assertEquals(500, searchParameters.getLimit()); |     { | ||||||
|  |         SearchParameters searchParameters = new SearchParameters(); | ||||||
|         searchMapper.fromLimits(searchParameters, new Limits(null, 34)); |  | ||||||
|         assertEquals(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS, searchParameters.getLimitBy()); |  | ||||||
|         assertEquals(34, searchParameters.getMaxPermissionChecks()); |  | ||||||
|         assertEquals(-1, searchParameters.getLimit()); |  | ||||||
|         assertEquals(-1, searchParameters.getMaxPermissionCheckTimeMillis()); |  | ||||||
|  |  | ||||||
|         searchParameters = new SearchParameters(); |  | ||||||
|         searchMapper.setDefaults(searchParameters); |         searchMapper.setDefaults(searchParameters); | ||||||
|         searchMapper.fromLimits(searchParameters, new Limits(1000, null)); |         searchMapper.fromLimits(searchParameters, new Limits(null, null, null)); | ||||||
|  |         assertEquals("LimitBy default value should be unlimited", LimitBy.UNLIMITED, searchParameters.getLimitBy()); | ||||||
|  |         assertEquals("Limit default value should be 500", 500, searchParameters.getLimit()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void fromLimits_setPermissionEvaluationCount() throws Exception | ||||||
|  |     { | ||||||
|  |         SearchParameters searchParameters = new SearchParameters(); | ||||||
|  |         searchMapper.setDefaults(searchParameters); | ||||||
|  |         searchMapper.fromLimits(searchParameters, new Limits(null, 34, null)); | ||||||
|         assertEquals(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS, searchParameters.getLimitBy()); |         assertEquals(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS, searchParameters.getLimitBy()); | ||||||
|         assertEquals(1000, searchParameters.getMaxPermissionCheckTimeMillis()); |         assertEquals("MaxPermissionChecks should be set", 34, searchParameters.getMaxPermissionChecks()); | ||||||
|         assertEquals(-1, searchParameters.getLimit()); |         assertEquals("Limit should be -1", -1, searchParameters.getLimit()); | ||||||
|         assertEquals(-1, searchParameters.getMaxPermissionChecks()); |         assertEquals("MaxPermissionCheckTimeMillis should be -1", -1, searchParameters.getMaxPermissionCheckTimeMillis()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void fromLimits_setPermissionEvaluationTime() throws Exception | ||||||
|  |     { | ||||||
|  |         SearchParameters searchParameters = new SearchParameters(); | ||||||
|  |         searchMapper.setDefaults(searchParameters); | ||||||
|  |         searchMapper.fromLimits(searchParameters, new Limits(1000, null, null)); | ||||||
|  |         assertEquals(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS, searchParameters.getLimitBy()); | ||||||
|  |         assertEquals("MaxPermissionCheckTimeMillis should be set", 1000, searchParameters.getMaxPermissionCheckTimeMillis()); | ||||||
|  |         assertEquals("Limit should be -1", -1, searchParameters.getLimit()); | ||||||
|  |         assertEquals("MaxPermissionChecks should be -1", -1, searchParameters.getMaxPermissionChecks()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void fromLimits_setTrackTotalHitsLimit() throws Exception | ||||||
|  |     { | ||||||
|  |         SearchParameters searchParameters = new SearchParameters(); | ||||||
|  |         searchMapper.setDefaults(searchParameters); | ||||||
|  |         searchMapper.fromLimits(searchParameters, new Limits(null, null, 10)); | ||||||
|  |         assertEquals("TrackTotalHits should be set", 10, searchParameters.getTrackTotalHits()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>org.alfresco</groupId> |         <groupId>org.alfresco</groupId> | ||||||
|         <artifactId>alfresco-community-repo</artifactId> |         <artifactId>alfresco-community-repo</artifactId> | ||||||
|         <version>20.161</version> |         <version>21.9</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <dependencies> |     <dependencies> | ||||||
|   | |||||||
| @@ -251,15 +251,16 @@ public class TransactionBehaviourQueue implements TransactionListener | |||||||
|         } |         } | ||||||
|         catch (IllegalArgumentException e) |         catch (IllegalArgumentException e) | ||||||
|         { |         { | ||||||
|             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId(), e); |             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId() + " : " + e.getMessage(), e); | ||||||
|         } |         } | ||||||
|         catch (IllegalAccessException e) |         catch (IllegalAccessException e) | ||||||
|         { |         { | ||||||
|             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId(), e); |             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId() + " : " + e.getMessage(), e); | ||||||
|         } |         } | ||||||
|         catch (InvocationTargetException e) |         catch (InvocationTargetException e) | ||||||
|         { |         { | ||||||
|             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId(), e.getTargetException()); |             String msg = e.getMessage() + (e.getTargetException() != null ? "(" + e.getTargetException().getMessage() + ")" : ""); | ||||||
|  |             throw new AlfrescoRuntimeException("Failed to execute transaction-level behaviour " + context.method + " in transaction " + AlfrescoTransactionSupport.getTransactionId() + " : " + msg, e.getTargetException()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|   | |||||||
| @@ -1605,8 +1605,6 @@ public class LDAPUserRegistry implements UserRegistry, LDAPNameResolver, Initial | |||||||
|                     this.userSearchCtls = new SearchControls(); |                     this.userSearchCtls = new SearchControls(); | ||||||
|                     this.userSearchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); |                     this.userSearchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); | ||||||
|                     this.userSearchCtls.setReturningAttributes(LDAPUserRegistry.this.userKeys.getFirst()); |                     this.userSearchCtls.setReturningAttributes(LDAPUserRegistry.this.userKeys.getFirst()); | ||||||
|                     // MNT-14001 fix, set search limit to ensure that server will not return more search results then provided by paged result control |  | ||||||
|                     this.userSearchCtls.setCountLimit(LDAPUserRegistry.this.queryBatchSize > 0 ? LDAPUserRegistry.this.queryBatchSize : 0); |  | ||||||
|  |  | ||||||
|                     this.next = fetchNext(); |                     this.next = fetchNext(); | ||||||
|                 } |                 } | ||||||
|   | |||||||
| @@ -997,6 +997,20 @@ public class WorkflowServiceImpl implements WorkflowService | |||||||
|     public WorkflowTask updateTask(String taskId, Map<QName, Serializable> properties, Map<QName, List<NodeRef>> add, |     public WorkflowTask updateTask(String taskId, Map<QName, Serializable> properties, Map<QName, List<NodeRef>> add, | ||||||
|                 Map<QName, List<NodeRef>> remove) |                 Map<QName, List<NodeRef>> remove) | ||||||
|     { |     { | ||||||
|  |     	if(properties.containsKey(WorkflowModel.PROP_STATUS)) { | ||||||
|  |  | ||||||
|  |             LinkedList<String> validTaskStatus = new LinkedList<>(); | ||||||
|  |             validTaskStatus.add("Not Yet Started"); | ||||||
|  |             validTaskStatus.add("In Progress"); | ||||||
|  |             validTaskStatus.add("On Hold"); | ||||||
|  |             validTaskStatus.add("Cancelled"); | ||||||
|  |             validTaskStatus.add("Completed"); | ||||||
|  |  | ||||||
|  |             if (!validTaskStatus.contains(properties.get(WorkflowModel.PROP_STATUS))) { | ||||||
|  |                 throw new WorkflowException("Invalid Value is Passed for Task Status."); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 	 | ||||||
|         String engineId = BPMEngineRegistry.getEngineId(taskId); |         String engineId = BPMEngineRegistry.getEngineId(taskId); | ||||||
|         TaskComponent component = getTaskComponent(engineId); |         TaskComponent component = getTaskComponent(engineId); | ||||||
|         // get the current assignee before updating the task |         // get the current assignee before updating the task | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| repository.name=Main Repository | repository.name=Main Repository | ||||||
|  |  | ||||||
| # Schema number | # Schema number | ||||||
| version.schema=18000 | version.schema=18100 | ||||||
|  |  | ||||||
| # Directory configuration | # Directory configuration | ||||||
|  |  | ||||||
| @@ -1349,7 +1349,7 @@ system.remove-alf_server-table-from-db.ignored=true | |||||||
| allow.unsecure.callback.jsonp=false | allow.unsecure.callback.jsonp=false | ||||||
|  |  | ||||||
| # pre-configured allow list of media/mime types to allow inline instead of attachment (via Content-Disposition response header) | # pre-configured allow list of media/mime types to allow inline instead of attachment (via Content-Disposition response header) | ||||||
| content.nonAttach.mimetypes=application/pdf,image/jpeg,image/gif,image/png,image/tiff,image/bmp | content.nonAttach.mimetypes=application/pdf,image/jpeg,image/gif,image/png,image/tiff,image/bmp,application/octet-stream | ||||||
|  |  | ||||||
| # Zip file compression ratio threshold as a percentage, above which the zip file will be considered a "zip bomb" and the | # Zip file compression ratio threshold as a percentage, above which the zip file will be considered a "zip bomb" and the | ||||||
| # import extraction process cancelled. | # import extraction process cancelled. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user