21
21
*/
22
22
package org .exist .management .impl ;
23
23
24
- import java .util .ArrayList ;
25
24
import java .util .List ;
25
+ import java .util .Map ;
26
+ import java .util .HashMap ;
27
+ import java .util .TreeMap ;
26
28
27
29
import org .exist .scheduler .ScheduledJobInfo ;
28
30
import org .exist .scheduler .Scheduler ;
@@ -66,30 +68,30 @@ public String getInstanceId() {
66
68
}
67
69
68
70
@ Override
69
- public List < Job > getScheduledJobs () {
70
- final List < Job > jobList = new ArrayList <>();
71
+ public Map < String , Job > getScheduledJobs () {
72
+ final Map < String , Job > jobList = new HashMap <>();
71
73
72
74
final List <ScheduledJobInfo > jobs = scheduler .getScheduledJobs ();
73
75
for (final ScheduledJobInfo job : jobs ) {
74
- jobList .add ( new Job (job .getName (), job .getGroup (), job .getTriggerExpression ()));
76
+ jobList .put ( job . getName (), new Job (job .getName (), job .getGroup (), job .getTriggerExpression ()));
75
77
}
76
78
return jobList ;
77
79
}
78
80
79
81
@ Override
80
- public List < Job > getRunningJobs () {
81
- final List < Job > jobList = new ArrayList <>();
82
+ public Map < String , Job > getRunningJobs () {
83
+ final Map < String , Job > jobList = new HashMap <>();
82
84
83
85
final ProcessMonitor .JobInfo [] jobs = processMonitor .runningJobs ();
84
86
for (final ProcessMonitor .JobInfo job : jobs ) {
85
- jobList .add ( new Job (job .getThread ().getName (), job .getAction (), job .getAddInfo ().toString ()));
87
+ jobList .put ( job . getThread (). getName (), new Job (job .getThread ().getName (), job .getAction (), job .getAddInfo ().toString ()));
86
88
}
87
89
return jobList ;
88
90
}
89
91
90
92
@ Override
91
- public List < RunningQuery > getRunningQueries () {
92
- final List < RunningQuery > queries = new ArrayList <>();
93
+ public Map < QueryKey , RunningQuery > getRunningQueries () {
94
+ final Map < QueryKey , RunningQuery > queries = new TreeMap <>();
93
95
94
96
final XQueryWatchDog [] watchdogs = processMonitor .getRunningXQueries ();
95
97
for (final XQueryWatchDog watchdog : watchdogs ) {
@@ -98,7 +100,8 @@ public List<RunningQuery> getRunningQueries() {
98
100
requestURI = ProcessMonitor .getRequestURI (watchdog );
99
101
}
100
102
101
- queries .add (new RunningQuery (watchdog , requestURI ));
103
+ final RunningQuery runningQuery = new RunningQuery (watchdog , requestURI );
104
+ queries .put (new QueryKey (runningQuery .getId (), runningQuery .getSourceKey ()), runningQuery );
102
105
}
103
106
return queries ;
104
107
}
@@ -119,12 +122,12 @@ public void killQuery(final int id) {
119
122
}
120
123
121
124
@ Override
122
- public List < RecentQueryHistory > getRecentQueryHistory () {
123
- final List < RecentQueryHistory > history = new ArrayList <>();
125
+ public Map < QueryKey , RecentQueryHistory > getRecentQueryHistory () {
126
+ final Map < QueryKey , RecentQueryHistory > history = new TreeMap <>();
124
127
final QueryHistory [] queryHistories = processMonitor .getRecentQueryHistory ();
125
- int i = 0 ;
126
- for ( final QueryHistory queryHistory : queryHistories ) {
127
- history .add (new RecentQueryHistory (i ++ , queryHistory ));
128
+ for ( int i = 0 ; i < queryHistories . length ; i ++) {
129
+ final QueryHistory queryHistory = queryHistories [ i ];
130
+ history .put (new QueryKey ( i , queryHistory . getSource ()), new RecentQueryHistory (i , queryHistory ));
128
131
}
129
132
return history ;
130
133
}
0 commit comments