11package org .phoebus .applications .alarm .logging .ui ;
22
3+ import com .fasterxml .jackson .core .JsonProcessingException ;
4+ import com .fasterxml .jackson .core .type .TypeReference ;
35import com .fasterxml .jackson .databind .DeserializationFeature ;
46import com .fasterxml .jackson .databind .ObjectMapper ;
57import com .sun .jersey .api .client .WebResource ;
6- import org .phoebus .applications .alarm .messages .AlarmConfigMessage ;
78import org .phoebus .framework .jobs .Job ;
89import org .phoebus .framework .jobs .JobManager ;
910import org .phoebus .framework .jobs .JobRunnableWithCancel ;
1011
12+ import javax .ws .rs .core .MediaType ;
1113import java .time .ZoneId ;
1214import java .time .format .DateTimeFormatter ;
13- import java .util .ArrayList ;
1415import java .util .List ;
1516import java .util .function .BiConsumer ;
1617import java .util .function .Consumer ;
@@ -23,23 +24,23 @@ public class AlarmLogConfigSearchJob extends JobRunnableWithCancel {
2324 private final WebResource client ;
2425 private final String pattern ;
2526
26- private final Consumer <List < AlarmConfigMessage > > alarmMessageHandler ;
27+ private final Consumer <AlarmLogTableItem > alarmMessageHandler ;
2728 private final BiConsumer <String , Exception > errorHandler ;
2829
2930 private final ObjectMapper objectMapper ;
3031 private DateTimeFormatter formatter = DateTimeFormatter .ofPattern ("yyyy-MM-dd HH:mm:ss.SSS" ).withZone (ZoneId .of ("UTC" ));
3132
3233 public static Job submit (WebResource client ,
3334 final String pattern ,
34- final Consumer <List < AlarmConfigMessage > > alarmMessageHandler ,
35+ final Consumer <AlarmLogTableItem > alarmMessageHandler ,
3536 final BiConsumer <String , Exception > errorHandler ) {
3637 return JobManager .schedule ("searching alarm log messages for : " + pattern ,
3738 new AlarmLogConfigSearchJob (client , pattern , alarmMessageHandler , errorHandler ));
3839 }
3940
4041 private AlarmLogConfigSearchJob (WebResource client ,
4142 String pattern ,
42- Consumer <List < AlarmConfigMessage > > alarmMessageHandler ,
43+ Consumer <AlarmLogTableItem > alarmMessageHandler ,
4344 BiConsumer <String , Exception > errorHandler ) {
4445 super ();
4546 this .client = client ;
@@ -58,9 +59,21 @@ public String getName() {
5859 @ Override
5960 public Runnable getRunnable () {
6061 return () -> {
61- List < String > result ;
62- List < AlarmConfigMessage > cResult = new ArrayList <>( );
62+ AlarmLogTableApp . logger . info ( "searching for alarm log entires : " +
63+ "config: " + pattern );
6364
65+ try {
66+ List <AlarmLogTableItem > result = objectMapper
67+ .readValue (client .path ("/search/alarm/config/" +pattern )
68+ .accept (MediaType .APPLICATION_JSON ).get (String .class ),
69+ new TypeReference <List <AlarmLogTableItem >>() {
70+ });
71+ if (result .size () >= 1 ) {
72+ alarmMessageHandler .accept (result .get (0 ));
73+ }
74+ } catch (JsonProcessingException e ) {
75+ errorHandler .accept ("Failed to search for alarm logs " , e );
76+ }
6477 };
6578 }
6679}
0 commit comments