in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/services/grafana/FunctionsServiceImpl.java [67:102]
public void postConstruct() {
reflections.getTypesAnnotatedWith(GrafanaAggregation.class).stream()
.filter(this::validateClass)
.forEach(clazz -> {
GrafanaAggregation grafanaAggregation = clazz.getAnnotation(GrafanaAggregation.class);
GrafanaFunctionDef def = GrafanaFunctionDef.create(grafanaAggregation);
functionDefs.add(def);
aggregations.put(def.getId(), clazz.asSubclass(Aggregation.class));
});
reflections.getTypesAnnotatedWith(GrafanaFunction.class).stream()
.filter(this::validateClass)
.forEach(clazz -> {
GrafanaFunction grafanaFunction = clazz.getAnnotation(GrafanaFunction.class);
GrafanaFunctionDef def = GrafanaFunctionDef.create(grafanaFunction);
functionDefs.add(def);
aggregations.put(def.getId(), clazz.asSubclass(Aggregation.class));
});
List<String> list = functionDefs.stream().filter(GrafanaFunctionDef::isAggregation)
.map(GrafanaFunctionDef::getId)
.sorted()
.collect(Collectors.toList());
LogEntry entry = LOG.info().append("Collected ").append(list.size()).append(" grafana aggregations:\n");
for (String function : list) {
entry = entry.append(function).append('\n');
}
entry.commit();
list = functionDefs.stream().filter(def -> !def.isAggregation())
.map(GrafanaFunctionDef::getId)
.sorted()
.collect(Collectors.toList());
entry = LOG.info().append("Collected ").append(list.size()).append(" grafana functions:\n");
for (String function : list) {
entry = entry.append(function).append('\n');
}
entry.commit();
}