Skip to content

Commit 6e8fdb7

Browse files
committed
[#noissue] Refactor AgentInfoFilter
1 parent a274afe commit 6e8fdb7

14 files changed

+114
-119
lines changed

web/src/main/java/com/navercorp/pinpoint/web/authorization/controller/AgentInfoController.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByApplication;
3131
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByHost;
3232
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
33-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
34-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilterChain;
33+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
34+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilterChain;
3535
import com.navercorp.pinpoint.web.vo.agent.AgentStatus;
36-
import com.navercorp.pinpoint.web.vo.agent.DefaultAgentInfoFilter;
36+
import com.navercorp.pinpoint.web.vo.agent.DefaultAgentStatusFilter;
3737
import com.navercorp.pinpoint.web.vo.agent.DetailedAgentAndStatus;
3838
import com.navercorp.pinpoint.web.vo.timeline.inspector.InspectorTimeline;
3939
import com.navercorp.pinpoint.web.view.tree.SimpleTreeView;
@@ -74,7 +74,7 @@ public TreeView<TreeNode<AgentAndStatus>> getAgentList() {
7474
public TreeView<TreeNode<AgentAndStatus>> getAgentList(
7575
@RequestParam("from") long from,
7676
@RequestParam("to") long to) {
77-
AgentInfoFilter filter = new DefaultAgentInfoFilter(from);
77+
AgentStatusFilter filter = new DefaultAgentStatusFilter(from);
7878
long timestamp = to;
7979
AgentsMapByApplication allAgentsList = this.agentInfoService.getAllAgentsList(filter, Range.between(from, to));
8080
return treeView(allAgentsList);
@@ -84,7 +84,7 @@ public TreeView<TreeNode<AgentAndStatus>> getAgentList(
8484
@GetMapping(value = "/getAgentList", params = {"!application", "timestamp"})
8585
public TreeView<TreeNode<AgentAndStatus>> getAgentList(
8686
@RequestParam("timestamp") long timestamp) {
87-
AgentsMapByApplication allAgentsList = this.agentInfoService.getAllAgentsList(AgentInfoFilter::accept, Range.between(timestamp, timestamp));
87+
AgentsMapByApplication allAgentsList = this.agentInfoService.getAllAgentsList(AgentStatusFilter::accept, Range.between(timestamp, timestamp));
8888
return treeView(allAgentsList);
8989
}
9090

@@ -104,8 +104,8 @@ public TreeView<TreeNode<AgentStatusAndLink>> getAgentList(
104104
@RequestParam("application") String applicationName,
105105
@RequestParam("from") long from,
106106
@RequestParam("to") long to) {
107-
AgentInfoFilter currentRunFilter = new AgentInfoFilterChain(
108-
new DefaultAgentInfoFilter(from)
107+
AgentStatusFilter currentRunFilter = new AgentStatusFilterChain(
108+
new DefaultAgentStatusFilter(from)
109109
);
110110
long timestamp = to;
111111
AgentsMapByHost list = this.agentInfoService.getAgentsListByApplicationName(currentRunFilter, applicationName, Range.between(from, to));
@@ -116,8 +116,8 @@ public TreeView<TreeNode<AgentStatusAndLink>> getAgentList(
116116
public TreeView<TreeNode<AgentStatusAndLink>> getAgentList(
117117
@RequestParam("application") String applicationName,
118118
@RequestParam("timestamp") long timestamp) {
119-
AgentInfoFilter runningAgentFilter = new AgentInfoFilterChain(
120-
AgentInfoFilter::filterRunning
119+
AgentStatusFilter runningAgentFilter = new AgentStatusFilterChain(
120+
AgentStatusFilter::filterRunning
121121
);
122122
AgentsMapByHost list = this.agentInfoService.getAgentsListByApplicationName(runningAgentFilter, applicationName, Range.between(timestamp, timestamp));
123123
return treeView(list);

web/src/main/java/com/navercorp/pinpoint/web/authorization/controller/AgentListController.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import com.navercorp.pinpoint.web.view.tree.StaticTreeView;
66
import com.navercorp.pinpoint.web.view.tree.TreeView;
77
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
8-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
9-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilterChain;
8+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
9+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilterChain;
1010
import com.navercorp.pinpoint.web.vo.agent.AgentStatusAndLink;
11-
import com.navercorp.pinpoint.web.vo.agent.DefaultAgentInfoFilter;
11+
import com.navercorp.pinpoint.web.vo.agent.DefaultAgentStatusFilter;
1212
import com.navercorp.pinpoint.web.vo.tree.InstancesList;
1313
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByApplication;
1414
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByHost;
@@ -40,7 +40,7 @@ public AgentListController(AgentInfoService agentInfoService) {
4040
public TreeView<InstancesList<AgentAndStatus>> getAllAgentsList() {
4141
long timestamp = System.currentTimeMillis();
4242
AgentsMapByApplication allAgentsList = this.agentInfoService.getAllAgentsList(
43-
AgentInfoFilter::accept,
43+
AgentStatusFilter::accept,
4444
Range.between(timestamp, timestamp)
4545
);
4646
return treeView(allAgentsList);
@@ -50,7 +50,7 @@ public TreeView<InstancesList<AgentAndStatus>> getAllAgentsList() {
5050
public TreeView<InstancesList<AgentAndStatus>> getAllAgentsList(
5151
@RequestParam("from") long from,
5252
@RequestParam("to") long to) {
53-
AgentInfoFilter filter = new DefaultAgentInfoFilter(from);
53+
AgentStatusFilter filter = new DefaultAgentStatusFilter(from);
5454
AgentsMapByApplication allAgentsList = this.agentInfoService.getAllAgentsList(
5555
filter,
5656
Range.between(from, to)
@@ -70,8 +70,8 @@ public TreeView<InstancesList<AgentStatusAndLink>> getAgentsList(
7070
@RequestParam(value = "sortBy") Optional<SortByAgentInfo.Rules> sortBy) {
7171
SortByAgentInfo.Rules paramSortBy = sortBy.orElse(DEFAULT_SORTBY);
7272
long timestamp = System.currentTimeMillis();
73-
AgentInfoFilter runningAgentFilter = new AgentInfoFilterChain(
74-
AgentInfoFilter::filterRunning
73+
AgentStatusFilter runningAgentFilter = new AgentStatusFilterChain(
74+
AgentStatusFilter::filterRunning
7575
);
7676
AgentsMapByHost list = this.agentInfoService.getAgentsListByApplicationName(
7777
runningAgentFilter,
@@ -89,8 +89,8 @@ public TreeView<InstancesList<AgentStatusAndLink>> getAgentsList(
8989
@RequestParam("to") long to,
9090
@RequestParam(value = "sortBy") Optional<SortByAgentInfo.Rules> sortBy) {
9191
SortByAgentInfo.Rules paramSortBy = sortBy.orElse(DEFAULT_SORTBY);
92-
AgentInfoFilter currentRunFilter = new AgentInfoFilterChain(
93-
new DefaultAgentInfoFilter(from)
92+
AgentStatusFilter currentRunFilter = new AgentStatusFilterChain(
93+
new DefaultAgentStatusFilter(from)
9494
);
9595
AgentsMapByHost list = this.agentInfoService.getAgentsListByApplicationName(
9696
currentRunFilter,

web/src/main/java/com/navercorp/pinpoint/web/service/AgentInfoService.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByHost;
2323
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
2424
import com.navercorp.pinpoint.web.vo.agent.AgentInfo;
25-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
25+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
2626
import com.navercorp.pinpoint.web.vo.agent.AgentStatus;
2727
import com.navercorp.pinpoint.web.vo.agent.AgentStatusQuery;
2828
import com.navercorp.pinpoint.web.vo.agent.DetailedAgentAndStatus;
@@ -41,11 +41,11 @@ public interface AgentInfoService {
4141

4242
int NO_DURATION = -1;
4343

44-
AgentsMapByApplication getAllAgentsList(AgentInfoFilter filter, Range range);
44+
AgentsMapByApplication getAllAgentsList(AgentStatusFilter filter, Range range);
4545

46-
AgentsMapByHost getAgentsListByApplicationName(AgentInfoFilter filter, String applicationName, Range range);
46+
AgentsMapByHost getAgentsListByApplicationName(AgentStatusFilter filter, String applicationName, Range range);
4747

48-
AgentsMapByHost getAgentsListByApplicationName(AgentInfoFilter filter, String applicationName, Range range, SortByAgentInfo.Rules sortBy);
48+
AgentsMapByHost getAgentsListByApplicationName(AgentStatusFilter filter, String applicationName, Range range, SortByAgentInfo.Rules sortBy);
4949

5050
ApplicationAgentHostList getApplicationAgentHostList(int offset, int limit, int durationDays);
5151

web/src/main/java/com/navercorp/pinpoint/web/service/AgentInfoServiceImpl.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
import com.navercorp.pinpoint.web.vo.Application;
3333
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
3434
import com.navercorp.pinpoint.web.vo.agent.AgentInfo;
35-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
36-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilterChain;
35+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
36+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilterChain;
3737
import com.navercorp.pinpoint.web.vo.agent.AgentStatus;
3838
import com.navercorp.pinpoint.web.vo.agent.AgentStatusAndLink;
3939
import com.navercorp.pinpoint.web.vo.agent.AgentStatusQuery;
@@ -106,7 +106,7 @@ public AgentInfoServiceImpl(AgentEventService agentEventService,
106106
}
107107

108108
@Override
109-
public AgentsMapByApplication getAllAgentsList(AgentInfoFilter filter, Range range) {
109+
public AgentsMapByApplication getAllAgentsList(AgentStatusFilter filter, Range range) {
110110
Objects.requireNonNull(filter, "filter");
111111

112112
List<Application> applications = applicationIndexDao.selectAllApplicationNames();
@@ -122,22 +122,22 @@ public AgentsMapByApplication getAllAgentsList(AgentInfoFilter filter, Range ran
122122
}
123123

124124
@Override
125-
public AgentsMapByHost getAgentsListByApplicationName(AgentInfoFilter filter, String applicationName, Range range) {
125+
public AgentsMapByHost getAgentsListByApplicationName(AgentStatusFilter filter, String applicationName, Range range) {
126126
return getAgentsListByApplicationName(filter, applicationName, range, SortByAgentInfo.Rules.AGENT_ID_ASC);
127127
}
128128

129129
@Override
130-
public AgentsMapByHost getAgentsListByApplicationName(AgentInfoFilter filter,
130+
public AgentsMapByHost getAgentsListByApplicationName(AgentStatusFilter filter,
131131
String applicationName,
132132
Range range,
133133
SortByAgentInfo.Rules sortBy) {
134134
Objects.requireNonNull(filter, "filter");
135135
Objects.requireNonNull(applicationName, "applicationName");
136136

137137
Set<AgentAndStatus> agentInfoAndStatuses = getAgentsByApplicationName(applicationName, range.getTo());
138-
AgentInfoFilter activeAgentFilter = new AgentInfoFilterChain(
138+
AgentStatusFilter activeAgentFilter = new AgentStatusFilterChain(
139139
filter,
140-
x -> isActiveAgent(x.getAgentInfo().getAgentId(), range)
140+
x -> isActiveAgent(x.getAgentId(), range)
141141
);
142142

143143
if (agentInfoAndStatuses.isEmpty()) {

web/src/main/java/com/navercorp/pinpoint/web/vo/agent/AgentInfoFilterChain.java

-21
This file was deleted.

web/src/main/java/com/navercorp/pinpoint/web/vo/agent/AgentInfoFilter.java renamed to web/src/main/java/com/navercorp/pinpoint/web/vo/agent/AgentStatusFilter.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,21 @@
22

33
import com.navercorp.pinpoint.common.server.util.AgentLifeCycleState;
44

5-
public interface AgentInfoFilter {
5+
public interface AgentStatusFilter {
66
boolean ACCEPT = true;
77
boolean REJECT = false;
88

9-
boolean filter(AgentAndStatus agentInfo);
9+
boolean filter(AgentStatus agentStatus);
1010

11-
static boolean accept(AgentAndStatus agentAndStatus) {
11+
static boolean accept(AgentStatus agentStatus) {
1212
return ACCEPT;
1313
}
1414

15-
static boolean reject(AgentAndStatus agentAndStatus) {
15+
static boolean reject(AgentStatus agentStatus) {
1616
return REJECT;
1717
}
1818

19-
static boolean filterRunning(AgentAndStatus agentAndStatus) {
20-
final AgentStatus agentStatus = agentAndStatus.getStatus();
19+
static boolean filterRunning(AgentStatus agentStatus) {
2120
if (agentStatus == null) {
2221
return REJECT;
2322
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.navercorp.pinpoint.web.vo.agent;
2+
3+
import java.util.Objects;
4+
5+
public class AgentStatusFilterChain implements AgentStatusFilter {
6+
private final AgentStatusFilter[] agentStatusFilters;
7+
8+
public AgentStatusFilterChain(AgentStatusFilter... agentStatusFilters) {
9+
this.agentStatusFilters = Objects.requireNonNull(agentStatusFilters, "agentFilters");
10+
}
11+
12+
@Override
13+
public boolean filter(AgentStatus agentStatus) {
14+
for (AgentStatusFilter agentFilter : this.agentStatusFilters) {
15+
if (agentFilter.filter(agentStatus) == REJECT) {
16+
return REJECT;
17+
}
18+
}
19+
return ACCEPT;
20+
}
21+
}

web/src/main/java/com/navercorp/pinpoint/web/vo/agent/DefaultAgentInfoFilter.java renamed to web/src/main/java/com/navercorp/pinpoint/web/vo/agent/DefaultAgentStatusFilter.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
import com.navercorp.pinpoint.common.server.util.AgentLifeCycleState;
44

5-
public class DefaultAgentInfoFilter implements AgentInfoFilter {
5+
public class DefaultAgentStatusFilter implements AgentStatusFilter {
66
private final long from;
77

8-
public DefaultAgentInfoFilter(long from) {
8+
public DefaultAgentStatusFilter(long from) {
99
this.from = from;
1010
}
1111

1212
@Override
13-
public boolean filter(AgentAndStatus agentAndStatus) {
14-
final AgentStatus agentStatus = agentAndStatus.getStatus();
13+
public boolean filter(AgentStatus agentStatus) {
1514
if (agentStatus == null) {
1615
return REJECT;
1716
}

web/src/main/java/com/navercorp/pinpoint/web/vo/tree/AgentsMapByApplication.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.navercorp.pinpoint.web.vo.tree;
22

33
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
4-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
4+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
55

66
import java.util.ArrayList;
77
import java.util.Collection;
@@ -21,7 +21,7 @@ public List<InstancesList<AgentAndStatus>> getAgentsListsList() {
2121
return new ArrayList<>(instancesListMap.getListMap());
2222
}
2323

24-
public static AgentsMapByApplication newAgentsMapByApplication(AgentInfoFilter filter,
24+
public static AgentsMapByApplication newAgentsMapByApplication(AgentStatusFilter filter,
2525
Collection<AgentAndStatus> agentCollection) {
2626
Objects.requireNonNull(filter, "filter");
2727
Objects.requireNonNull(agentCollection, "agentCollection");
@@ -34,7 +34,7 @@ public static AgentsMapByApplication newAgentsMapByApplication(AgentInfoFilter f
3434
agentCollection
3535
);
3636

37-
instancesListMapBuilder.withFilter(filter::filter);
37+
instancesListMapBuilder.withFilter((AgentAndStatus a) -> filter.filter(a.getStatus()));
3838
return new AgentsMapByApplication(instancesListMapBuilder.build());
3939
}
4040

web/src/main/java/com/navercorp/pinpoint/web/vo/tree/AgentsMapByHost.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.navercorp.pinpoint.web.hyperlink.LinkSources;
66
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
77
import com.navercorp.pinpoint.web.vo.agent.AgentInfo;
8-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
8+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
99
import com.navercorp.pinpoint.web.vo.agent.AgentStatus;
1010
import com.navercorp.pinpoint.web.vo.agent.AgentStatusAndLink;
1111

@@ -30,7 +30,7 @@ public List<InstancesList<AgentStatusAndLink>> getAgentsListsList() {
3030
return new ArrayList<>(instancesListMap.getListMap());
3131
}
3232

33-
public static AgentsMapByHost newAgentsMapByHost(AgentInfoFilter filter,
33+
public static AgentsMapByHost newAgentsMapByHost(AgentStatusFilter filter,
3434
SortByAgentInfo<AgentStatusAndLink> sortByAgentInfo,
3535
HyperLinkFactory hyperLinkFactory,
3636
Collection<AgentAndStatus> agentCollection) {
@@ -45,7 +45,7 @@ public static AgentsMapByHost newAgentsMapByHost(AgentInfoFilter filter,
4545
sortByAgentInfo.getComparator(),
4646
agentCollection
4747
);
48-
instancesListMapBuilder.withFilter(filter::filter)
48+
instancesListMapBuilder.withFilter((AgentAndStatus a) -> filter.filter(a.getStatus()))
4949
.withFinisher(x -> newAgentStatusAndLink(x, hyperLinkFactory));
5050

5151
return new AgentsMapByHost(instancesListMapBuilder.build());

web/src/test/java/com/navercorp/pinpoint/web/vo/AgentsMapByApplicationTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
44
import com.navercorp.pinpoint.web.vo.agent.AgentInfo;
5-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
5+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
66
import com.navercorp.pinpoint.web.vo.tree.InstancesList;
77
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByApplication;
88
import org.junit.jupiter.api.Assertions;
@@ -22,7 +22,7 @@ public void groupByApplicationName() {
2222
AgentAndStatus app2Agent2 = createAgentInfo("APP_2", "app2-agent2", "Host22", true);
2323
List<AgentAndStatus> agentAndStatusList = shuffleAgentInfos(app1Agent1, app1Agent2, app2Agent1, app2Agent2);
2424

25-
AgentsMapByApplication agentsMapByApplication = AgentsMapByApplication.newAgentsMapByApplication(AgentInfoFilter::accept, agentAndStatusList);
25+
AgentsMapByApplication agentsMapByApplication = AgentsMapByApplication.newAgentsMapByApplication(AgentStatusFilter::accept, agentAndStatusList);
2626
List<InstancesList<AgentAndStatus>> instancesLists = agentsMapByApplication.getAgentsListsList();
2727

2828
Assertions.assertEquals(2, instancesLists.size());

web/src/test/java/com/navercorp/pinpoint/web/vo/AgentsMapByHostTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.navercorp.pinpoint.web.hyperlink.HyperLinkFactory;
44
import com.navercorp.pinpoint.web.vo.agent.AgentAndStatus;
55
import com.navercorp.pinpoint.web.vo.agent.AgentInfo;
6-
import com.navercorp.pinpoint.web.vo.agent.AgentInfoFilter;
6+
import com.navercorp.pinpoint.web.vo.agent.AgentStatusFilter;
77
import com.navercorp.pinpoint.web.vo.agent.AgentStatusAndLink;
88
import com.navercorp.pinpoint.web.vo.tree.InstancesList;
99
import com.navercorp.pinpoint.web.vo.tree.AgentsMapByHost;
@@ -29,7 +29,7 @@ public void groupByHostNameShouldHaveContainersFirstAndGroupedSeparatelyByAgentI
2929

3030

3131
SortByAgentInfo<AgentStatusAndLink> sortBy = SortByAgentInfo.agentIdAsc(AgentStatusAndLink::getAgentInfo);
32-
AgentsMapByHost agentsMapByHost = AgentsMapByHost.newAgentsMapByHost(AgentInfoFilter::accept, sortBy, hyperLinkFactory, agentAndStatusList);
32+
AgentsMapByHost agentsMapByHost = AgentsMapByHost.newAgentsMapByHost(AgentStatusFilter::accept, sortBy, hyperLinkFactory, agentAndStatusList);
3333
List<InstancesList<AgentStatusAndLink>> instancesLists = agentsMapByHost.getAgentsListsList();
3434

3535
Assertions.assertEquals(3, instancesLists.size());

0 commit comments

Comments
 (0)