@Inject ReportClient(NodeInfo nodeInfo, @ForReportClient HttpClient httpClient, ReportClientConfig reportClientConfig, ReportTagConfig reportTagConfig, ObjectMapper objectMapper) { this.objectMapper = objectMapper; requireNonNull(nodeInfo, "nodeInfo is null"); requireNonNull(reportClientConfig, "reportClientConfig is null"); requireNonNull(reportTagConfig, "reportTagConfig is null"); Builder<String, String> builder = ImmutableMap.builder(); builder.put("application", nodeInfo.getApplication()); builder.put("host", nodeInfo.getInternalHostname()); builder.put("environment", nodeInfo.getEnvironment()); builder.put("pool", nodeInfo.getPool()); builder.putAll(reportTagConfig.getTags()); this.instanceTags = builder.build(); this.httpClient = requireNonNull(httpClient, "httpClient is null"); }