![JAR search and dependency download from the Maven repository](/logo.png)
org.lognet.springboot.grpc.health.DefaultHealthStatusService Maven / Gradle / Ivy
package org.lognet.springboot.grpc.health;
import io.grpc.health.v1.HealthCheckRequest;
import io.grpc.health.v1.HealthCheckResponse;
import io.grpc.health.v1.HealthGrpc;
import io.grpc.protobuf.services.HealthStatusManager;
import io.grpc.stub.StreamObserver;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.lognet.springboot.grpc.GRpcService;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Configuration;
@GRpcService
@Configuration
@ConditionalOnMissingBean(ManagedHealthStatusService.class)
public class DefaultHealthStatusService extends ManagedHealthStatusService {
private final HealthStatusManager healthStatusManager = new HealthStatusManager();
private final HealthGrpc.HealthImplBase service =
(HealthGrpc.HealthImplBase) healthStatusManager.getHealthService();
private final Map statusMap =
new ConcurrentHashMap<>();
private final Map unmodifiableStatusMap =
Collections.unmodifiableMap(statusMap);
@Override
public void onShutdown() {
healthStatusManager.enterTerminalState();
}
@Override
public void setStatus(String service, HealthCheckResponse.ServingStatus status) {
statusMap.put(service, status);
healthStatusManager.setStatus(service, status);
}
@Override
public Map statuses() {
return unmodifiableStatusMap;
}
@Override
public void check(
HealthCheckRequest request, StreamObserver responseObserver) {
service.check(request, responseObserver);
}
@Override
public void watch(
HealthCheckRequest request, StreamObserver responseObserver) {
service.watch(request, responseObserver);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy