From abb7e915eef02e78f24a750a518b2b1d46ba3a92 Mon Sep 17 00:00:00 2001 From: Rebecca Williams Date: Mon, 24 Aug 2026 16:10:53 +0100 Subject: [PATCH 1/3] Add preference to use the 'optimized with last sample' AA postprocessor --- .../reader/appliance/ApplianceArchiveReaderConstants.java | 2 ++ .../reader/appliance/ApplianceOptimizedValueIterator.java | 6 +++++- .../archive/reader/appliance/AppliancePreferences.java | 1 + .../src/main/resources/appliance_preferences.properties | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java index 3a06db54cc..6266df8acd 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java @@ -52,6 +52,8 @@ public class ApplianceArchiveReaderConstants { public static final String OP_MEAN = "mean_"; /** Operator for the optimized post processor */ public static final String OP_OPTIMIZED = "optimized_"; + /** Operator for the optimized with last sample post processor */ + public static final String OP_OPTIMIZED_WITH_LAST_SAMPLE = "optimLastSample_"; /** The schema delimiter: ca://pvName or pva://pvname */ static final String SCHEMA_DELIMITER = "://"; diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java index cbb8b653a8..e8d7b0dc70 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java @@ -66,7 +66,11 @@ public ApplianceOptimizedValueIterator(ApplianceArchiveReader reader, String nam */ @Override protected void fetchDataInternal(String pvName) throws ArchiverApplianceException { - String optimized = new StringBuilder().append(ApplianceArchiveReaderConstants.OP_OPTIMIZED) + String optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED; + if (AppliancePreferences.ppOptimizedWithLastSample) + optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED_WITH_LAST_SAMPLE; + + String optimized = new StringBuilder().append(optimizedOperator) .append(requestedPoints).append('(').append(pvName).append(')').toString(); super.fetchDataInternal(optimized); } diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java index db6e196395..451a140772 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java @@ -20,6 +20,7 @@ public class AppliancePreferences { @Preference static boolean useStatisticsForOptimizedData; @Preference static boolean useNewOptimizedOperator; @Preference static boolean useHttps; + @Preference static boolean ppOptimizedWithLastSample; static { AnnotatedPreferences.initialize(AppliancePreferences.class, "/appliance_preferences.properties"); diff --git a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties index 17c55c3225..bbf6ed59b3 100644 --- a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties +++ b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties @@ -7,3 +7,8 @@ useNewOptimizedOperator=true # Use 'https://..' instead of plain 'http://..'? useHttps=false + +# Query the AA using the 'Optimized With Last Sample' post processor. +# Setting to false means that the 'Optimized' post processor will be +# used. +ppOptimizedWithLastSample=false From fea89bc6d3d4cfcde7acd97624755c43a096c7d7 Mon Sep 17 00:00:00 2001 From: Rebecca Williams Date: Mon, 24 Aug 2026 18:15:27 +0100 Subject: [PATCH 2/3] Fix pre-commit linting --- .../reader/appliance/ApplianceOptimizedValueIterator.java | 4 ++-- .../src/main/resources/appliance_preferences.properties | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java index e8d7b0dc70..2ffc21c533 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java @@ -69,7 +69,7 @@ protected void fetchDataInternal(String pvName) throws ArchiverApplianceExceptio String optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED; if (AppliancePreferences.ppOptimizedWithLastSample) optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED_WITH_LAST_SAMPLE; - + String optimized = new StringBuilder().append(optimizedOperator) .append(requestedPoints).append('(').append(pvName).append(')').toString(); super.fetchDataInternal(optimized); @@ -159,4 +159,4 @@ public VType next() { return super.extractData(message); } } -} \ No newline at end of file +} diff --git a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties index bbf6ed59b3..3bb87b09e6 100644 --- a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties +++ b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties @@ -10,5 +10,5 @@ useHttps=false # Query the AA using the 'Optimized With Last Sample' post processor. # Setting to false means that the 'Optimized' post processor will be -# used. +# used. ppOptimizedWithLastSample=false From fc7cd32028e2a11b073206fc94415d2ad31a1867 Mon Sep 17 00:00:00 2001 From: Rebecca Williams Date: Mon, 24 Aug 2026 18:24:28 +0100 Subject: [PATCH 3/3] Fix pre-commit linting --- .../src/main/resources/appliance_preferences.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties index 3bb87b09e6..2a0df35b72 100644 --- a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties +++ b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties @@ -9,6 +9,6 @@ useNewOptimizedOperator=true useHttps=false # Query the AA using the 'Optimized With Last Sample' post processor. -# Setting to false means that the 'Optimized' post processor will be +# Setting to false means that the 'Optimized' post processor will be # used. ppOptimizedWithLastSample=false