Skip to content

Commit

Permalink
Merge pull request #42351 from phillip-kruger/dev-ui-show-non-contain…
Browse files Browse the repository at this point in the history
…er-dev-services

Dev UI show non container dev services
  • Loading branch information
phillip-kruger authored Aug 7, 2024
2 parents 3be2c10 + 9f3a1a2 commit 405d281
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,17 @@
public final class DevServicesResultBuildItem extends MultiBuildItem {

private final String name;
private final String description;
private final String containerId;
private final Map<String, String> config;

public DevServicesResultBuildItem(String name, String containerId, Map<String, String> config) {
this(name, null, containerId, config);
}

public DevServicesResultBuildItem(String name, String description, String containerId, Map<String, String> config) {
this.name = name;
this.description = description;
this.containerId = containerId;
this.config = config;
}
Expand All @@ -33,6 +39,10 @@ public String getName() {
return name;
}

public String getDescription() {
return description;
}

public String getContainerId() {
return containerId;
}
Expand All @@ -44,6 +54,7 @@ public Map<String, String> getConfig() {
public static class RunningDevService implements Closeable {

private final String name;
private final String description;
private final String containerId;
private final Map<String, String> config;
private final Closeable closeable;
Expand All @@ -54,12 +65,25 @@ private static Map<String, String> mapOf(String key, String value) {
return map;
}

public RunningDevService(String name, String containerId, Closeable closeable, String key, String value) {
this(name, containerId, closeable, mapOf(key, value));
public RunningDevService(String name, String containerId, Closeable closeable, String key,
String value) {
this(name, null, containerId, closeable, mapOf(key, value));
}

public RunningDevService(String name, String description, String containerId, Closeable closeable, String key,
String value) {
this(name, description, containerId, closeable, mapOf(key, value));
}

public RunningDevService(String name, String containerId, Closeable closeable,
Map<String, String> config) {
this(name, null, containerId, closeable, config);
}

public RunningDevService(String name, String containerId, Closeable closeable, Map<String, String> config) {
public RunningDevService(String name, String description, String containerId, Closeable closeable,
Map<String, String> config) {
this.name = name;
this.description = description;
this.containerId = containerId;
this.closeable = closeable;
this.config = Collections.unmodifiableMap(config);
Expand All @@ -69,6 +93,10 @@ public String getName() {
return name;
}

public String getDescription() {
return description;
}

public String getContainerId() {
return containerId;
}
Expand All @@ -93,7 +121,7 @@ public void close() throws IOException {
}

public DevServicesResultBuildItem toBuildItem() {
return new DevServicesResultBuildItem(name, containerId, config);
return new DevServicesResultBuildItem(name, description, containerId, config);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,22 @@

public final class DevServiceDescriptionBuildItem extends MultiBuildItem {
private String name;
private String description;
private ContainerInfo containerInfo;
private Map<String, String> configs;

public DevServiceDescriptionBuildItem() {
}

public DevServiceDescriptionBuildItem(String name, ContainerInfo containerInfo, Map<String, String> configs) {
public DevServiceDescriptionBuildItem(String name, ContainerInfo containerInfo,
Map<String, String> configs) {
this(name, null, containerInfo, configs);
}

public DevServiceDescriptionBuildItem(String name, String description, ContainerInfo containerInfo,
Map<String, String> configs) {
this.name = name;
this.description = description;
this.containerInfo = containerInfo;
this.configs = configs instanceof SortedMap ? configs : new TreeMap<>(configs);
}
Expand All @@ -29,6 +37,10 @@ public String getName() {
return name;
}

public String getDescription() {
return description;
}

public ContainerInfo getContainerInfo() {
return containerInfo;
}
Expand All @@ -41,6 +53,10 @@ public void setName(String name) {
this.name = name;
}

public void setDescription(String description) {
this.description = description;
}

public void setContainerInfo(ContainerInfo containerInfo) {
this.containerInfo = containerInfo;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ private List<DevServiceDescriptionBuildItem> buildServiceDescriptions(
config.remove(key);
}
if (!config.isEmpty()) {
descriptions.add(new DevServiceDescriptionBuildItem("Additional Dev Services config", null, config));
descriptions.add(new DevServiceDescriptionBuildItem("Additional Dev Services config", null, null, config));
}
}
return descriptions;
Expand All @@ -151,9 +151,11 @@ private Map<String, Container> fetchContainerInfos(DockerStatusBuildItem dockerS

private DevServiceDescriptionBuildItem toDevServiceDescription(DevServicesResultBuildItem buildItem, Container container) {
if (container == null) {
return new DevServiceDescriptionBuildItem(buildItem.getName(), null, buildItem.getConfig());
return new DevServiceDescriptionBuildItem(buildItem.getName(), buildItem.getDescription(), null,
buildItem.getConfig());
} else {
return new DevServiceDescriptionBuildItem(buildItem.getName(), toContainerInfo(container), buildItem.getConfig());
return new DevServiceDescriptionBuildItem(buildItem.getName(), buildItem.getDescription(),
toContainerInfo(container), buildItem.getConfig());
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package io.quarkus.devui.deployment.menu;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import io.quarkus.deployment.IsDevelopment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.DevServicesResultBuildItem;
import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;
import io.quarkus.devui.deployment.InternalPageBuildItem;
import io.quarkus.devui.spi.page.Page;
Expand All @@ -14,7 +18,10 @@
public class DevServicesProcessor {

@BuildStep(onlyIf = IsDevelopment.class)
InternalPageBuildItem createDevServicesPages(List<DevServiceDescriptionBuildItem> devServiceDescriptions) {
InternalPageBuildItem createDevServicesPages(List<DevServiceDescriptionBuildItem> devServiceDescriptions,
List<DevServicesResultBuildItem> devServicesResultBuildItems) {

List<DevServiceDescriptionBuildItem> otherDevServices = getOtherDevServices(devServicesResultBuildItems);

InternalPageBuildItem devServicesPages = new InternalPageBuildItem("Dev Services", 40);

Expand All @@ -24,9 +31,37 @@ InternalPageBuildItem createDevServicesPages(List<DevServiceDescriptionBuildItem
.icon("font-awesome-solid:wand-magic-sparkles")
.componentLink("qwc-dev-services.js"));

devServicesPages.addBuildTimeData("devServices", devServiceDescriptions);
Map<String, DevServiceDescriptionBuildItem> combined = new TreeMap<>();
addToMap(combined, devServiceDescriptions);
addToMap(combined, otherDevServices);

devServicesPages.addBuildTimeData("devServices", combined.values());

return devServicesPages;

}
}

private void addToMap(Map<String, DevServiceDescriptionBuildItem> m, List<DevServiceDescriptionBuildItem> list) {
if (!list.isEmpty()) {
for (DevServiceDescriptionBuildItem i : list) {
if (!m.containsKey(i.getName())) {
m.put(i.getName(), i);
}
}
}
}

private List<DevServiceDescriptionBuildItem> getOtherDevServices(
List<DevServicesResultBuildItem> devServicesResultBuildItems) {
List<DevServiceDescriptionBuildItem> devServiceDescriptions = new ArrayList<>();
for (DevServicesResultBuildItem devServicesResultBuildItem : devServicesResultBuildItems) {
if (devServicesResultBuildItem.getContainerId() == null) {
devServiceDescriptions.add(new DevServiceDescriptionBuildItem(devServicesResultBuildItem.getName(),
devServicesResultBuildItem.getDescription(),
null,
devServicesResultBuildItem.getConfig()));
}
}
return devServiceDescriptions;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ export class QwcDevServices extends observeState(QwcHotReloadElement) {
padding-left: 10px;
background: var(--lumo-contrast-5pct);
}
.content {
padding: 15px;
}
.description {
padding-bottom: 10px;
color: var(--lumo-contrast-50pct);
}
`;

static properties = {
Expand Down Expand Up @@ -71,13 +80,20 @@ export class QwcDevServices extends observeState(QwcHotReloadElement) {

_renderCard(devService){
return html`<qui-card header="${devService.name}">
<div slot="content">
<div slot="content" class="content">
${this._renderDescription(devService)}
${this._renderContainerDetails(devService)}
${this._renderConfigDetails(devService)}
</div>
</qui-card>`;
}

_renderDescription(devService){
if(devService.description){
return html`<div class="description">${devService.description}</div>`;
}
}

_renderContainerDetails(devService){
if (devService.containerInfo) {
return html`
Expand Down

0 comments on commit 405d281

Please sign in to comment.