From bbb0d3098c1df9470f4521a5438019298ea65cd2 Mon Sep 17 00:00:00 2001 From: kennethpi Date: Tue, 24 May 2022 13:29:21 +0200 Subject: [PATCH 1/9] ALFREDAPI-503 Fixed issue where site information could not be retrieved if the user does not have permissions to one of the components --- .../apix/alfresco/sites/SiteService.java | 33 +++++---- .../tests/sites/GetUserSitesUnitTest.java | 69 ++++++++++++++++++- 2 files changed, 88 insertions(+), 14 deletions(-) diff --git a/apix-impl/src/main/java/eu/xenit/apix/alfresco/sites/SiteService.java b/apix-impl/src/main/java/eu/xenit/apix/alfresco/sites/SiteService.java index 0c38111c..e9cdbd8c 100644 --- a/apix-impl/src/main/java/eu/xenit/apix/alfresco/sites/SiteService.java +++ b/apix-impl/src/main/java/eu/xenit/apix/alfresco/sites/SiteService.java @@ -64,19 +64,28 @@ public List getUserSites(String userId) { return apixSites; } - private Map getSiteComponents(org.alfresco.service.cmr.site.SiteService siteService, - String siteShortname) { + private Map getSiteComponents(org.alfresco.service.cmr.site.SiteService siteService, String siteShortname) { Map componentsMap = new HashMap<>(); - NodeRef documentLibrary = c.apix(siteService.getContainer(siteShortname, DOCUMENT_LIBRARY_COMPONENT)); - NodeRef links = c.apix(siteService.getContainer(siteShortname, LINKS_COMPONENT)); - NodeRef dataLists = c.apix(siteService.getContainer(siteShortname, DATA_LISTS_COMPONENT)); - NodeRef wiki = c.apix(siteService.getContainer(siteShortname, WIKI_COMPONENT)); - NodeRef discussions = c.apix(siteService.getContainer(siteShortname, DISCUSSIONS_COMPONENT)); - componentsMap.put(DOCUMENT_LIBRARY_COMPONENT, documentLibrary); - componentsMap.put(LINKS_COMPONENT, links); - componentsMap.put(DATA_LISTS_COMPONENT, dataLists); - componentsMap.put(WIKI_COMPONENT, wiki); - componentsMap.put(DISCUSSIONS_COMPONENT, discussions); + addSiteComponentToMap(siteService, componentsMap, siteShortname, DOCUMENT_LIBRARY_COMPONENT); + addSiteComponentToMap(siteService, componentsMap, siteShortname, LINKS_COMPONENT); + addSiteComponentToMap(siteService, componentsMap, siteShortname, DATA_LISTS_COMPONENT); + addSiteComponentToMap(siteService, componentsMap, siteShortname, WIKI_COMPONENT); + addSiteComponentToMap(siteService, componentsMap, siteShortname, DISCUSSIONS_COMPONENT); + return componentsMap; } + + private void addSiteComponentToMap(org.alfresco.service.cmr.site.SiteService siteService, Map componentsMap, + String siteShortname, String siteComponentName) { + try { + NodeRef componentRef = c.apix(siteService.getContainer(siteShortname, siteComponentName)); + if (componentRef == null) { + return; + } + componentsMap.put(siteComponentName, componentRef); + } + catch (AccessDeniedException ex) { + logger.debug("Access denied to site component {} for site {}. It is not added to the map.", siteComponentName, siteShortname); + } + } } diff --git a/apix-impl/src/test/java/eu/xenit/apix/tests/sites/GetUserSitesUnitTest.java b/apix-impl/src/test/java/eu/xenit/apix/tests/sites/GetUserSitesUnitTest.java index ca8ac0f0..2de5567d 100644 --- a/apix-impl/src/test/java/eu/xenit/apix/tests/sites/GetUserSitesUnitTest.java +++ b/apix-impl/src/test/java/eu/xenit/apix/tests/sites/GetUserSitesUnitTest.java @@ -10,6 +10,9 @@ import eu.xenit.apix.sites.ISite; import java.util.ArrayList; import java.util.List; +import java.util.Map; + +import org.alfresco.repo.security.permissions.AccessDeniedException; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.StoreRef; @@ -43,8 +46,7 @@ public class GetUserSitesUnitTest { private final static String WIKI_COMPONENT = "wiki"; private final static String DISCUSSIONS_COMPONENT = "discussions"; - @Before - public void init() { + private void init() { serviceRegistry = mock(ServiceRegistry.class); SiteService siteServiceMock = initSiteServiceMock(); when(serviceRegistry.getSiteService()).thenReturn(siteServiceMock); @@ -52,6 +54,14 @@ public void init() { apixAlfrescoConverter = new ApixToAlfrescoConversion(serviceRegistry); } + public void initWithInaccessibleComponent() { + serviceRegistry = mock(ServiceRegistry.class); + SiteService siteServiceMock = initSiteServiceWithInaccessibleComponent(); + when(serviceRegistry.getSiteService()).thenReturn(siteServiceMock); + + apixAlfrescoConverter = new ApixToAlfrescoConversion(serviceRegistry); + } + private SiteService initSiteServiceMock() { SiteService siteServiceMock = mock(SiteService.class); @@ -64,6 +74,18 @@ private SiteService initSiteServiceMock() { return siteServiceMock; } + private SiteService initSiteServiceWithInaccessibleComponent() { + SiteService siteServiceMock = mock(SiteService.class); + + //Initializing sites + List sites = initSiteWithInaccessibleComponent(siteServiceMock); + + //Init mock of listSites method + when(siteServiceMock.listSites(Mockito.anyString())).thenReturn(sites); + + return siteServiceMock; + } + private List initSites(SiteService siteService) { List sites = new ArrayList<>(); testSite1 = createSite(TEST_SITE_1_SHORT_NAME, TEST_SITE_1_SHORT_NAME, TEST_SITE_1_SHORT_NAME, @@ -82,6 +104,16 @@ private List initSites(SiteService siteService) { return sites; } + private List initSiteWithInaccessibleComponent(SiteService siteService) { + List sites = new ArrayList<>(); + testSite1 = createSite(TEST_SITE_1_SHORT_NAME, TEST_SITE_1_SHORT_NAME, TEST_SITE_1_SHORT_NAME, + new NodeRef(TEST_SITE_1_REF)); + initSiteComponentsWithInaccessibleComponent(siteService, testSite1); + sites.add(testSite1); + + return sites; + } + private SiteInfo createSite(String shortName, String title, String description, NodeRef nodeRef) { SiteInfo siteMock = mock(SiteInfo.class); when(siteMock.getShortName()).thenReturn(shortName); @@ -115,8 +147,23 @@ private void initSiteComponents(SiteService siteService, SiteInfo site) { .thenReturn(discussionsComponentRef); } + private void initSiteComponentsWithInaccessibleComponent(SiteService siteService, SiteInfo site) { + String shortName = site.getShortName(); + NodeRef documentLibraryComponentRef = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, + shortName + "docLib"); + NodeRef linksComponentRef = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, shortName + "links"); + + when(siteService.getContainer(site.getShortName(), DOCUMENT_LIBRARY_COMPONENT)) + .thenReturn(documentLibraryComponentRef); + when(siteService.getContainer(site.getShortName(), LINKS_COMPONENT)) + .thenReturn(linksComponentRef); + when(siteService.getContainer(site.getShortName(), DATA_LISTS_COMPONENT)) + .thenThrow(new AccessDeniedException("You're not welcome here!")); + } + @Test public void testGetUserSites() { + init(); SiteService alfrescoSiteService = serviceRegistry.getSiteService(); eu.xenit.apix.alfresco.sites.SiteService apixSiteService = new eu.xenit.apix.alfresco.sites.SiteService(serviceRegistry, apixAlfrescoConverter); @@ -136,6 +183,24 @@ public void testGetUserSites() { verifyGetContainer(alfrescoSiteService, testSite3); } + @Test + public void testGetUserSitesWithInaccessibleComponent() { + initWithInaccessibleComponent(); + eu.xenit.apix.alfresco.sites.SiteService apixSiteService = + new eu.xenit.apix.alfresco.sites.SiteService(serviceRegistry, apixAlfrescoConverter); + + String user = "testUser"; + List testUserSites = apixSiteService.getUserSites(user); + Assert.assertNotEquals(null, testSite1); + Assert.assertEquals(1, testUserSites.size()); + Assert.assertEquals(testSite1.getShortName(), testUserSites.get(0).getShortName()); + Map components = testUserSites.get(0).getComponents(); + Assert.assertEquals(2, components.size()); + Assert.assertTrue(components.containsKey(DOCUMENT_LIBRARY_COMPONENT)); + Assert.assertTrue(components.containsKey(LINKS_COMPONENT)); + Assert.assertFalse(components.containsKey(DATA_LISTS_COMPONENT)); + } + private void verifyGetContainer(SiteService alfrescoSiteService, SiteInfo testSite) { verify(alfrescoSiteService, times(1)).getContainer(eq(testSite.getShortName()), eq(DOCUMENT_LIBRARY_COMPONENT)); verify(alfrescoSiteService, times(1)).getContainer(eq(testSite.getShortName()), eq(LINKS_COMPONENT)); From 0932dd498d09590fc7173308b34f8d8eb954079c Mon Sep 17 00:00:00 2001 From: kennethpi Date: Tue, 24 May 2022 13:32:50 +0200 Subject: [PATCH 2/9] ALFREDAPI-503 Updated changelog --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3eea3e6..5d8a9e22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # Alfred API - Changelog +## 3.1.1 (yyyy-mm-dd) + +### Added + +### Changed + +### Fixed +* [ALFREDAPI-503](https://xenitsupport.jira.com/browse/ALFREDAPI-503): Fixed issue where site information could not be retrieved if the user does not have permissions to one of the components + +### Removed + ## 3.1.0 (2022-04-21) ### Added From b076a264ce868ee207c6dba828279a8e48afdc4a Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 3/9] ALFREDAPI-505: Add Alfresco 7.3 support --- apix-docker/73/build.gradle | 8 ++++ .../73/debug-extension.docker-compose.yml | 16 +++++++ apix-docker/73/docker-compose.yml | 48 +++++++++++++++++++ apix-impl/72/overrides.gradle | 2 +- .../72/src/main/config/module.properties | 1 + apix-impl/73/overrides.gradle | 9 ++++ .../73/src/main/config/module.properties | 6 +++ apix-impl/build.gradle | 2 + apix-integrationtests/73/overrides.gradle | 14 ++++++ .../xenit/apix/util/SolrTestHelperImpl.java | 18 +++++++ build.gradle | 6 ++- settings.gradle | 6 +++ 12 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 apix-docker/73/build.gradle create mode 100644 apix-docker/73/debug-extension.docker-compose.yml create mode 100644 apix-docker/73/docker-compose.yml create mode 100644 apix-impl/73/overrides.gradle create mode 100644 apix-impl/73/src/main/config/module.properties create mode 100644 apix-integrationtests/73/overrides.gradle create mode 100644 apix-integrationtests/73/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java diff --git a/apix-docker/73/build.gradle b/apix-docker/73/build.gradle new file mode 100644 index 00000000..693c1620 --- /dev/null +++ b/apix-docker/73/build.gradle @@ -0,0 +1,8 @@ +dependencies { + baseAlfrescoWar platform("org.alfresco:acs-packaging:7.3.0.1") + baseAlfrescoWar 'org.alfresco:content-services@war' +} + +dockerAlfresco { + baseImage = 'docker.xenit.eu/private/alfresco-enterprise/alfresco-repository-enterprise:7.3.0.1' +} diff --git a/apix-docker/73/debug-extension.docker-compose.yml b/apix-docker/73/debug-extension.docker-compose.yml new file mode 100644 index 00000000..72895807 --- /dev/null +++ b/apix-docker/73/debug-extension.docker-compose.yml @@ -0,0 +1,16 @@ +version: '2' +services: + alfresco-core: + ports: + - 8000:8000 + environment: + - DEBUG=true + - SHARE_HOST=alfresco-share + alfresco-share: + image: docker.io/xenit/alfresco-share-community:7.3 + ports: + - 8090:8080 + environment: + - DEBUG=true + - ALFRESCO_HOST=alfresco-core + - ALFRESCO_INTERNAL_HOST=alfresco-core \ No newline at end of file diff --git a/apix-docker/73/docker-compose.yml b/apix-docker/73/docker-compose.yml new file mode 100644 index 00000000..cc9f16e2 --- /dev/null +++ b/apix-docker/73/docker-compose.yml @@ -0,0 +1,48 @@ +version: '2' + +services: + alfresco-core: + image: ${DOCKER_IMAGE} + ports: + - "${DOCKER_IP}::8080" + volumes: + - alfresco:/opt/alfresco/alf_data + restart: unless-stopped + environment: + - SOLR_HOST=solr + - TERM=xterm + - GLOBAL_messaging.broker.url=failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true + - GLOBAL_localTransform.core-aio.url=http://transform-core-aio:8090/ + + solr: + image: hub.xenit.eu/alfresco-enterprise/alfresco-solr6:2.0.1 + volumes: + - solr:/opt/alfresco/alf_data + restart: unless-stopped + environment: + - ALFRESCO_HOST=alfresco-core + + postgresql: + image: docker.io/xenit/postgres + volumes: + - postgres:/var/lib/postgresql/data + environment: + - POSTGRES_USER=alfresco + - POSTGRES_PASSWORD=admin + - POSTGRES_DB=alfresco + restart: unless-stopped + + activemq: + image: alfresco/alfresco-activemq:5.16.1 + mem_limit: 1g + + transform-core-aio: + image: alfresco/alfresco-transform-core-aio:2.5.0 + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + +volumes: + alfresco: + solr: + postgres: diff --git a/apix-impl/72/overrides.gradle b/apix-impl/72/overrides.gradle index a69d3559..d4fce3cf 100644 --- a/apix-impl/72/overrides.gradle +++ b/apix-impl/72/overrides.gradle @@ -5,5 +5,5 @@ ext { alfresco_repo_version = '14.142' alfresco_dm_version = alfresco_72_dm_version alfresco_min_version = "7.2" - //Not setting alfresco_max_version here to make it easier to test on next Alfresco version (only for latest version) + alfresco_max_version = "7.2.99" } \ No newline at end of file diff --git a/apix-impl/72/src/main/config/module.properties b/apix-impl/72/src/main/config/module.properties index 18c2abc5..c38166f0 100644 --- a/apix-impl/72/src/main/config/module.properties +++ b/apix-impl/72/src/main/config/module.properties @@ -4,3 +4,4 @@ module.description=${project.description} module.version=${project.version} module.repo.version.min=${project.alfresco_min_version} +module.repo.version.max=${project.alfresco_max_version} diff --git a/apix-impl/73/overrides.gradle b/apix-impl/73/overrides.gradle new file mode 100644 index 00000000..c0d84b19 --- /dev/null +++ b/apix-impl/73/overrides.gradle @@ -0,0 +1,9 @@ +description = "Xenit API-X implementation Alfresco 7.3" + +ext { + alfresco_version = alfresco_73_version + alfresco_repo_version = '17.175' + alfresco_dm_version = alfresco_73_dm_version + alfresco_min_version = "7.3" + //Not setting alfresco_max_version here to make it easier to test on next Alfresco version (only for latest version) +} \ No newline at end of file diff --git a/apix-impl/73/src/main/config/module.properties b/apix-impl/73/src/main/config/module.properties new file mode 100644 index 00000000..18c2abc5 --- /dev/null +++ b/apix-impl/73/src/main/config/module.properties @@ -0,0 +1,6 @@ +module.id=${project.name} +module.title=${project.name} +module.description=${project.description} +module.version=${project.version} + +module.repo.version.min=${project.alfresco_min_version} diff --git a/apix-impl/build.gradle b/apix-impl/build.gradle index 13a505c4..bc404406 100644 --- a/apix-impl/build.gradle +++ b/apix-impl/build.gradle @@ -150,6 +150,8 @@ public class Version { + 'org.springframework.cglib.proxy,' // Unintuitively, the notation 'version="1.0"' means any version >= 1.0 + 'org.json;version="1.0",' + // Alfresco >=7.3 uses a SLF4J version >2.0, so we need to override the default upper boundary of 2.0. + + 'org.slf4j.*;version="1.7",' + '!com.google.appengine.api,' + '!com.google.apphosting.api,' + '!org.joda.convert,' diff --git a/apix-integrationtests/73/overrides.gradle b/apix-integrationtests/73/overrides.gradle new file mode 100644 index 00000000..4632a9de --- /dev/null +++ b/apix-integrationtests/73/overrides.gradle @@ -0,0 +1,14 @@ +ext { + subproject_alfresco_version = "73" + alfresco_version = alfresco_73_version + alfresco_dm_version = alfresco_73_dm_version + alfresco_repo_version = '17.175' + alfresco_remote_api_version = '17.175' +} + +dependencies { + integrationTestImplementationRemote(group: 'org.apache.httpcomponents', name: 'fluent-hc', version: http_version) { + exclude group: 'commons-logging' + exclude group: 'org.apache.httpcomponents', module: 'httpcore' + } +} \ No newline at end of file diff --git a/apix-integrationtests/73/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java b/apix-integrationtests/73/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java new file mode 100644 index 00000000..f622da0d --- /dev/null +++ b/apix-integrationtests/73/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java @@ -0,0 +1,18 @@ +package eu.xenit.apix.util; + +import javax.sql.DataSource; +import org.alfresco.repo.management.subsystems.SwitchableApplicationContextFactory; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This class should only be used by the integration tests. + */ +public class SolrTestHelperImpl extends SolrTestHelperBaseImpl { + private Logger logger = LoggerFactory.getLogger(SolrTestHelperImpl.class); + + public SolrTestHelperImpl(String baseUrl, DataSource dataSource, SwitchableApplicationContextFactory searchSubSystem) { + super(baseUrl, dataSource, searchSubSystem); + } +} diff --git a/build.gradle b/build.gradle index 1763d764..32852766 100644 --- a/build.gradle +++ b/build.gradle @@ -34,11 +34,11 @@ buildscript { } ext { - versionWithoutQualifier = '3.1.0' + versionWithoutQualifier = '4.0.0' jackson_version = '2.8.3' swagger_version = "1.5.7" - de_version = "2.1.3" + de_version = "3.0.0" http_core_version = "4.3.3" http_version = "4.3.4" @@ -49,6 +49,7 @@ ext { alfresco_70_version = "7.0" alfresco_71_version = "7.1" alfresco_72_version = "7.2" + alfresco_73_version = "7.3" // The introduction of hit highlights in search 52 required general versions bump to 5.2.f // Additionally, an explicit dependency on the data-model was required, however @@ -60,6 +61,7 @@ ext { alfresco_70_dm_version = "8.424" alfresco_71_dm_version = "12.23" alfresco_72_dm_version = "14.142" + alfresco_73_dm_version = "17.175" care4alfVersion = '2.3.0' } diff --git a/settings.gradle b/settings.gradle index e27d731e..2b53d109 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,6 +12,7 @@ include ':apix-impl:apix-impl-62' include ':apix-impl:apix-impl-70' include ':apix-impl:apix-impl-71' include ':apix-impl:apix-impl-72' +include ':apix-impl:apix-impl-73' include ':apix-docker' include ':apix-docker:docker-52' @@ -20,6 +21,7 @@ include ':apix-docker:docker-62' include ':apix-docker:docker-70' include ':apix-docker:docker-71' include ':apix-docker:docker-72' +include ':apix-docker:docker-73' include ':apix-integrationtests' include ':apix-integrationtests:test-52' @@ -28,6 +30,7 @@ include ':apix-integrationtests:test-62' include ':apix-integrationtests:test-70' include ':apix-integrationtests:test-71' include ':apix-integrationtests:test-72' +include ':apix-integrationtests:test-73' include ':apix-integrationtests-model-amp' project(':apix-impl:apix-impl-52').projectDir = "$rootDir/apix-impl/52" as File @@ -36,15 +39,18 @@ project(':apix-impl:apix-impl-62').projectDir = "$rootDir/apix-impl/62" as File project(':apix-impl:apix-impl-70').projectDir = "$rootDir/apix-impl/70" as File project(':apix-impl:apix-impl-71').projectDir = "$rootDir/apix-impl/71" as File project(':apix-impl:apix-impl-72').projectDir = "$rootDir/apix-impl/72" as File +project(':apix-impl:apix-impl-73').projectDir = "$rootDir/apix-impl/73" as File project(':apix-docker:docker-52').projectDir = "$rootDir/apix-docker/52" as File project(':apix-docker:docker-61').projectDir = "$rootDir/apix-docker/61" as File project(':apix-docker:docker-62').projectDir = "$rootDir/apix-docker/62" as File project(':apix-docker:docker-70').projectDir = "$rootDir/apix-docker/70" as File project(':apix-docker:docker-71').projectDir = "$rootDir/apix-docker/71" as File project(':apix-docker:docker-72').projectDir = "$rootDir/apix-docker/72" as File +project(':apix-docker:docker-73').projectDir = "$rootDir/apix-docker/73" as File project(':apix-integrationtests:test-52').projectDir = "$rootDir/apix-integrationtests/52" as File project(':apix-integrationtests:test-61').projectDir = "$rootDir/apix-integrationtests/61" as File project(':apix-integrationtests:test-62').projectDir = "$rootDir/apix-integrationtests/62" as File project(':apix-integrationtests:test-70').projectDir = "$rootDir/apix-integrationtests/70" as File project(':apix-integrationtests:test-71').projectDir = "$rootDir/apix-integrationtests/71" as File project(':apix-integrationtests:test-72').projectDir = "$rootDir/apix-integrationtests/72" as File +project(':apix-integrationtests:test-73').projectDir = "$rootDir/apix-integrationtests/73" as File From 986e7c8b30338c281f9972f7c366648150d5e65d Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 4/9] ALFREDAPI-505: Use 7.3 version of swagger-ui --- apix-impl/build.gradle | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apix-impl/build.gradle b/apix-impl/build.gradle index bc404406..b99f9dca 100644 --- a/apix-impl/build.gradle +++ b/apix-impl/build.gradle @@ -26,9 +26,8 @@ subprojects { dependencies { compile(project(":apix-impl")) - dynamicExtensionsBundles(group: 'eu.xenit.swagger.ui', name: 'swagger-ui_5x', version: '1.1.0') { - transitive = false - } // Works for 6x too + // Works for >5 too + dynamicExtensionsBundles(group: 'eu.xenit.swagger.ui', name: 'swagger-ui_5x', version: '1.3.0') { transitive = false } } publishing { From d2f136aff716fc3275e4cef279cb6756dcf76e5c Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 5/9] ALFREDAPI-505: Use remote testrunner 2.0.1 --- apix-integrationtests/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apix-integrationtests/build.gradle b/apix-integrationtests/build.gradle index 4cede63a..2d75c2bf 100644 --- a/apix-integrationtests/build.gradle +++ b/apix-integrationtests/build.gradle @@ -2,7 +2,7 @@ plugins { id 'base' id 'eu.xenit.de' version '2.1.3' apply false id 'eu.xenit.alfresco' version '1.1.0' apply false - id 'eu.xenit.alfresco-remote-testrunner' version '2.0.0' apply false + id 'eu.xenit.alfresco-remote-testrunner' version '2.0.1' apply false } allprojects { From 8c2fb14c382e30293648f1c281398a42a2b5e5c1 Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 6/9] ALFREDAPI-505: Extend CI build for 7.3 --- Jenkinsfile | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ba4792fa..591d9bc1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,23 +45,26 @@ node { stage("Unit test apix-rest-v1") { sh "${gradleCommand} :apix-rest-v1:test" } - stage("Build 52") { - BuildVersionX("52") - } - stage("Build 61") { - BuildVersionX("61") - } - stage("Build 62") { - BuildVersionX("62") - } - stage("Build 70") { - BuildVersionX("70") - } - stage("Build 71") { - BuildVersionX("71") - } - stage("Build 72") { - BuildVersionX("72") +// stage("Build 52") { +// BuildVersionX("52") +// } +// stage("Build 61") { +// BuildVersionX("61") +// } +// stage("Build 62") { +// BuildVersionX("62") +// } +// stage("Build 70") { +// BuildVersionX("70") +// } +// stage("Build 71") { +// BuildVersionX("71") +// } +// stage("Build 72") { +// BuildVersionX("72") +// } + stage("Build 73") { + BuildVersionX("73") } stage("Publishing") { From 52ebc4d6573177579054f5ab4f4fc575f0ee1cb6 Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 7/9] ALFREDAPI-505: Update changelog --- CHANGELOG.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8a9e22..c0333fd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,18 @@ # Alfred API - Changelog -## 3.1.1 (yyyy-mm-dd) +## 4.0.0 (yyyy-mm-dd) +This release adds support for Alfresco 7.3 and drops support for Alfresco 5.2 and 6.1. ### Added - -### Changed +* [ALFREDAPI-505](https://xenitsupport.jira.com/browse/ALFREDAPI-505): Added support for Alfresco 7.3 ### Fixed * [ALFREDAPI-503](https://xenitsupport.jira.com/browse/ALFREDAPI-503): Fixed issue where site information could not be retrieved if the user does not have permissions to one of the components ### Removed +* [ALFREDAPI-505](https://xenitsupport.jira.com/browse/ALFREDAPI-505): Drop support for Alfresco 5.2 and 6.1 + ## 3.1.0 (2022-04-21) From 892b7f981a1a381d0423edea6dc4bb65bb251f2c Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Wed, 4 Jan 2023 11:45:18 +0100 Subject: [PATCH 8/9] ALFREDAPI-505: Remove support for 5.2 and 6.1 --- Jenkinsfile | 30 ++++++------- README.md | 2 +- apix-docker/52/build.gradle | 11 ----- .../52/debug-extension.docker-compose.yml | 17 -------- apix-docker/52/docker-compose.yml | 38 ---------------- apix-docker/61/build.gradle | 13 ------ .../61/debug-extension.docker-compose.yml | 16 ------- apix-docker/61/docker-compose.yml | 38 ---------------- apix-impl/52/overrides.gradle | 9 ---- .../52/src/main/config/module.properties | 7 --- apix-impl/61/overrides.gradle | 9 ---- .../61/src/main/config/module.properties | 7 --- apix-integrationtests/52/overrides.gradle | 12 ------ .../xenit/apix/util/SolrTestHelperImpl.java | 43 ------------------- apix-integrationtests/61/overrides.gradle | 14 ------ .../xenit/apix/util/SolrTestHelperImpl.java | 43 ------------------- build.gradle | 6 --- settings.gradle | 12 ------ 18 files changed, 13 insertions(+), 314 deletions(-) delete mode 100644 apix-docker/52/build.gradle delete mode 100644 apix-docker/52/debug-extension.docker-compose.yml delete mode 100644 apix-docker/52/docker-compose.yml delete mode 100644 apix-docker/61/build.gradle delete mode 100644 apix-docker/61/debug-extension.docker-compose.yml delete mode 100644 apix-docker/61/docker-compose.yml delete mode 100644 apix-impl/52/overrides.gradle delete mode 100644 apix-impl/52/src/main/config/module.properties delete mode 100644 apix-impl/61/overrides.gradle delete mode 100644 apix-impl/61/src/main/config/module.properties delete mode 100644 apix-integrationtests/52/overrides.gradle delete mode 100644 apix-integrationtests/52/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java delete mode 100644 apix-integrationtests/61/overrides.gradle delete mode 100644 apix-integrationtests/61/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java diff --git a/Jenkinsfile b/Jenkinsfile index 591d9bc1..d34e8306 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,24 +45,18 @@ node { stage("Unit test apix-rest-v1") { sh "${gradleCommand} :apix-rest-v1:test" } -// stage("Build 52") { -// BuildVersionX("52") -// } -// stage("Build 61") { -// BuildVersionX("61") -// } -// stage("Build 62") { -// BuildVersionX("62") -// } -// stage("Build 70") { -// BuildVersionX("70") -// } -// stage("Build 71") { -// BuildVersionX("71") -// } -// stage("Build 72") { -// BuildVersionX("72") -// } + stage("Build 62") { + BuildVersionX("62") + } + stage("Build 70") { + BuildVersionX("70") + } + stage("Build 71") { + BuildVersionX("71") + } + stage("Build 72") { + BuildVersionX("72") + } stage("Build 73") { BuildVersionX("73") } diff --git a/README.md b/README.md index 49202549..2baa44e6 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ In a development scenario, it is possible to upload code changes to a running al This requires the running alfresco to already have an older or equal version of alfred-api installed, and the use of the jar artifact instead of the amp to do the new install. The JAR has the format `apix-impl-{ALFRESCO-VERSION}-{APIX-VERSION}.jar` and can be found under -`apix-impl/{ALFRESCO-VERSION}/build/libs/`, where `ALFRESCO-VERSION` is one of *(52|61|62|70|71|72)*. +`apix-impl/{ALFRESCO-VERSION}/build/libs/`, where `ALFRESCO-VERSION` is one of *(62|70|71|72|73)*. The new installation can be done either through the DE web interface, or with the following gradle task. ```bash ./gradlew :apix-impl:apix-impl-{ALFRESCO-VERSION}:installBundle -Phost={ALFRESCO-HOST} -Pport={ALFRESCO-PORT} diff --git a/apix-docker/52/build.gradle b/apix-docker/52/build.gradle deleted file mode 100644 index 483a3093..00000000 --- a/apix-docker/52/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -dependencies { - baseAlfrescoWar platform('org.alfresco:alfresco-platform-enterprise:5.2.7.12') - baseAlfrescoWar "org.alfresco:alfresco-platform-enterprise@war" - if (!ci.isCi()) { - alfrescoAmp(group: 'eu.xenit.care4alf', name: 'care4alf-5x', version: "${care4alfVersion}", ext: 'amp') - } -} - -dockerAlfresco { - baseImage = "hub.xenit.eu/alfresco-enterprise/alfresco-repository-enterprise:5.2.7.12" -} \ No newline at end of file diff --git a/apix-docker/52/debug-extension.docker-compose.yml b/apix-docker/52/debug-extension.docker-compose.yml deleted file mode 100644 index 3e6faca0..00000000 --- a/apix-docker/52/debug-extension.docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '2' -services: - alfresco-core: - ports: - - 8000:8000 - environment: - - DEBUG=true - - SHARE_HOST=alfresco-share - - LOG4J_logger.eu.xenit.apix.util.SolrTestHelper=DEBUG - alfresco-share: - image: hub.xenit.eu/alfresco-enterprise/alfresco-share-enterprise:5.2 - ports: - - 8090:8080 - environment: - - DEBUG=true - - ALFRESCO_HOST=alfresco-core - - ALFRESCO_INTERNAL_HOST=alfresco-core diff --git a/apix-docker/52/docker-compose.yml b/apix-docker/52/docker-compose.yml deleted file mode 100644 index 605ff84c..00000000 --- a/apix-docker/52/docker-compose.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: '2' - -services: - alfresco-core: - image: ${DOCKER_IMAGE} - ports: - - ${DOCKER_IP}::8080 - volumes: - - alfresco:/opt/alfresco/alf_data - restart: unless-stopped - environment: - - SOLR_HOST=solr - - solr: - image: hub.xenit.eu/alfresco-enterprise/alfresco-solr6:1.2.0 - restart: unless-stopped - environment: - - ALFRESCO_HOST=alfresco-core - - postgresql: - image: docker.io/xenit/postgres - volumes: - - postgres:/var/lib/postgresql/data - environment: - - POSTGRES_USER=alfresco - - POSTGRES_PASSWORD=admin - - POSTGRES_DB=alfresco - restart: unless-stopped - - jodconverter: - image: hub.xenit.eu/public/jodconverter-ws - restart: unless-stopped - - -volumes: - alfresco: - solr: - postgres: \ No newline at end of file diff --git a/apix-docker/61/build.gradle b/apix-docker/61/build.gradle deleted file mode 100644 index 31c33e5e..00000000 --- a/apix-docker/61/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -dependencies { - baseAlfrescoWar platform("org.alfresco:content-services:6.1.1.3") - baseAlfrescoWar 'org.alfresco:content-services@war' - // Fix for https://github.com/xenit-eu/dynamic-extensions-for-alfresco#alfresco-61---wrong-version-of-commons-annotations-used - alfrescoAmp(group: 'eu.xenit.alfresco', name: 'alfresco-hotfix-MNT-20557', version: '1.0.1', ext: 'amp') - if (!ci.isCi()) { - alfrescoAmp(group: 'eu.xenit.care4alf', name: 'care4alf-6x', version: "${care4alfVersion}", ext: 'amp') - } -} - -dockerAlfresco { - baseImage = 'hub.xenit.eu/alfresco-enterprise/alfresco-repository-enterprise:6.1.1.3' -} diff --git a/apix-docker/61/debug-extension.docker-compose.yml b/apix-docker/61/debug-extension.docker-compose.yml deleted file mode 100644 index d9b4673a..00000000 --- a/apix-docker/61/debug-extension.docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '2' -services: - alfresco-core: - ports: - - 8000:8000 - environment: - - DEBUG=true - - SHARE_HOST=alfresco-share - alfresco-share: - image: hub.xenit.eu/public/alfresco-share-community:6.1 - ports: - - 8090:8080 - environment: - - DEBUG=true - - ALFRESCO_HOST=alfresco-core - - ALFRESCO_INTERNAL_HOST=alfresco-core diff --git a/apix-docker/61/docker-compose.yml b/apix-docker/61/docker-compose.yml deleted file mode 100644 index c6b86511..00000000 --- a/apix-docker/61/docker-compose.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: '2' - -services: - alfresco-core: - image: ${DOCKER_IMAGE} - ports: - - ${DOCKER_IP}::8080 - volumes: - - alfresco:/opt/alfresco/alf_data - restart: unless-stopped - environment: - - SOLR_HOST=solr - - TERM=xterm - - solr: - image: hub.xenit.eu/alfresco-enterprise/alfresco-solr6:1.2.0 - restart: unless-stopped - environment: - - ALFRESCO_HOST=alfresco-core - - postgresql: - image: docker.io/xenit/postgres - volumes: - - postgres:/var/lib/postgresql/data - environment: - - POSTGRES_USER=alfresco - - POSTGRES_PASSWORD=admin - - POSTGRES_DB=alfresco - restart: unless-stopped - - jodconverter: - image: hub.xenit.eu/public/jodconverter-ws - restart: unless-stopped - -volumes: - alfresco: - solr: - postgres: \ No newline at end of file diff --git a/apix-impl/52/overrides.gradle b/apix-impl/52/overrides.gradle deleted file mode 100644 index e84b9ff2..00000000 --- a/apix-impl/52/overrides.gradle +++ /dev/null @@ -1,9 +0,0 @@ -description = "Xenit API-X implementation Alfresco 5.2" - -ext { - alfresco_version = alfresco_52_version - alfresco_repo_version = alfresco_version - alfresco_dm_version = alfresco_52_dm_version - alfresco_min_version = "5.2" - alfresco_max_version = "5.2.99" -} diff --git a/apix-impl/52/src/main/config/module.properties b/apix-impl/52/src/main/config/module.properties deleted file mode 100644 index c38166f0..00000000 --- a/apix-impl/52/src/main/config/module.properties +++ /dev/null @@ -1,7 +0,0 @@ -module.id=${project.name} -module.title=${project.name} -module.description=${project.description} -module.version=${project.version} - -module.repo.version.min=${project.alfresco_min_version} -module.repo.version.max=${project.alfresco_max_version} diff --git a/apix-impl/61/overrides.gradle b/apix-impl/61/overrides.gradle deleted file mode 100644 index 83576a9a..00000000 --- a/apix-impl/61/overrides.gradle +++ /dev/null @@ -1,9 +0,0 @@ -description = "Xenit API-X implementation Alfresco 6.1" - -ext { - alfresco_version = alfresco_61_version - alfresco_repo_version = '7.33.12' - alfresco_dm_version = alfresco_61_dm_version - alfresco_min_version = "6.1" - alfresco_max_version = "6.1.99" -} diff --git a/apix-impl/61/src/main/config/module.properties b/apix-impl/61/src/main/config/module.properties deleted file mode 100644 index c38166f0..00000000 --- a/apix-impl/61/src/main/config/module.properties +++ /dev/null @@ -1,7 +0,0 @@ -module.id=${project.name} -module.title=${project.name} -module.description=${project.description} -module.version=${project.version} - -module.repo.version.min=${project.alfresco_min_version} -module.repo.version.max=${project.alfresco_max_version} diff --git a/apix-integrationtests/52/overrides.gradle b/apix-integrationtests/52/overrides.gradle deleted file mode 100644 index 707f5330..00000000 --- a/apix-integrationtests/52/overrides.gradle +++ /dev/null @@ -1,12 +0,0 @@ -ext { - subproject_alfresco_version = "52" - alfresco_version = alfresco_52_version - alfresco_dm_version = alfresco_52_dm_version - alfresco_repo_version = alfresco_version - alfresco_remote_api_version = alfresco_version -} - -dependencies { - integrationTestImplementationRemote group: 'org.apache.httpcomponents', name: 'httpmime', version: http_version - integrationTestImplementationRemote (group: 'org.apache.httpcomponents', name: 'fluent-hc', version: http_version) -} diff --git a/apix-integrationtests/52/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java b/apix-integrationtests/52/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java deleted file mode 100644 index 628457c9..00000000 --- a/apix-integrationtests/52/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package eu.xenit.apix.util; - -import javax.sql.DataSource; -import org.alfresco.repo.management.subsystems.SwitchableApplicationContextFactory; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class should only be used by the integration tests. - */ -public class SolrTestHelperImpl extends SolrTestHelperBaseImpl { - private Logger logger = LoggerFactory.getLogger(SolrTestHelperImpl.class); - - private final String SOLR_SUMMARY_FTS_NEW = "Node count with FTSStatus New"; - private final String SOLR_SUMMARY_FTS_DIRTY = "Node count with FTSStatus Dirty"; - private final String SOLR_SUMMARY_FTS_CLEAN = "Node count with FTSStatus Clean"; - - public SolrTestHelperImpl(String baseUrl, DataSource dataSource, SwitchableApplicationContextFactory searchSubSystem) { - super(baseUrl, dataSource, searchSubSystem); - } - - @Override - public int getNumberOfFtsStatusCleanDocs() { - return (Integer) super.getSummaryFtsSection().get(SOLR_SUMMARY_FTS_CLEAN); - } - - @Override - public boolean isContentIndexed() { - JSONObject ftsBlock = super.getSummaryFtsSection(); - logger.debug("solrSummaryFTSBlock: {}", ftsBlock.toString(4)); - return 0 == ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_NEW)) && 0 == (Integer) ftsBlock.get(SOLR_SUMMARY_FTS_DIRTY); - } - - @Override - public boolean isContentIndexed(int previousCleanCount) { - JSONObject ftsBlock = super.getSummaryFtsSection(); - logger.debug("solrSummaryFTSBlock: {}", ftsBlock.toString(4)); - return 0 == ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_NEW)) - && 0 == (Integer) ftsBlock.get(SOLR_SUMMARY_FTS_DIRTY) - && previousCleanCount < ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_CLEAN)); - } -} diff --git a/apix-integrationtests/61/overrides.gradle b/apix-integrationtests/61/overrides.gradle deleted file mode 100644 index 9122b231..00000000 --- a/apix-integrationtests/61/overrides.gradle +++ /dev/null @@ -1,14 +0,0 @@ -ext { - subproject_alfresco_version = "61" - alfresco_version = alfresco_61_version - alfresco_dm_version = alfresco_61_dm_version - alfresco_repo_version = '7.33.42.0' - alfresco_remote_api_version = '7.34.25.0' -} - -dependencies { - integrationTestImplementationRemote (group: 'org.apache.httpcomponents', name: 'fluent-hc', version: http_version) { - exclude group: 'commons-logging' - exclude group: 'org.apache.httpcomponents', module: 'httpcore' - } -} \ No newline at end of file diff --git a/apix-integrationtests/61/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java b/apix-integrationtests/61/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java deleted file mode 100644 index 628457c9..00000000 --- a/apix-integrationtests/61/src/main/java/eu/xenit/apix/util/SolrTestHelperImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package eu.xenit.apix.util; - -import javax.sql.DataSource; -import org.alfresco.repo.management.subsystems.SwitchableApplicationContextFactory; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class should only be used by the integration tests. - */ -public class SolrTestHelperImpl extends SolrTestHelperBaseImpl { - private Logger logger = LoggerFactory.getLogger(SolrTestHelperImpl.class); - - private final String SOLR_SUMMARY_FTS_NEW = "Node count with FTSStatus New"; - private final String SOLR_SUMMARY_FTS_DIRTY = "Node count with FTSStatus Dirty"; - private final String SOLR_SUMMARY_FTS_CLEAN = "Node count with FTSStatus Clean"; - - public SolrTestHelperImpl(String baseUrl, DataSource dataSource, SwitchableApplicationContextFactory searchSubSystem) { - super(baseUrl, dataSource, searchSubSystem); - } - - @Override - public int getNumberOfFtsStatusCleanDocs() { - return (Integer) super.getSummaryFtsSection().get(SOLR_SUMMARY_FTS_CLEAN); - } - - @Override - public boolean isContentIndexed() { - JSONObject ftsBlock = super.getSummaryFtsSection(); - logger.debug("solrSummaryFTSBlock: {}", ftsBlock.toString(4)); - return 0 == ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_NEW)) && 0 == (Integer) ftsBlock.get(SOLR_SUMMARY_FTS_DIRTY); - } - - @Override - public boolean isContentIndexed(int previousCleanCount) { - JSONObject ftsBlock = super.getSummaryFtsSection(); - logger.debug("solrSummaryFTSBlock: {}", ftsBlock.toString(4)); - return 0 == ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_NEW)) - && 0 == (Integer) ftsBlock.get(SOLR_SUMMARY_FTS_DIRTY) - && previousCleanCount < ((Integer) ftsBlock.get(SOLR_SUMMARY_FTS_CLEAN)); - } -} diff --git a/build.gradle b/build.gradle index 32852766..b83f1bbe 100644 --- a/build.gradle +++ b/build.gradle @@ -43,20 +43,14 @@ ext { http_core_version = "4.3.3" http_version = "4.3.4" - alfresco_52_version = "5.2.f" - alfresco_61_version = "6.1" alfresco_62_version = "6.2" alfresco_70_version = "7.0" alfresco_71_version = "7.1" alfresco_72_version = "7.2" alfresco_73_version = "7.3" - // The introduction of hit highlights in search 52 required general versions bump to 5.2.f - // Additionally, an explicit dependency on the data-model was required, however // alfresco-data-model might have a different version number than the main war it's included in // ref: https://bitbucket.org/xenit/alfresco-bom/src/master/repo/eu/xenit/alfresco/ for the bom of vanilla alfresco - alfresco_52_dm_version = "6.16" - alfresco_61_dm_version = "8.25.1" alfresco_62_dm_version = "8.50.18" alfresco_70_dm_version = "8.424" alfresco_71_dm_version = "12.23" diff --git a/settings.gradle b/settings.gradle index 2b53d109..b52413e8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,8 +6,6 @@ include ':swagger-doc-extractor' include ':de-swagger-reader' include ':apix-impl' -include ':apix-impl:apix-impl-52' -include ':apix-impl:apix-impl-61' include ':apix-impl:apix-impl-62' include ':apix-impl:apix-impl-70' include ':apix-impl:apix-impl-71' @@ -15,8 +13,6 @@ include ':apix-impl:apix-impl-72' include ':apix-impl:apix-impl-73' include ':apix-docker' -include ':apix-docker:docker-52' -include ':apix-docker:docker-61' include ':apix-docker:docker-62' include ':apix-docker:docker-70' include ':apix-docker:docker-71' @@ -24,8 +20,6 @@ include ':apix-docker:docker-72' include ':apix-docker:docker-73' include ':apix-integrationtests' -include ':apix-integrationtests:test-52' -include ':apix-integrationtests:test-61' include ':apix-integrationtests:test-62' include ':apix-integrationtests:test-70' include ':apix-integrationtests:test-71' @@ -33,22 +27,16 @@ include ':apix-integrationtests:test-72' include ':apix-integrationtests:test-73' include ':apix-integrationtests-model-amp' -project(':apix-impl:apix-impl-52').projectDir = "$rootDir/apix-impl/52" as File -project(':apix-impl:apix-impl-61').projectDir = "$rootDir/apix-impl/61" as File project(':apix-impl:apix-impl-62').projectDir = "$rootDir/apix-impl/62" as File project(':apix-impl:apix-impl-70').projectDir = "$rootDir/apix-impl/70" as File project(':apix-impl:apix-impl-71').projectDir = "$rootDir/apix-impl/71" as File project(':apix-impl:apix-impl-72').projectDir = "$rootDir/apix-impl/72" as File project(':apix-impl:apix-impl-73').projectDir = "$rootDir/apix-impl/73" as File -project(':apix-docker:docker-52').projectDir = "$rootDir/apix-docker/52" as File -project(':apix-docker:docker-61').projectDir = "$rootDir/apix-docker/61" as File project(':apix-docker:docker-62').projectDir = "$rootDir/apix-docker/62" as File project(':apix-docker:docker-70').projectDir = "$rootDir/apix-docker/70" as File project(':apix-docker:docker-71').projectDir = "$rootDir/apix-docker/71" as File project(':apix-docker:docker-72').projectDir = "$rootDir/apix-docker/72" as File project(':apix-docker:docker-73').projectDir = "$rootDir/apix-docker/73" as File -project(':apix-integrationtests:test-52').projectDir = "$rootDir/apix-integrationtests/52" as File -project(':apix-integrationtests:test-61').projectDir = "$rootDir/apix-integrationtests/61" as File project(':apix-integrationtests:test-62').projectDir = "$rootDir/apix-integrationtests/62" as File project(':apix-integrationtests:test-70').projectDir = "$rootDir/apix-integrationtests/70" as File project(':apix-integrationtests:test-71').projectDir = "$rootDir/apix-integrationtests/71" as File From 96b21fe1e60d43a2bbf3053ab90d1076b70136bb Mon Sep 17 00:00:00 2001 From: "Wim R. Crols" Date: Tue, 17 Jan 2023 14:13:37 +0100 Subject: [PATCH 9/9] ALFREDAPI-510: Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0333fd5..26aa710d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Alfred API - Changelog -## 4.0.0 (yyyy-mm-dd) +## 4.0.0 (2023-01-17) This release adds support for Alfresco 7.3 and drops support for Alfresco 5.2 and 6.1. ### Added