148 lines
5.8 KiB
Plaintext
148 lines
5.8 KiB
Plaintext
image:https://spring.io/badges/spring-ws/ga.svg["Spring Web Services", link="https://spring.io/projects/spring-ws#learn"]
|
|
image:https://spring.io/badges/spring-ws/snapshot.svg["Spring Web Services", link="https://spring.io/projects/spring-ws#learn"]
|
|
|
|
image:https://jenkins.spring.io/buildStatus/icon?job=spring-ws%2Fmain&subject=main[link=https://jenkins.spring.io/view/SpringWebServices/job/spring-ws/]
|
|
image:https://jenkins.spring.io/buildStatus/icon?job=spring-ws%2F3.1.x&subject=3.1.x[link=https://jenkins.spring.io/view/SpringWebServices/job/spring-ws/]
|
|
image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Web Services"]
|
|
|
|
= Spring Web Services
|
|
|
|
Spring Web Services is a product of the Spring community focused on creating
|
|
document-driven Web services. Spring Web Services aims to facilitate
|
|
contract-first SOAP service development, allowing for the creation of flexible
|
|
web services using one of the many ways to manipulate XML payloads.
|
|
|
|
== Installation
|
|
|
|
Releases of Spring Web Services are available for download from Maven Central,
|
|
as well as our own repository, https://repo.spring.io/release[https://repo.spring.io/release].
|
|
|
|
Please visit https://spring.io/projects/spring-ws to get the right Maven/Gradle settings for your selected version.
|
|
|
|
== Building Spring Web Services
|
|
|
|
. Run `./mvnw clean package`
|
|
|
|
This will generate the artifacts.
|
|
|
|
You can also import the project into your IDE.
|
|
|
|
== Making a release
|
|
|
|
Before you make a release, follow this checklist:
|
|
|
|
* Are you using the latest milestone/release candidate/release of Spring Framework? If not, upgrade. (Don't forget `spring-buildsnapshot` profile.)
|
|
* Are you using the latest milestone/release candidate/release of Spring Security? If not, upgrade. (Don't forget `spring-buildsnapshot` profile.)
|
|
* Are you setup with the right version of Java? If not switch. (Java 17 for 4.0+, Java 8 for everything else.)
|
|
* Is it time to switch from milestone to release candidate? Or from release candidate to release?
|
|
|
|
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.
|
|
|
|
. Create a new release (on the main branch).
|
|
+
|
|
----
|
|
% ci/create-release.sh <release version> <next snapshot version>
|
|
----
|
|
+
|
|
. With the release tagged, update the release branch to the newly created tag.
|
|
+
|
|
----
|
|
% git checkout release
|
|
% git reset --hard <tag>
|
|
----
|
|
+
|
|
. Verify this builds locally and passes all tests.
|
|
+
|
|
----
|
|
% ./mvnw clean package
|
|
% ./mvnw -Pspring-buildsnapshot clean package
|
|
% ./mvnw -Pspring-next-gen clean package
|
|
% ./mvnw -Pspring-next-gen-snapshot clean package
|
|
----
|
|
+
|
|
. Push the tagged version to the release branch.
|
|
+
|
|
----
|
|
% git push -f origin release
|
|
----
|
|
+
|
|
. Once completed, push the `main` branch for next version's snapshots.
|
|
+
|
|
----
|
|
% git checkout main
|
|
% git push
|
|
% git push --tags
|
|
----
|
|
|
|
The pipeline will build and release the "release" branch on artifactory for milestones and RCs.
|
|
For releases, they are sent to maven central.
|
|
|
|
Once the release is completed and tags are pushed:
|
|
|
|
. Close the Github issue milestone.
|
|
. Run the `ChangeLogCreator` report against that milestone.
|
|
. Go to https://github.com/spring-projects/spring-ws/releases.
|
|
. Find that tag and create a new release. Use the output from `ChangeLogCreator` as the content for the release report.
|
|
. Announce on #spring-release.
|
|
|
|
=== Running CI tasks locally
|
|
|
|
Since the pipeline uses Docker, it's easy to:
|
|
|
|
* Debug what went wrong on your local machine.
|
|
* Test out a tweak to your `test.sh` script before sending it out.
|
|
* Experiment against a new image before submitting your pull request.
|
|
|
|
All of these use cases are great reasons to know what Jenkins does, on your local machine.
|
|
|
|
IMPORTANT: To do this you must have Docker installed on your machine.
|
|
|
|
1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-ws-github openjdk:17-bullseye /bin/bash`
|
|
+
|
|
This will launch the Docker image and mount your source code at `spring-ws-github`.
|
|
+
|
|
2. `cd spring-ws-github`
|
|
+
|
|
Next, run the `test.sh` script from inside the container:
|
|
+
|
|
2. `PROFILE=none ci/test.sh`
|
|
|
|
Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs.
|
|
|
|
If you need to test the `build.sh` script, then do this:
|
|
|
|
1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-ws-github openjdk:17-bullseye /bin/bash`
|
|
+
|
|
This will launch the Docker image and mount your source code at `spring-ws-github` and the temporary
|
|
artifactory output directory at `spring-ws-artifactory`.
|
|
+
|
|
Next, run the `build.sh` script from inside the container:
|
|
+
|
|
2. `ci/build.sh`
|
|
|
|
IMPORTANT: `build.sh` will attempt to push to Artifactory. If you don't supply credentials, it will fail.
|
|
|
|
NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images.
|
|
|
|
== Code of Conduct
|
|
|
|
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct].
|
|
By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
|
|
|
|
= Spring Web Services Project Site
|
|
|
|
You can find the documentation, issue management, support, samples, and guides for using Spring Web Services at https://spring.io/projects/spring-ws/
|
|
|
|
== Documentation
|
|
|
|
See the current https://docs.spring.io/spring-ws/docs/current/api/[Javadoc] and https://docs.spring.io/spring-ws/docs/current/reference/[reference docs].
|
|
|
|
== Issue Tracking
|
|
|
|
Spring Web Services uses https://github.com/spring-projects/spring-ws/issues[Github] for issue tracking purposes.
|
|
|
|
== License
|
|
|
|
Spring Web Services is https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 licensed].
|