Skip to content

Commit 8862153

Browse files
committed
Account for random order of DevservicesElasticsearchBuildItems when comparing versions/distributions
1 parent 5577aef commit 8862153

File tree

3 files changed

+134
-2
lines changed

3 files changed

+134
-2
lines changed

extensions/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/DevServicesElasticsearchProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ private DevservicesElasticsearchBuildItemsConfiguration(List<DevservicesElastics
355355
for (DevservicesElasticsearchBuildItem buildItem : buildItems) {
356356
if (version == null) {
357357
version = buildItem.getVersion();
358-
} else if (!version.equals(buildItem.getVersion())) {
358+
} else if (buildItem.getVersion() != null && !version.equals(buildItem.getVersion())) {
359359
// safety guard but should never occur as only Hibernate Search ORM Elasticsearch configure the version
360360
throw new BuildException(
361361
"Multiple extensions request different versions of Elasticsearch for Dev Services.",
@@ -364,7 +364,7 @@ private DevservicesElasticsearchBuildItemsConfiguration(List<DevservicesElastics
364364

365365
if (distribution == null) {
366366
distribution = buildItem.getDistribution();
367-
} else if (!distribution.equals(buildItem.getDistribution())) {
367+
} else if (buildItem.getDistribution() != null && !distribution.equals(buildItem.getDistribution())) {
368368
// safety guard but should never occur as only Hibernate Search ORM Elasticsearch configure the distribution
369369
throw new BuildException(
370370
"Multiple extensions request different distributions of Elasticsearch for Dev Services.",

integration-tests/hibernate-search-orm-elasticsearch/pom.xml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
<groupId>io.quarkus</groupId>
2121
<artifactId>quarkus-hibernate-search-orm-elasticsearch</artifactId>
2222
</dependency>
23+
<dependency>
24+
<groupId>io.quarkus</groupId>
25+
<artifactId>quarkus-elasticsearch-java-client</artifactId>
26+
</dependency>
2327
<dependency>
2428
<groupId>io.quarkus</groupId>
2529
<artifactId>quarkus-jdbc-h2</artifactId>
@@ -98,6 +102,19 @@
98102
</exclusion>
99103
</exclusions>
100104
</dependency>
105+
<dependency>
106+
<groupId>io.quarkus</groupId>
107+
<artifactId>quarkus-elasticsearch-java-client-deployment</artifactId>
108+
<version>${project.version}</version>
109+
<type>pom</type>
110+
<scope>test</scope>
111+
<exclusions>
112+
<exclusion>
113+
<groupId>*</groupId>
114+
<artifactId>*</artifactId>
115+
</exclusion>
116+
</exclusions>
117+
</dependency>
101118
</dependencies>
102119

103120
<build>
@@ -113,12 +130,60 @@
113130
<configuration>
114131
<skip>true</skip>
115132
</configuration>
133+
<executions>
134+
<execution>
135+
<id>default-test</id>
136+
<configuration>
137+
<classpathDependencyExcludes>
138+
<exclude>io.quarkus:quarkus-elasticsearch-java-client</exclude>
139+
</classpathDependencyExcludes>
140+
<excludes>
141+
<exclude>io.quarkus.it.hibernate.search.orm.elasticsearch.devservices.HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest</exclude>
142+
</excludes>
143+
</configuration>
144+
</execution>
145+
<execution>
146+
<id>mixed-test</id>
147+
<goals>
148+
<goal>test</goal>
149+
</goals>
150+
<configuration>
151+
<includes>
152+
<include>io.quarkus.it.hibernate.search.orm.elasticsearch.devservices.HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest</include>
153+
</includes>
154+
</configuration>
155+
</execution>
156+
</executions>
116157
</plugin>
117158
<plugin>
118159
<artifactId>maven-failsafe-plugin</artifactId>
119160
<configuration>
120161
<skip>true</skip>
121162
</configuration>
163+
<executions>
164+
<execution>
165+
<id>default-test</id>
166+
<configuration>
167+
<classpathDependencyExcludes>
168+
<exclude>io.quarkus:quarkus-elasticsearch-java-client</exclude>
169+
</classpathDependencyExcludes>
170+
<excludes>
171+
<exclude>io.quarkus.it.hibernate.search.orm.elasticsearch.devservices.HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest</exclude>
172+
</excludes>
173+
</configuration>
174+
</execution>
175+
<execution>
176+
<id>mixed-test</id>
177+
<goals>
178+
<goal>integration-test</goal>
179+
</goals>
180+
<configuration>
181+
<includes>
182+
<include>io.quarkus.it.hibernate.search.orm.elasticsearch.devservices.HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest</include>
183+
</includes>
184+
</configuration>
185+
</execution>
186+
</executions>
122187
</plugin>
123188
<plugin>
124189
<groupId>io.quarkus</groupId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package io.quarkus.it.hibernate.search.orm.elasticsearch.devservices;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.hamcrest.Matchers.is;
5+
6+
import java.io.IOException;
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
10+
import jakarta.inject.Inject;
11+
12+
import org.elasticsearch.client.Request;
13+
import org.elasticsearch.client.RestClient;
14+
import org.junit.jupiter.api.Test;
15+
import org.junit.jupiter.api.condition.DisabledOnOs;
16+
import org.junit.jupiter.api.condition.OS;
17+
18+
import io.quarkus.test.common.DevServicesContext;
19+
import io.quarkus.test.junit.QuarkusTest;
20+
import io.quarkus.test.junit.QuarkusTestProfile;
21+
import io.quarkus.test.junit.TestProfile;
22+
import io.restassured.RestAssured;
23+
24+
@QuarkusTest
25+
@DisabledOnOs(OS.WINDOWS)
26+
@TestProfile(HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest.Profile.class)
27+
public class HibernateSearchElasticsearchWithElasticsearchJavaClientDevServicesTest {
28+
public static class Profile implements QuarkusTestProfile {
29+
@Override
30+
public Map<String, String> getConfigOverrides() {
31+
Map<String, String> config = new HashMap<>();
32+
config.put("quarkus.elasticsearch.devservices.enabled", "true");
33+
config.put("quarkus.hibernate-search-orm.elasticsearch.version", "9.1");
34+
return config;
35+
}
36+
37+
@Override
38+
public String getConfigProfile() {
39+
// Don't use %test properties;
40+
// that way, we can control whether quarkus.hibernate-search-orm.elasticsearch.hosts is set or not.
41+
// In this test, we do NOT set quarkus.hibernate-search-orm.elasticsearch.hosts.
42+
return "someotherprofile";
43+
}
44+
}
45+
46+
DevServicesContext context;
47+
48+
@Inject
49+
RestClient client;
50+
51+
@Test
52+
public void testDevServicesProperties() {
53+
assertThat(context.devServicesProperties())
54+
.containsKey("quarkus.hibernate-search-orm.elasticsearch.hosts");
55+
}
56+
57+
@Test
58+
public void smoke() throws IOException {
59+
RestAssured.when().get("/test/dev-services/count").then()
60+
.statusCode(200)
61+
.body(is("0"));
62+
63+
assertThat(client.performRequest(new Request("GET", "/")).getStatusLine().getStatusCode())
64+
.isEqualTo(200);
65+
66+
}
67+
}

0 commit comments

Comments
 (0)