Skip to content

Commit 97acd46

Browse files
committed
refactor(health): update health check interfaces and improve readiness status handling
1 parent 6096af9 commit 97acd46

19 files changed

Lines changed: 99 additions & 131 deletions

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/AbstractHealthCheck.java renamed to software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/GenericHealthCheck.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,26 @@
55
import org.eclipse.microprofile.health.HealthCheckResponse;
66
import org.eclipse.microprofile.health.HealthCheckResponseBuilder;
77

8-
public abstract class AbstractHealthCheck<T> implements HealthCheck {
9-
abstract String getHealthCheckName();
10-
abstract Instance<T> getProviders();
11-
abstract HealthStatus getStatus(T provider);
8+
import java.util.function.Function;
9+
10+
public class GenericHealthCheck<T> implements HealthCheck {
11+
private final String healthCheckName;
12+
private final Instance<T> providers;
13+
private final Function<T, HealthStatus> statusGetter;
14+
15+
public GenericHealthCheck(String healthCheckName, Instance<T> providers, Function<T, HealthStatus> statusGetter) {
16+
this.healthCheckName = healthCheckName;
17+
this.providers = providers;
18+
this.statusGetter = statusGetter;
19+
}
1220

1321
@Override
1422
public HealthCheckResponse call() {
15-
HealthCheckResponseBuilder builder = HealthCheckResponse.named(getHealthCheckName());
23+
HealthCheckResponseBuilder builder = HealthCheckResponse.named(this.healthCheckName);
1624
boolean allUp = true;
1725

18-
for (T provider : getProviders()) {
19-
HealthStatus status = getStatus(provider);
26+
for (T provider : this.providers) {
27+
HealthStatus status = this.statusGetter.apply(provider);
2028
boolean up = status.isUp();
2129
allUp &= up;
2230
builder.withData(status.getName() + ".up", up);

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/HasLivenessCheck.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/HasReadinessCheck.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/HasStartupCheck.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/HealthStatus.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ public HealthStatus(String name) {
1313
}
1414

1515
public void markUp(String message) {
16-
statusMessage = message;
17-
}
18-
19-
public void markCompleted(String message) {
2016
up = true;
2117
statusMessage = message;
2218
}

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/LivenessHealthCheck.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/ReadinessHealthCheck.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/health/StartupHealthCheck.java

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package tech.ebp.oqm.core.api.health.service;
2+
3+
import jakarta.enterprise.context.ApplicationScoped;
4+
import jakarta.enterprise.inject.Instance;
5+
import jakarta.inject.Inject;
6+
import org.eclipse.microprofile.health.Liveness;
7+
import tech.ebp.oqm.core.api.health.GenericHealthCheck;
8+
import tech.ebp.oqm.core.api.health.utils.HasLivenessCheck;
9+
10+
@Liveness
11+
@ApplicationScoped
12+
public class LivenessHealthCheck extends GenericHealthCheck<HasLivenessCheck> {
13+
14+
@Inject
15+
LivenessHealthCheck(Instance<HasLivenessCheck> providers) {
16+
super("Service Health - Liveness", providers, HasLivenessCheck::getLivenessStatus);
17+
}
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package tech.ebp.oqm.core.api.health.service;
2+
3+
import jakarta.enterprise.context.ApplicationScoped;
4+
import jakarta.enterprise.inject.Instance;
5+
import jakarta.inject.Inject;
6+
import org.eclipse.microprofile.health.Readiness;
7+
import tech.ebp.oqm.core.api.health.GenericHealthCheck;
8+
import tech.ebp.oqm.core.api.health.utils.HasReadinessCheck;
9+
10+
@Readiness
11+
@ApplicationScoped
12+
public class ReadinessHealthCheck extends GenericHealthCheck<HasReadinessCheck> {
13+
14+
@Inject
15+
ReadinessHealthCheck(Instance<HasReadinessCheck> providers) {
16+
super("Service Health - Readiness", providers, HasReadinessCheck::getReadinessStatus);
17+
}
18+
}

0 commit comments

Comments
 (0)