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 49a4b19fb6..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 @@ -327,4 +327,22 @@ public class RMSitesImpl extends SitesImpl implements RMSites RMSiteCompliance compliance = getCompliance(siteInfo); return new RMSite(site, compliance); } + + @Override + public void deleteRMSite(String siteId, Parameters parameters) + { + deleteSite(siteId, parameters); + solveRMSiteNodeRefCaching(); + } + + /** + * 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() + { + //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); + } } 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