Skip to content

Commit 6f99bbc

Browse files
committed
Fix Pulsar DevService network for @QuarkusIntegrationTest for docker-image-building
1 parent d8f1436 commit 6f99bbc

File tree

1 file changed

+23
-4
lines changed
  • extensions/smallrye-reactive-messaging-pulsar/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/pulsar/deployment

1 file changed

+23
-4
lines changed

extensions/smallrye-reactive-messaging-pulsar/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/pulsar/deployment/PulsarDevServicesProcessor.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.Closeable;
44
import java.time.Duration;
55
import java.util.HashMap;
6+
import java.util.List;
67
import java.util.Map;
78
import java.util.Objects;
89
import java.util.Optional;
@@ -21,12 +22,14 @@
2122
import io.quarkus.deployment.builditem.CuratedApplicationShutdownBuildItem;
2223
import io.quarkus.deployment.builditem.DevServicesResultBuildItem;
2324
import io.quarkus.deployment.builditem.DevServicesResultBuildItem.RunningDevService;
25+
import io.quarkus.deployment.builditem.DevServicesSharedNetworkBuildItem;
2426
import io.quarkus.deployment.builditem.DockerStatusBuildItem;
2527
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
2628
import io.quarkus.deployment.console.ConsoleInstalledBuildItem;
2729
import io.quarkus.deployment.console.StartupLogCompressor;
2830
import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
2931
import io.quarkus.deployment.logging.LoggingSetupBuildItem;
32+
import io.quarkus.devservices.common.ConfigureUtil;
3033
import io.quarkus.devservices.common.ContainerLocator;
3134
import io.quarkus.runtime.LaunchMode;
3235
import io.quarkus.runtime.configuration.ConfigUtils;
@@ -48,6 +51,7 @@ public class PulsarDevServicesProcessor {
4851

4952
private static final ContainerLocator pulsarContainerLocator = new ContainerLocator(DEV_SERVICE_LABEL,
5053
PulsarContainer.BROKER_PORT);
54+
private static final String DEV_SERVICE_PULSAR = "pulsar";
5155
private static final String PULSAR_CLIENT_SERVICE_URL = "pulsar.client.serviceUrl";
5256
private static final String PULSAR_ADMIN_SERVICE_URL = "pulsar.admin.serviceUrl";
5357
static volatile RunningDevService devService;
@@ -59,12 +63,15 @@ public DevServicesResultBuildItem startPulsarDevService(
5963
DockerStatusBuildItem dockerStatusBuildItem,
6064
LaunchModeBuildItem launchMode,
6165
PulsarBuildTimeConfig pulsarClientBuildTimeConfig,
66+
List<DevServicesSharedNetworkBuildItem> devServicesSharedNetworkBuildItem,
6267
Optional<ConsoleInstalledBuildItem> consoleInstalledBuildItem,
6368
CuratedApplicationShutdownBuildItem closeBuildItem,
6469
LoggingSetupBuildItem loggingSetupBuildItem,
6570
GlobalDevServicesConfig devServicesConfig) {
6671

6772
PulsarDevServiceCfg configuration = getConfiguration(pulsarClientBuildTimeConfig);
73+
boolean useSharedNetwork = DevServicesSharedNetworkBuildItem.isSharedNetworkRequired(devServicesConfig,
74+
devServicesSharedNetworkBuildItem);
6875

6976
if (devService != null) {
7077
boolean shouldShutdownTheBroker = !configuration.equals(cfg);
@@ -80,7 +87,7 @@ public DevServicesResultBuildItem startPulsarDevService(
8087
loggingSetupBuildItem);
8188
try {
8289
RunningDevService newDevService = startPulsarContainer(dockerStatusBuildItem, configuration, launchMode,
83-
devServicesConfig.timeout);
90+
useSharedNetwork, devServicesConfig.timeout);
8491
if (newDevService != null) {
8592
devService = newDevService;
8693
Map<String, String> config = devService.getConfig();
@@ -138,7 +145,8 @@ private void shutdownBroker() {
138145
}
139146

140147
private RunningDevService startPulsarContainer(DockerStatusBuildItem dockerStatusBuildItem, PulsarDevServiceCfg config,
141-
LaunchModeBuildItem launchMode, Optional<Duration> timeout) {
148+
LaunchModeBuildItem launchMode,
149+
boolean useSharedNetwork, Optional<Duration> timeout) {
142150
if (!config.devServicesEnabled) {
143151
// explicitly disabled
144152
log.debug("Not starting Dev Services for Pulsar, as it has been disabled in the config.");
@@ -175,10 +183,21 @@ private RunningDevService startPulsarContainer(DockerStatusBuildItem dockerStatu
175183
container.withPort(config.fixedExposedPort);
176184
}
177185
timeout.ifPresent(container::withStartupTimeout);
186+
String hostName = null;
187+
if (useSharedNetwork) {
188+
hostName = ConfigureUtil.configureSharedNetwork(container, DEV_SERVICE_PULSAR);
189+
}
178190
container.start();
179191

180-
return getRunningService(container.getContainerId(), container::close, container.getPulsarBrokerUrl(),
181-
container.getHttpServiceUrl());
192+
var pulsarBrokerUrl = container.getPulsarBrokerUrl();
193+
var httpHostServiceUrl = container.getHttpServiceUrl();
194+
if (useSharedNetwork) {
195+
pulsarBrokerUrl = getServiceUrl(hostName, PulsarContainer.BROKER_PORT);
196+
httpHostServiceUrl = getHttpServiceUrl(hostName, PulsarContainer.BROKER_HTTP_PORT);
197+
}
198+
199+
return getRunningService(container.getContainerId(), container::close, pulsarBrokerUrl,
200+
httpHostServiceUrl);
182201
};
183202

184203
return pulsarContainerLocator.locateContainer(config.serviceName, config.shared, launchMode.getLaunchMode())

0 commit comments

Comments
 (0)