From caffedf6948e54ecdcb2dacc34a4ff68738913a8 Mon Sep 17 00:00:00 2001 From: Nikhil Ajudiya Date: Mon, 29 May 2023 21:45:27 +0530 Subject: [PATCH 1/3] added option to enable-disable cache --- .../core/services/CDNHandlerService.java | 3 +- .../services/impl/CDNDataAPIServiceImpl.java | 8 ++++- .../services/impl/CDNHandlerServiceImpl.java | 8 +++-- .../core/services/CDNDataAPIServiceTest.java | 4 +-- .../schemaAppcloudconfig/wizard/.content.xml | 29 +++++++++++++++++++ 5 files changed, 46 insertions(+), 6 deletions(-) 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 f49fc05..4aa6c80 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 6e172af..21a9bce 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 @@ -65,6 +65,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); @@ -107,6 +109,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, ""); @@ -264,7 +269,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 9ba526f..a1015f3 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 3d105d0..7ae3a0a 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..dd6e48d 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"/> + + + + + + + + Date: Tue, 6 Jun 2023 18:53:55 +0530 Subject: [PATCH 2/3] updaetd the label --- .../utilities/schemaAppcloudconfig/wizard/.content.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 dd6e48d..c2d2c3e 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 @@ -119,8 +119,8 @@ jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/radiogroup" required="{Boolean}true" - text="Cache Cleaning Required?" - fieldLabel="Cache Cleaning Required to clear the dispatcher cache"> + text="Dispatcher Cache Purge?" + fieldLabel="Dispatcher Cache Purge"> Date: Tue, 6 Jun 2023 18:54:24 +0530 Subject: [PATCH 3/3] updaetd the label --- .../utilities/schemaAppcloudconfig/wizard/.content.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c2d2c3e..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 @@ -120,7 +120,7 @@ sling:resourceType="granite/ui/components/foundation/form/radiogroup" required="{Boolean}true" text="Dispatcher Cache Purge?" - fieldLabel="Dispatcher Cache Purge"> + fieldLabel="If enabled page updates will clear dispatcher cache within 30 minutes. If disabled markup is updated but the cache is not purged and only used when there is another cache clearing mechanism">