[PR #792] [MERGED] codegen-java: Support not annotating constructor parameters #738

Closed
opened 2025-12-30 01:26:28 +01:00 by adam · 0 comments
Owner

📋 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: mainHead: codegen-java-params


📝 Commits (1)

  • b091f21 codegen-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:

  • 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>
adam added the pull-request label 2025-12-30 01:26:28 +01:00
adam closed this issue 2025-12-30 01:26:28 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pkl#738