= Spring Web Services

image:https://circleci.com/gh/spring-projects/spring-ws.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-projects/spring-ws"]

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, http://repo.spring.io/release[http://repo.springsource.org/release].

Please visit https://projects.spring.io/spring-ws to get the right Maven/Gradle settings for your selected version.

== Building Spring Web Services

. Run `mvn clean package`

This will generate the artifacts.

You can also import the project into your IDE.

== Releasing Spring Web Services

Snapshots are published automatically via CI server by doing this:

----
$ USERNAME=<username> PASSWORD=<encrypted password> ./mvnw -Pdistribute,snapshot,docs clean -Dmaven.test.skip=true deploy
----

IMPORTANT: Snapshots do NOT include GPG signatures. To do so would require putting a private key on the CI server. The process for releases (below) is manual and DOES include GPG signatures.

To do a release (.RELEASE, .RC?, .M?):

. Check in all changes and ensure there are no edited files.
. Bump up the version in ALL `pom.xml` files to the desired version (e.g. `mvn versions:set -DnewVersion=3.0.0.RC1`) and commit the change.
. `git tag <version>` (like v3.0.0.RC1)
. Execute a maven test (`./mvnw -Pdistribute,snapshot,docs clean test`).
. Execute a maven deploy.
* For a milestone: `USERNAME=<user> PASSWORD=<encrypted password> ./mvnw -Pdistribute,milestone,docs clean -Dmaven.test.skip=true deploy`
* For a release: `USERNAME=<user> PASSWORD=<encrypted password> ./mvnw -Pdistribute,release,docs clean -Dmaven.test.skip=true deploy`
* For a release to maven central: `USERNAME=<user> PASSWORD=<nexus password> ./mvnw -Pdistribute,gpg,central,docs clean -Dmaven.test.skip=true deploy -s settings.xml`
. Bump up the version in ALL `pom.xml` files again to the next BUILD-SNAPSHOT.
. Commit the change.
. `git push` (This will push the tagged version along with the release AND the new snapshot commit)
. Inspect handiwork at https://repo.spring.io/ or https://oss.sonatype.org/#stagingRepositories

NOTE: A word about reference documentation. Based upon https://github.com/spring-projects/spring-framework/wiki/gradle-build-and-release-faq#user-content-wiki-docs_schema_dist_publication[this], the `distribute` profile contains an artifactory property that is applied to the ZIP file generated by the `docs` profile. A CRON job will scoop up the zipped up docs and unpack them inside the target location.

== 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 http://projects.spring.io/spring-ws/

== Documentation

See the current http://docs.spring.io/spring-ws/docs/current/api/[Javadoc] and http://docs.spring.io/spring-ws/docs/current/reference/htmlsingle/[reference docs].

== Issue Tracking

Spring Web Services uses https://jira.spring.io/browse/SWS[JIRA] for issue tracking purposes

== License

Spring Web Services is http://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 licensed].