Motivation:
Spring Boot configuration classes neither require nor benefit from annotating constructor parameters with their name. The same is true for pkl-config-java configuration classes compiled with -parameter.
Changes:
add a noParamsAnnotation parameter to CLI, Gradle plugin, CliJavaCodeGeneratorOptions, and JavaCodegenOptions
default to annotating constructor parameters unless generateSpringBootConfig is set
fail if both paramsAnnotation and noParamsAnnotation are set
add tests
update docs
Result:
Generated code does not contain unnecessary annotations.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/apple/pkl/pull/792
**Author:** [@odenix](https://github.com/odenix)
**Created:** 11/8/2024
**Status:** ✅ Merged
**Merged:** 12/13/2024
**Merged by:** [@bioball](https://github.com/bioball)
**Base:** `main` ← **Head:** `codegen-java-params`
---
### 📝 Commits (1)
- [`b091f21`](https://github.com/apple/pkl/commit/b091f21f4b4ef7ff44762b80bfd7677e5e72b1a5) codegen-java: Support not annotating constructor parameters
### 📊 Changes
**13 files changed** (+185 additions, -114 deletions)
<details>
<summary>View changed files</summary>
📝 `docs/modules/java-binding/pages/codegen.adoc` (+10 -6)
📝 `docs/modules/java-binding/partials/cli-codegen-options.adoc` (+1 -1)
📝 `docs/modules/kotlin-binding/pages/codegen.adoc` (+1 -1)
📝 `docs/modules/pkl-gradle/pages/index.adoc` (+27 -8)
📝 `docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc` (+8 -1)
📝 `pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/CliJavaCodeGeneratorOptions.kt` (+17 -7)
📝 `pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt` (+28 -22)
📝 `pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/Main.kt` (+21 -20)
📝 `pkl-codegen-java/src/test/kotlin/org/pkl/codegen/java/JavaCodeGeneratorTest.kt` (+55 -38)
📝 `pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/CliKotlinCodeGeneratorOptions.kt` (+2 -2)
📝 `pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt` (+2 -2)
📝 `pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/Main.kt` (+4 -6)
📝 `pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java` (+9 -0)
</details>
### 📄 Description
Motivation:
Spring Boot configuration classes neither require nor benefit from annotating constructor parameters with their name. The same is true for pkl-config-java configuration classes compiled with `-parameter`.
Changes:
- add a `noParamsAnnotation` parameter to CLI, Gradle plugin, CliJavaCodeGeneratorOptions, and JavaCodegenOptions
- default to annotating constructor parameters unless `generateSpringBootConfig` is set
- fail if both `paramsAnnotation` and `noParamsAnnotation` are set
- add tests
- update docs
Result:
Generated code does not contain unnecessary annotations.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/apple/pkl/pull/792
Author: @odenix
Created: 11/8/2024
Status: ✅ Merged
Merged: 12/13/2024
Merged by: @bioball
Base:
main← Head:codegen-java-params📝 Commits (1)
b091f21codegen-java: Support not annotating constructor parameters📊 Changes
13 files changed (+185 additions, -114 deletions)
View changed files
📝
docs/modules/java-binding/pages/codegen.adoc(+10 -6)📝
docs/modules/java-binding/partials/cli-codegen-options.adoc(+1 -1)📝
docs/modules/kotlin-binding/pages/codegen.adoc(+1 -1)📝
docs/modules/pkl-gradle/pages/index.adoc(+27 -8)📝
docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc(+8 -1)📝
pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/CliJavaCodeGeneratorOptions.kt(+17 -7)📝
pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt(+28 -22)📝
pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/Main.kt(+21 -20)📝
pkl-codegen-java/src/test/kotlin/org/pkl/codegen/java/JavaCodeGeneratorTest.kt(+55 -38)📝
pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/CliKotlinCodeGeneratorOptions.kt(+2 -2)📝
pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt(+2 -2)📝
pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/Main.kt(+4 -6)📝
pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java(+9 -0)📄 Description
Motivation:
Spring Boot configuration classes neither require nor benefit from annotating constructor parameters with their name. The same is true for pkl-config-java configuration classes compiled with
-parameter.Changes:
noParamsAnnotationparameter to CLI, Gradle plugin, CliJavaCodeGeneratorOptions, and JavaCodegenOptionsgenerateSpringBootConfigis setparamsAnnotationandnoParamsAnnotationare setResult:
Generated code does not contain unnecessary annotations.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.