Skip to content

Commit 050401c

Browse files
committed
Add support for the new "root" key word
1 parent 016c6ea commit 050401c

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

app/alarm/logging-ui/src/main/java/org/phoebus/applications/alarm/logging/ui/AlarmLogSearchJob.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
import java.util.List;
2323
import java.util.function.BiConsumer;
2424
import java.util.function.Consumer;
25+
import java.util.logging.Level;
2526
import java.util.stream.Collectors;
2627

28+
import static org.phoebus.applications.alarm.logging.ui.AlarmLogTableApp.logger;
2729
/**
2830
* A Job to search for alarm messages logged by the alarm logging service
2931
* @author Kunal Shroff
@@ -78,10 +80,17 @@ public void run(JobMonitor monitor) {
7880
map.putIfAbsent("size", Arrays.asList(String.valueOf(size)));
7981

8082
try {
81-
List<AlarmLogTableItem> result = objectMapper.readValue(client.path("/search/alarm")
83+
84+
long start = System.currentTimeMillis();
85+
String resultStr = client.path("/search/alarm")
8286
.queryParams(map)
83-
.accept(MediaType.APPLICATION_JSON).get(String.class), new TypeReference<List<AlarmLogTableItem>>() {
87+
.accept(MediaType.APPLICATION_JSON).get(String.class);
88+
89+
logger.log(Level.FINE,"String response = " + (System.currentTimeMillis() - start));
90+
start = System.currentTimeMillis();
91+
List<AlarmLogTableItem> result = objectMapper.readValue(resultStr, new TypeReference<List<AlarmLogTableItem>>() {
8492
});
93+
logger.log(Level.FINE,"Object mapper response = " + (System.currentTimeMillis() - start));
8594
alarmMessageHandler.accept(result);
8695
} catch (JsonProcessingException e) {
8796
errorHandler.accept("Failed to search for alarm logs ", e);

app/alarm/logging-ui/src/main/java/org/phoebus/applications/alarm/logging/ui/AlarmLogTableController.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -318,14 +318,17 @@ public ObservableValue<String> call(CellDataFeatures<AlarmLogTableItem, String>
318318
searchParameters.put(Keys.ENDTIME, TimeParser.format(java.time.Duration.ZERO));
319319
advancedSearchViewController.setSearchParameters(searchParameters);
320320

321-
query.setText(searchParameters.entrySet().stream().sorted(Map.Entry.comparingByKey()).map((e) -> {
322-
return e.getKey().getName().trim() + "=" + e.getValue().trim();
323-
}).collect(Collectors.joining("&")));
324-
325-
searchParameters.addListener((MapChangeListener<Keys, String>) change -> query.setText(searchParameters.entrySet().stream()
326-
.sorted(Entry.comparingByKey())
327-
.map((e) -> e.getKey().getName().trim() + "=" + e.getValue().trim())
328-
.collect(Collectors.joining("&"))));
321+
query.setText(
322+
searchParameters.entrySet().stream()
323+
.sorted(Map.Entry.comparingByKey())
324+
.map((e) -> e.getKey().getName().trim() + "=" + e.getValue().trim())
325+
.collect(Collectors.joining("&")));
326+
327+
searchParameters.addListener(
328+
(MapChangeListener<Keys, String>) change -> query.setText(searchParameters.entrySet().stream()
329+
.sorted(Entry.comparingByKey())
330+
.map((e) -> e.getKey().getName().trim() + "=" + e.getValue().trim())
331+
.collect(Collectors.joining("&"))));
329332

330333
query.setOnKeyPressed(keyEvent -> {
331334
if (keyEvent.getCode() == KeyCode.ENTER) {
@@ -384,6 +387,7 @@ public void setIsNodeTable(Boolean isNodeTable) {
384387
} else {
385388
searchParameters.put(Keys.PV, "*");
386389
}
390+
searchParameters.put(Keys.ROOT, "*");
387391
searchParameters.put(Keys.MESSAGE, "*");
388392
searchParameters.put(Keys.SEVERITY, "*");
389393
searchParameters.put(Keys.CURRENTSEVERITY, "*");
@@ -479,16 +483,21 @@ public void resize() {
479483
}
480484
}
481485

486+
Map<String, Keys> lookup = Arrays.stream(Keys.values()).collect(Collectors.toMap(Keys::getName, k -> {
487+
return k;
488+
}));
489+
482490
@FXML
483491
void updateQuery() {
484-
Arrays.asList(query.getText().split("&")).forEach(s -> {
492+
List<String> searchTerms = Arrays.asList(query.getText().split("&"));
493+
searchTerms.stream().forEach(s -> {
485494
String key = s.split("=")[0];
486-
for (Map.Entry<Keys, String> entry : searchParameters.entrySet()) {
487-
if (entry.getKey().getName().equals(key)) {
488-
searchParameters.put(entry.getKey(), s.split("=")[1]);
489-
}
495+
String value = s.split("=")[1];
496+
if(lookup.containsKey(key)) {
497+
searchParameters.put(lookup.get(key), value);
490498
}
491499
});
500+
492501
}
493502

494503
@FXML

app/alarm/logging-ui/src/main/java/org/phoebus/applications/alarm/logging/ui/AlarmLogTableQueryUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class AlarmLogTableQueryUtil {
55
// Ordered search keys
66
public enum Keys {
77
PV("pv"),
8+
ROOT("root"),
89
SEVERITY("severity"),
910
MESSAGE("message"),
1011
CURRENTSEVERITY("current_severity"),

0 commit comments

Comments
 (0)