From 26f52de50fd5d7404f1766b246839885744f45ea Mon Sep 17 00:00:00 2001 From: Lingeswaran Subramaniyam Date: Mon, 30 Mar 2026 10:42:47 +0530 Subject: [PATCH 1/2] BAH-4444 Moving from atomfeed to spring event,added control for publishing atomfeed events and scheduler --- .../atomfeed/advice/EncounterSaveAdvice.java | 7 +++- .../advice/EncounterServiceSaveAdvice.java | 7 +++- .../module/atomfeed/advice/PatientAdvice.java | 7 +++- .../atomfeed/advice/PatientProgramAdvice.java | 2 ++ .../advice/PersonRelationshipAdvice.java | 2 ++ .../src/main/resources/liquibase.xml | 32 +++++++++++++++++++ 6 files changed, 54 insertions(+), 3 deletions(-) diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java index 8a124f8..fc34156 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java @@ -43,7 +43,7 @@ public EncounterSaveAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object emrEncounterService) throws Throwable { - if (method.getName().equals(SAVE_METHOD)) { + if (method.getName().equals(SAVE_METHOD) && isAtomFeedPublishEnabled()) { Object encounterUuid = PropertyUtils.getProperty(returnValue, "encounterUuid"); String url = String.format(ENCOUNTER_REST_URL, encounterUuid); final Event event = new Event(UUID.randomUUID().toString(), TITLE, LocalDateTime.now(), (URI) null, url, CATEGORY); @@ -65,6 +65,11 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + return value == null || value.isEmpty() || Boolean.parseBoolean(value); + } + private static String getEncounterFeedUrl() { return Context.getAdministrationService().getGlobalProperty("encounter.feed.publish.url"); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java index edf530a..428408c 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java @@ -43,7 +43,7 @@ public EncounterServiceSaveAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object encounterService) throws Throwable { - if (method.getName().equals(SAVE_METHOD)) { + if (method.getName().equals(SAVE_METHOD) && isAtomFeedPublishEnabled()) { Encounter encounter = (Encounter) args[0]; // Assuming encounter is the first argument String encounterType = encounter.getEncounterType().getName(); // Assuming encounterType is a string if (ENCOUNTER_TYPE_INVESTIGATION.equals(encounterType)) { @@ -69,6 +69,11 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + return value == null || value.isEmpty() || Boolean.parseBoolean(value); + } + private static String getEncounterFeedUrl() { return Context.getAdministrationService().getGlobalProperty("encounter.feed.publish.url"); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java index 6facfa0..09e3548 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java @@ -36,7 +36,7 @@ public PatientAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] arguments, Object target) throws Throwable { - if (method.getName().equals(SAVE_PATIENT_METHOD)) { + if (method.getName().equals(SAVE_PATIENT_METHOD) && isAtomFeedPublishEnabled()) { String contents = String.format(TEMPLATE, ((Patient) returnValue).getUuid()); final Event event = new Event(UUID.randomUUID().toString(), TITLE, LocalDateTime.now(), (URI) null, contents, CATEGORY); @@ -56,6 +56,11 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + return value == null || value.isEmpty() || Boolean.parseBoolean(value); + } + private PlatformTransactionManager getSpringPlatformTransactionManager() { List platformTransactionManagers = Context.getRegisteredComponents(PlatformTransactionManager.class); return platformTransactionManagers.get(0); diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java index f792aa8..de560fd 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java @@ -79,6 +79,8 @@ private AtomFeedSpringTransactionManager getAFTxManager() { } private boolean shouldRaiseRelationshipEvent() { + String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + if (masterSwitch != null && !masterSwitch.isEmpty() && !Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_PATIENT_PROGRAM_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java index b5e970c..0e6fe57 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java @@ -58,6 +58,8 @@ public PropagationDefinition getTxPropagationDefinition() { } private boolean shouldRaiseRelationshipEvent() { + String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + if (masterSwitch != null && !masterSwitch.isEmpty() && !Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_RELATIONSHIP_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/resources/liquibase.xml b/openmrs-atomfeed-api/src/main/resources/liquibase.xml index 0734e39..3c2c6d9 100644 --- a/openmrs-atomfeed-api/src/main/resources/liquibase.xml +++ b/openmrs-atomfeed-api/src/main/resources/liquibase.xml @@ -84,6 +84,22 @@ + + + + + schedulable_class = 'org.openmrs.module.atomfeed.scheduler.tasks.EventPublisherTask' + + + + + + + + schedulable_class = 'org.openmrs.module.atomfeed.scheduler.tasks.EventRecordsNumberOffsetMarkerTask' + + + @@ -192,4 +208,20 @@ + + + + + SELECT COUNT(*) FROM global_property where property = 'atomfeed.enable.publish' + + + Adding master switch global property to enable or disable all atomfeed event publishing in atomfeed module + + + + + + + + \ No newline at end of file From 0b1eb662fc84788e9ba64794a11c9a322ccecaa8 Mon Sep 17 00:00:00 2001 From: Lingeswaran Subramaniyam Date: Tue, 7 Apr 2026 12:13:21 +0530 Subject: [PATCH 2/2] BAH-4444 code alteration --- .../atomfeed/advice/EncounterSaveAdvice.java | 3 +-- .../advice/EncounterServiceSaveAdvice.java | 3 +-- .../module/atomfeed/advice/PatientAdvice.java | 3 +-- .../atomfeed/advice/PatientProgramAdvice.java | 2 +- .../advice/PersonRelationshipAdvice.java | 2 +- .../src/main/resources/liquibase.xml | 16 ---------------- 6 files changed, 5 insertions(+), 24 deletions(-) diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java index fc34156..67f332e 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java @@ -66,8 +66,7 @@ public PropagationDefinition getTxPropagationDefinition() { } private boolean isAtomFeedPublishEnabled() { - String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); - return value == null || value.isEmpty() || Boolean.parseBoolean(value); + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); } private static String getEncounterFeedUrl() { diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java index 428408c..af496e8 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java @@ -70,8 +70,7 @@ public PropagationDefinition getTxPropagationDefinition() { } private boolean isAtomFeedPublishEnabled() { - String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); - return value == null || value.isEmpty() || Boolean.parseBoolean(value); + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); } private static String getEncounterFeedUrl() { diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java index 09e3548..a66c126 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java @@ -57,8 +57,7 @@ public PropagationDefinition getTxPropagationDefinition() { } private boolean isAtomFeedPublishEnabled() { - String value = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); - return value == null || value.isEmpty() || Boolean.parseBoolean(value); + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); } private PlatformTransactionManager getSpringPlatformTransactionManager() { diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java index de560fd..def2432 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java @@ -80,7 +80,7 @@ private AtomFeedSpringTransactionManager getAFTxManager() { private boolean shouldRaiseRelationshipEvent() { String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); - if (masterSwitch != null && !masterSwitch.isEmpty() && !Boolean.parseBoolean(masterSwitch)) return false; + if (!Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_PATIENT_PROGRAM_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java index 0e6fe57..9e03f8c 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java @@ -59,7 +59,7 @@ public PropagationDefinition getTxPropagationDefinition() { private boolean shouldRaiseRelationshipEvent() { String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); - if (masterSwitch != null && !masterSwitch.isEmpty() && !Boolean.parseBoolean(masterSwitch)) return false; + if (!Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_RELATIONSHIP_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/resources/liquibase.xml b/openmrs-atomfeed-api/src/main/resources/liquibase.xml index 3c2c6d9..c8a6056 100644 --- a/openmrs-atomfeed-api/src/main/resources/liquibase.xml +++ b/openmrs-atomfeed-api/src/main/resources/liquibase.xml @@ -84,22 +84,6 @@ - - - - - schedulable_class = 'org.openmrs.module.atomfeed.scheduler.tasks.EventPublisherTask' - - - - - - - - schedulable_class = 'org.openmrs.module.atomfeed.scheduler.tasks.EventRecordsNumberOffsetMarkerTask' - - -