From a09f520055f3bd83d68bf97de2905f7539c47b30 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 5 Jun 2024 14:41:45 +0200 Subject: [PATCH 1/5] Update plugin workflows to use Java 8. --- .github/workflows/apps-plugin-milestone.yml | 12 ++-- .../apps-plugin-next-dev-version.yml | 6 +- .github/workflows/apps-plugin-pr.yml | 59 +++++++++++++++++++ .github/workflows/apps-plugin-release.yml | 8 +-- .github/workflows/apps-plugin-snapshot.yml | 6 +- .github/workflows/ci-pr.yml | 6 +- 6 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/apps-plugin-pr.yml diff --git a/.github/workflows/apps-plugin-milestone.yml b/.github/workflows/apps-plugin-milestone.yml index 29eb5107..92091b96 100644 --- a/.github/workflows/apps-plugin-milestone.yml +++ b/.github/workflows/apps-plugin-milestone.yml @@ -6,10 +6,6 @@ on: milestoneVersion: description: "Milestone version (no dash, eg. 'M1')" required: true - -env: - MAVEN_THREADS: '-T 0.5C' - jobs: build_deploy_milestone: if: ${{ github.repository == 'spring-cloud/stream-applications' }} @@ -21,8 +17,8 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - java-version: 17 - distribution: temurin + java-version: 8 + distribution: liberica - uses: jvalkeal/setup-maven@v1 with: maven-version: 3.8.8 @@ -39,6 +35,7 @@ jobs: restore-keys: | ${{ runner.os }}-m2- - name: Configure JFrog Cli + shell: bash run: | jfrog rt mvnc \ --server-id-resolve=repo.spring.io \ @@ -50,9 +47,10 @@ jobs: echo JFROG_CLI_BUILD_NAME=spring-cloud-dataflow-apps-plugin-main-milestone >> $GITHUB_ENV echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV - name: Build and Publish + shell: bash run: | jfrog rt mvn build-helper:parse-version versions:set \ - -gs settings.xml \ + -s settings.xml \ -Pstagingmilestone \ -DprocessAllModules=true \ -DgenerateBackupPoms=false \ diff --git a/.github/workflows/apps-plugin-next-dev-version.yml b/.github/workflows/apps-plugin-next-dev-version.yml index bad9ba85..ec610ae5 100644 --- a/.github/workflows/apps-plugin-next-dev-version.yml +++ b/.github/workflows/apps-plugin-next-dev-version.yml @@ -17,8 +17,8 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - java-version: 17 - distribution: temurin + java-version: 8 + distribution: liberica - uses: jvalkeal/setup-maven@v1 with: maven-version: 3.8.8 @@ -57,7 +57,7 @@ jobs: -B jfrog rt build-clean mvn clean - jfrog rt mvn -gs settings.xml install -DskipTests -B + jfrog rt mvn -s settings.xml install -DskipTests -B jfrog rt build-publish - name: Commit next snapshot version changes uses: jvalkeal/build-zoo-handler@v0.0.4 diff --git a/.github/workflows/apps-plugin-pr.yml b/.github/workflows/apps-plugin-pr.yml new file mode 100644 index 00000000..f71a6078 --- /dev/null +++ b/.github/workflows/apps-plugin-pr.yml @@ -0,0 +1,59 @@ +name: 'CI - PR' + +on: + pull_request: + paths-ignore: + - 'applications/**' + - 'stream-applications-build/**' + - 'stream-applications-release-train/**' + +env: + MAIN_PATH: 'build-dir' + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MAVEN_THREADS: 'true' +jobs: + build: + if: github.repository == 'spring-cloud/stream-applications' + runs-on: ubuntu-latest + defaults: + run: + working-directory: spring-cloud-dataflow-apps-plugin + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: 8 + distribution: liberica + - uses: jvalkeal/setup-maven@v1 + with: + maven-version: 3.8.8 + maven-mirror: 'https://dlcdn.apache.org/maven/maven-3/' + - uses: jfrog/setup-jfrog-cli@v3 + with: + version: 1.46.4 + env: + JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} + - uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + - name: Build and Publish + shell: bash + env: + ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} + ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} + run: | + ./mvnw -s settings.xml -B install + - name: Capture Test Results + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: test-results + path: '**/target/surefire-reports/**/*.*' + retention-days: 7 + if-no-files-found: ignore + - name: Clean cache + run: | + find ~/.m2/repository -type d -name '*SNAPSHOT' | xargs rm -fr diff --git a/.github/workflows/apps-plugin-release.yml b/.github/workflows/apps-plugin-release.yml index 6292f891..7f64a4dd 100644 --- a/.github/workflows/apps-plugin-release.yml +++ b/.github/workflows/apps-plugin-release.yml @@ -3,8 +3,6 @@ name: Apps Plugin (Release) on: workflow_dispatch: -env: - MAVEN_THREADS: '-T 0.5C' jobs: build_deploy_release: @@ -17,8 +15,8 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - java-version: 17 - distribution: temurin + java-version: 8 + distribution: liberica - uses: jvalkeal/setup-maven@v1 with: maven-version: 3.8.8 @@ -52,7 +50,7 @@ jobs: - name: Build and Publish run: | jfrog rt mvn build-helper:parse-version versions:set \ - -gs settings.xml \ + -s settings.xml \ -Pstagingrelease \ -DprocessAllModules=true \ -DgenerateBackupPoms=false \ diff --git a/.github/workflows/apps-plugin-snapshot.yml b/.github/workflows/apps-plugin-snapshot.yml index fa62952b..7f55215f 100644 --- a/.github/workflows/apps-plugin-snapshot.yml +++ b/.github/workflows/apps-plugin-snapshot.yml @@ -25,8 +25,8 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - java-version: 17 - distribution: temurin + java-version: 8 + distribution: liberica - uses: jvalkeal/setup-maven@v1 with: maven-version: 3.8.8 @@ -56,7 +56,7 @@ jobs: - name: Build and Publish run: | jfrog rt build-clean - jfrog rt mvn -gs settings.xml -B install + jfrog rt mvn -s settings.xml -B install jfrog rt build-publish - name: Capture Test Results if: ${{ always() }} diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml index 21746752..5295d850 100644 --- a/.github/workflows/ci-pr.yml +++ b/.github/workflows/ci-pr.yml @@ -2,6 +2,8 @@ name: 'CI - PR' on: pull_request: + paths-ignore: + - 'spring-cloud-dataflow-apps-plugin/**' env: MAIN_PATH: 'build-dir' @@ -29,7 +31,7 @@ jobs: if: ${{ github.base_ref != 'main' }} uses: actions/setup-java@v1 with: - java-version: ${{ needs.parameters.outputs.jdk_build }} + java-version: '8' - name: 'Configure: Install GraalVM' if: ${{ github.base_ref == 'main' }} uses: graalvm/setup-graalvm@v1 @@ -52,6 +54,8 @@ jobs: - name: 'Action: verify changed modules' shell: bash env: + ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} + ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} VERBOSE: ${{ github.debug && 'true' || '' }} run: | PR=$(echo "${{ github.ref_name }}" | grep -o '[[:digit:]]*') From d4200d550e96eeca5dcb1c624c14fe956687c500 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 5 Jun 2024 14:42:38 +0200 Subject: [PATCH 2/5] Remove JIB plugin. Provide for spring-boot-maven-plugin configuration for build-image. Provide tests for spring-boot-maven-plugin configuration. --- spring-cloud-dataflow-apps-plugin/pom.xml | 2 +- .../settings.xml | 27 ++++++++++++++ .../pom.xml | 2 +- ...onfigurationMetadataDocumentationMojo.java | 15 +++++--- .../pom.xml | 4 +- .../src/main/resources/template/app-pom.xml | 37 ++----------------- .../resources/template/apps-modules-pom.xml | 6 +-- .../dataflow/app/plugin/MojoHarnessTest.java | 20 +++++----- ...SpringCloudStreamAppGeneratorMojoTest.java | 29 +++------------ .../resources/unit/http-source-apps/pom.xml | 12 +++--- .../pom.xml | 6 +-- .../app/plugin/MetadataAggregationMojo.java | 2 +- .../src/main/asciidoc/overview.adoc | 21 +++++++---- 13 files changed, 83 insertions(+), 100 deletions(-) diff --git a/spring-cloud-dataflow-apps-plugin/pom.xml b/spring-cloud-dataflow-apps-plugin/pom.xml index 1a481422..24169ec5 100644 --- a/spring-cloud-dataflow-apps-plugin/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.springframework.cloud spring-cloud-dataflow-apps-plugin-parent - 1.0.15-SNAPSHOT + 1.1.0-SNAPSHOT spring-cloud-dataflow-apps-plugin-parent Spring Cloud Dataflow Apps Plugin Parent pom diff --git a/spring-cloud-dataflow-apps-plugin/settings.xml b/spring-cloud-dataflow-apps-plugin/settings.xml index a36e075d..c6f9602a 100644 --- a/spring-cloud-dataflow-apps-plugin/settings.xml +++ b/spring-cloud-dataflow-apps-plugin/settings.xml @@ -1,4 +1,31 @@ + + + repo.spring.io + ${env.ARTIFACTORY_USERNAME} + ${env.ARTIFACTORY_PASSWORD} + + + spring-snapshots + ${env.ARTIFACTORY_USERNAME} + ${env.ARTIFACTORY_PASSWORD} + + + spring-milestones + ${env.ARTIFACTORY_USERNAME} + ${env.ARTIFACTORY_PASSWORD} + + + spring-staging + ${env.ARTIFACTORY_USERNAME} + ${env.ARTIFACTORY_PASSWORD} + + + spring-releases + ${env.ARTIFACTORY_USERNAME} + ${env.ARTIFACTORY_PASSWORD} + + pr diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/pom.xml index 07f5991a..f7a10e2b 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-plugin-parent - 1.0.15-SNAPSHOT + 1.1.0-SNAPSHOT .. diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/ConfigurationMetadataDocumentationMojo.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/ConfigurationMetadataDocumentationMojo.java index 714baf08..7ef62e49 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/ConfigurationMetadataDocumentationMojo.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-docs-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/ConfigurationMetadataDocumentationMojo.java @@ -30,6 +30,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -76,10 +77,12 @@ public class ConfigurationMetadataDocumentationMojo extends AbstractMojo { static final String CONFIGURATION_PROPERTIES_END_TAG = "//end::configuration-properties[]"; - private static final Map APPTYPE_TO_FUNCTIONTYPE = Map.of( - "source", "supplier", - "processor", "function", - "sink", "consumer"); + private static final Map APPTYPE_TO_FUNCTIONTYPE = new HashMap<>(); + static { + APPTYPE_TO_FUNCTIONTYPE.put("source", "supplier"); + APPTYPE_TO_FUNCTIONTYPE.put("processor", "function"); + APPTYPE_TO_FUNCTIONTYPE.put("sink", "consumer"); + } private BootApplicationConfigurationMetadataResolver metadataResolver = new BootApplicationConfigurationMetadataResolver( imageName -> null); @@ -166,8 +169,8 @@ private void handleExternalLinkToFunctionsCatalog(Artifact artifact, PrintWriter String appName = artifactId.substring(0, artifactId.lastIndexOf('-')); String appType = artifactId.substring(artifactId.lastIndexOf('-') + 1); String functionType = APPTYPE_TO_FUNCTIONTYPE.get(appType); - String functionName = "spring-%s-%s".formatted(appName, functionType); - String url = "https://github.com/spring-cloud/spring-functions-catalog/tree/main/%s/%s#configuration-options[See Spring Functions Catalog for configuration options].".formatted(functionType, functionName); + String functionName = String.format("spring-%s-%s", appName, functionType); + String url = String.format("https://github.com/spring-cloud/spring-functions-catalog/tree/main/%s/%s#configuration-options[See Spring Functions Catalog for configuration options].", functionType, functionName); out.println(url); } diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/pom.xml index 6c2bee41..5008bd07 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/pom.xml @@ -10,7 +10,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-plugin-parent - 1.0.15-SNAPSHOT + 1.1.0-SNAPSHOT .. @@ -19,7 +19,7 @@ 3.9.2 3.9.0 1.15 - 6.0.8 + 5.3.36 2.12.0 diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml index 6ff78581..3ac1d900 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml @@ -138,45 +138,16 @@ org.springframework.boot spring-boot-maven-plugin - {{#app.bootPluginConfiguration}} + + {{app.containerImage.orgName}}/${project.artifactId}:{{app.containerImage.tag}} + + {{#app.bootPluginConfiguration}} {{this}} - {{/app.bootPluginConfiguration}} - - - - com.google.cloud.tools - jib-maven-plugin - 3.3.0 - - - {{app.containerImage.baseImage}} - - - {{app.containerImage.orgName}}/${project.artifactId}:{{app.containerImage.tag}} - - - USE_CURRENT_TIMESTAMP - {{app.containerImage.format}} - {{#app.containerImage.enableMetadata}} - - - ${org.springframework.cloud.dataflow.spring.configuration.metadata.json} - - ${project.artifactId} - ${project.version} - - {{/app.containerImage.enableMetadata}} - - {{#app.containerImage.enableMetadata}} - org.codehaus.mojo properties-maven-plugin diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml index e3c8d34b..fa6c0ebb 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml @@ -80,11 +80,7 @@ - - com.google.cloud.tools - jib-maven-plugin - 3.3.0 - + diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java index 46f759f1..6f2b9b80 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java @@ -74,7 +74,7 @@ public void testSomething() throws Exception { Model pomModel = getModel(new File("./target/apps")); List dependencies = pomModel.getDependencies(); - assertThat(dependencies.size()).isEqualTo(15); + assertThat(dependencies.size()).isGreaterThanOrEqualTo(15); assertThat(dependencies.stream() .filter(d -> d.getArtifactId().equals("http-supplier")).count()).isEqualTo(1); @@ -87,7 +87,7 @@ public void testSomething() throws Exception { Parent parent = pomModel.getParent(); assertThat(parent.getArtifactId()).isEqualTo("spring-boot-starter-parent"); - assertThat(parent.getVersion()).isEqualTo("3.3.0.M3"); + assertThat(parent.getVersion()).isEqualTo("3.3.0"); assertThat(pomModel.getArtifactId()).isEqualTo("http-source-kafka"); assertThat(pomModel.getGroupId()).isEqualTo("org.springframework.cloud.stream.app.test"); @@ -99,15 +99,13 @@ public void testSomething() throws Exception { assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("spring-boot-maven-plugin")).count()).isEqualTo(1); assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("properties-maven-plugin")).count()).isEqualTo(1); - assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).count()).isEqualTo(1); - - Plugin jibPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).findFirst().get(); - assertThat(jibPlugin.getConfiguration().toString()) - .contains("" + - "${org.springframework.cloud.dataflow.spring.configuration.metadata.json}" + - ""); - assertThat(jibPlugin.getConfiguration().toString()).contains("testspringcloud/${project.artifactId}:3.0.0.BUILD-SNAPSHOT"); - assertThat(jibPlugin.getConfiguration().toString()).contains("globalBaseImage"); + + Plugin springBootPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("spring-boot-maven-plugin")).findFirst().get(); + assertThat(springBootPlugin).isNotNull(); + assertThat(springBootPlugin.getConfiguration()).isNotNull(); + assertThat(springBootPlugin.getConfiguration().toString()).containsPattern("\\\\s*" + + "\\.+/\\$\\{project.artifactId\\}:\\d+\\.\\d+\\.\\d+.*\\\\s*" + + "\\"); assertThat(pomModel.getRepositories().size()).isEqualTo(5); assertThat(pomModel.getRepositories().stream().map(r -> r.getId()).collect(Collectors.toList())) diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java index 19ef4ff7..4fa47d2f 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java @@ -31,7 +31,6 @@ import org.apache.maven.model.Parent; import org.apache.maven.model.Plugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.junit.Before; import org.junit.Rule; @@ -85,7 +84,7 @@ public void before() throws NoSuchFieldException { application.getMaven().getDependencies().add(dep); // BOM - application.setBootVersion("3.3.0.M3"); + application.setBootVersion("3.3.0"); application.getMetadata().setMavenPluginVersion("1.0.2.BUILD-SNAPSHOT"); setMojoProperty("application", application); @@ -128,13 +127,6 @@ public void testWithDisabledContainerMetadata() throws Exception { // The properties-maven-plugin should not be defined if the container metadata is not enabled. assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("properties-maven-plugin")).count()).isEqualTo(0); - assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).count()).isEqualTo(1); - - Plugin jibPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).findFirst().get(); - assertThat(jibPlugin.getConfiguration().toString()) - .doesNotContain("" + - "${org.springframework.cloud.dataflow.spring.configuration.metadata.json}" + - ""); } @Test @@ -166,11 +158,7 @@ public void testCustomBootMavenPluginConfiguration() throws Exception { List plugins = pomModel.getBuild().getPlugins(); final Optional bootPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("spring-boot-maven-plugin")).findFirst(); assertThat(bootPlugin.isPresent()).isTrue(); - final Plugin plugin = bootPlugin.get(); - final Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration(); - assertThat(configuration.getValue().contains("")).isTrue(); - assertThat(configuration.getValue().contains("jython-standalone")).isTrue(); - assertThat(configuration.getValue().contains("")).isTrue(); + } private void assertGeneratedPomXml(File rootPath) { @@ -178,7 +166,7 @@ private void assertGeneratedPomXml(File rootPath) { Model pomModel = getModel(rootPath); List dependencies = pomModel.getDependencies(); - assertThat(dependencies.size()).isEqualTo(3); + assertThat(dependencies.size()).isGreaterThanOrEqualTo(3); assertThat(dependencies.stream() .filter(d -> d.getArtifactId().equals("log-consumer")).count()).isEqualTo(1); @@ -188,7 +176,7 @@ private void assertGeneratedPomXml(File rootPath) { Parent parent = pomModel.getParent(); assertThat(parent.getArtifactId()).isEqualTo("spring-boot-starter-parent"); - assertThat(parent.getVersion()).isEqualTo("3.3.0.M3"); + assertThat(parent.getVersion()).isEqualTo("3.3.0"); assertThat(pomModel.getArtifactId()).isEqualTo("log-sink-kafka"); assertThat(pomModel.getGroupId()).isEqualTo("org.springframework.cloud.stream.app"); @@ -199,14 +187,7 @@ private void assertGeneratedPomXml(File rootPath) { List plugins = pomModel.getBuild().getPlugins(); assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("spring-boot-maven-plugin")).count()).isEqualTo(1); assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("properties-maven-plugin")).count()).isEqualTo(1); - assertThat(plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).count()).isEqualTo(1); - - Plugin jibPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("jib-maven-plugin")).findFirst().get(); - assertThat(jibPlugin.getConfiguration().toString()) - .contains("" + - "${org.springframework.cloud.dataflow.spring.configuration.metadata.json}" + - ""); - assertThat(jibPlugin.getConfiguration().toString()).contains("base/image"); + assertThat(pomModel.getRepositories().size()).isEqualTo(2); } diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml index 9911b0f1..20bc385a 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml @@ -11,10 +11,10 @@ jar - 3.3.0.M3 + 3.3.0 5.0.0-SNAPSHOT 2.4.1 - 1.0.13-SNAPSHOT + 1.1.0-SNAPSHOT 5.0.0-SNAPSHOT @@ -29,7 +29,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-generator-plugin - 1.0.0-SNAPSHOT + ${app-metadata-maven-plugin-version} app-gen @@ -44,7 +44,7 @@ ${spring-boot.version} - 3.3.0-M1 + 3.3.0 globalOrgName @@ -219,7 +219,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-generator-plugin - 1.0.0-SNAPSHOT + ${app-metadata-maven-plugin-version} ./target/apps @@ -281,7 +281,7 @@ org.springframework.cloud spring-cloud-app-starter-metadata-maven-plugin - 2.0.0.BUILD-SNAPSHOT + 3.3.0 true diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/pom.xml index 0200db61..e250f8c4 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/pom.xml @@ -8,7 +8,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-plugin-parent - 1.0.15-SNAPSHOT + 1.1.0-SNAPSHOT .. @@ -17,8 +17,8 @@ 4.12 3.11.1 1.8 - 5.2.8.RELEASE - 1.26 + 5.3.36 + 1.33 diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/MetadataAggregationMojo.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/MetadataAggregationMojo.java index 485657b4..a9862509 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/MetadataAggregationMojo.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-metadata-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/MetadataAggregationMojo.java @@ -196,7 +196,7 @@ private void storeFilteredMetadata() throws MojoExecutionException { new File(projectMetaInfFolder, "spring-configuration-metadata-encoded.properties"))) { ConfigurationMetadata metadata = gatherConfigurationMetadata(metadataFilter); String escapedJson = StringEscapeUtils.escapeJson(toJson(metadata)); - fileWriter.write("org.springframework.cloud.dataflow.spring.configuration.metadata.json=" + escapedJson); + fileWriter.write("org.springframework.cloud.dataflow.spring.configuration.metadata.json=\"" + escapedJson + "\""); } catch (IOException e) { throw new MojoExecutionException("Error creating file ", e); diff --git a/stream-applications-release-train/stream-applications-docs/src/main/asciidoc/overview.adoc b/stream-applications-release-train/stream-applications-docs/src/main/asciidoc/overview.adoc index 4495ab42..2f8e71fe 100644 --- a/stream-applications-release-train/stream-applications-docs/src/main/asciidoc/overview.adoc +++ b/stream-applications-release-train/stream-applications-docs/src/main/asciidoc/overview.adoc @@ -118,7 +118,12 @@ cd applications/sink/log-sink/apps/log-sink-rabbit ---- ==== Building a Docker image -The apps use the https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin[Jib Maven Plugin] to build and publish the Docker image. + +[source,shell] +---- +./mvnw spring-boot:build-image +---- + If you have made some changes to an app, you may want to build the image and test it locally. NOTE: If you plan to use the image with minikube, run the following command before building the image: @@ -132,17 +137,19 @@ To build the image in your local registry: [source,shell] ---- -./mvnw clean package jib:dockerBuild +./mvnw clean package spring-boot:build-image ---- To publish the image to a remote registry: [source,shell] ---- -./mvnw jib:build \ - -Djib.to.image=myregistry/myimage:latest \ - -Djib.to.auth.username=$USERNAME \ - -Djib.to.auth.password=$PASSWORD +./mvnw spring-boot:build-image \ + -Ddocker.publishRegistry.username=registry-user \ + -Ddocker.publishRegistry.password=registry-secret \ + -Ddocker.publishRegistry.url=docker.private-registry.com \ + -Dspring-boot.build-image.publish=true \ + -Dspring-boot.build-image.imageName=docker.private-registry.com/library/my-app:v1 ---- == Patching Pre-built Applications @@ -240,7 +247,7 @@ For example, if we have to update Spring Cloud Stream to `3.2.4-SNAPSHOT`, this org.springframework.cloud spring-cloud-stream-dependencies - 4.0.3 + 4.1.2 pom import From 1a98524ec339601cb82e7dc151febc4d9191f332 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 5 Jun 2024 14:44:38 +0200 Subject: [PATCH 3/5] Update properties-maven-plugin to 1.2.1 --- .../src/main/resources/template/app-pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml index 3ac1d900..628b249a 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml @@ -151,7 +151,7 @@ org.codehaus.mojo properties-maven-plugin - 1.0.0 + 1.2.1 process-classes From 7fb47652d7f5f4cda529b5d2cf2fa467bc43603f Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 5 Jun 2024 14:45:04 +0200 Subject: [PATCH 4/5] Update Surefire plugin to 3.2.5 --- .../src/main/resources/template/app-pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml index 628b249a..3c85acf2 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml @@ -203,7 +203,7 @@ maven-surefire-plugin - 2.21.0 + 3.2.5 1 1 From cb6c08cf06e639f1cfe9a472186b54145dd78694 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 31 Jul 2024 18:10:27 +0200 Subject: [PATCH 5/5] Improve container image naming. Add nativePlugin profile. spring-boot:build-image -Pnative should suffice. --- .../SpringCloudStreamAppGeneratorMojo.java | 47 +++++++++++++++++-- .../app/plugin/generator/AppDefinition.java | 28 ++++++++++- .../src/main/resources/template/app-pom.xml | 19 ++++++-- .../resources/template/apps-modules-pom.xml | 8 +++- .../dataflow/app/plugin/MojoHarnessTest.java | 8 +++- ...SpringCloudStreamAppGeneratorMojoTest.java | 28 ++++++----- .../resources/unit/http-source-apps/pom.xml | 20 +++++++- 7 files changed, 132 insertions(+), 26 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..9acc462c 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 @@ -129,6 +129,22 @@ public void execute() throws MojoFailureException, MojoExecutionException { this.global.getApplication().getFunctionDefinition() : this.application.getFunctionDefinition(); app.setFunctionDefinition(applicationFunctionDefinition); //TODO is applicationFunctionDefinition required? + String appBootPluginConfiguration = StringUtils.hasText(this.application.getBootPluginConfiguration()) ? + this.application.getBootPluginConfiguration() : this.global.getApplication().getBootPluginConfiguration(); + app.setBootPluginConfiguration(appBootPluginConfiguration); + + String appBootExecution = StringUtils.hasText(this.application.getBootExecution()) ? + this.application.getBootExecution() : this.global.getApplication().getBootExecution(); + app.setBootExecution(appBootExecution); + + Boolean skipNativeTests = this.application.skipNativeTests != null ? this.application.skipNativeTests : + this.global.application.skipNativeTests != null ? this.global.application.skipNativeTests : Boolean.FALSE; + app.setSkipNativeTests(skipNativeTests); + + String nativeConfiguration = StringUtils.hasText(this.application.getNativeConfiguration()) ? this.application.getNativeConfiguration() : + this.global.getApplication().getNativeConfiguration(); + app.setNativeConfiguration(nativeConfiguration); + String metadataMavenPluginVersion = StringUtils.isEmpty(this.application.getMetadata().getMavenPluginVersion()) ? this.global.getApplication().getMetadata().getMavenPluginVersion() : this.application.getMetadata().getMavenPluginVersion(); if (StringUtils.isEmpty(metadataMavenPluginVersion)) { @@ -306,8 +322,6 @@ else if (StringUtils.hasText(this.global.getApplication().getContainerImage().ge }) .collect(Collectors.toList()); - app.setBootPluginConfiguration(this.application.getBootPluginConfiguration()); - // ---------------------------------------------------------------------------------------------------------- // Project Generator // ---------------------------------------------------------------------------------------------------------- @@ -465,6 +479,9 @@ public static class Application { private final Maven maven = new Maven(); private String bootPluginConfiguration; + private String bootExecution; + private Boolean skipNativeTests; + private String nativeConfiguration; public String getBootPluginConfiguration() { return bootPluginConfiguration; @@ -474,6 +491,30 @@ public void setBootPluginConfiguration(String bootPluginConfiguration) { this.bootPluginConfiguration = bootPluginConfiguration; } + public String getBootExecution() { + return bootExecution; + } + + public void setBootExecution(String bootExecution) { + this.bootExecution = bootExecution; + } + + public Boolean getSkipNativeTests() { + return skipNativeTests; + } + + public void setSkipNativeTests(Boolean skipNativeTests) { + this.skipNativeTests = skipNativeTests; + } + + public String getNativeConfiguration() { + return nativeConfiguration; + } + + public void setNativeConfiguration(String nativeConfiguration) { + this.nativeConfiguration = nativeConfiguration; + } + public Map getProperties() { return properties; } @@ -631,7 +672,7 @@ public static class ContainerImage { /** * Base images to be used by the target container image. */ - private String baseImage; + private String baseImage = "${project.artifactId}"; /** * Enable or disable the inclusion of application's metadata into the image's labels. diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/generator/AppDefinition.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/generator/AppDefinition.java index ae33ec9d..d239c728 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/generator/AppDefinition.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/java/org/springframework/cloud/dataflow/app/plugin/generator/AppDefinition.java @@ -87,8 +87,18 @@ public class AppDefinition { * Application metadata related configurations to be applied for this App definition. */ private final Metadata metadata = new Metadata(); - + private String bootExecution; private String bootPluginConfiguration; + private Boolean skipNativeTests; + private String nativeConfiguration; + + public String getBootExecution() { + return bootExecution; + } + + public void setBootExecution(String bootExecution) { + this.bootExecution = bootExecution; + } public String getBootPluginConfiguration() { return bootPluginConfiguration; @@ -98,6 +108,22 @@ public void setBootPluginConfiguration(String bootPluginConfiguration) { this.bootPluginConfiguration = bootPluginConfiguration; } + public String getNativeConfiguration() { + return nativeConfiguration; + } + + public void setNativeConfiguration(String nativeConfiguration) { + this.nativeConfiguration = nativeConfiguration; + } + + public Boolean getSkipNativeTests() { + return skipNativeTests; + } + + public void setSkipNativeTests(Boolean skipNativeTests) { + this.skipNativeTests = skipNativeTests; + } + public String getName() { return name; } diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml index 3c85acf2..398960de 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/app-pom.xml @@ -138,16 +138,24 @@ org.springframework.boot spring-boot-maven-plugin + {{#app.bootExecution}} + + + {{this}} + + {{/app.bootExecution}} - - {{app.containerImage.orgName}}/${project.artifactId}:{{app.containerImage.tag}} - {{#app.bootPluginConfiguration}} - {{this}} + + {{this}} {{/app.bootPluginConfiguration}} + + {{app.containerImage.orgName}}/{{app.containerImage.baseImage}}:{{app.containerImage.tag}} + {{#app.containerImage.enableMetadata}} + org.codehaus.mojo properties-maven-plugin @@ -176,15 +184,18 @@ {{app.metadata.mavenPluginVersion}} {{#app.containerImage.enableMetadata}} + true {{#app.metadataNameFilters}} + {{this}} {{/app.metadataNameFilters}} {{#app.metadata.sourceTypeFilters}} + {{this}} {{/app.metadata.sourceTypeFilters}} diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml index fa6c0ebb..07b4a1d8 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/main/resources/template/apps-modules-pom.xml @@ -8,7 +8,7 @@ {{app.version}} pom - Apps Modules + {{app.name}}-{{app.type}}-apps Parent project for generated apps project modules http://spring.io/spring-cloud @@ -80,7 +80,11 @@ - + + com.google.cloud.tools + jib-maven-plugin + 3.3.0 + diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java index 6f2b9b80..cede24d8 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/MojoHarnessTest.java @@ -87,7 +87,7 @@ public void testSomething() throws Exception { Parent parent = pomModel.getParent(); assertThat(parent.getArtifactId()).isEqualTo("spring-boot-starter-parent"); - assertThat(parent.getVersion()).isEqualTo("3.3.0"); + assertThat(parent.getVersion()).isEqualTo("3.3.2"); assertThat(pomModel.getArtifactId()).isEqualTo("http-source-kafka"); assertThat(pomModel.getGroupId()).isEqualTo("org.springframework.cloud.stream.app.test"); @@ -106,8 +106,12 @@ public void testSomething() throws Exception { assertThat(springBootPlugin.getConfiguration().toString()).containsPattern("\\\\s*" + "\\.+/\\$\\{project.artifactId\\}:\\d+\\.\\d+\\.\\d+.*\\\\s*" + "\\"); - assertThat(pomModel.getRepositories().size()).isEqualTo(5); + List executions = springBootPlugin.getExecutions().stream().map(pluginExecution -> pluginExecution.getId() + ":" + pluginExecution.getPhase() + ":" + pluginExecution.getGoals()).collect(Collectors.toList()); + assertThat(executions).as("Expected executions").isNotEmpty(); + assertThat(executions.toString()).contains("process-aot"); + + assertThat(pomModel.getRepositories().size()).isEqualTo(5); assertThat(pomModel.getRepositories().stream().map(r -> r.getId()).collect(Collectors.toList())) .contains("bintray-global", "bintray-application", "bintray-binder"); } diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java index 4fa47d2f..2e096f6e 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/java/org/springframework/cloud/dataflow/app/plugin/SpringCloudStreamAppGeneratorMojoTest.java @@ -85,7 +85,7 @@ public void before() throws NoSuchFieldException { // BOM application.setBootVersion("3.3.0"); - application.getMetadata().setMavenPluginVersion("1.0.2.BUILD-SNAPSHOT"); + application.getMetadata().setMavenPluginVersion("1.1.0-SNAPSHOT"); setMojoProperty("application", application); @@ -142,23 +142,27 @@ public void testDefaultProjectCreationByPlugin() throws Exception { } @Test - public void testCustomBootMavenPluginConfiguration() throws Exception { - application.setBootPluginConfiguration("\n" + - " \n" + - " org.python\n" + - " jython-standalone\n" + - " \n" + - " \n" + - " ]]>"); - + public void testCustomBootMavenExecutionsAndPluginConfiguration() throws Exception { + application.setBootPluginConfiguration("" + + "" + + "org.python" + + "jython-standalone" + + "" + + ""); + application.setBootExecution("process-aot" + + "" + + "process-aot" + + ""); springCloudStreamAppMojo.execute(); Model pomModel = getModel(new File(projectHome.getRoot().getAbsolutePath())); List plugins = pomModel.getBuild().getPlugins(); final Optional bootPlugin = plugins.stream().filter(p -> p.getArtifactId().equals("spring-boot-maven-plugin")).findFirst(); assertThat(bootPlugin.isPresent()).isTrue(); - + assertThat(bootPlugin.get().getConfiguration().toString()).contains("requiresUnpack"); + assertThat(bootPlugin.get().getExecutions()).as("Expected executions").isNotEmpty(); + assertThat(bootPlugin.get().getExecutions().get(0).getGoals()).as("Expected goals").isNotEmpty(); + assertThat(bootPlugin.get().getExecutions().get(0).getGoals().get(0)).isEqualTo("process-aot"); } private void assertGeneratedPomXml(File rootPath) { diff --git a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml index 20bc385a..004b1786 100644 --- a/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml +++ b/spring-cloud-dataflow-apps-plugin/spring-cloud-dataflow-apps-generator-plugin/src/test/resources/unit/http-source-apps/pom.xml @@ -11,7 +11,7 @@ jar - 3.3.0 + 3.3.2 5.0.0-SNAPSHOT 2.4.1 1.1.0-SNAPSHOT @@ -43,6 +43,22 @@ ${spring-boot.version} + true + + true + + 22.1 + ]]> + + + process-aot + + process-aot + + + ]]> 3.3.0 @@ -219,7 +235,7 @@ org.springframework.cloud spring-cloud-dataflow-apps-generator-plugin - ${app-metadata-maven-plugin-version} + 1.0.0-SNAPSHOT ./target/apps