![JAR search and dependency download from the Maven repository](/logo.png)
net.javalib.isb.utils.PingStatusHelper Maven / Gradle / Ivy
package net.javalib.isb.utils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.actuate.health.Status;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
@Component
public class PingStatusHelper {
private static final Logger LOG = LoggerFactory.getLogger(PingStatusHelper.class);
private List pingIndicators;
private List statusIndicators;
@Autowired
public PingStatusHelper(Map healthIndicators, @Value(value = "${ping.optional:}") String optionalIndicators) {
this.statusIndicators = new ArrayList<>(healthIndicators.values());
this.pingIndicators = new ArrayList<>();
for (Map.Entry entry : healthIndicators.entrySet()) {
if (!optionalIndicators.contains(entry.getKey())) {
this.pingIndicators.add(entry.getValue());
}
}
}
public ResponseEntity ping() {
return getResponseForHealthIndicators(pingIndicators);
}
public ResponseEntity status() {
return getResponseForHealthIndicators(statusIndicators);
}
protected ResponseEntity getResponseForHealthIndicators(List indicators) {
for (HealthIndicator indicator : indicators) {
if (Status.UP != indicator.health().getStatus()) {
LOG.warn("Returning 'DOWN' due to {}", indicator.health());
return new ResponseEntity("DOWN", HttpStatus.SERVICE_UNAVAILABLE);
}
}
return new ResponseEntity("UP", HttpStatus.OK);
}
public List getPingIndicators() {
return pingIndicators;
}
public List getStatusIndicators() {
return statusIndicators;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy