Skip to content

Commit 52ee9d0

Browse files
authored
Merge pull request #5321 from geoand/#5297
Ensure that array config values are properly validated at startup
2 parents 383c21d + 5bcb558 commit 52ee9d0

File tree

5 files changed

+21
-1
lines changed

5 files changed

+21
-1
lines changed

extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/ConfigBuildStep.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ void validateConfigProperties(ConfigRecorder recorder, List<ConfigPropertyBuildI
131131
for (ConfigPropertyBuildItem item : configProperties) {
132132
Type requiredType = item.getPropertyType();
133133
String propertyType = requiredType.name().toString();
134-
if (requiredType.kind() != Kind.ARRAY && requiredType.kind() != Kind.PRIMITIVE) {
134+
if (requiredType.kind() != Kind.PRIMITIVE) {
135135
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, propertyType));
136136
}
137137
}

integration-tests/main/src/main/java/io/quarkus/it/rest/ServiceWithConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@ public class ServiceWithConfig {
1313
@ConfigProperty(name = "web-message")
1414
String message;
1515

16+
@ConfigProperty(name = "names")
17+
String[] names;
18+
1619
public String host() {
1720
return quarkusHost;
1821
}
1922

2023
public String message() {
2124
return message;
2225
}
26+
27+
public String[] names() {
28+
return names;
29+
}
2330
}

integration-tests/main/src/main/java/io/quarkus/it/rest/TestResource.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ public String configMessage() {
7777
return config.message();
7878
}
7979

80+
@GET
81+
@Path("/config/names")
82+
@Produces("application/json")
83+
public String configNames() {
84+
return String.join(",", config.names());
85+
}
86+
8087
@GET
8188
@Path("/count")
8289
public int count() {

integration-tests/main/src/main/resources/application.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ quarkus.resteasy.gzip.enabled=true
2222
quarkus.resteasy.gzip.max-input=10
2323
quarkus.http.limits.max-body-size=1K
2424
web-message=A message
25+
names=quarkus,redhat
2526
schedulerservice.cron.expr=0/10 * * * * ?
2627

2728
microprofile.custom.value = 456

integration-tests/main/src/test/java/io/quarkus/it/main/JaxRSTestCase.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ public void testConfigInjectionOfMessage() {
3636
RestAssured.when().get("/test/config/message").then().body(is("A message"));
3737
}
3838

39+
@Test
40+
public void testConfigInjectionOfStringArray() {
41+
RestAssured.when().get("/test/config/names").then().body(is("quarkus,redhat"));
42+
}
43+
3944
@Test
4045
public void testAnnotatedInterface() {
4146
RestAssured.when().get("/interface").then().body(is("interface endpoint"));

0 commit comments

Comments
 (0)