public void postConstruct()

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();
    }