diff --git a/docs/src/main/asciidoc/kotlin.adoc b/docs/src/main/asciidoc/kotlin.adoc
index 644dbb97176c2..ef117f0c8d0fb 100644
--- a/docs/src/main/asciidoc/kotlin.adoc
+++ b/docs/src/main/asciidoc/kotlin.adoc
@@ -174,7 +174,7 @@ Thus, the `all-open` Kotlin compiler plugin allows us to configure the compiler
we have specified that classes annotated with `jakarta.ws.rs.Path` should not be `final`.
If your application contains Kotlin classes annotated with `jakarta.enterprise.context.ApplicationScoped`
-for example, then `` needs to be added as well. Same goes for any class that needs to have a dynamic proxy created at runtime.
+for example, then `` needs to be added as well. Same goes for any class that needs to have a dynamic proxy created at runtime, like a JPA Entity class.
Future versions of Quarkus will configure the Kotlin compiler plugin in a way that will make it unnecessary to alter this configuration.
@@ -228,6 +228,7 @@ java {
allOpen { // <2>
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
@@ -296,6 +297,7 @@ java {
allOpen { // <2>
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle-kotlin-dsl/kotlin/build.tpl.qute.gradle.kts b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle-kotlin-dsl/kotlin/build.tpl.qute.gradle.kts
index ed99b5f16072d..ac4043c53faed 100644
--- a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle-kotlin-dsl/kotlin/build.tpl.qute.gradle.kts
+++ b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle-kotlin-dsl/kotlin/build.tpl.qute.gradle.kts
@@ -12,9 +12,11 @@ allOpen {
{#if quarkus.platform.version.startsWith("2.") or quarkus.platform.version.startsWith("1.")}
annotation("javax.ws.rs.Path")
annotation("javax.enterprise.context.ApplicationScoped")
+ annotation("javax.persistence.Entity")
{#else}
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
{/if}
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle/kotlin/build.tpl.qute.gradle b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle/kotlin/build.tpl.qute.gradle
index 062bb795e42e1..84fbbd20f1242 100644
--- a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle/kotlin/build.tpl.qute.gradle
+++ b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle/kotlin/build.tpl.qute.gradle
@@ -12,9 +12,11 @@ allOpen {
{#if quarkus.platform.version.startsWith("2.") or quarkus.platform.version.startsWith("1.")}
annotation("javax.ws.rs.Path")
annotation("javax.enterprise.context.ApplicationScoped")
+ annotation("javax.persistence.Entity")
{#else}
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
{/if}
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/kotlin/pom.tpl.qute.xml b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/kotlin/pom.tpl.qute.xml
index d3581f35c5b45..8ebaeba5f5e0b 100644
--- a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/kotlin/pom.tpl.qute.xml
+++ b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/kotlin/pom.tpl.qute.xml
@@ -51,9 +51,11 @@
{#if quarkus.platform.version.startsWith("2.") or quarkus.platform.version.startsWith("1.")}
+
{#else}
+
{/if}
diff --git a/integration-tests/gradle/src/main/resources/bean-in-testsources-project/build.gradle b/integration-tests/gradle/src/main/resources/bean-in-testsources-project/build.gradle
index 48484bcacc504..3b0999ab58824 100644
--- a/integration-tests/gradle/src/main/resources/bean-in-testsources-project/build.gradle
+++ b/integration-tests/gradle/src/main/resources/bean-in-testsources-project/build.gradle
@@ -30,6 +30,7 @@ version '1.0.0-SNAPSHOT'
allOpen {
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/integration-tests/gradle/src/main/resources/conditional-dependencies-kotlin/build.gradle.kts b/integration-tests/gradle/src/main/resources/conditional-dependencies-kotlin/build.gradle.kts
index fceb6a712b6f0..e5d23bacc50de 100644
--- a/integration-tests/gradle/src/main/resources/conditional-dependencies-kotlin/build.gradle.kts
+++ b/integration-tests/gradle/src/main/resources/conditional-dependencies-kotlin/build.gradle.kts
@@ -41,6 +41,7 @@ java {
allOpen {
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/integration-tests/gradle/src/main/resources/kotlin-grpc-project/build.gradle b/integration-tests/gradle/src/main/resources/kotlin-grpc-project/build.gradle
index e1b70c84d92d6..469b5fabff4fd 100644
--- a/integration-tests/gradle/src/main/resources/kotlin-grpc-project/build.gradle
+++ b/integration-tests/gradle/src/main/resources/kotlin-grpc-project/build.gradle
@@ -32,6 +32,7 @@ version '1.0.0-SNAPSHOT'
allOpen {
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/integration-tests/gradle/src/main/resources/multi-module-kotlin-project/build.gradle b/integration-tests/gradle/src/main/resources/multi-module-kotlin-project/build.gradle
index dcfe99f6eead4..c865e84396955 100644
--- a/integration-tests/gradle/src/main/resources/multi-module-kotlin-project/build.gradle
+++ b/integration-tests/gradle/src/main/resources/multi-module-kotlin-project/build.gradle
@@ -13,6 +13,7 @@ dependencies {
allOpen {
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/integration-tests/gradle/src/main/resources/multi-source-project/build.gradle b/integration-tests/gradle/src/main/resources/multi-source-project/build.gradle
index 44106837be7f0..09d3854d5292c 100644
--- a/integration-tests/gradle/src/main/resources/multi-source-project/build.gradle
+++ b/integration-tests/gradle/src/main/resources/multi-source-project/build.gradle
@@ -31,6 +31,7 @@ version '1.0.0-SNAPSHOT'
allOpen {
annotation("jakarta.ws.rs.Path")
annotation("jakarta.enterprise.context.ApplicationScoped")
+ annotation("jakarta.persistence.Entity")
annotation("io.quarkus.test.junit.QuarkusTest")
}
diff --git a/integration-tests/hibernate-reactive-panache-kotlin/pom.xml b/integration-tests/hibernate-reactive-panache-kotlin/pom.xml
index aa3b0d3bd54e3..aaf32c7cf76b2 100644
--- a/integration-tests/hibernate-reactive-panache-kotlin/pom.xml
+++ b/integration-tests/hibernate-reactive-panache-kotlin/pom.xml
@@ -214,6 +214,7 @@
+
diff --git a/integration-tests/kotlin/src/test/resources/projects/classic-kotlin/pom.xml b/integration-tests/kotlin/src/test/resources/projects/classic-kotlin/pom.xml
index 9d7b96435010b..11e69627d833a 100644
--- a/integration-tests/kotlin/src/test/resources/projects/classic-kotlin/pom.xml
+++ b/integration-tests/kotlin/src/test/resources/projects/classic-kotlin/pom.xml
@@ -95,6 +95,7 @@
+
diff --git a/integration-tests/kotlin/src/test/resources/projects/external-reloadable-artifacts/app/pom.xml b/integration-tests/kotlin/src/test/resources/projects/external-reloadable-artifacts/app/pom.xml
index a5cc869a832c5..6038adf509dfc 100644
--- a/integration-tests/kotlin/src/test/resources/projects/external-reloadable-artifacts/app/pom.xml
+++ b/integration-tests/kotlin/src/test/resources/projects/external-reloadable-artifacts/app/pom.xml
@@ -82,6 +82,7 @@
+
diff --git a/integration-tests/kotlin/src/test/resources/projects/kotlin-compiler-args/pom.xml b/integration-tests/kotlin/src/test/resources/projects/kotlin-compiler-args/pom.xml
index eb816331807ff..c264411637c04 100644
--- a/integration-tests/kotlin/src/test/resources/projects/kotlin-compiler-args/pom.xml
+++ b/integration-tests/kotlin/src/test/resources/projects/kotlin-compiler-args/pom.xml
@@ -109,6 +109,7 @@
+
-Xemit-jvm-type-annotations
diff --git a/integration-tests/logging-panache-kotlin/pom.xml b/integration-tests/logging-panache-kotlin/pom.xml
index f689140cd745f..366fccc401d49 100644
--- a/integration-tests/logging-panache-kotlin/pom.xml
+++ b/integration-tests/logging-panache-kotlin/pom.xml
@@ -112,6 +112,7 @@
+
diff --git a/integration-tests/resteasy-reactive-kotlin/prod-mode/pom.xml b/integration-tests/resteasy-reactive-kotlin/prod-mode/pom.xml
index 19345f4cd97e9..48c89d5a180a9 100644
--- a/integration-tests/resteasy-reactive-kotlin/prod-mode/pom.xml
+++ b/integration-tests/resteasy-reactive-kotlin/prod-mode/pom.xml
@@ -152,6 +152,7 @@
+
diff --git a/integration-tests/resteasy-reactive-kotlin/standard/pom.xml b/integration-tests/resteasy-reactive-kotlin/standard/pom.xml
index 758d622b759c3..bfebbdc1a1e42 100644
--- a/integration-tests/resteasy-reactive-kotlin/standard/pom.xml
+++ b/integration-tests/resteasy-reactive-kotlin/standard/pom.xml
@@ -240,6 +240,7 @@
+