Skip to content

Commit

Permalink
Remove runtime dev services module
Browse files Browse the repository at this point in the history
This has been split up into various deployment modules instead
  • Loading branch information
stuartwdouglas committed Feb 3, 2022
1 parent e1f394d commit 62f3666
Show file tree
Hide file tree
Showing 29 changed files with 115 additions and 213 deletions.
5 changes: 0 additions & 5 deletions bom/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -646,11 +646,6 @@
<artifactId>quarkus-devservices-deployment</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-elasticsearch-rest-client-common</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.devservices.runtime.devmode;
package io.quarkus.deployment.dev.devservices;

import java.util.Arrays;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package io.quarkus.devservices.runtime.devmode;
package io.quarkus.deployment.dev.devservices;

import java.util.Map;
import java.util.stream.Collectors;

public class DevServiceDescription {
import io.quarkus.builder.item.MultiBuildItem;

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

public DevServiceDescription() {
public DevServiceDescriptionBuildItem() {
}

public DevServiceDescription(String name, ContainerInfo containerInfo, Map<String, String> configs) {
public DevServiceDescriptionBuildItem(String name, ContainerInfo containerInfo, Map<String, String> configs) {
this.name = name;
this.containerInfo = containerInfo;
this.configs = configs;
Expand Down
13 changes: 0 additions & 13 deletions devtools/bom-descriptor-json/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -396,19 +396,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-elasticsearch-rest-client</artifactId>
Expand Down
13 changes: 0 additions & 13 deletions docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -356,19 +356,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices-deployment</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-elasticsearch-rest-client-deployment</artifactId>
Expand Down
4 changes: 0 additions & 4 deletions extensions/apicurio-registry-avro/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
4 changes: 0 additions & 4 deletions extensions/datasource/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,6 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-credentials</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
4 changes: 0 additions & 4 deletions extensions/devservices/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
<name>Quarkus - DevServices - Deployment</name>

<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-devservices-common</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,24 @@
import org.testcontainers.containers.output.FrameConsumerResultCallback;
import org.testcontainers.containers.output.OutputFrame;

import io.quarkus.devservices.runtime.devmode.DevServiceDescription;
import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;

public class ContainerLogForwarder implements Closeable {

private final DevServiceDescription devService;
private final DevServiceDescriptionBuildItem devService;
private final AtomicLong timestamp = new AtomicLong(0L);
private final Logger logger;
private final String shortId;
private FrameConsumerResultCallback resultCallback;
private final AtomicBoolean running = new AtomicBoolean(false);

public ContainerLogForwarder(DevServiceDescription devService) {
public ContainerLogForwarder(DevServiceDescriptionBuildItem devService) {
this.devService = devService;
this.logger = Logger.getLogger(devService.getName());
this.shortId = devService.getContainerInfo().getShortId();
}

public DevServiceDescription getDevService() {
public DevServiceDescriptionBuildItem getDevService() {
return devService;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
import org.aesh.command.invocation.CommandInvocation;

import io.quarkus.deployment.console.SetCompleter;
import io.quarkus.devservices.runtime.devmode.DevServiceDescription;
import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;

@GroupCommandDefinition(name = "devservices", description = "Dev Service Commands")
public class DevServicesCommand implements GroupCommand {
static List<DevServiceDescription> serviceDescriptions;
static List<DevServiceDescriptionBuildItem> serviceDescriptions;

public DevServicesCommand(List<DevServiceDescription> serviceDescriptions) {
public DevServicesCommand(List<DevServiceDescriptionBuildItem> serviceDescriptions) {
DevServicesCommand.serviceDescriptions = serviceDescriptions;
}

Expand All @@ -33,7 +33,7 @@ public CommandResult execute(CommandInvocation commandInvocation) {
return CommandResult.SUCCESS;
}

static Optional<DevServiceDescription> findDevService(String devServiceName) {
static Optional<DevServiceDescriptionBuildItem> findDevService(String devServiceName) {
return serviceDescriptions.stream()
.filter(d -> d.getName().equals(devServiceName))
.findFirst();
Expand All @@ -44,7 +44,7 @@ public static class DevServiceCompleter extends SetCompleter {
@Override
protected Set<String> allOptions(String soFar) {
return serviceDescriptions.stream()
.map(DevServiceDescription::getName)
.map(DevServiceDescriptionBuildItem::getName)
.collect(Collectors.toSet());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.aesh.command.CommandResult;
import org.aesh.command.invocation.CommandInvocation;

import io.quarkus.devservices.runtime.devmode.DevServiceDescription;
import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;

@CommandDefinition(name = "list", description = "List of dev services")
public class DevServicesListCommand implements Command {
Expand All @@ -16,7 +16,7 @@ public class DevServicesListCommand implements Command {
public CommandResult execute(CommandInvocation commandInvocation) {
commandInvocation.println("");
StringBuilder builder = new StringBuilder();
for (DevServiceDescription serviceDescription : DevServicesCommand.serviceDescriptions) {
for (DevServiceDescriptionBuildItem serviceDescription : DevServicesCommand.serviceDescriptions) {
printDevService(builder, serviceDescription, false);
builder.append("\n");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

import com.github.dockerjava.api.command.LogContainerCmd;

import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;
import io.quarkus.devservices.deployment.DevServicesCommand.DevServiceCompleter;
import io.quarkus.devservices.runtime.devmode.DevServiceDescription;

@CommandDefinition(name = "logs", description = "Print container logs")
public class DevServicesLogsCommand implements Command {
Expand All @@ -34,9 +34,9 @@ public class DevServicesLogsCommand implements Command {

@Override
public CommandResult execute(CommandInvocation commandInvocation) {
Optional<DevServiceDescription> devService = findDevService(this.devService);
Optional<DevServiceDescriptionBuildItem> devService = findDevService(this.devService);
if (devService.isPresent()) {
DevServiceDescription desc = devService.get();
DevServiceDescriptionBuildItem desc = devService.get();
try (FrameConsumerResultCallback resultCallback = new FrameConsumerResultCallback()) {
resultCallback.addConsumer(OutputFrame.OutputType.STDERR,
frame -> commandInvocation.print(frame.getUtf8String()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,15 @@
import io.quarkus.deployment.IsDockerWorking;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ConsoleCommandBuildItem;
import io.quarkus.deployment.builditem.DevServicesLauncherConfigResultBuildItem;
import io.quarkus.deployment.builditem.DevServicesResultBuildItem;
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
import io.quarkus.deployment.console.ConsoleCommand;
import io.quarkus.deployment.console.ConsoleStateManager;
import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
import io.quarkus.deployment.dev.devservices.ContainerInfo;
import io.quarkus.deployment.dev.devservices.DevServiceDescriptionBuildItem;
import io.quarkus.dev.spi.DevModeType;
import io.quarkus.devconsole.spi.DevConsoleRuntimeTemplateInfoBuildItem;
import io.quarkus.devservices.runtime.devmode.ContainerInfo;
import io.quarkus.devservices.runtime.devmode.DevServiceDescription;
import io.quarkus.devservices.runtime.devmode.DevServicesRecorder;

public class DevServicesProcessor {

Expand All @@ -48,31 +43,25 @@ public class DevServicesProcessor {
static Map<String, ContainerLogForwarder> containerLogForwarders = new HashMap<>();

@BuildStep(onlyIf = { IsDevelopment.class })
@Record(value = ExecutionTime.STATIC_INIT)
public void config(BuildProducer<DevConsoleRuntimeTemplateInfoBuildItem> devConsoleRuntimeTemplateProducer,
public List<DevServiceDescriptionBuildItem> config(
BuildProducer<ConsoleCommandBuildItem> commandBuildItemBuildProducer,
CurateOutcomeBuildItem curateOutcomeBuildItem,
LaunchModeBuildItem launchModeBuildItem,
DevServicesRecorder recorder,
Optional<DevServicesLauncherConfigResultBuildItem> devServicesLauncherConfig,
List<DevServicesResultBuildItem> devServicesResults) {
List<DevServiceDescription> serviceDescriptions = buildServiceDescriptions(devServicesResults,
List<DevServiceDescriptionBuildItem> serviceDescriptions = buildServiceDescriptions(devServicesResults,
devServicesLauncherConfig);

for (DevServiceDescription devService : serviceDescriptions) {
for (DevServiceDescriptionBuildItem devService : serviceDescriptions) {
if (devService.hasContainerInfo()) {
containerLogForwarders.compute(devService.getContainerInfo().getId(),
(id, forwarder) -> Objects.requireNonNullElseGet(forwarder,
() -> new ContainerLogForwarder(devService)));
}
}

devConsoleRuntimeTemplateProducer.produce(new DevConsoleRuntimeTemplateInfoBuildItem("devServices",
recorder.devServices(serviceDescriptions), this.getClass(), curateOutcomeBuildItem));

// Build commands if we are in local dev mode
if (launchModeBuildItem.getDevModeType().orElse(null) != DevModeType.LOCAL) {
return;
return serviceDescriptions;
}

commandBuildItemBuildProducer.produce(
Expand All @@ -83,13 +72,13 @@ public void config(BuildProducer<DevConsoleRuntimeTemplateInfoBuildItem> devCons
}
context.reset(
new ConsoleCommand('c', "Show dev services containers", null, () -> {
List<DevServiceDescription> descriptions = buildServiceDescriptions(devServicesResults,
List<DevServiceDescriptionBuildItem> descriptions = buildServiceDescriptions(devServicesResults,
devServicesLauncherConfig);
StringBuilder builder = new StringBuilder();
builder.append("\n\n")
.append(RED + "==" + RESET + " " + UNDERLINE + "Dev Services" + NO_UNDERLINE)
.append("\n\n");
for (DevServiceDescription devService : descriptions) {
for (DevServiceDescriptionBuildItem devService : descriptions) {
printDevService(builder, devService, true);
builder.append("\n");
}
Expand All @@ -99,9 +88,10 @@ public void config(BuildProducer<DevConsoleRuntimeTemplateInfoBuildItem> devCons
new ConsoleCommand.HelpState(() -> logForwardEnabled ? GREEN : RED,
() -> logForwardEnabled ? "enabled" : "disabled"),
this::toggleLogForwarders));
return serviceDescriptions;
}

private List<DevServiceDescription> buildServiceDescriptions(List<DevServicesResultBuildItem> devServicesResults,
private List<DevServiceDescriptionBuildItem> buildServiceDescriptions(List<DevServicesResultBuildItem> devServicesResults,
Optional<DevServicesLauncherConfigResultBuildItem> devServicesLauncherConfig) {
// Fetch container infos
Set<String> containerIds = devServicesResults.stream()
Expand All @@ -111,21 +101,21 @@ private List<DevServiceDescription> buildServiceDescriptions(List<DevServicesRes
Map<String, Container> containerInfos = fetchContainerInfos(containerIds);
// Build descriptions
Set<String> configKeysFromDevServices = new HashSet<>();
List<DevServiceDescription> descriptions = new ArrayList<>();
List<DevServiceDescriptionBuildItem> descriptions = new ArrayList<>();
for (DevServicesResultBuildItem buildItem : devServicesResults) {
configKeysFromDevServices.addAll(buildItem.getConfig().keySet());
descriptions.add(toDevServiceDescription(buildItem, containerInfos.get(buildItem.getContainerId())));
}
// Sort descriptions by name
descriptions.sort(Comparator.comparing(DevServiceDescription::getName));
descriptions.sort(Comparator.comparing(DevServiceDescriptionBuildItem::getName));
// Add description from other dev service configs as last
if (devServicesLauncherConfig.isPresent()) {
Map<String, String> config = new HashMap<>(devServicesLauncherConfig.get().getConfig());
for (String key : configKeysFromDevServices) {
config.remove(key);
}
if (!config.isEmpty()) {
descriptions.add(new DevServiceDescription("Other Dev Services", null, config));
descriptions.add(new DevServiceDescriptionBuildItem("Other Dev Services", null, config));
}
}
return descriptions;
Expand All @@ -143,11 +133,11 @@ private Map<String, Container> fetchContainerInfos(Set<String> containerIds) {
.collect(Collectors.toMap(Container::getId, Function.identity()));
}

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

Expand Down Expand Up @@ -198,7 +188,7 @@ private synchronized void toggleLogForwarders() {
}
}

public static void printDevService(StringBuilder builder, DevServiceDescription devService, boolean withStatus) {
public static void printDevService(StringBuilder builder, DevServiceDescriptionBuildItem devService, boolean withStatus) {
if (devService.hasContainerInfo()) {
builder.append(BOLD).append(devService.getName()).append(NO_BOLD);
if (withStatus) {
Expand Down
1 change: 0 additions & 1 deletion extensions/devservices/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
<module>oracle</module>
<module>common</module>
<module>deployment</module>
<module>runtime</module>
</modules>

</project>
Loading

0 comments on commit 62f3666

Please sign in to comment.