diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index fbbf4e3f737e9..03a619ddf401c 100644
--- a/bom/application/pom.xml
+++ b/bom/application/pom.xml
@@ -40,7 +40,7 @@
1.2
1.0
1.13.0
- 2.11.0
+ 2.11.1
3.2.1
3.0.5
2.1.23
diff --git a/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Cloud.java b/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Cloud.java
index cffd9b6d8cd46..c9436f55f9c09 100644
--- a/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Cloud.java
+++ b/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Cloud.java
@@ -6,6 +6,7 @@
@Unremovable
@ConfigMapping(prefix = "cloud")
+@Prod
public interface Cloud {
@WithParentName
Server server();
diff --git a/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Prod.java b/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Prod.java
new file mode 100644
index 0000000000000..6010a1f6925b5
--- /dev/null
+++ b/integration-tests/smallrye-config/src/main/java/io/quarkus/it/smallrye/config/Prod.java
@@ -0,0 +1,29 @@
+package io.quarkus.it.smallrye.config;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.Payload;
+
+@Target({ ElementType.TYPE_USE, ElementType.FIELD })
+@Retention(RetentionPolicy.RUNTIME)
+@Constraint(validatedBy = Prod.Validator.class)
+public @interface Prod {
+ String message() default "server is not prod";
+
+ Class>[] groups() default {};
+
+ Class extends Payload>[] payload() default {};
+
+ class Validator implements ConstraintValidator {
+ @Override
+ public boolean isValid(final Cloud value, final ConstraintValidatorContext context) {
+ return value.server().equals("prod");
+ }
+ }
+}
diff --git a/integration-tests/smallrye-config/src/test/java/io/quarkus/it/smallrye/config/ServerResourceTest.java b/integration-tests/smallrye-config/src/test/java/io/quarkus/it/smallrye/config/ServerResourceTest.java
index 5d96721359ff5..060c3bb661708 100644
--- a/integration-tests/smallrye-config/src/test/java/io/quarkus/it/smallrye/config/ServerResourceTest.java
+++ b/integration-tests/smallrye-config/src/test/java/io/quarkus/it/smallrye/config/ServerResourceTest.java
@@ -102,7 +102,7 @@ void invalid() {
given().get("/server/validator/{prefix}", "cloud")
.then()
.statusCode(OK.getStatusCode())
- .body("errors", hasSize(8))
+ .body("errors", hasSize(9))
.body("errors", hasItem("cloud.log.days must be less than or equal to 15"))
.body("errors", hasItem("cloud.cors.origins[1].port must be greater than or equal to 8000"))
.body("errors", hasItem("cloud.info.name size must be between 0 and 3"))
@@ -110,6 +110,7 @@ void invalid() {
.body("errors", hasItem("cloud.info.alias[0] size must be between 0 and 3"))
.body("errors", hasItem("cloud.info.admins.root[1].username size must be between 0 and 4"))
.body("errors", hasItem("cloud.info.firewall.accepted[1] size must be between 8 and 15"))
- .body("errors", hasItem("cloud.proxy.timeout must be less than or equal to 10"));
+ .body("errors", hasItem("cloud.proxy.timeout must be less than or equal to 10"))
+ .body("errors", hasItem("server is not prod"));
}
}
diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml
index b2beb4cae59d9..43b6a56673f5a 100644
--- a/jakarta/rewrite.yml
+++ b/jakarta/rewrite.yml
@@ -424,7 +424,7 @@ recipeList:
newValue: 3.0
- org.openrewrite.maven.ChangePropertyValue:
key: smallrye-config.version
- newValue: 3.0.0-RC3
+ newValue: 3.0.0-RC4
- org.openrewrite.maven.ChangePropertyValue:
key: smallrye-fault-tolerance.version
newValue: 6.0.0-RC4