From 495c76236e1e81920aa0d0fa361615a3663f6a15 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Sun, 19 Jan 2025 18:11:49 -0600 Subject: [PATCH] [Apps Plugin] Fix Spring Boot plugin config (#611) The recent JIB removal broke the Spring Boot plugin config generation due to a Mustache complication with nested sections. This fixes that by ensuring that the `` configuration is always present regardless of what the user configures. --- .../SpringCloudStreamAppGeneratorMojo.java | 14 ++++++++++- .../src/main/resources/template/app-pom.xml | 24 +++++++------------ ...SpringCloudStreamAppGeneratorMojoTest.java | 2 +- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojo.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojo.java index ecd80e2d..cf08e115 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojo.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojo.java @@ -306,7 +306,7 @@ public class SpringCloudStreamAppGeneratorMojo extends AbstractMojo { }) .collect(Collectors.toList()); - app.setBootPluginConfiguration(this.application.getBootPluginConfiguration()); + app.setBootPluginConfiguration(deriveBootPluginConfiguration()); // ---------------------------------------------------------------------------------------------------------- // Project Generator @@ -325,6 +325,18 @@ public class SpringCloudStreamAppGeneratorMojo extends AbstractMojo { } } + private String deriveBootPluginConfiguration() { + String imageInfo = "{{app.containerImage.orgName}}/${project.artifactId}:{{app.containerImage.tag}}"; + String bootPluginConfig = this.application.getBootPluginConfiguration(); + if (!StringUtils.hasText(bootPluginConfig)) { + return "".formatted(imageInfo); + } + if (bootPluginConfig.contains("") && bootPluginConfig.contains("")) { + return bootPluginConfig; + } + return bootPluginConfig.replace(" - - org.springframework.boot - spring-boot-maven-plugin - - - {{app.containerImage.orgName}}/${project.artifactId}:{{app.containerImage.tag}} - - - {{#app.bootPluginConfiguration}} - {{this}} - {{/app.bootPluginConfiguration}} - - - - + + org.springframework.boot + spring-boot-maven-plugin + {{#app.bootPluginConfiguration}} + + {{this}} + + {{/app.bootPluginConfiguration}} + {{#app.containerImage.enableMetadata}}