diff --git a/core/src/main/java/com/schemaapp/core/services/CDNHandlerService.java b/core/src/main/java/com/schemaapp/core/services/CDNHandlerService.java index 1a27f2f..913adb0 100644 --- a/core/src/main/java/com/schemaapp/core/services/CDNHandlerService.java +++ b/core/src/main/java/com/schemaapp/core/services/CDNHandlerService.java @@ -49,7 +49,8 @@ public void savenReplicate(Object jsonGraphData, ResourceResolver resolver, Map additionalConfigMap, Resource urlResource, - ValueMap configDetailMap) throws RepositoryException, + ValueMap configDetailMap, + String cacheCleaningRequired) throws RepositoryException, JsonProcessingException, JSONException, PersistenceException, ReplicationException; diff --git a/core/src/main/java/com/schemaapp/core/services/impl/CDNDataAPIServiceImpl.java b/core/src/main/java/com/schemaapp/core/services/impl/CDNDataAPIServiceImpl.java index 29b325b..6c873a3 100644 --- a/core/src/main/java/com/schemaapp/core/services/impl/CDNDataAPIServiceImpl.java +++ b/core/src/main/java/com/schemaapp/core/services/impl/CDNDataAPIServiceImpl.java @@ -69,6 +69,8 @@ public class CDNDataAPIServiceImpl implements CDNDataAPIService { @Reference transient ResourceResolverFactory resolverFactory; + + private String cacheCleaningRequired = "enable"; private static ObjectMapper mapperObject = new ObjectMapper() .configure(FAIL_ON_MISSING_CREATOR_PROPERTIES, true); @@ -162,6 +164,9 @@ private void updateSchemaAppCDNData(ResourceResolver resolver, Page page) { String deploymentMethod = configDetailMap.get("deploymentMethod") != null ? (String) configDetailMap.get("deploymentMethod") : StringUtils.EMPTY; + cacheCleaningRequired = configDetailMap.get("cacheCleaningRequired") != null + ? (String) configDetailMap.get("cacheCleaningRequired") + : StringUtils.EMPTY; Iterator childPages = page.listChildren(new PageFilter(), true); String endpoint = ConfigurationUtil.getConfiguration(Constants.SCHEMAAPP_DATA_API_ENDPOINT_KEY, Constants.API_ENDPOINT_CONFIG_PID, configurationAdmin, ""); @@ -335,7 +340,8 @@ private void save(ResourceResolver resolver, resolver, additionalConfigMap, pageResource, - configDetailMap); + configDetailMap, + cacheCleaningRequired); } } diff --git a/core/src/main/java/com/schemaapp/core/services/impl/CDNHandlerServiceImpl.java b/core/src/main/java/com/schemaapp/core/services/impl/CDNHandlerServiceImpl.java index c034b8f..f5fa4e6 100644 --- a/core/src/main/java/com/schemaapp/core/services/impl/CDNHandlerServiceImpl.java +++ b/core/src/main/java/com/schemaapp/core/services/impl/CDNHandlerServiceImpl.java @@ -112,7 +112,9 @@ private Node getDataNode(Node node) @Override - public void savenReplicate(Object jsonGraphData, ResourceResolver resolver, Map additionalConfigMap, Resource urlResource, ValueMap configDetailMap) + public void savenReplicate(Object jsonGraphData, ResourceResolver resolver, Map additionalConfigMap, Resource urlResource, + ValueMap configDetailMap, + String cacheCleaningRequired) throws RepositoryException, JsonProcessingException, JSONException, PersistenceException, ReplicationException { Node pageNode = urlResource.adaptTo(Node.class); @@ -123,7 +125,9 @@ public void savenReplicate(Object jsonGraphData, ResourceResolver resolver, Map< saveGraphDatatoNode(jsonGraphData, dataNode); resolver.commit(); if (session != null) session.save(); - flushService.invalidatePageJson(urlResource.getPath() + "/" +Constants.DATA); + if (StringUtils.isNotEmpty(cacheCleaningRequired) && cacheCleaningRequired.equalsIgnoreCase("enable")) { + flushService.invalidatePageJson(urlResource.getPath() + "/" +Constants.DATA); + } } } diff --git a/core/src/test/java/com/schemaapp/core/services/CDNDataAPIServiceTest.java b/core/src/test/java/com/schemaapp/core/services/CDNDataAPIServiceTest.java index 0d53f06..deba9d7 100644 --- a/core/src/test/java/com/schemaapp/core/services/CDNDataAPIServiceTest.java +++ b/core/src/test/java/com/schemaapp/core/services/CDNDataAPIServiceTest.java @@ -103,7 +103,7 @@ void testReadCDNData() throws NoSuchFieldException, LoginException, IOException, mockConnection(); cdnDataAPIServiceImpl.readCDNData(); - verify(webhookHandlerService, times(1)).savenReplicate(any(), any(), any(), any(), any()); + verify(webhookHandlerService, times(1)).savenReplicate(any(), any(), any(), any(), any(), any()); } @Test @@ -119,7 +119,7 @@ void testReadCDNDatawithJavaScript() throws NoSuchFieldException, LoginException mockConnection(); cdnDataAPIServiceImpl.readCDNData(); - verify(webhookHandlerService, times(1)).savenReplicate(any(), any(), any(), any(), any()); + verify(webhookHandlerService, times(1)).savenReplicate(any(), any(), any(), any(), any(), any()); } private void mockResource() { diff --git a/ui.apps/src/main/content/jcr_root/apps/schemaApp/utilities/schemaAppcloudconfig/wizard/.content.xml b/ui.apps/src/main/content/jcr_root/apps/schemaApp/utilities/schemaAppcloudconfig/wizard/.content.xml index 1bfa3c8..ae23c69 100644 --- a/ui.apps/src/main/content/jcr_root/apps/schemaApp/utilities/schemaAppcloudconfig/wizard/.content.xml +++ b/ui.apps/src/main/content/jcr_root/apps/schemaApp/utilities/schemaAppcloudconfig/wizard/.content.xml @@ -115,6 +115,35 @@ sling:resourceType="granite/ui/components/foundation/form/hidden"/> + + + + + + + +