Skip to content

Commit 0275906

Browse files
nmiraschrgdoliveira
authored andcommitted
[incubator-kie-kogito-runtimes#3454] GraphQL UI link visible in the l… (apache#3464)
* [incubator-kie-kogito-runtimes#3454] GraphQL UI link visible in the last Quarkus Dev UI * review suggestions applied and testing fix
1 parent 79a0ade commit 0275906

File tree

3 files changed

+48
-0
lines changed
  • quarkus/extensions

3 files changed

+48
-0
lines changed

quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/src/main/java/org/kie/kogito/quarkus/processes/deployment/KogitoDevServicesProcessor.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,23 @@
1818
*/
1919
package org.kie.kogito.quarkus.processes.deployment;
2020

21+
import java.util.List;
22+
import java.util.Optional;
23+
2124
import org.kie.kogito.quarkus.processes.devservices.DevModeWorkflowLogger;
2225
import org.kie.kogito.quarkus.workflow.deployment.AbstractDevServicesProcessor;
2326
import org.kie.kogito.quarkus.workflow.deployment.config.KogitoWorkflowBuildTimeConfig;
2427

2528
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
2629
import io.quarkus.arc.processor.DotNames;
30+
import io.quarkus.deployment.IsDevelopment;
2731
import io.quarkus.deployment.annotations.BuildProducer;
2832
import io.quarkus.deployment.annotations.BuildStep;
2933
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
34+
import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
35+
import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
36+
import io.quarkus.devui.spi.page.CardPageBuildItem;
37+
import io.quarkus.devui.spi.page.Page;
3038

3139
/**
3240
* Starts a Data Index as dev service if needed.
@@ -40,4 +48,17 @@ public void logger(BuildProducer<AdditionalBeanBuildItem> additionalBean, Launch
4048
}
4149
}
4250

51+
@BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, IsDevelopment.class })
52+
CardPageBuildItem createDevUILink(List<SystemPropertyBuildItem> systemPropertyBuildItems) {
53+
Optional<String> dataindex_url_prop = getProperty(systemPropertyBuildItems, "kogito.data-index.url");
54+
if (dataindex_url_prop.isPresent()) {
55+
CardPageBuildItem cardPageBuildItem = new CardPageBuildItem();
56+
cardPageBuildItem.addPage(Page.externalPageBuilder("Data Index GraphQL UI")
57+
.url(dataindex_url_prop.get() + "/q/graphql-ui/")
58+
.isHtmlContent()
59+
.icon("font-awesome-solid:signs-post"));
60+
return cardPageBuildItem;
61+
}
62+
return null;
63+
}
4364
}

quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowDevServicesProcessor.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,23 @@
1818
*/
1919
package org.kie.kogito.quarkus.serverless.workflow.deployment;
2020

21+
import java.util.List;
22+
import java.util.Optional;
23+
2124
import org.kie.kogito.quarkus.workflow.deployment.AbstractDevServicesProcessor;
2225
import org.kie.kogito.quarkus.workflow.deployment.config.KogitoWorkflowBuildTimeConfig;
2326
import org.kie.kogito.serverless.workflow.devservices.DevModeServerlessWorkflowLogger;
2427

2528
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
2629
import io.quarkus.arc.processor.DotNames;
30+
import io.quarkus.deployment.IsDevelopment;
2731
import io.quarkus.deployment.annotations.BuildProducer;
2832
import io.quarkus.deployment.annotations.BuildStep;
2933
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
34+
import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
35+
import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
36+
import io.quarkus.devui.spi.page.CardPageBuildItem;
37+
import io.quarkus.devui.spi.page.Page;
3038

3139
public class ServerlessWorkflowDevServicesProcessor extends AbstractDevServicesProcessor {
3240
@BuildStep
@@ -36,4 +44,17 @@ public void logger(BuildProducer<AdditionalBeanBuildItem> additionalBean, Launch
3644
}
3745
}
3846

47+
@BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, IsDevelopment.class })
48+
CardPageBuildItem createDevUILink(List<SystemPropertyBuildItem> systemPropertyBuildItems) {
49+
Optional<String> dataindex_url_prop = getProperty(systemPropertyBuildItems, "kogito.data-index.url");
50+
if (dataindex_url_prop.isPresent()) {
51+
CardPageBuildItem cardPageBuildItem = new CardPageBuildItem();
52+
cardPageBuildItem.addPage(Page.externalPageBuilder("Data Index GraphQL UI")
53+
.url(dataindex_url_prop.get() + "/q/graphql-ui/")
54+
.isHtmlContent()
55+
.icon("font-awesome-solid:signs-post"));
56+
return cardPageBuildItem;
57+
}
58+
return null;
59+
}
3960
}

quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/AbstractDevServicesProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ protected static boolean shouldInclude(LaunchModeBuildItem launchMode, KogitoWor
7171
return launchMode.getLaunchMode().isDevOrTest() || config.alwaysInclude;
7272
}
7373

74+
protected Optional<String> getProperty(List<SystemPropertyBuildItem> systemPropertyBuildItems, String propertyKey) {
75+
return systemPropertyBuildItems.stream().filter(property -> property.getKey().equals(propertyKey))
76+
.findAny()
77+
.map(SystemPropertyBuildItem::getValue);
78+
}
79+
7480
@BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, IsDevelopment.class })
7581
public void startDataIndexDevService(
7682
BuildProducer<AdditionalBeanBuildItem> additionalBean,

0 commit comments

Comments
 (0)