Skip to content

Commit

Permalink
Fix #4531
Browse files Browse the repository at this point in the history
  • Loading branch information
cescoffier committed Oct 14, 2019
1 parent 51c3476 commit a3bb1e7
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import io.quarkus.smallrye.health.runtime.SmallRyeLivenessHandler;
import io.quarkus.smallrye.health.runtime.SmallRyeReadinessHandler;
import io.quarkus.vertx.http.deployment.RouteBuildItem;
import io.quarkus.vertx.http.runtime.HandlerType;
import io.smallrye.health.SmallRyeHealthReporter;

class SmallRyeHealthProcessor {
Expand Down Expand Up @@ -91,11 +92,13 @@ void build(SmallRyeHealthRecorder recorder, RecorderContext recorderContext,
feature.produce(new FeatureBuildItem(FeatureBuildItem.SMALLRYE_HEALTH));

// Register the health handler
routes.produce(new RouteBuildItem(health.rootPath, new SmallRyeHealthHandler()));
routes.produce(new RouteBuildItem(health.rootPath, new SmallRyeHealthHandler(), HandlerType.BLOCKING));
routes.produce(
new RouteBuildItem(health.rootPath + health.livenessPath, new SmallRyeLivenessHandler()));
new RouteBuildItem(health.rootPath + health.livenessPath, new SmallRyeLivenessHandler(),
HandlerType.BLOCKING));
routes.produce(
new RouteBuildItem(health.rootPath + health.readinessPath, new SmallRyeReadinessHandler()));
new RouteBuildItem(health.rootPath + health.readinessPath, new SmallRyeReadinessHandler(),
HandlerType.BLOCKING));

// Make ArC discover the beans marked with the @Health qualifier
beanDefiningAnnotation.produce(new BeanDefiningAnnotationBuildItem(HEALTH));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package io.quarkus.smallrye.health.test;

import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.stringContainsInOrder;

import javax.enterprise.context.ApplicationScoped;

import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
import org.eclipse.microprofile.health.Liveness;
import org.eclipse.microprofile.health.Readiness;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.test.QuarkusUnitTest;
import io.restassured.RestAssured;

public class DispatchedThreadTest {

@RegisterExtension
static final QuarkusUnitTest config = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
.addClasses(LivenessHealthCheckCapturingThread.class, ReadinessHealthCheckCapturingThread.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"));

@Test
public void check() {
RestAssured.when().get("/health/live").then()
.body("status", is("UP"),
"checks.status", contains("UP"),
"checks.name", contains("my-liveness-check"),
"checks.data.thread[0]", stringContainsInOrder("worker"),
"checks.data.thread[0]", not(stringContainsInOrder("loop")));

RestAssured.when().get("/health/ready").then()
.body("status", is("UP"),
"checks.status", contains("UP"),
"checks.name", contains("my-readiness-check"),
"checks.data.thread[0]", stringContainsInOrder("worker"),
"checks.data.thread[0]", not(stringContainsInOrder("loop")));
}

@ApplicationScoped
@Liveness
public static class LivenessHealthCheckCapturingThread implements HealthCheck {
@Override
public HealthCheckResponse call() {
return HealthCheckResponse.named("my-liveness-check")
.up()
.withData("thread", Thread.currentThread().getName()).build();
}
}

@ApplicationScoped
@Readiness
public static class ReadinessHealthCheckCapturingThread implements HealthCheck {
@Override
public HealthCheckResponse call() {
return HealthCheckResponse.named("my-readiness-check")
.up()
.withData("thread", Thread.currentThread().getName()).build();
}
}

}

0 comments on commit a3bb1e7

Please sign in to comment.