package app.services; import app.entities.server.Server; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.Map; @Component public class ServersReader { Stats stats; ObjectMapper objectMapper; @Autowired public ServersReader(Stats stats, @Value("${backend.servers_file}") String servers_path) { this.stats = stats; this.objectMapper = new ObjectMapper(); try { System.out.printf("Read from: %s\n", servers_path); JsonNode node = this.objectMapper.readTree(new File(servers_path)); Iterator> iterator = node.fields(); while (iterator.hasNext()) { Map.Entry server = iterator.next(); stats.servers.put(server.getKey(), this.objectMapper.treeToValue(server.getValue(), Server.class)); } } catch (IOException err) { System.out.printf("Cannot read servers file: %s\n", servers_path); } } }