@@ -75,6 +75,7 @@ public DevServicesResultBuildItem startElasticsearchDevService(
7575 Optional <ConsoleInstalledBuildItem > consoleInstalledBuildItem ,
7676 CuratedApplicationShutdownBuildItem closeBuildItem ,
7777 LoggingSetupBuildItem loggingSetupBuildItem ,
78+ List <DevservicesElasticsearchConnectionBuildItem > elasticsearchConnectionBuildItems ,
7879 DevServicesConfig devServicesConfig ,
7980 List <DevservicesElasticsearchBuildItem > devservicesElasticsearchBuildItems ) throws BuildException {
8081
@@ -104,7 +105,8 @@ public DevServicesResultBuildItem startElasticsearchDevService(
104105
105106 devDashboardService = startDashboardDevServices (dockerStatusBuildItem , composeProjectBuildItem ,
106107 configuration .devservices (),
107- buildItemsConfig , launchMode , useSharedNetwork , devServicesConfig .timeout ());
108+ buildItemsConfig , elasticsearchConnectionBuildItems , launchMode , useSharedNetwork ,
109+ devServicesConfig .timeout ());
108110 if (devDashboardService == null ) {
109111 compressor .closeAndDumpCaptured ();
110112 } else {
@@ -147,6 +149,7 @@ private RunningDevService startDashboardDevServices(
147149 DevServicesComposeProjectBuildItem composeProjectBuildItem ,
148150 ElasticsearchDevServicesBuildTimeConfig config ,
149151 DevservicesElasticsearchBuildItemsConfiguration buildItemConfig ,
152+ List <DevservicesElasticsearchConnectionBuildItem > elasticsearchConnectionBuildItems ,
150153 LaunchModeBuildItem launchMode , boolean useSharedNetwork , Optional <Duration > timeout ) throws BuildException {
151154 if (!config .enabled ().orElse (true )) {
152155 // explicitly disabled
@@ -177,31 +180,13 @@ private RunningDevService startDashboardDevServices(
177180 .collect (Collectors .toSet ());
178181 } else {
179182 Optional <ContainerAddress > maybeContainerAddressSearchBackend = Optional .empty ();
180- log .info ("no elasticsearch hosts config property found, waiting for the elasticsearch container to be started" );
181- for (int i = 0 ; i < LOCATE_BACKEND_MAX_RETRIES ; i ++) {
182- maybeContainerAddressSearchBackend = elasticsearchContainerLocator .locateContainer (
183- config .serviceName (),
184- config .shared (),
185- launchMode .getLaunchMode ())
186- .or (() -> ComposeLocator .locateContainer (composeProjectBuildItem ,
187- List .of (resolvedImageName .getUnversionedPart (), "elasticsearch" , "opensearch" ),
188- ELASTICSEARCH_PORT ,
189- launchMode .getLaunchMode (), useSharedNetwork ));
190- if (maybeContainerAddressSearchBackend .isPresent ()) {
191- break ;
192- }
193- try {
194- Thread .sleep ((long ) (LOCATE_BACKEND_INITIAL_WAIT_MILLIS * Math .pow (2 , i )));
195- log .infof ("waiting for the elasticsearch container to be started, attempt %d of %d" , i + 1 ,
196- LOCATE_BACKEND_MAX_RETRIES );
197- } catch (InterruptedException e ) {
198- throw new RuntimeException (e );
199- }
200- }
201- opensearchHosts = maybeContainerAddressSearchBackend .map (containerAddress -> Set
202- .of (("http://" + containerAddress .getHost () + ":" + containerAddress .getPort ())
203- .replace ("localhost" , "host.docker.internal" )))
204- .orElseGet (() -> Set .of ());
183+ log .info (
184+ "no elasticsearch hosts config property found, using the host of theelasticsearch dev services container to connect" );
185+
186+ opensearchHosts = elasticsearchConnectionBuildItems .stream ()
187+ .map (connection -> ("http://" + connection .getHost () + ":" + connection .getPort ())
188+ .replace ("localhost" , "host.docker.internal" ))
189+ .collect (Collectors .toSet ());
205190 }
206191
207192 final Optional <ContainerAddress > maybeContainerAddress = dashboardContainerLocator .locateContainer (
0 commit comments