mirror of
				https://github.com/Alfresco/alfresco-community-repo.git
				synced 2025-10-29 15:21:53 +00:00 
			
		
		
		
	Compare commits
	
		
			144 Commits
		
	
	
		
			23.1.0.125
			...
			APPS-2000_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 3ffe06391b | ||
|  | 92ff7151d8 | ||
|  | d7722e4f25 | ||
|  | 6a87008665 | ||
|  | 6d14548119 | ||
|  | 67c4751676 | ||
|  | d4a60a1d24 | ||
|  | 4388a75924 | ||
|  | 5982ec7172 | ||
|  | 7f26658eba | ||
|  | 88273f3073 | ||
|  | 7218864a44 | ||
|  | 133dd2b1c1 | ||
|  | ade270743e | ||
|  | 59b50f0c67 | ||
|  | 8837c15a67 | ||
|  | bac818baf2 | ||
|  | 2f6c845865 | ||
|  | 347627d0fd | ||
|  | a495dae1db | ||
|  | a07da7308f | ||
|  | 8b472e89f5 | ||
|  | a3aaaedb0e | ||
|  | 044d07af86 | ||
|  | 110ccd5574 | ||
|  | 8fbe444266 | ||
|  | 5ef0bbb840 | ||
|  | ba5720b494 | ||
|  | 866adc16f3 | ||
|  | 577788a8c6 | ||
|  | 6b02b4dc05 | ||
|  | fc847ac7a5 | ||
|  | 25e8f0c6f8 | ||
|  | 499cf08ecd | ||
|  | f0c191d7ca | ||
|  | a1faf97fc5 | ||
|  | d372ff6f5e | ||
|  | 095bf0e8d8 | ||
|  | c23db31ca4 | ||
|  | 6cfcc8b207 | ||
|  | 20582dfcf9 | ||
|  | fb6b1ef4ab | ||
|  | 7fc184ccf3 | ||
|  | 732d4e4733 | ||
|  | bd94060fea | ||
|  | d46ae1634f | ||
|  | 7bd31eca5f | ||
|  | 8938aaff09 | ||
|  | 18dadfe110 | ||
|  | 4e9fb76404 | ||
|  | 295c3ba58e | ||
|  | 195e0e927c | ||
|  | b0adc1a6bb | ||
|  | 828c98d03f | ||
|  | 1d4c97cfb7 | ||
|  | e0d5d0691f | ||
|  | 96942ceeb9 | ||
|  | 2d16c28859 | ||
|  | 51fe0275df | ||
|  | 4786a0fb0b | ||
|  | 3f91a6001f | ||
|  | 1f1b534a28 | ||
|  | 689e6a23fa | ||
|  | 562c83bb9c | ||
|  | 4ff91be9f4 | ||
|  | f3190133c3 | ||
|  | 8325cd7c66 | ||
|  | aeb931b018 | ||
|  | 6679a33412 | ||
|  | aea504f911 | ||
|  | fb235e1682 | ||
|  | 4065400dbd | ||
|  | 02aa423087 | ||
|  | 0dbd2fb3d0 | ||
|  | c30c96de47 | ||
|  | fa9ffbe71a | ||
|  | 826db75625 | ||
|  | 04df3385fd | ||
|  | cc12b34c7f | ||
|  | c110e2b76c | ||
|  | 3d1ef4883b | ||
|  | afa2bbf325 | ||
|  | 1d665f4e50 | ||
|  | 6a527068dc | ||
|  | a45c04679f | ||
|  | bc6398c038 | ||
|  | 43f1100040 | ||
|  | 8bade25669 | ||
|  | 1e6e87f24a | ||
|  | cac97dc1e7 | ||
|  | 3bcef29c30 | ||
|  | fb98bb09f0 | ||
|  | ad723a700a | ||
|  | 1bc5bed838 | ||
|  | beaf83a008 | ||
|  | 8734eec068 | ||
|  | 1e506659d2 | ||
|  | b834ab9245 | ||
|  | 402c0661e0 | ||
|  | 763f0932a0 | ||
|  | 0403fcde69 | ||
|  | 1866e64d07 | ||
|  | 47b793b922 | ||
|  | 8ebaf16a45 | ||
|  | c3dcf8891e | ||
|  | 5cdb5f2922 | ||
|  | 2bac9bd9d1 | ||
|  | fffef168d9 | ||
|  | 0f89c3ce8a | ||
|  | 497b197c12 | ||
|  | 2b8ea3bb50 | ||
|  | 5e7394a37d | ||
|  | 89329d7984 | ||
|  | 3f94b1632b | ||
|  | d0f6867887 | ||
|  | 49c56e9a9d | ||
|  | 78b54e65c4 | ||
|  | b93212f3bf | ||
|  | 636d63e34f | ||
|  | ad934e511d | ||
|  | 16db159092 | ||
|  | fd8e44e365 | ||
|  | ed924094ff | ||
|  | 3181d2b8bf | ||
|  | 2891a3ba61 | ||
|  | 92f27bbcd7 | ||
|  | 80d4db2e81 | ||
|  | 6bd598fadf | ||
|  | c1b4b30262 | ||
|  | f0e5dcaa67 | ||
|  | 07c7342032 | ||
|  | b0af817377 | ||
|  | e8cf0f7d12 | ||
|  | b8e621d3d9 | ||
|  | a62db22ecb | ||
|  | 5fcee3ec55 | ||
|  | 8a6274b37e | ||
|  | d279b3e3c3 | ||
|  | da5505a21f | ||
|  | e476334998 | ||
|  | 7990991453 | ||
|  | 9289fc7f89 | ||
|  | 653f733887 | ||
|  | 623782dc97 | 
							
								
								
									
										40
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -65,7 +65,21 @@ jobs: | ||||
|           srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }} | ||||
|       - name: "Clean Maven cache" | ||||
|         run: bash ./scripts/ci/cleanup_cache.sh | ||||
|          | ||||
|  | ||||
|   pmd_scan: | ||||
|     name: "PMD Scan" | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [prepare] | ||||
|     if: > | ||||
|       github.event_name == 'pull_request' && | ||||
|       !contains(github.event.head_commit.message, '[skip pmd]') && | ||||
|       !contains(github.event.head_commit.message, '[skip tests]') && | ||||
|       !contains(github.event.head_commit.message, '[force]') | ||||
|     steps: | ||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/pmd@v2.5.0 | ||||
|         with: | ||||
|           fail-on-new-issues: "false" | ||||
|  | ||||
|   all_unit_tests_suite: | ||||
|     name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test" | ||||
|     runs-on: ubuntu-latest | ||||
| @@ -547,3 +561,27 @@ jobs: | ||||
|           aws s3 cp --acl private ./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports/rm-automation-community-rest-api.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/rm-automation-community-rest-api.log | ||||
|       - name: "Clean Maven cache" | ||||
|         run: bash ./scripts/ci/cleanup_cache.sh | ||||
|  | ||||
|   ags_start_api_explorer: | ||||
|     name: "Test Tomcat deployment of api explorer" | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [ prepare ] | ||||
|     if: > | ||||
|       (((github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request' ) && | ||||
|       !contains(github.event.head_commit.message, '[skip ags]')) || | ||||
|       contains(github.event.head_commit.message, '[ags]')) && | ||||
|       !contains(github.event.head_commit.message, '[skip tests]') && | ||||
|       !contains(github.event.head_commit.message, '[force]') | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.33.0 | ||||
|       - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.33.0 | ||||
|       - name: "Build" | ||||
|         timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | ||||
|         run: | | ||||
|           bash ./scripts/ci/init.sh | ||||
|           bash ./scripts/ci/build.sh | ||||
|       - name: "Test Tomcat deployment" | ||||
|         run: | | ||||
|           mvn verify -Pags,start-api-explorer -DskipTests & | ||||
|           ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8085/api-explorer" | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-community-repo-amps</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <modules> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-governance-services-community-parent</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <modules> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-governance-services-automation-community-repo</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <build> | ||||
| @@ -82,7 +82,7 @@ | ||||
|       <dependency> | ||||
|          <groupId>com.github.docker-java</groupId> | ||||
|          <artifactId>docker-java</artifactId> | ||||
|          <version>3.3.0</version> | ||||
|          <version>3.3.2</version> | ||||
|       </dependency> | ||||
|    </dependencies> | ||||
| </project> | ||||
|   | ||||
| @@ -512,7 +512,12 @@ public abstract class BaseAPI | ||||
|         try | ||||
|         { | ||||
|             HttpResponse httpResponse = doRequestJson(HttpPost.class, requestUrl, adminUser, adminPassword, requestParams); | ||||
|             assertEquals("POST request to " + requestUrl + " was not successful.", expectedStatusCode, httpResponse.getStatusLine().getStatusCode()); | ||||
|             if (httpResponse.getStatusLine().getStatusCode() != expectedStatusCode) | ||||
|             { | ||||
|                 // It's only possible to stream the response body once, so ensure we only do this if the test has failed. | ||||
|                 JSONObject responseJson = responseBodyToJson(httpResponse); | ||||
|                 assertEquals("POST request to " + requestUrl + " was not successful. Response: " + responseJson, expectedStatusCode, httpResponse.getStatusLine().getStatusCode()); | ||||
|             } | ||||
|             return httpResponse; | ||||
|         } | ||||
|         catch (InstantiationException | IllegalAccessException error) | ||||
| @@ -521,6 +526,32 @@ public abstract class BaseAPI | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Try to convert the response body to a JSON object. | ||||
|      * | ||||
|      * @param response The response. | ||||
|      * @return The JSON object or null if it was not possible to convert the response. | ||||
|      */ | ||||
|     private JSONObject responseBodyToJson(HttpResponse response) | ||||
|     { | ||||
|         try | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 return new JSONObject(EntityUtils.toString(response.getEntity())); | ||||
|             } | ||||
|             catch (JSONException error) | ||||
|             { | ||||
|                 LOGGER.error("Converting message body to JSON failed. Body: {}", response.getEntity().getContent(), error); | ||||
|             } | ||||
|         } | ||||
|         catch (ParseException | IOException error) | ||||
|         { | ||||
|             LOGGER.error("Parsing message body failed.", error); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Helper method for handling generic HTTP requests | ||||
|      * @param requestType request type (a subclass of {@link HttpRequestBase}) | ||||
| @@ -558,18 +589,7 @@ public abstract class BaseAPI | ||||
|             HttpResponse response = client.execute(adminUser, adminPassword, request); | ||||
|             LOGGER.info("Response: {}", response.getStatusLine()); | ||||
|  | ||||
|             try | ||||
|             { | ||||
|                 responseBody = new JSONObject(EntityUtils.toString(response.getEntity())); | ||||
|             } | ||||
|             catch (JSONException error) | ||||
|             { | ||||
|                 LOGGER.error("Converting message body to JSON failed. Body: {}", responseBody, error); | ||||
|             } | ||||
|             catch (ParseException | IOException error) | ||||
|             { | ||||
|                 LOGGER.error("Parsing message body failed.", error); | ||||
|             } | ||||
|             responseBody = responseBodyToJson(response); | ||||
|  | ||||
|             switch (response.getStatusLine().getStatusCode()) | ||||
|             { | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-governance-services-community-parent</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <modules> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-governance-services-community-repo-parent</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <properties> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-governance-services-community-repo-parent</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <build> | ||||
| @@ -36,24 +36,40 @@ | ||||
|          <id>start-api-explorer</id> | ||||
|          <build> | ||||
|             <plugins> | ||||
|                <plugin> | ||||
|                   <groupId>org.apache.tomcat.maven</groupId> | ||||
|                   <artifactId>tomcat7-maven-plugin</artifactId> | ||||
|                   <executions> | ||||
|                      <execution> | ||||
|                         <id>run-war</id> | ||||
|                         <goals> | ||||
|                            <goal>run-war</goal> | ||||
|                         </goals> | ||||
|                         <phase>verify</phase> | ||||
|                      </execution> | ||||
|                   </executions> | ||||
|                   <configuration> | ||||
|                      <useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader> | ||||
|                      <path>/api-explorer</path> | ||||
|                      <port>8085</port> | ||||
|                   </configuration> | ||||
|                </plugin> | ||||
|                 <plugin> | ||||
|                     <groupId>org.codehaus.cargo</groupId> | ||||
|                     <artifactId>cargo-maven3-plugin</artifactId> | ||||
|                     <executions> | ||||
|                         <execution> | ||||
|                             <id>run-war</id> | ||||
|                             <phase>verify</phase> | ||||
|                             <goals> | ||||
|                                 <goal>run</goal> | ||||
|                             </goals> | ||||
|                         </execution> | ||||
|                     </executions> | ||||
|                     <configuration> | ||||
|                         <container> | ||||
|                             <containerId>tomcat9x</containerId> | ||||
|                             <type>embedded</type> | ||||
|                             <log>target/cargo.log</log> | ||||
|                         </container> | ||||
|                         <configuration> | ||||
|                             <properties> | ||||
|                                 <cargo.servlet.port>8085</cargo.servlet.port> | ||||
|                             </properties> | ||||
|                         </configuration> | ||||
|                         <deployables> | ||||
|                             <deployable> | ||||
|                                 <type>war</type> | ||||
|                                 <properties> | ||||
|                                     <context>/api-explorer</context> | ||||
|                                 </properties> | ||||
|                                 <pingURL>http://localhost:8085/api-explorer</pingURL> | ||||
|                             </deployable> | ||||
|                         </deployables> | ||||
|                     </configuration> | ||||
|                 </plugin> | ||||
|             </plugins> | ||||
|          </build> | ||||
|       </profile> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <modules> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-amps</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <properties> | ||||
|   | ||||
| @@ -23,6 +23,10 @@ function runAction(p_params) | ||||
|       if (p_params.destNode.hasAspect("cm:lockable") && !p_params.destNode.hasAspect("trx:transferred")) | ||||
|       { | ||||
|          p_params.destNode.unlock(); | ||||
|          if(p_params.destNode.hasAspect("gd2:editingInGoogle")) | ||||
|          { | ||||
|              p_params.destNode.removeAspect("gd2:editingInGoogle"); | ||||
|          } | ||||
|       } | ||||
|  | ||||
|       var resultId = originalDoc.name, | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|    <parent> | ||||
|       <groupId>org.alfresco</groupId> | ||||
|       <artifactId>alfresco-community-repo</artifactId> | ||||
|       <version>23.1.0.125</version> | ||||
|       <version>23.1.0.163-SNAPSHOT</version> | ||||
|    </parent> | ||||
|  | ||||
|    <dependencies> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <properties> | ||||
|   | ||||
| @@ -201,6 +201,11 @@ public class SearchParameters implements BasicSearchParameters | ||||
|  | ||||
|     private String timezone; | ||||
|      | ||||
|     /** | ||||
|      * Configure the limit to track the total hits on search results | ||||
|      */ | ||||
|     private int trackTotalHits; | ||||
|  | ||||
|     /** | ||||
|      * Default constructor | ||||
|      */ | ||||
| @@ -251,6 +256,7 @@ public class SearchParameters implements BasicSearchParameters | ||||
|         sp.stats = this.stats; | ||||
|         sp.ranges = this.ranges; | ||||
|         sp.timezone = this.timezone; | ||||
|         sp.trackTotalHits = this.trackTotalHits; | ||||
|         return sp; | ||||
|     } | ||||
|      | ||||
| @@ -1641,6 +1647,21 @@ public class SearchParameters implements BasicSearchParameters | ||||
|     { | ||||
|         this.includeMetadata = includeMetadata; | ||||
|     } | ||||
|      | ||||
|  | ||||
|     public int getTrackTotalHits() | ||||
|     { | ||||
|         return trackTotalHits; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Set a maximum value for the report of total hits. The reported number of hits will never exceed this limit even | ||||
|      * if more are found. If unset, the 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> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <dependencies> | ||||
|   | ||||
| @@ -9,6 +9,6 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
| </project> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <properties> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <modules> | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <modules> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-tests</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <organization> | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-tests</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <developers> | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-tests</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <developers> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-tests</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <properties> | ||||
| @@ -171,14 +171,14 @@ | ||||
|         <dependency> | ||||
|             <groupId>org.codehaus.groovy</groupId> | ||||
|             <artifactId>groovy</artifactId> | ||||
|             <version>3.0.17</version> | ||||
|             <version>3.0.18</version> | ||||
|         </dependency> | ||||
|  | ||||
|         <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json--> | ||||
|         <dependency> | ||||
|             <groupId>org.codehaus.groovy</groupId> | ||||
|             <artifactId>groovy-json</artifactId> | ||||
|             <version>3.0.17</version> | ||||
|             <version>3.0.18</version> | ||||
|         </dependency> | ||||
|  | ||||
|        <dependency> | ||||
|   | ||||
| @@ -0,0 +1,190 @@ | ||||
| package org.alfresco.rest.search; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Objects; | ||||
|  | ||||
| import org.alfresco.rest.core.IRestModel; | ||||
| import org.alfresco.utility.model.TestModel; | ||||
|  | ||||
| import com.fasterxml.jackson.annotation.JsonProperty; | ||||
|  | ||||
| /** | ||||
|  * Generated by 'krystian' on '2023-06-12 18:46' from 'Alfresco Content Services REST API' swagger file  | ||||
|  * Generated from 'Alfresco Content Services REST API' swagger file | ||||
|  * Base Path {@linkplain /alfresco/api/-default-/public/search/versions/1} | ||||
|  */ | ||||
| public class RestRequestDefaultsModel extends TestModel implements IRestModel<RestRequestDefaultsModel> | ||||
| { | ||||
|     @JsonProperty(value = "entry") | ||||
|     RestRequestDefaultsModel model; | ||||
|  | ||||
|     @Override | ||||
|     public RestRequestDefaultsModel onModel() | ||||
|     { | ||||
|         return model; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|     A list of query fields/properties used to expand TEXT: queries. | ||||
| The default is cm:content. | ||||
| You could include all content properties using d:content or list all individual content properties or types. | ||||
| As more terms are included the query size, complexity, memory impact and query time will increase. | ||||
|  | ||||
|     */	         | ||||
|  | ||||
|     private List<String> textAttributes;	     | ||||
|     /** | ||||
|     The default way to combine query parts when AND or OR is not explicitly stated - includes ! - + | ||||
| one two three | ||||
| (one two three) | ||||
|  | ||||
|     */	         | ||||
|  | ||||
|     private String defaultFTSOperator;	     | ||||
|     /** | ||||
|     The default way to combine query parts in field query groups when AND or OR is not explicitly stated - includes ! - + | ||||
| FIELD:(one two three) | ||||
|  | ||||
|     */	         | ||||
|  | ||||
|     private String defaultFTSFieldOperator;	     | ||||
|     /** | ||||
|     The default name space to use if one is not provided | ||||
|     */	         | ||||
|  | ||||
|     private String namespace;	     | ||||
|  | ||||
|     private String defaultFieldName;	     | ||||
|  | ||||
|     public List<String> getTextAttributes() | ||||
|     { | ||||
|         return this.textAttributes; | ||||
|     } | ||||
|  | ||||
|     public void setTextAttributes(List<String> textAttributes) | ||||
|     { | ||||
|         this.textAttributes = textAttributes; | ||||
|     }				 | ||||
|  | ||||
|     public String getDefaultFTSOperator() | ||||
|     { | ||||
|         return this.defaultFTSOperator; | ||||
|     } | ||||
|  | ||||
|     public void setDefaultFTSOperator(String defaultFTSOperator) | ||||
|     { | ||||
|         this.defaultFTSOperator = defaultFTSOperator; | ||||
|     }				 | ||||
|  | ||||
|     public String getDefaultFTSFieldOperator() | ||||
|     { | ||||
|         return this.defaultFTSFieldOperator; | ||||
|     } | ||||
|  | ||||
|     public void setDefaultFTSFieldOperator(String defaultFTSFieldOperator) | ||||
|     { | ||||
|         this.defaultFTSFieldOperator = defaultFTSFieldOperator; | ||||
|     }				 | ||||
|  | ||||
|     public String getNamespace() | ||||
|     { | ||||
|         return this.namespace; | ||||
|     } | ||||
|  | ||||
|     public void setNamespace(String namespace) | ||||
|     { | ||||
|         this.namespace = namespace; | ||||
|     }				 | ||||
|  | ||||
|     public String getDefaultFieldName() | ||||
|     { | ||||
|         return this.defaultFieldName; | ||||
|     } | ||||
|  | ||||
|     public void setDefaultFieldName(String defaultFieldName) | ||||
|     { | ||||
|         this.defaultFieldName = defaultFieldName; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() | ||||
|     { | ||||
|         return "RestRequestDefaultsModel{" + "textAttributes=" + textAttributes + ", defaultFTSOperator='" + defaultFTSOperator + '\'' + ", defaultFTSFieldOperator='" | ||||
|             + defaultFTSFieldOperator + '\'' + ", namespace='" + namespace + '\'' + ", defaultFieldName='" + defaultFieldName + '\'' + '}'; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object o) | ||||
|     { | ||||
|         if (this == o) | ||||
|             return true; | ||||
|         if (o == null || getClass() != o.getClass()) | ||||
|             return false; | ||||
|         RestRequestDefaultsModel that = (RestRequestDefaultsModel) o; | ||||
|         return Objects.equals(textAttributes, that.textAttributes) && Objects.equals(defaultFTSOperator, that.defaultFTSOperator) && Objects.equals( | ||||
|             defaultFTSFieldOperator, that.defaultFTSFieldOperator) && Objects.equals(namespace, that.namespace) && Objects.equals(defaultFieldName, that.defaultFieldName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int hashCode() | ||||
|     { | ||||
|         return Objects.hash(textAttributes, defaultFTSOperator, defaultFTSFieldOperator, namespace, defaultFieldName); | ||||
|     } | ||||
|  | ||||
|     public static Builder builder() | ||||
|     { | ||||
|         return new Builder(); | ||||
|     } | ||||
|  | ||||
|     public static class Builder | ||||
|     { | ||||
|         private List<String> textAttributes; | ||||
|         private String defaultFTSOperator; | ||||
|         private String defaultFTSFieldOperator; | ||||
|         private String namespace; | ||||
|         private String defaultFieldName; | ||||
|  | ||||
|         public Builder textAttributes(List<String> textAttributes) | ||||
|         { | ||||
|             this.textAttributes = textAttributes; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder defaultFTSOperator(String defaultFTSOperator) | ||||
|         { | ||||
|             this.defaultFTSOperator = defaultFTSOperator; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder defaultFTSFieldOperator(String defaultFTSFieldOperator) | ||||
|         { | ||||
|             this.defaultFTSFieldOperator = defaultFTSFieldOperator; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder namespace(String namespace) | ||||
|         { | ||||
|             this.namespace = namespace; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder defaultFieldName(String defaultFieldName) | ||||
|         { | ||||
|             this.defaultFieldName = defaultFieldName; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public RestRequestDefaultsModel create() | ||||
|         { | ||||
|             RestRequestDefaultsModel defaults = new RestRequestDefaultsModel(); | ||||
|             defaults.setTextAttributes(this.textAttributes); | ||||
|             defaults.setDefaultFTSOperator(this.defaultFTSOperator); | ||||
|             defaults.setDefaultFTSFieldOperator(this.defaultFTSFieldOperator); | ||||
|             defaults.setNamespace(this.namespace); | ||||
|             defaults.setDefaultFieldName(this.defaultFieldName); | ||||
|  | ||||
|             return defaults; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,105 @@ | ||||
| package org.alfresco.rest.search; | ||||
|  | ||||
| import java.util.Objects; | ||||
|  | ||||
| import org.alfresco.rest.core.IRestModel; | ||||
| import org.alfresco.utility.model.TestModel; | ||||
|  | ||||
| import com.fasterxml.jackson.annotation.JsonProperty; | ||||
|  | ||||
| /** | ||||
|  * Generated by 'krystian' on '2023-06-12 18:46' from 'Alfresco Content Services REST API' swagger file  | ||||
|  * Generated from 'Alfresco Content Services REST API' swagger file | ||||
|  * Base Path {@linkplain /alfresco/api/-default-/public/search/versions/1} | ||||
|  */ | ||||
| public class RestRequestTemplatesModel extends TestModel implements IRestModel<RestRequestTemplatesModel> | ||||
| { | ||||
|     @JsonProperty(value = "entry") | ||||
|     RestRequestTemplatesModel model; | ||||
|  | ||||
|     @Override | ||||
|     public RestRequestTemplatesModel onModel() | ||||
|     { | ||||
|         return model; | ||||
|     } | ||||
|  | ||||
|     private String name; | ||||
|  | ||||
|     private String template; | ||||
|  | ||||
|     public String getName() | ||||
|     { | ||||
|         return name; | ||||
|     } | ||||
|  | ||||
|     public void setName(String name) | ||||
|     { | ||||
|         this.name = name; | ||||
|     } | ||||
|  | ||||
|     public String getTemplate() | ||||
|     { | ||||
|         return template; | ||||
|     } | ||||
|  | ||||
|     public void setTemplate(String template) | ||||
|     { | ||||
|         this.template = template; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() | ||||
|     { | ||||
|         return "RestRequestTemplatesModel{" + "name='" + name + '\'' + ", template='" + template + '\'' + '}'; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object o) | ||||
|     { | ||||
|         if (this == o) | ||||
|             return true; | ||||
|         if (o == null || getClass() != o.getClass()) | ||||
|             return false; | ||||
|         RestRequestTemplatesModel that = (RestRequestTemplatesModel) o; | ||||
|         return Objects.equals(name, that.name) && Objects.equals(template, that.template); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int hashCode() | ||||
|     { | ||||
|         return Objects.hash(name, template); | ||||
|     } | ||||
|  | ||||
|     public static Builder builder() | ||||
|     { | ||||
|         return new Builder(); | ||||
|     } | ||||
|  | ||||
|     public static class Builder | ||||
|     { | ||||
|         private String name; | ||||
|         private String template; | ||||
|  | ||||
|         public Builder name(String name) | ||||
|         { | ||||
|             this.name = name; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder template(String template) | ||||
|         { | ||||
|             this.template = template; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public RestRequestTemplatesModel create() | ||||
|         { | ||||
|             RestRequestTemplatesModel template = new RestRequestTemplatesModel(); | ||||
|             template.setName(this.name); | ||||
|             template.setTemplate(this.template); | ||||
|  | ||||
|             return template; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -43,14 +43,15 @@ | ||||
|  */ | ||||
| package org.alfresco.rest.search; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| import com.fasterxml.jackson.annotation.JsonProperty; | ||||
|  | ||||
| import org.alfresco.rest.model.RestRequestRangesModel; | ||||
| import org.alfresco.rest.model.RestRequestSpellcheckModel; | ||||
| import org.alfresco.utility.model.TestModel; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * Search Query object. | ||||
|  * @author msuzuki | ||||
| @@ -76,6 +77,9 @@ public class SearchRequest extends TestModel | ||||
|     String facetFormat; | ||||
|     List<String> include; | ||||
|     List<SortClause> sort; | ||||
|     RestRequestDefaultsModel defaults; | ||||
|     List<RestRequestTemplatesModel> templates; | ||||
|     RestRequestLimitsModel limits; | ||||
|  | ||||
|     public SearchRequest() | ||||
|     { | ||||
| @@ -255,6 +259,26 @@ public class SearchRequest extends TestModel | ||||
|         this.fields = fields; | ||||
|     } | ||||
|  | ||||
|     public RestRequestDefaultsModel getDefaults() | ||||
|     { | ||||
|         return defaults; | ||||
|     } | ||||
|  | ||||
|     public void setDefaults(RestRequestDefaultsModel defaults) | ||||
|     { | ||||
|         this.defaults = defaults; | ||||
|     } | ||||
|  | ||||
|     public List<RestRequestTemplatesModel> getTemplates() | ||||
|     { | ||||
|         return templates; | ||||
|     } | ||||
|  | ||||
|     public void setTemplates(List<RestRequestTemplatesModel> templates) | ||||
|     { | ||||
|         this.templates = templates; | ||||
|     } | ||||
|  | ||||
|     public List<SortClause> getSort() | ||||
|     { | ||||
|         if (sort == null) | ||||
| @@ -279,4 +303,15 @@ public class SearchRequest extends TestModel | ||||
|  | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public RestRequestLimitsModel getLimits() | ||||
|     { | ||||
|         return limits; | ||||
|     } | ||||
|  | ||||
|     public void setLimits(RestRequestLimitsModel limits) | ||||
|     { | ||||
|         this.limits = limits; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-tests</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <developers> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo-packaging</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <properties> | ||||
| @@ -30,10 +30,6 @@ | ||||
|             <groupId>org.alfresco</groupId> | ||||
|             <artifactId>alfresco-trashcan-cleaner</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.alfresco.services</groupId> | ||||
|             <artifactId>alfresco-messaging-repo</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>xalan</groupId> | ||||
|             <artifactId>xalan</artifactId> | ||||
|   | ||||
							
								
								
									
										69
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								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"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|     <artifactId>alfresco-community-repo</artifactId> | ||||
|     <version>23.1.0.125</version> | ||||
|     <version>23.1.0.163-SNAPSHOT</version> | ||||
|     <packaging>pom</packaging> | ||||
|     <name>Alfresco Community Repo Parent</name> | ||||
|  | ||||
| @@ -45,31 +45,31 @@ | ||||
|  | ||||
|         <dir.root>${project.build.directory}/alf_data</dir.root> | ||||
|  | ||||
|         <dependency.alfresco-hb-data-sender.version>1.1.0</dependency.alfresco-hb-data-sender.version> | ||||
|         <dependency.alfresco-trashcan-cleaner.version>2.4.1</dependency.alfresco-trashcan-cleaner.version> | ||||
|         <dependency.alfresco-jlan.version>7.4</dependency.alfresco-jlan.version> | ||||
|         <dependency.alfresco-hb-data-sender.version>1.1.1</dependency.alfresco-hb-data-sender.version> | ||||
|         <dependency.alfresco-trashcan-cleaner.version>2.4.2</dependency.alfresco-trashcan-cleaner.version> | ||||
|         <dependency.alfresco-jlan.version>7.5</dependency.alfresco-jlan.version> | ||||
|         <dependency.alfresco-server-root.version>6.0.1</dependency.alfresco-server-root.version> | ||||
|         <dependency.alfresco-messaging-repo.version>1.2.22</dependency.alfresco-messaging-repo.version> | ||||
|         <dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version> | ||||
|         <dependency.activiti.version>5.23.0</dependency.activiti.version> | ||||
|         <dependency.alfresco-transform-service.version>2.2.0-A1</dependency.alfresco-transform-service.version> | ||||
|         <dependency.alfresco-transform-core.version>3.2.0-A1</dependency.alfresco-transform-core.version> | ||||
|         <dependency.alfresco-transform-service.version>3.0.0</dependency.alfresco-transform-service.version> | ||||
|         <dependency.alfresco-transform-core.version>4.0.0</dependency.alfresco-transform-core.version> | ||||
|         <dependency.alfresco-greenmail.version>6.9</dependency.alfresco-greenmail.version> | ||||
|         <dependency.acs-event-model.version>0.0.22</dependency.acs-event-model.version> | ||||
|         <dependency.acs-event-model.version>0.0.23</dependency.acs-event-model.version> | ||||
|  | ||||
|         <dependency.spring.version>5.3.27</dependency.spring.version> | ||||
|         <dependency.antlr.version>3.5.3</dependency.antlr.version> | ||||
|         <dependency.jackson.version>2.15.1</dependency.jackson.version> | ||||
|         <dependency.cxf.version>3.5.5</dependency.cxf.version> | ||||
|         <dependency.opencmis.version>1.0.0</dependency.opencmis.version> | ||||
|         <dependency.webscripts.version>8.42</dependency.webscripts.version> | ||||
|         <dependency.webscripts.version>8.45</dependency.webscripts.version> | ||||
|         <dependency.bouncycastle.version>1.70</dependency.bouncycastle.version> | ||||
|         <dependency.mockito-core.version>4.9.0</dependency.mockito-core.version> | ||||
|         <dependency.assertj.version>3.24.2</dependency.assertj.version> | ||||
|         <dependency.org-json.version>20230227</dependency.org-json.version> | ||||
|         <dependency.org-json.version>20230618</dependency.org-json.version> | ||||
|         <dependency.commons-dbcp.version>2.9.0</dependency.commons-dbcp.version> | ||||
|         <dependency.commons-io.version>2.11.0</dependency.commons-io.version> | ||||
|         <dependency.gson.version>2.8.9</dependency.gson.version> | ||||
|         <dependency.guava.version>32.1.1-jre</dependency.guava.version> | ||||
|         <dependency.httpclient.version>4.5.13</dependency.httpclient.version> | ||||
|         <dependency.httpcore.version>4.4.16</dependency.httpcore.version> | ||||
|         <dependency.commons-httpclient.version>3.1-HTTPCLIENT-1265</dependency.commons-httpclient.version> | ||||
| @@ -77,7 +77,7 @@ | ||||
|         <dependency.slf4j.version>2.0.7</dependency.slf4j.version> | ||||
|         <dependency.log4j.version>2.20.0</dependency.log4j.version> | ||||
|         <dependency.gytheio.version>0.20.0-A1</dependency.gytheio.version> | ||||
|         <dependency.groovy.version>3.0.17</dependency.groovy.version> | ||||
|         <dependency.groovy.version>3.0.18</dependency.groovy.version> | ||||
|         <dependency.tika.version>2.4.1</dependency.tika.version> | ||||
|         <dependency.spring-security.version>5.8.3</dependency.spring-security.version> | ||||
|         <dependency.truezip.version>7.7.10</dependency.truezip.version> | ||||
| @@ -93,7 +93,7 @@ | ||||
|         <dependency.apache.taglibs.version>1.2.5</dependency.apache.taglibs.version> | ||||
|         <dependency.awaitility.version>4.2.0</dependency.awaitility.version> | ||||
|         <dependency.swagger-ui.version>3.38.0</dependency.swagger-ui.version> | ||||
|         <dependency.swagger-parser.version>1.0.66</dependency.swagger-parser.version> | ||||
|         <dependency.swagger-parser.version>1.0.67</dependency.swagger-parser.version> | ||||
|         <dependency.maven-filtering.version>3.1.1</dependency.maven-filtering.version> | ||||
|         <dependency.maven-artifact.version>3.8.6</dependency.maven-artifact.version> | ||||
|         <dependency.jdom2.version>2.0.6.1</dependency.jdom2.version> | ||||
| @@ -108,11 +108,11 @@ | ||||
|         <dependency.jakarta-mail-api.version>1.6.5</dependency.jakarta-mail-api.version> | ||||
|         <dependency.jakarta-json-api.version>1.1.6</dependency.jakarta-json-api.version> | ||||
|         <dependency.jakarta-json-path.version>2.8.0</dependency.jakarta-json-path.version> | ||||
|         <dependency.json-smart.version>2.4.11</dependency.json-smart.version> | ||||
|         <dependency.json-smart.version>2.5.0</dependency.json-smart.version> | ||||
|         <dependency.jakarta-rpc-api.version>1.1.4</dependency.jakarta-rpc-api.version> | ||||
|  | ||||
|         <alfresco.googledrive.version>3.5.0-A2</alfresco.googledrive.version> | ||||
|         <alfresco.aos-module.version>1.6.0</alfresco.aos-module.version> | ||||
|         <alfresco.googledrive.version>3.4.2-A2</alfresco.googledrive.version> | ||||
|         <alfresco.aos-module.version>1.6.1</alfresco.aos-module.version> | ||||
|         <alfresco.api-explorer.version>23.1.0-A1</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share --> | ||||
|  | ||||
|         <alfresco.maven-plugin.version>2.2.0</alfresco.maven-plugin.version> | ||||
| @@ -122,11 +122,11 @@ | ||||
|         <dependency.mysql.version>8.0.30</dependency.mysql.version> | ||||
|         <dependency.mysql-image.version>8</dependency.mysql-image.version> | ||||
|         <dependency.mariadb.version>2.7.4</dependency.mariadb.version> | ||||
|         <dependency.tas-utility.version>4.0.3</dependency.tas-utility.version> | ||||
|         <dependency.rest-assured.version>5.3.0</dependency.rest-assured.version> | ||||
|         <dependency.tas-email.version>1.21</dependency.tas-email.version> | ||||
|         <dependency.tas-webdav.version>1.16</dependency.tas-webdav.version> | ||||
|         <dependency.tas-ftp.version>1.17</dependency.tas-ftp.version> | ||||
|         <dependency.tas-utility.version>4.0.4</dependency.tas-utility.version> | ||||
|         <dependency.rest-assured.version>5.3.1</dependency.rest-assured.version> | ||||
|         <dependency.tas-email.version>1.23</dependency.tas-email.version> | ||||
|         <dependency.tas-webdav.version>1.18</dependency.tas-webdav.version> | ||||
|         <dependency.tas-ftp.version>1.18</dependency.tas-ftp.version> | ||||
|         <dependency.tas-dataprep.version>2.6</dependency.tas-dataprep.version> | ||||
|  | ||||
|         <!-- AGS properties shared between community and enterprise --> | ||||
| @@ -150,7 +150,7 @@ | ||||
|         <connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection> | ||||
|         <developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection> | ||||
|         <url>https://github.com/Alfresco/alfresco-community-repo</url> | ||||
|         <tag>23.1.0.125</tag> | ||||
|         <tag>HEAD</tag> | ||||
|     </scm> | ||||
|  | ||||
|     <distributionManagement> | ||||
| @@ -297,17 +297,6 @@ | ||||
|                     </exclusion> | ||||
|                 </exclusions> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
|                 <groupId>org.alfresco.services</groupId> | ||||
|                 <artifactId>alfresco-messaging-repo</artifactId> | ||||
|                 <version>${dependency.alfresco-messaging-repo.version}</version> | ||||
|                 <exclusions> | ||||
|                     <exclusion> | ||||
|                         <groupId>org.apache.activemq</groupId> | ||||
|                         <artifactId>activemq-broker</artifactId> | ||||
|                     </exclusion> | ||||
|                 </exclusions> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
|                 <groupId>org.alfresco</groupId> | ||||
|                 <artifactId>alfresco-server-root</artifactId> | ||||
| @@ -371,7 +360,7 @@ | ||||
|             <dependency> | ||||
|                 <groupId>commons-codec</groupId> | ||||
|                 <artifactId>commons-codec</artifactId> | ||||
|                 <version>1.15</version> | ||||
|                 <version>1.16.0</version> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
|                 <groupId>commons-lang</groupId> | ||||
| @@ -783,6 +772,11 @@ | ||||
|                 <artifactId>gson</artifactId> | ||||
|                 <version>${dependency.gson.version}</version> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
|                 <groupId>com.google.guava</groupId> | ||||
|                 <artifactId>guava</artifactId> | ||||
|                 <version>${dependency.guava.version}</version> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
|                 <groupId>org.apache.camel</groupId> | ||||
|                 <artifactId>camel-core</artifactId> | ||||
| @@ -898,7 +892,7 @@ | ||||
|             <dependency> | ||||
|                 <groupId>org.projectlombok</groupId> | ||||
|                 <artifactId>lombok</artifactId> | ||||
|                 <version>1.18.26</version> | ||||
|                 <version>1.18.28</version> | ||||
|                 <scope>provided</scope> | ||||
|             </dependency> | ||||
|             <dependency> | ||||
| @@ -936,7 +930,7 @@ | ||||
|                 <plugin> | ||||
|                     <groupId>io.fabric8</groupId> | ||||
|                     <artifactId>docker-maven-plugin</artifactId> | ||||
|                     <version>0.42.1</version> | ||||
|                     <version>0.43.0</version> | ||||
|                 </plugin> | ||||
|                 <plugin> | ||||
|                     <artifactId>maven-surefire-plugin</artifactId> | ||||
| @@ -1015,6 +1009,11 @@ | ||||
|                         <skipDeploy>true</skipDeploy> | ||||
|                     </configuration> | ||||
|                 </plugin> | ||||
|                 <plugin> | ||||
|                     <groupId>org.codehaus.cargo</groupId> | ||||
|                     <artifactId>cargo-maven3-plugin</artifactId> | ||||
|                     <version>1.10.8</version> | ||||
|                 </plugin> | ||||
|             </plugins> | ||||
|         </pluginManagement> | ||||
|         <plugins> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <dependencies> | ||||
|   | ||||
| @@ -823,6 +823,11 @@ public class SearchMapper | ||||
|                 sp.setLimitBy(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS); | ||||
|                 sp.setMaxPermissionCheckTimeMillis(limits.getPermissionEvaluationTime()); | ||||
|             } | ||||
|  | ||||
|             if(limits.getTrackTotalHitsLimit() != null) | ||||
|             { | ||||
|                 sp.setTrackTotalHits(limits.getTrackTotalHitsLimit()); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -93,7 +93,7 @@ public class FacetField | ||||
|  | ||||
|     public String toFilterQuery(String value) | ||||
|     { | ||||
|         return field+":\""+value+"\""; | ||||
|         return ("Null".equals(value)) ? "ISNULL:\"" + field + "\"" : field + ":\"" + value + "\""; | ||||
|     } | ||||
|  | ||||
|     public String getPrefix() | ||||
|   | ||||
| @@ -37,13 +37,16 @@ public class Limits | ||||
|  | ||||
|     private final Integer permissionEvaluationTime; | ||||
|     private final Integer permissionEvaluationCount; | ||||
|     private final Integer trackTotalHitsLimit; | ||||
|  | ||||
|     @JsonCreator | ||||
|     public Limits(@JsonProperty("permissionEvaluationTime") Integer permissionEvaluationTime, | ||||
|                   @JsonProperty("permissionEvaluationCount") Integer permissionEvaluationCount) | ||||
|                   @JsonProperty("permissionEvaluationCount") Integer permissionEvaluationCount, | ||||
|                   @JsonProperty("trackTotalHitsLimit") Integer trackTotalHitsLimit) | ||||
|     { | ||||
|         this.permissionEvaluationTime = permissionEvaluationTime; | ||||
|         this.permissionEvaluationCount = permissionEvaluationCount; | ||||
|         this.trackTotalHitsLimit = trackTotalHitsLimit; | ||||
|     } | ||||
|  | ||||
|     public Integer getPermissionEvaluationTime() | ||||
| @@ -55,4 +58,9 @@ public class Limits | ||||
|     { | ||||
|         return permissionEvaluationCount; | ||||
|     } | ||||
|  | ||||
|     public Integer getTrackTotalHitsLimit() | ||||
|     { | ||||
|         return trackTotalHitsLimit; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -745,33 +745,56 @@ public class SearchMapperTests | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void fromLimits() throws Exception | ||||
|     public void fromLimits_setNull() throws Exception | ||||
|     { | ||||
|         SearchParameters searchParameters = new SearchParameters(); | ||||
|         searchMapper.setDefaults(searchParameters); | ||||
|  | ||||
|         //Doesn't error | ||||
|         searchMapper.fromLimits(searchParameters, null); | ||||
|         assertEquals(500, searchParameters.getLimit()); | ||||
|         assertEquals(LimitBy.UNLIMITED, searchParameters.getLimitBy()); | ||||
|         assertEquals("LimitBy default value should be unlimited", LimitBy.UNLIMITED, searchParameters.getLimitBy()); | ||||
|         assertEquals("Limit default value should be 500", 500, searchParameters.getLimit()); | ||||
|     } | ||||
|  | ||||
|         searchMapper.fromLimits(searchParameters, new Limits(null, null)); | ||||
|         assertEquals(LimitBy.UNLIMITED, searchParameters.getLimitBy()); | ||||
|         assertEquals(500, searchParameters.getLimit()); | ||||
|  | ||||
|         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(); | ||||
|     @Test | ||||
|     public void fromLimits_setAllLimitsAsNull() throws Exception | ||||
|     { | ||||
|         SearchParameters searchParameters = new 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(1000, searchParameters.getMaxPermissionCheckTimeMillis()); | ||||
|         assertEquals(-1, searchParameters.getLimit()); | ||||
|         assertEquals(-1, searchParameters.getMaxPermissionChecks()); | ||||
|         assertEquals("MaxPermissionChecks should be set", 34, searchParameters.getMaxPermissionChecks()); | ||||
|         assertEquals("Limit should be -1", -1, searchParameters.getLimit()); | ||||
|         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 | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|     <parent> | ||||
|         <groupId>org.alfresco</groupId> | ||||
|         <artifactId>alfresco-community-repo</artifactId> | ||||
|         <version>23.1.0.125</version> | ||||
|         <version>23.1.0.163-SNAPSHOT</version> | ||||
|     </parent> | ||||
|  | ||||
|     <dependencies> | ||||
| @@ -126,7 +126,7 @@ | ||||
|         <dependency> | ||||
|             <groupId>com.ibm.icu</groupId> | ||||
|             <artifactId>icu4j</artifactId> | ||||
|             <version>73.1</version> | ||||
|             <version>73.2</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>com.googlecode.json-simple</groupId> | ||||
| @@ -378,17 +378,6 @@ | ||||
|             <version>6.5.1</version> | ||||
|         </dependency> | ||||
|  | ||||
|         <!-- GData --> | ||||
|         <dependency> | ||||
|             <groupId>com.google.gdata</groupId> | ||||
|             <artifactId>gdata-core-1.0</artifactId> | ||||
|             <version>1.47.1</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>com.google.gdata</groupId> | ||||
|             <artifactId>gdata-media-1.0</artifactId> | ||||
|             <version>1.47.1</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.security</groupId> | ||||
|             <artifactId>spring-security-crypto</artifactId> | ||||
|   | ||||
| @@ -44,6 +44,7 @@ import java.util.zip.ZipException; | ||||
| import org.alfresco.error.AlfrescoRuntimeException; | ||||
| import org.alfresco.model.ApplicationModel; | ||||
| import org.alfresco.model.ContentModel; | ||||
| import org.alfresco.repo.action.ActionServiceImpl; | ||||
| import org.alfresco.repo.action.ParameterDefinitionImpl; | ||||
| import org.alfresco.repo.content.MimetypeMap; | ||||
| import org.alfresco.repo.importer.ACPImportPackageHandler; | ||||
| @@ -65,6 +66,8 @@ import org.alfresco.util.TempFileProvider; | ||||
| import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; | ||||
| import org.apache.commons.compress.archivers.zip.ZipFile; | ||||
| import org.apache.commons.compress.utils.InputStreamStatistics; | ||||
| import org.apache.commons.logging.Log; | ||||
| import org.apache.commons.logging.LogFactory; | ||||
|  | ||||
| /** | ||||
|  * Importer action executor | ||||
| @@ -73,6 +76,7 @@ import org.apache.commons.compress.utils.InputStreamStatistics; | ||||
|  */ | ||||
| public class ImporterActionExecuter extends ActionExecuterAbstractBase | ||||
| { | ||||
|     private static Log logger = LogFactory.getLog(ImporterActionExecuter.class); | ||||
|     public static final String NAME = "import"; | ||||
|     public static final String PARAM_ENCODING = "encoding"; | ||||
|     public static final String PARAM_DESTINATION_FOLDER = "destination"; | ||||
| @@ -242,17 +246,21 @@ public class ImporterActionExecuter extends ActionExecuterAbstractBase | ||||
|                        //       http://bugs.sun.com/bugdatabase/view_bug.do;:WuuT?bug_id=4820807 | ||||
|                        // We also try to use the extra encoding information if present | ||||
|                        String encoding = (String) ruleAction.getParameterValue(PARAM_ENCODING); | ||||
|                        logger.info("Encoding before: "+encoding); | ||||
|                        if (encoding == null) | ||||
|                        { | ||||
|                            encoding = "UTF-8"; | ||||
|                            logger.info("Encoding is null "); | ||||
|                            encoding = "Cp437"; | ||||
|                        } | ||||
|                        else | ||||
|                        { | ||||
|                            if (encoding.equalsIgnoreCase("default")) | ||||
|                            { | ||||
|                                encoding = null; | ||||
|                                logger.info("Encoding is default "); | ||||
|                                encoding = "Cp437"; | ||||
|                            } | ||||
|                        } | ||||
|                        logger.info("Encoding after: "+encoding); | ||||
|                        zipFile = new ZipFile(tempFile, encoding, true); | ||||
|                        // build a temp dir name based on the ID of the noderef we are importing | ||||
|                        // also use the long life temp folder as large ZIP files can take a while | ||||
|   | ||||
| @@ -1,158 +0,0 @@ | ||||
| /* | ||||
|  * #%L | ||||
|  * Alfresco Repository | ||||
|  * %% | ||||
|  * Copyright (C) 2005 - 2016 Alfresco Software Limited | ||||
|  * %% | ||||
|  * This file is part of the Alfresco software.  | ||||
|  * If the software was purchased under a paid Alfresco license, the terms of  | ||||
|  * the paid license agreement will prevail.  Otherwise, the software is  | ||||
|  * provided under the following open source license terms: | ||||
|  *  | ||||
|  * Alfresco is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU Lesser General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  *  | ||||
|  * Alfresco is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU Lesser General Public License for more details. | ||||
|  *  | ||||
|  * You should have received a copy of the GNU Lesser General Public License | ||||
|  * along with Alfresco. If not, see <http://www.gnu.org/licenses/>. | ||||
|  * #L% | ||||
|  */ | ||||
| package org.alfresco.repo.config.source; | ||||
|  | ||||
| import java.io.InputStream; | ||||
| import java.util.List; | ||||
|  | ||||
| import org.springframework.extensions.config.ConfigException; | ||||
| import org.springframework.extensions.config.source.UrlConfigSource; | ||||
| import org.alfresco.model.ContentModel; | ||||
| import org.alfresco.repo.tenant.TenantService; | ||||
| import org.alfresco.service.cmr.repository.ContentReader; | ||||
| import org.alfresco.service.cmr.repository.ContentService; | ||||
| import org.alfresco.service.cmr.repository.InvalidStoreRefException; | ||||
| import org.alfresco.service.cmr.repository.NodeRef; | ||||
| import org.alfresco.service.cmr.repository.NodeService; | ||||
| import org.alfresco.service.cmr.repository.StoreRef; | ||||
| import org.alfresco.service.cmr.search.SearchService; | ||||
| import org.alfresco.service.namespace.NamespaceService; | ||||
|  | ||||
| /** | ||||
|  * ConfigSource that looks for a prefix to determine where to look for the config.</br> | ||||
|  * Valid prefixes are: | ||||
|  * <ul> | ||||
|  *   <li><b><storeProtocol>://<storeIdentifier></b> the location provided is a path to a repository file</li> | ||||
|  * </ul> | ||||
|  * as well as those defined in the core (UrlConfigSource) | ||||
|  * | ||||
|  * Example store URLs | ||||
|  *   <code>workspace://SpacesStore/${spaces.company_home.childname}/${spaces.dictionary.childname}/${spaces.webclient_extension.childname}/cm:web-client-config-custom.xml</code> | ||||
|  *   <code>workspace://SpacesStore/app:company_home/app:dictionary/app:webclient_extension/cm:web-client-config-custom.xml</code>  | ||||
|  */ | ||||
| public class RepoUrlConfigSource extends UrlConfigSource | ||||
| {    | ||||
|     private TenantService tenantService; | ||||
|     private SearchService searchService; | ||||
|     private ContentService contentService; | ||||
|     private NamespaceService namespaceService; | ||||
|     private NodeService nodeService; | ||||
|      | ||||
|  | ||||
|     public void setTenantService(TenantService tenantService)  | ||||
|     { | ||||
|         this.tenantService = tenantService; | ||||
|     } | ||||
|      | ||||
|     public void setSearchService(SearchService searchService)  | ||||
|     { | ||||
|         this.searchService = searchService; | ||||
|     } | ||||
|      | ||||
|     public void setContentService(ContentService contentService)  | ||||
|     { | ||||
|         this.contentService = contentService; | ||||
|     } | ||||
|      | ||||
|     public void setNamespaceService(NamespaceService namespaceService) | ||||
|     { | ||||
|         this.namespaceService = namespaceService; | ||||
|     } | ||||
|      | ||||
|     public void setNodeService(NodeService nodeService)  | ||||
|     { | ||||
|         this.nodeService = nodeService; | ||||
|     } | ||||
|      | ||||
|      | ||||
|     public RepoUrlConfigSource(String sourceLocation) | ||||
|     { | ||||
|         super(sourceLocation); | ||||
|     } | ||||
|  | ||||
|     public RepoUrlConfigSource(List<String> sourceLocations) | ||||
|     { | ||||
|         super(sourceLocations); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     public InputStream getInputStream(String sourceUrl) | ||||
|     { | ||||
|         // determine the config source        | ||||
|         try | ||||
|         { | ||||
|             return super.getInputStream(sourceUrl); | ||||
|         }  | ||||
|         catch (ConfigException ce) | ||||
|         {      | ||||
|             int idx = sourceUrl.indexOf(StoreRef.URI_FILLER);  | ||||
|             if (idx != -1) | ||||
|             { | ||||
|                 // assume this is a repository location | ||||
|                 int idx2 = sourceUrl.indexOf("/", idx+3); | ||||
|                                  | ||||
|                 String store = sourceUrl.substring(0, idx2); | ||||
|                 String path = sourceUrl.substring(idx2); | ||||
|                  | ||||
|                 StoreRef storeRef = tenantService.getName(new StoreRef(store));     | ||||
|                 NodeRef rootNode = null; | ||||
|                  | ||||
|                 try  | ||||
|                 { | ||||
|                     rootNode = nodeService.getRootNode(storeRef); | ||||
|                 }  | ||||
|                 catch (InvalidStoreRefException e) | ||||
|                 { | ||||
|                     throw ce; | ||||
|                 } | ||||
|                  | ||||
|                 List<NodeRef> nodeRefs = searchService.selectNodes(rootNode, path, null, namespaceService, false); | ||||
|                  | ||||
|                 if (nodeRefs.size() == 0) | ||||
|                 { | ||||
|                     // if none found, then simply skip | ||||
|                     return null; | ||||
|                 } | ||||
|                 else if (nodeRefs.size() > 1) | ||||
|                 { | ||||
|                     // unexpected | ||||
|                     throw new ConfigException("Found duplicate config sources in the repository " + sourceUrl); | ||||
|                 } | ||||
|  | ||||
|                 NodeRef nodeRef = nodeRefs.get(0); | ||||
|                  | ||||
|                 ContentReader cr = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT); | ||||
|                                     | ||||
|                 return cr.getContentInputStream();                                                   | ||||
|             }  | ||||
|             else | ||||
|             { | ||||
|                 // not a repository url | ||||
|                 throw ce; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -251,15 +251,16 @@ public class TransactionBehaviourQueue implements TransactionListener | ||||
|         } | ||||
|         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) | ||||
|         { | ||||
|             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) | ||||
|         { | ||||
|             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.setSearchScope(SearchControls.SUBTREE_SCOPE); | ||||
|                     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(); | ||||
|                 } | ||||
|   | ||||
| @@ -25,27 +25,66 @@ | ||||
|  */ | ||||
| package org.alfresco.util.remote.server; | ||||
|  | ||||
| import org.springframework.remoting.rmi.RmiRegistryFactoryBean; | ||||
| import org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.DisposableBean; | ||||
| import org.springframework.beans.factory.FactoryBean; | ||||
|  | ||||
| import java.rmi.RemoteException; | ||||
| import java.rmi.registry.LocateRegistry; | ||||
| import java.rmi.registry.Registry; | ||||
| import java.rmi.server.RMIClientSocketFactory; | ||||
| import java.rmi.server.RMIServerSocketFactory; | ||||
| import java.rmi.server.UnicastRemoteObject; | ||||
|  | ||||
| /** | ||||
|  * This class controls the RMI connectivity via <code>alfresco.jmx.connector.enabled</code> property | ||||
|  * | ||||
|  * @author alex.mukha | ||||
|  */ | ||||
| public class AlfrescoRmiRegistryFactoryBean extends RmiRegistryFactoryBean | ||||
| public class AlfrescoRmiRegistryFactoryBean implements FactoryBean<Registry>, DisposableBean | ||||
| { | ||||
|     private static final String ERR_MSG_NOT_ENABLED = "The RMI registry factory is disabled."; | ||||
|     private static final Logger LOG = LoggerFactory.getLogger(AlfrescoRmiRegistryFactoryBean.class); | ||||
|  | ||||
|     private boolean enabled = true; | ||||
|     private boolean created = false; | ||||
|  | ||||
|     public void setEnabled(boolean enabled) | ||||
|     { | ||||
|     private final boolean enabled; | ||||
|  | ||||
|     private final int port; | ||||
|  | ||||
|     private final Registry registry; | ||||
|  | ||||
|     public AlfrescoRmiRegistryFactoryBean(boolean enabled, int port, HostConfigurableSocketFactory socketFactory) throws Exception { | ||||
|         this.enabled = enabled; | ||||
|         this.port = port; | ||||
|         if(this.enabled) | ||||
|         { | ||||
|             this.registry = initRegistry(socketFactory); | ||||
|         } | ||||
|         else { | ||||
|             this.registry = null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private Registry initRegistry(HostConfigurableSocketFactory socketFactory) throws RemoteException { | ||||
|         if (LOG.isDebugEnabled()) { | ||||
|             LOG.debug("Looking for RMI registry at port '" + this.port + "', using custom socket factory"); | ||||
|         } | ||||
|         Registry registry; | ||||
|         synchronized (LocateRegistry.class) { | ||||
|             try { | ||||
|                 // Retrieve existing registry. | ||||
|                 registry = LocateRegistry.getRegistry(null, this.port, socketFactory); | ||||
|                 testRegistry(this.registry); | ||||
|             } | ||||
|             catch (RemoteException ex) { | ||||
|                 LOG.trace("RMI registry access threw exception", ex); | ||||
|                 LOG.debug("Could not detect RMI registry - creating new one"); | ||||
|                 // Assume no registry found -> create new one. | ||||
|                 this.created = true; | ||||
|                 registry = LocateRegistry.createRegistry(this.port, socketFactory, socketFactory); | ||||
|             } | ||||
|         } | ||||
|         return registry; | ||||
|     } | ||||
|  | ||||
|     public boolean isEnabled() | ||||
| @@ -54,57 +93,34 @@ public class AlfrescoRmiRegistryFactoryBean extends RmiRegistryFactoryBean | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void afterPropertiesSet() throws Exception | ||||
|     { | ||||
|         if (enabled) | ||||
|         { | ||||
|             super.afterPropertiesSet(); | ||||
|     public void destroy() throws Exception { | ||||
|         if (this.created) { | ||||
|             LOG.debug("Unexporting RMI registry"); | ||||
|             UnicastRemoteObject.unexportObject(this.registry, true); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected Registry getRegistry( | ||||
|             String registryHost, | ||||
|             int registryPort, | ||||
|             RMIClientSocketFactory clientSocketFactory, | ||||
|             RMIServerSocketFactory serverSocketFactory) throws RemoteException | ||||
|     { | ||||
|         if(enabled) | ||||
|         { | ||||
|             return super.getRegistry(registryHost, registryPort, clientSocketFactory, serverSocketFactory); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             throw new RemoteException(ERR_MSG_NOT_ENABLED); | ||||
|         } | ||||
|     public Registry getObject() throws Exception { | ||||
|         return this.registry; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected Registry getRegistry( | ||||
|             int registryPort, | ||||
|             RMIClientSocketFactory clientSocketFactory, | ||||
|             RMIServerSocketFactory serverSocketFactory) throws RemoteException | ||||
|     { | ||||
|         if(enabled) | ||||
|         { | ||||
|             return super.getRegistry(registryPort, clientSocketFactory, serverSocketFactory); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             throw new RemoteException(ERR_MSG_NOT_ENABLED); | ||||
|         } | ||||
|     public Class<?> getObjectType() { | ||||
|         return (this.registry != null ? this.registry.getClass() : Registry.class); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected Registry getRegistry(int registryPort) throws RemoteException | ||||
|     public boolean isCreated() | ||||
|     { | ||||
|         if(enabled) | ||||
|         { | ||||
|             return super.getRegistry(registryPort); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             throw new RemoteException(ERR_MSG_NOT_ENABLED); | ||||
|         } | ||||
|         return created; | ||||
|     } | ||||
|  | ||||
|     public int getPort() { | ||||
|         return port; | ||||
|     } | ||||
|  | ||||
|     private void testRegistry(Registry registry) throws RemoteException | ||||
|     { | ||||
|         registry.list(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -75,6 +75,9 @@ | ||||
|         <property name="propertiesPersister"> | ||||
|         	<bean class="org.alfresco.config.AlfrescoPropertiesPersister"/> | ||||
|         </property> | ||||
|         <property name="order"> | ||||
|             <value>9999999</value> | ||||
|         </property> | ||||
|     </bean> | ||||
|  | ||||
|     <!-- Expand global properties and version information in bean definitions --> | ||||
| @@ -101,6 +104,18 @@ | ||||
|         </property> | ||||
|     </bean> | ||||
|  | ||||
|     <bean id="default-properties-resolver" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> | ||||
|         <property name="ignoreUnresolvablePlaceholders"> | ||||
|             <value>true</value> | ||||
|         </property> | ||||
|         <property name="searchSystemEnvironment"> | ||||
|             <value>false</value> | ||||
|         </property> | ||||
|         <property name="order"> | ||||
|             <value>2147483647</value> | ||||
|         </property> | ||||
|     </bean> | ||||
|  | ||||
|  | ||||
|     <!-- Load properties that must be shared between the        --> | ||||
|     <!-- Alfresco server and its remote clients.                --> | ||||
|   | ||||
| @@ -1349,7 +1349,7 @@ system.remove-alf_server-table-from-db.ignored=true | ||||
| allow.unsecure.callback.jsonp=false | ||||
|  | ||||
| # 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 | ||||
| # import extraction process cancelled. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user