From 7d50f0f9bccdcf9d293c287b4165976ea5434574 Mon Sep 17 00:00:00 2001 From: "Greg L. Turnquist" Date: Wed, 4 Jan 2023 16:03:09 -0600 Subject: [PATCH] Introduce Spring WS BOM. The Spring WS BOM itself uses the flatten-maven-plugin to produce a POM file simplified for community consumption. The same plugin is ready to go for the other modules. But given the risk of breaking existing users, it will not be applied until Spring WS 4.1 is released (#1307). Resolves #1290. Related: #1205, #1285. --- .gitignore | 3 +- README.adoc | 18 +-- ci/create-release.sh | 4 +- pom.xml | 35 +++++ spring-ws-bom/pom.xml | 298 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 347 insertions(+), 11 deletions(-) create mode 100644 spring-ws-bom/pom.xml diff --git a/.gitignore b/.gitignore index daccec5c5..12e9892c9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ _site *.versionsBackup -credentials.yml \ No newline at end of file +credentials.yml +.flattened-pom.xml diff --git a/README.adoc b/README.adoc index ffee18135..65b53e0da 100644 --- a/README.adoc +++ b/README.adoc @@ -38,39 +38,41 @@ Before you make a release, follow this checklist: NOTE: The _actual_ building and releasing is done on CI inside a Docker container, ensuring little risk between versions of Java. But part of the release process requires a local check, which DOES depend upon your environment. -1. Create a new release (on the main branch). +. Update `spring-ws-bom/pom.xml` to contain the planned release version. (`mvn versions:set` will NOT alter these settings.) ++ +. Create a new release (on the main branch). + ---- % ci/create-release.sh ---- + -2. With the release tagged, update the release branch to the newly created tag. +. With the release tagged, update the release branch to the newly created tag. + ---- % git checkout -b release % git reset --hard ---- + -3. Verify this builds locally and passes all tests. +. Verify this builds locally and passes all tests. + ---- % ./mvnw clean package % ./mvnw -Pspring-buildsnapshot clean package ---- + -4. Push the tagged version to the release branch. +. Push the tagged version to the release branch. + ---- % git push -f origin release ---- + -5. For milestones and release candidates, verify the artifacts on artifactory. -6. For releases, login to maven central. +. For milestones and release candidates, verify the artifacts on artifactory. +. For releases, login to maven central. * Verify the release. * Close the repository. * Release the repository. -7. Announce on VMware Slack. -8. Once completed, push the `main` branch for next version's snapshots. +. Announce on VMware Slack. +. Once completed, push the `main` branch for next version's snapshots. + ---- % git checkout main diff --git a/ci/create-release.sh b/ci/create-release.sh index af7ac901c..a433c5365 100755 --- a/ci/create-release.sh +++ b/ci/create-release.sh @@ -6,7 +6,7 @@ RELEASE=$1 SNAPSHOT=$2 # Bump up the version in pom.xml to the desired version and commit the change -./mvnw versions:set -DnewVersion=$RELEASE -DgenerateBackupPoms=false +./mvnw versions:set -DnewVersion=$RELEASE -DgenerateBackupPoms=false -DprocessAllModules=true -DoldVersion='*' git add . git commit --message "Releasing Spring Web Services v$RELEASE" @@ -14,7 +14,7 @@ git commit --message "Releasing Spring Web Services v$RELEASE" git tag -s v$RELEASE -m "v$RELEASE" # Bump up the version in pom.xml to the next snapshot -./mvnw versions:set -DnewVersion=$SNAPSHOT -DgenerateBackupPoms=false +./mvnw versions:set -DnewVersion=$SNAPSHOT -DgenerateBackupPoms=false -DprocessAllModules=true -DoldVersion='*' git add . git commit --message "Continue development on v$SNAPSHOT" diff --git a/pom.xml b/pom.xml index 946213112..a7e6496b5 100644 --- a/pom.xml +++ b/pom.xml @@ -71,6 +71,7 @@ + spring-ws-bom spring-ws-core spring-ws-security spring-ws-support @@ -342,6 +343,38 @@ + + + flatten + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.2.5 + + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + distribute @@ -400,6 +433,7 @@ + spring-ws {{BUILD_URL}} @@ -442,6 +476,7 @@ + spring-ws {{BUILD_URL}} diff --git a/spring-ws-bom/pom.xml b/spring-ws-bom/pom.xml new file mode 100644 index 000000000..a9f03a702 --- /dev/null +++ b/spring-ws-bom/pom.xml @@ -0,0 +1,298 @@ + + + 4.0.0 + + org.springframework.ws + spring-ws-bom + 4.0.1-SNAPSHOT + pom + + Spring WS - Bill of Materials (BOM) + https://spring.io/projects/spring-ws + + + VMware, Inc. + https://www.spring.io + + + + https://github.com/spring-projects/spring-ws + scm:git:git://github.com/spring-projects/spring-ws.git + scm:git:ssh://git@github.com:spring-projects/spring-ws.git + + + + GitHub + https://github.com/spring-projects/spring-ws/issues + + + + + gturnquist + Greg Turnquist + gturnquist(at)vmware.com + VMware, Inc. + https://spring.io + + Project Lead + + -6 + + + + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0 + + Copyright 2005-2022 the original author or authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + + + + + org.springframework.ws + spring-ws-core + 4.0.1-SNAPSHOT + + + org.springframework.ws + spring-ws-security + 4.0.1-SNAPSHOT + + + org.springframework.ws + spring-ws-support + 4.0.1-SNAPSHOT + + + org.springframework.ws + spring-ws-test + 4.0.1-SNAPSHOT + + + org.springframework.ws + spring-xml + 4.0.1-SNAPSHOT + + + + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.2.5 + + true + + expand + + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + snapshot + + + + + org.jfrog.buildinfo + artifactory-maven-plugin + 3.2.3 + false + + + build-info + + publish + + + + spring-ws + {{BUILD_URL}} + + + spring-ws + spring-ws + false + docs + *:*:*:*@zip + + + https://repo.spring.io + {{ARTIFACTORY_USR}} + {{ARTIFACTORY_PSW}} + libs-snapshot-local + libs-snapshot-local + + + + + + + + + + + milestone + + + + + org.jfrog.buildinfo + artifactory-maven-plugin + 3.2.3 + false + + + build-info + + publish + + + + spring-ws + {{BUILD_URL}} + + + spring-ws + spring-ws + false + docs + *:*:*:*@zip + + + https://repo.spring.io + {{ARTIFACTORY_USR}} + {{ARTIFACTORY_PSW}} + libs-milestone-local + libs-milestone-local + + + + + + + + + + + central + + + true + true + true + + + + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.13 + true + + sonatype + https://s01.oss.sonatype.org/ + false + true + true + + + + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + + + + + sonatype + https://s01.oss.sonatype.org//service/local/staging/deploy/maven2/ + + + + + + +