From 2bf30cf70692ea8f65478776e4b6a11f247119a4 Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Wed, 2 Nov 2016 16:20:49 +0200 Subject: [PATCH 1/6] RM-4289: first solution --- .../java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index 49a4b19fb6..7490092720 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -322,9 +322,17 @@ public class RMSitesImpl extends SitesImpl implements RMSites @Override public RMSite getRMSite(String siteId) { + siteService.hasSite(RM_SITE_ID); Site site = getSite(siteId); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); return new RMSite(site, compliance); } + + @Override + public void deleteSite(String siteId, Parameters parameters) + { + siteService.hasSite(RM_SITE_ID); + super.deleteSite(siteId, parameters); + } } From 78ff5bba59905eb93109f43755e4b37a36fe01b8 Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Wed, 2 Nov 2016 16:51:32 +0200 Subject: [PATCH 2/6] RM-4289: fixed also update site --- .../source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index 7490092720..66523b44da 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -232,6 +232,7 @@ public class RMSitesImpl extends SitesImpl implements RMSites */ public RMSite updateRMSite(String siteId, SiteUpdate update, Parameters parameters) { + siteService.hasSite(RM_SITE_ID); Site updatedSite = updateSite(siteId, update, parameters); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); From c2c2cb2fbcf1cc243017476230b840200a3773eb Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Wed, 2 Nov 2016 17:07:21 +0200 Subject: [PATCH 3/6] RM-4289: added deleteRMSite method instead of overriding deleteSite --- .../source/java/org/alfresco/rm/rest/api/RMSites.java | 8 ++++++++ .../java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java | 5 ++--- .../alfresco/rm/rest/api/sites/RMSiteEntityResource.java | 2 +- .../rm/rest/api/sites/RMSiteEntityResourceUnitTest.java | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/RMSites.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/RMSites.java index 40339b1ffb..584d186fb5 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/RMSites.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/RMSites.java @@ -66,6 +66,14 @@ public interface RMSites extends Sites */ RMSite updateRMSite(String siteId, SiteUpdate site, Parameters parameters); + /** + * Deletes RM site + * + * @param siteId + * @param parameters + */ + void deleteRMSite(String siteId, Parameters parameters); + /** * TODO Copied from Sites interface because was not available in 5.2.a-EA. To be removed after upgrading. * diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index 66523b44da..6df0b20e2d 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -330,10 +330,9 @@ public class RMSitesImpl extends SitesImpl implements RMSites return new RMSite(site, compliance); } - @Override - public void deleteSite(String siteId, Parameters parameters) + public void deleteRMSite(String siteId, Parameters parameters) { siteService.hasSite(RM_SITE_ID); - super.deleteSite(siteId, parameters); + deleteSite(siteId, parameters); } } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResource.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResource.java index 9cff802084..eb11498de8 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResource.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResource.java @@ -79,7 +79,7 @@ public class RMSiteEntityResource implements EntityResourceAction.Delete, Entity { throw new InvalidArgumentException("DELETE does not support parameter: permanent"); } - sites.deleteSite(siteId, parameters); + sites.deleteRMSite(siteId, parameters); } @Override diff --git a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResourceUnitTest.java b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResourceUnitTest.java index f834774701..76585f243d 100644 --- a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResourceUnitTest.java +++ b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/sites/RMSiteEntityResourceUnitTest.java @@ -116,7 +116,7 @@ public class RMSiteEntityResourceUnitTest extends BaseUnitTest Params parameters = mock(Params.class); when(parameters.getParameter(PERMANENT_PARAMETER)).thenReturn(null); rmSiteEntityResource.delete(siteId, parameters); - verify(mockedRMSites, times(1)).deleteSite(siteId, parameters); + verify(mockedRMSites, times(1)).deleteRMSite(siteId, parameters); } @Test @@ -134,7 +134,7 @@ public class RMSiteEntityResourceUnitTest extends BaseUnitTest { assertEquals("The Deletion is supported only for siteId = rm.", ex.getMessage()); } - verify(mockedRMSites, never()).deleteSite(siteId, parameters); + verify(mockedRMSites, never()).deleteRMSite(siteId, parameters); } @Test From a596f929b36dde464b0c935ed4b0b4ffe4628f77 Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Wed, 2 Nov 2016 17:37:21 +0200 Subject: [PATCH 4/6] RM-4289: finalised the fix --- .../alfresco/rm/rest/api/impl/RMSitesImpl.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index 6df0b20e2d..cb2ee748fa 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -232,7 +232,7 @@ public class RMSitesImpl extends SitesImpl implements RMSites */ public RMSite updateRMSite(String siteId, SiteUpdate update, Parameters parameters) { - siteService.hasSite(RM_SITE_ID); + solveRMSiteNodeRefCaching(); Site updatedSite = updateSite(siteId, update, parameters); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); @@ -323,7 +323,7 @@ public class RMSitesImpl extends SitesImpl implements RMSites @Override public RMSite getRMSite(String siteId) { - siteService.hasSite(RM_SITE_ID); + solveRMSiteNodeRefCaching(); Site site = getSite(siteId); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); @@ -332,7 +332,17 @@ public class RMSitesImpl extends SitesImpl implements RMSites public void deleteRMSite(String siteId, Parameters parameters) { - siteService.hasSite(RM_SITE_ID); + solveRMSiteNodeRefCaching(); deleteSite(siteId, parameters); } + + /** + * Method used for solving rm site nodeRef caching problem that affected rm site update, delete and get from rest api + * + */ + private void solveRMSiteNodeRefCaching() + { + //since we do not have access to SiteServiceImpl.getSiteNodeRef(String shortName, boolean enforcePermissions) method we can use hasSite method to solve caching problem + siteService.hasSite(RM_SITE_ID); + } } From 7139f5505445bf8a2faad2a8fb8129567cae4651 Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Wed, 2 Nov 2016 19:56:32 +0200 Subject: [PATCH 5/6] RM-4289: review updates --- .../source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index cb2ee748fa..3dfdf08dfc 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -330,6 +330,7 @@ public class RMSitesImpl extends SitesImpl implements RMSites return new RMSite(site, compliance); } + @Override public void deleteRMSite(String siteId, Parameters parameters) { solveRMSiteNodeRefCaching(); @@ -337,7 +338,7 @@ public class RMSitesImpl extends SitesImpl implements RMSites } /** - * Method used for solving rm site nodeRef caching problem that affected rm site update, delete and get from rest api + * Method used for solving rm site nodeRef caching problem that affected rm site update, delete and get from rest api. See RM-4289 issue for details. * */ private void solveRMSiteNodeRefCaching() From 1919536cd750ca28582b123f45c9b8edf844fabb Mon Sep 17 00:00:00 2001 From: Silviu Dinuta Date: Thu, 3 Nov 2016 11:07:32 +0200 Subject: [PATCH 6/6] RM-4289: solved the caching problem only after delete --- .../java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java index 3dfdf08dfc..273fba6538 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMSitesImpl.java @@ -232,7 +232,6 @@ public class RMSitesImpl extends SitesImpl implements RMSites */ public RMSite updateRMSite(String siteId, SiteUpdate update, Parameters parameters) { - solveRMSiteNodeRefCaching(); Site updatedSite = updateSite(siteId, update, parameters); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); @@ -323,7 +322,6 @@ public class RMSitesImpl extends SitesImpl implements RMSites @Override public RMSite getRMSite(String siteId) { - solveRMSiteNodeRefCaching(); Site site = getSite(siteId); SiteInfo siteInfo = siteService.getSite(siteId); RMSiteCompliance compliance = getCompliance(siteInfo); @@ -333,12 +331,13 @@ public class RMSitesImpl extends SitesImpl implements RMSites @Override public void deleteRMSite(String siteId, Parameters parameters) { - solveRMSiteNodeRefCaching(); deleteSite(siteId, parameters); + solveRMSiteNodeRefCaching(); } /** - * Method used for solving rm site nodeRef caching problem that affected rm site update, delete and get from rest api. See RM-4289 issue for details. + * Method used for solving rm site nodeRef caching problem that affected rm site update and get from rest api, after site deletion from rest api. + * See RM-4289 issue for details. * */ private void solveRMSiteNodeRefCaching()