Skip to content

Commit 93d0319

Browse files
Use Dev UI Context root in swagger ui
Signed-off-by: Phillip Kruger <[email protected]>
1 parent a115307 commit 93d0319

File tree

4 files changed

+48
-6
lines changed

4 files changed

+48
-6
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package io.quarkus.devui.spi;
2+
3+
import io.quarkus.builder.item.SimpleBuildItem;
4+
5+
/**
6+
* Provides dev mode context as setup in Dev UI
7+
*/
8+
public final class DevContextBuildItem extends SimpleBuildItem {
9+
private final String devUIContextRoot;
10+
11+
public DevContextBuildItem(String devUIContextRoot) {
12+
this.devUIContextRoot = devUIContextRoot;
13+
}
14+
15+
public String getDevUIContextRoot() {
16+
return devUIContextRoot;
17+
}
18+
}

extensions/devui/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import io.quarkus.devui.deployment.extension.Extension;
6565
import io.quarkus.devui.spi.AbstractDevUIBuildItem;
6666
import io.quarkus.devui.spi.Constants;
67+
import io.quarkus.devui.spi.DevContextBuildItem;
6768
import io.quarkus.devui.spi.DevUIContent;
6869
import io.quarkus.devui.spi.buildtime.BuildTimeActionBuildItem;
6970
import io.quarkus.devui.spi.buildtime.BuildTimeData;
@@ -100,10 +101,16 @@ public class BuildTimeContentProcessor {
100101
* This will be merged into the final importmap
101102
*/
102103
@BuildStep(onlyIf = IsLocalDevelopment.class)
103-
InternalImportMapBuildItem createKnownInternalImportMap(NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
104+
void createKnownInternalImportMap(BuildProducer<InternalImportMapBuildItem> internalImportMapProducer,
105+
BuildProducer<DevContextBuildItem> devContextProducer,
106+
NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
104107
DevUIConfig config) {
105108

106109
String devUIContext = config.contextRoot().orElse("");
110+
111+
if (!devUIContext.isBlank())
112+
devContextProducer.produce(new DevContextBuildItem(devUIContext));
113+
107114
String contextRoot = devUIContext + nonApplicationRootPathBuildItem.getNonApplicationRootPath()
108115
+ Constants.DEV_UI + SLASH;
109116

@@ -151,7 +158,8 @@ InternalImportMapBuildItem createKnownInternalImportMap(NonApplicationRootPathBu
151158
internalImportMapBuildItem.add("assistant-state", contextRoot + "state/assistant-state.js");
152159
internalImportMapBuildItem.add("devui-state", contextRoot + "state/devui-state.js");
153160

154-
return internalImportMapBuildItem;
161+
internalImportMapProducer.produce(internalImportMapBuildItem);
162+
155163
}
156164

157165
@BuildStep(onlyIf = IsLocalDevelopment.class)

extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/devui/OpenApiDevUIProcessor.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package io.quarkus.smallrye.openapi.deployment.devui;
22

3+
import java.util.Optional;
4+
35
import io.quarkus.deployment.IsDevelopment;
46
import io.quarkus.deployment.annotations.BuildStep;
57
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
8+
import io.quarkus.devui.spi.DevContextBuildItem;
69
import io.quarkus.devui.spi.JsonRPCProvidersBuildItem;
710
import io.quarkus.devui.spi.page.CardPageBuildItem;
811
import io.quarkus.devui.spi.page.Page;
@@ -18,13 +21,18 @@ public class OpenApiDevUIProcessor {
1821
public CardPageBuildItem pages(NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
1922
ManagementInterfaceBuildTimeConfig managementBuildTimeConfig,
2023
LaunchModeBuildItem launchModeBuildItem,
24+
Optional<DevContextBuildItem> devContextBuildItem,
2125
SwaggerUiConfig swaggerUiConfig,
2226
SmallRyeOpenApiConfig openApiConfig) {
2327

24-
String uiPath = nonApplicationRootPathBuildItem.resolveManagementPath(swaggerUiConfig.path(),
28+
String devUIContextRoot = "";
29+
if (devContextBuildItem.isPresent()) {
30+
devUIContextRoot = devContextBuildItem.get().getDevUIContextRoot();
31+
}
32+
String uiPath = devUIContextRoot + nonApplicationRootPathBuildItem.resolveManagementPath(swaggerUiConfig.path(),
2533
managementBuildTimeConfig, launchModeBuildItem, openApiConfig.managementEnabled());
2634

27-
String schemaPath = nonApplicationRootPathBuildItem.resolveManagementPath(openApiConfig.path(),
35+
String schemaPath = devUIContextRoot + nonApplicationRootPathBuildItem.resolveManagementPath(openApiConfig.path(),
2836
managementBuildTimeConfig, launchModeBuildItem, openApiConfig.managementEnabled());
2937

3038
CardPageBuildItem cardPageBuildItem = new CardPageBuildItem();

extensions/swagger-ui/deployment/src/main/java/io/quarkus/swaggerui/deployment/SwaggerUiProcessor.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
2929
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
3030
import io.quarkus.devui.spi.Constants;
31+
import io.quarkus.devui.spi.DevContextBuildItem;
3132
import io.quarkus.maven.dependency.GACT;
3233
import io.quarkus.runtime.configuration.ConfigurationException;
3334
import io.quarkus.smallrye.openapi.common.deployment.SmallRyeOpenApiConfig;
@@ -86,6 +87,7 @@ List<HotDeploymentWatchedFileBuildItem> brandingFiles() {
8687
@BuildStep
8788
public void getSwaggerUiFinalDestination(
8889
NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
90+
Optional<DevContextBuildItem> devContextBuildItem,
8991
LaunchModeBuildItem launchMode,
9092
SwaggerUiConfig swaggerUiConfig,
9193
SmallRyeOpenApiConfig openapi,
@@ -107,9 +109,14 @@ public void getSwaggerUiFinalDestination(
107109

108110
}
109111

110-
String openApiPath = nonApplicationRootPathBuildItem.resolvePath(openapi.path());
112+
String devUIContextRoot = "";
113+
if (devContextBuildItem.isPresent()) {
114+
devUIContextRoot = devContextBuildItem.get().getDevUIContextRoot();
115+
}
111116

112-
String swaggerUiPath = nonApplicationRootPathBuildItem.resolvePath(swaggerUiConfig.path());
117+
String openApiPath = devUIContextRoot + nonApplicationRootPathBuildItem.resolvePath(openapi.path());
118+
119+
String swaggerUiPath = devUIContextRoot + nonApplicationRootPathBuildItem.resolvePath(swaggerUiConfig.path());
113120
ThemeHref theme = swaggerUiConfig.theme().orElse(ThemeHref.feeling_blue);
114121

115122
NonApplicationRootPathBuildItem indexRootPathBuildItem = null;
@@ -143,6 +150,7 @@ public void registerSwaggerUiHandler(SwaggerUiRecorder recorder,
143150
BuildProducer<RouteBuildItem> routes,
144151
NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
145152
WebJarResultsBuildItem webJarResultsBuildItem,
153+
Optional<DevContextBuildItem> devContextBuildItem,
146154
LaunchModeBuildItem launchMode,
147155
SwaggerUiConfig swaggerUiConfig,
148156
BuildProducer<SwaggerUiBuildItem> swaggerUiBuildProducer,

0 commit comments

Comments
 (0)