From 2f8be96931aa8bdeec9e8ffe4e27a3097540f5cf Mon Sep 17 00:00:00 2001 From: Clement Escoffier Date: Wed, 1 Feb 2023 09:36:40 +0100 Subject: [PATCH] Implement the health check card. --- .../SmallRyeHealthDevUiProcessor.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthDevUiProcessor.java diff --git a/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthDevUiProcessor.java b/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthDevUiProcessor.java new file mode 100644 index 0000000000000..fe1a130c3a10e --- /dev/null +++ b/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthDevUiProcessor.java @@ -0,0 +1,37 @@ +package io.quarkus.smallrye.health.deployment; + +import io.quarkus.deployment.IsDevelopment; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.annotations.ExecutionTime; +import io.quarkus.deployment.annotations.Record; +import io.quarkus.devui.spi.page.CardPageBuildItem; +import io.quarkus.devui.spi.page.Page; +import io.quarkus.smallrye.health.runtime.SmallRyeHealthRecorder; +import io.quarkus.vertx.http.deployment.NonApplicationRootPathBuildItem; + +/** + * This processor is responsible for the dev ui widget. + */ +public class SmallRyeHealthDevUiProcessor { + + @BuildStep(onlyIf = IsDevelopment.class) + @Record(ExecutionTime.STATIC_INIT) + CardPageBuildItem create(NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem, + SmallRyeHealthConfig config, + SmallRyeHealthRecorder recorder) { + CardPageBuildItem pageBuildItem = new CardPageBuildItem("Smallrye Health"); + + pageBuildItem.addPage(Page.externalPageBuilder("Health") + .icon("font-awesome-solid:heart-circle-bolt") + .url(nonApplicationRootPathBuildItem.resolvePath(config.rootPath)) + .isJsonContent()); + + pageBuildItem.addPage(Page.externalPageBuilder("Health UI") + .icon("font-awesome-solid:stethoscope") + .url(nonApplicationRootPathBuildItem.resolvePath(config.ui.rootPath)) + .isHtmlContent()); + + return pageBuildItem; + } + +}