1 package de.juplo.kafka.chat.backend.implementation.kafka;
3 import lombok.RequiredArgsConstructor;
4 import org.springframework.boot.actuate.health.AbstractReactiveHealthIndicator;
5 import org.springframework.boot.actuate.health.Health;
6 import reactor.core.publisher.Mono;
9 @RequiredArgsConstructor
10 public class ChannelReactiveHealthIndicator extends AbstractReactiveHealthIndicator
12 private final Channel channel;
16 protected Mono<Health> doHealthCheck(Health.Builder builder)
19 .fromSupplier(() -> channel.getChannelState())
20 .map(state -> switch(state)
22 case STARTING -> builder.outOfService();
23 case LOAD_IN_PROGRESS -> builder.outOfService();
24 case READY -> builder.up();
25 case SHUTTING_DOWN -> builder.down();
27 .map(healthBuilder -> healthBuilder.build());