Skip to content

Commit df40cd8

Browse files
mkreddumelendez
andauthored
Fix SolrContainer start parameters for version >= 9.7.0 (#9926)
Fixes #9601 --------- Co-authored-by: Eddú Meléndez <[email protected]>
1 parent 6139e5e commit df40cd8

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

modules/solr/src/main/java/org/testcontainers/containers/SolrContainer.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.SneakyThrows;
55
import org.apache.commons.lang3.StringUtils;
66
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
7+
import org.testcontainers.utility.ComparableVersion;
78
import org.testcontainers.utility.DockerImageName;
89

910
import java.net.URL;
@@ -39,6 +40,8 @@ public class SolrContainer extends GenericContainer<SolrContainer> {
3940

4041
private SolrContainerConfiguration configuration;
4142

43+
private final ComparableVersion imageVersion;
44+
4245
/**
4346
* @deprecated use {@link #SolrContainer(DockerImageName)} instead
4447
*/
@@ -63,6 +66,7 @@ public SolrContainer(final DockerImageName dockerImageName) {
6366
.withRegEx(".*o\\.e\\.j\\.s\\.Server Started.*")
6467
.withStartupTimeout(Duration.of(60, ChronoUnit.SECONDS));
6568
this.configuration = new SolrContainerConfiguration();
69+
this.imageVersion = new ComparableVersion(dockerImageName.getVersionPart());
6670
}
6771

6872
public SolrContainer withZookeeper(boolean zookeeper) {
@@ -114,7 +118,11 @@ protected void configure() {
114118
// Configure Zookeeper
115119
if (configuration.isZookeeper()) {
116120
this.addExposedPort(ZOOKEEPER_PORT);
117-
command = "-DzkRun -h localhost";
121+
if (this.imageVersion.isGreaterThanOrEqualTo("9.7.0")) {
122+
command = "-DzkRun --host localhost";
123+
} else {
124+
command = "-DzkRun -h localhost";
125+
}
118126
}
119127

120128
// Apply generated Command

modules/solr/src/test/java/org/testcontainers/containers/SolrContainerTest.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,23 @@
66
import org.apache.solr.client.solrj.response.SolrPingResponse;
77
import org.junit.After;
88
import org.junit.Test;
9-
import org.testcontainers.utility.DockerImageName;
9+
import org.junit.runner.RunWith;
10+
import org.junit.runners.Parameterized;
1011

1112
import java.io.IOException;
1213

1314
import static org.assertj.core.api.Assertions.assertThat;
1415

16+
@RunWith(Parameterized.class)
1517
public class SolrContainerTest {
1618

17-
private static final DockerImageName SOLR_IMAGE = DockerImageName.parse("solr:8.3.0");
19+
@Parameterized.Parameters(name = "{0}")
20+
public static String[] getVersionsToTest() {
21+
return new String[] { "solr:8.11.4", "solr:9.8.0" };
22+
}
23+
24+
@Parameterized.Parameter
25+
public String solrImage;
1826

1927
private SolrClient client = null;
2028

@@ -28,7 +36,7 @@ public void stopRestClient() throws IOException {
2836

2937
@Test
3038
public void solrCloudTest() throws IOException, SolrServerException {
31-
try (SolrContainer container = new SolrContainer(SOLR_IMAGE)) {
39+
try (SolrContainer container = new SolrContainer(solrImage)) {
3240
container.start();
3341
SolrPingResponse response = getClient(container).ping("dummy");
3442
assertThat(response.getStatus()).isZero();
@@ -38,7 +46,7 @@ public void solrCloudTest() throws IOException, SolrServerException {
3846

3947
@Test
4048
public void solrStandaloneTest() throws IOException, SolrServerException {
41-
try (SolrContainer container = new SolrContainer(SOLR_IMAGE).withZookeeper(false)) {
49+
try (SolrContainer container = new SolrContainer(solrImage).withZookeeper(false)) {
4250
container.start();
4351
SolrPingResponse response = getClient(container).ping("dummy");
4452
assertThat(response.getStatus()).isZero();
@@ -50,7 +58,7 @@ public void solrStandaloneTest() throws IOException, SolrServerException {
5058
public void solrCloudPingTest() throws IOException, SolrServerException {
5159
// solrContainerUsage {
5260
// Create the solr container.
53-
SolrContainer container = new SolrContainer(SOLR_IMAGE);
61+
SolrContainer container = new SolrContainer(solrImage);
5462

5563
// Start the container. This step might take some time...
5664
container.start();

0 commit comments

Comments
 (0)