Skip to content

Commit ccbfeba

Browse files
committed
sort commands in statistics
1 parent ea0198b commit ccbfeba

File tree

8 files changed

+59
-22
lines changed

8 files changed

+59
-22
lines changed

Diff for: src/common/codeine/servlet/AbstractServlet.java

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import codeine.model.Constants;
1919
import codeine.permissions.IUserWithPermissions;
2020
import codeine.permissions.UserPermissionsGetter;
21+
import codeine.servlet.manage_statistics.ManageStatisticsCollector;
2122
import codeine.utils.ExceptionUtils;
2223
import codeine.utils.ServletUtils;
2324
import codeine.utils.exceptions.InShutdownException;

Diff for: src/common/codeine/servlet/ManageStatisticsCollector.java renamed to src/common/codeine/servlet/manage_statistics/ManageStatisticsCollector.java

+6-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package codeine.servlet;
1+
package codeine.servlet.manage_statistics;
22

33
import java.util.Collections;
44
import java.util.Comparator;
@@ -23,13 +23,13 @@ public class ManageStatisticsCollector {
2323
public synchronized ManageStatisticsInfo getCollected() {
2424
List<StringsCommandPair> lastCommands = Lists.newArrayList(lastCommandsInfo.asMap().values());
2525
List<StringWithCount> users = Lists.newArrayList(usersInfo.asMap().values());
26-
Comparator<StringWithCount> c = new Comparator<ManageStatisticsCollector.StringWithCount>() {
26+
Collections.sort(users, new Comparator<ManageStatisticsCollector.StringWithCount>() {
2727
@Override
2828
public int compare(StringWithCount o1, StringWithCount o2) {
2929
return o1.hitCount == o2.hitCount ? o1.value.compareTo(o2.value) : Integer.compare(o2.hitCount, o1.hitCount);
3030
}
31-
};
32-
Collections.sort(users, c);
31+
});
32+
Collections.sort(lastCommands, new StringsCommandPair.CommandComparator());
3333
return new ManageStatisticsInfo(users, lastCommands, activeUsersInfo.asMap().keySet());
3434
}
3535
public synchronized void userAccess(IUserWithPermissions user, final String pathInfo) {
@@ -40,8 +40,8 @@ public synchronized void userAccess(IUserWithPermissions user, final String path
4040
throw ExceptionUtils.asUnchecked(e);
4141
}
4242
}
43-
public synchronized void commandExecuted(String project, String command_name, String command_id) {
44-
lastCommandsInfo.put(project + "_" + command_name + "_" + command_id, new StringsCommandPair(project, command_name, command_id));
43+
public synchronized void commandExecuted(String project, String command_name, String command_id, long startTime) {
44+
lastCommandsInfo.put(project + "_" + command_name + "_" + command_id, new StringsCommandPair(project, command_name, command_id, startTime));
4545
}
4646
private Callable<StringWithCount> getCallable(final String pathInfo) {
4747
Callable<StringWithCount> callable = new Callable<ManageStatisticsCollector.StringWithCount>() {
@@ -60,14 +60,5 @@ public StringWithCount(String pathInfo) {
6060
private String value;
6161
private int hitCount;
6262
}
63-
@SuppressWarnings("unused")
64-
public static class StringsCommandPair {
65-
public StringsCommandPair(String project, String command_name, String command_id) {
66-
this.project = project;
67-
this.command_name = command_name;
68-
this.command_id = command_id;
69-
}
70-
private String project, command_name, command_id;
71-
}
7263

7364
}

Diff for: src/common/codeine/servlet/ManageStatisticsInfo.java renamed to src/common/codeine/servlet/manage_statistics/ManageStatisticsInfo.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
package codeine.servlet;
1+
package codeine.servlet.manage_statistics;
22

33
import java.util.List;
44
import java.util.Set;
55

6-
import codeine.servlet.ManageStatisticsCollector.StringWithCount;
7-
import codeine.servlet.ManageStatisticsCollector.StringsCommandPair;
6+
import codeine.servlet.manage_statistics.ManageStatisticsCollector.StringWithCount;
87

98
@SuppressWarnings("unused")
109
public class ManageStatisticsInfo {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package codeine.servlet.manage_statistics;
2+
3+
import java.util.Comparator;
4+
5+
@SuppressWarnings("unused")
6+
public class StringsCommandPair {
7+
private long startTime;
8+
private String project, command_name, command_id;
9+
10+
public StringsCommandPair(String project, String command_name, String command_id, long startTime) {
11+
this.project = project;
12+
this.command_name = command_name;
13+
this.command_id = command_id;
14+
this.startTime = startTime;
15+
}
16+
17+
public static class CommandComparator implements Comparator<StringsCommandPair> {
18+
@Override
19+
public int compare(StringsCommandPair arg0, StringsCommandPair arg1) {
20+
return arg0.startTime == arg1.startTime ? 0 : arg0.startTime < arg1.startTime ? 1 : -1;
21+
}
22+
}
23+
}

Diff for: src/web_server/codeine/WebServerModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import codeine.permissions.GroupsManager;
99
import codeine.permissions.PluginGroupsManager;
1010
import codeine.plugins.DiscardOldCommandsPlugin;
11-
import codeine.servlet.ManageStatisticsCollector;
1211
import codeine.servlet.PrepareForShutdown;
1312
import codeine.servlet.UsersManager;
13+
import codeine.servlet.manage_statistics.ManageStatisticsCollector;
1414
import codeine.statistics.IMonitorStatistics;
1515
import codeine.statistics.MonitorsStatisticsProvider;
1616

Diff for: src/web_server/codeine/servlets/api_servlets/NodesCommandApiServlet.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected void myPost(HttpServletRequest request, HttpServletResponse response)
6666
commandData.command_info().overrideByConfiguration(configuredCommand);
6767
updateNodes(commandData, projectName);
6868
long dir = allNodesCommandExecuterProvider.createExecutor().executeOnAllNodes(permissionsManager.user(request), commandData, project);
69-
manageStatisticsCollector().commandExecuted(projectName, command_name, String.valueOf(dir));
69+
manageStatisticsCollector().commandExecuted(projectName, command_name, String.valueOf(dir), System.currentTimeMillis());
7070
writeResponseJson(response, dir);
7171
}
7272

Diff for: src/web_server/codeine/servlets/api_servlets/angular/ManageStatisticsInfoApiServlet.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import javax.servlet.http.HttpServletResponse;
66

77
import codeine.servlet.AbstractApiServlet;
8-
import codeine.servlet.ManageStatisticsCollector;
9-
import codeine.servlet.ManageStatisticsInfo;
8+
import codeine.servlet.manage_statistics.ManageStatisticsCollector;
9+
import codeine.servlet.manage_statistics.ManageStatisticsInfo;
1010

1111
public class ManageStatisticsInfoApiServlet extends AbstractApiServlet {
1212

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package codeine.servlet.manage_statistics;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import java.util.Collections;
6+
import java.util.List;
7+
8+
import org.junit.Test;
9+
10+
import com.google.common.collect.Lists;
11+
12+
public class StringsCommandPairTest {
13+
14+
@Test
15+
public void testSortOrder() {
16+
StringsCommandPair before = new StringsCommandPair(null, null, null, 1);
17+
StringsCommandPair after = new StringsCommandPair(null, null, null, 2);
18+
List<StringsCommandPair> list = Lists.newArrayList(before, after);
19+
Collections.sort(list, new StringsCommandPair.CommandComparator());
20+
assertEquals(Lists.newArrayList(after, before), list);
21+
}
22+
23+
}

0 commit comments

Comments
 (0)