diff --git a/.gitignore b/.gitignore
index fc4ed6e8..867345c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,28 +1,15 @@
*.ipr
*.iws
*.iml
-target
-.clover
-activemq-data
*.hsp
-atlassian-ide-plugin*.xml
.idea
-out
+out/
-/build
-/spring-*/bin
-/spring-*/build
-.gradle
+build/
+.gradle/
-_site
-/.classpath
-/.project
-/.settings/
-
-*.versionsBackup
-
-credentials.yml
-.flattened-pom.xml
-.mvn/.gradle-enterprise
-.mvn/.develocity
+.classpath
+.project
+.settings/
+bin/
\ No newline at end of file
diff --git a/.mvn/develocity.xml b/.mvn/develocity.xml
deleted file mode 100644
index b54815e7..00000000
--- a/.mvn/develocity.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- https://ge.spring.io
-
-
- false
- true
- true
-
- #{{'0.0.0.0'}}
-
-
-
-
- true
-
-
-
-
- ${env.GRADLE_ENTERPRISE_CACHE_USERNAME}
- ${env.GRADLE_ENTERPRISE_CACHE_PASSWORD}
-
-
- true
- #{env['GRADLE_ENTERPRISE_CACHE_USERNAME'] != null and env['GRADLE_ENTERPRISE_CACHE_PASSWORD'] != null}
-
-
-
\ No newline at end of file
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
deleted file mode 100644
index fe8298f9..00000000
--- a/.mvn/extensions.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- io.spring.develocity.conventions
- develocity-conventions-maven-extension
- 0.0.22
-
-
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 9cc84ea9..00000000
Binary files a/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 869f9d17..00000000
--- a/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc
index 983e536c..12dc5395 100644
--- a/CONTRIBUTING.adoc
+++ b/CONTRIBUTING.adoc
@@ -44,18 +44,9 @@ added after the original pull request but before a merge.
* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions].
=== Building from source
-This project includes the Maven wrapper, meaning you don't have to install any CLI tools to compile. Simply clone it and do this:
-
-==== Default build
-The project can be built from the root directory using the standard Maven wrapper command:
+This project includes the Gradle wrapper, meaning you don't have to install any CLI tools to compile.
+Once you've cloned the project, it can be built from the root directory using the following command:
----
-$ ./mvnw clean package
-----
-
-If you are rebuilding often, you might also want to skip the tests until you are ready
-to submit a pull request:
-
-----
-$ ./mvnw clean package -Dmaven.test.skip=true
+$ ./gradlew build
----
diff --git a/README.adoc b/README.adoc
index 00fdfc85..18723267 100644
--- a/README.adoc
+++ b/README.adoc
@@ -20,7 +20,7 @@ Please visit https://spring.io/projects/spring-ws to get the right Maven/Gradle
== Building Spring Web Services
-. Run `./mvnw clean package`
+. Run `./gradlew build`
This will generate the artifacts.
diff --git a/docs.xml b/docs.xml
deleted file mode 100644
index 1989b0e0..00000000
--- a/docs.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
- docs
-
- dir
- zip
-
- false
-
-
-
- target/site/reference/html
- reference/html
- 0664
- 0775
-
-
-
- target/site/reference/pdf
-
- index.pdf
-
- reference/pdf
- 0664
- 0775
-
-
-
- target/site/reference/epub
-
- index.epub
-
- reference/epub
- 0664
- 0775
-
-
-
- target/site/apidocs
- api
- 0664
- 0775
-
-
-
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..10e5469e
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,4 @@
+version=4.0.12-SNAPSHOT
+
+org.gradle.caching=true
+org.gradle.parallel=true
diff --git a/gradle/plugins/config/checkstyle/checkstyle.xml b/gradle/plugins/config/checkstyle/checkstyle.xml
new file mode 100644
index 00000000..2bcb7b2e
--- /dev/null
+++ b/gradle/plugins/config/checkstyle/checkstyle.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/gradle/plugins/conventions-plugin/build.gradle b/gradle/plugins/conventions-plugin/build.gradle
new file mode 100644
index 00000000..96542e2e
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/build.gradle
@@ -0,0 +1,27 @@
+plugins {
+ id "checkstyle"
+ id "java-gradle-plugin"
+ id "io.spring.javaformat" version "$javaFormatVersion"
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ checkstyle("com.puppycrawl.tools:checkstyle:${checkstyle.toolVersion}")
+ checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}")
+}
+
+gradlePlugin {
+ plugins {
+ conventionsPlugin {
+ id = "org.springframework.ws.conventions"
+ implementationClass = "org.springframework.ws.gradle.conventions.ConventionsPlugin"
+ }
+ }
+}
+
+dependencies {
+ implementation("io.spring.javaformat:spring-javaformat-gradle-plugin:$javaFormatVersion")
+}
diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/ConventionsPlugin.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/ConventionsPlugin.java
new file mode 100644
index 00000000..61bcb471
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/ConventionsPlugin.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+package org.springframework.ws.gradle.conventions;
+
+import org.gradle.api.Plugin;
+import org.gradle.api.Project;
+import org.gradle.api.plugins.JavaBasePlugin;
+import org.gradle.api.plugins.JavaPlugin;
+import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
+
+/**
+ * {@link Plugin} to apply conventions to a {@link Project} by reacting to its plugins and
+ * configuring them.
+ *
+ * @author Andy Wilkinson
+ */
+public class ConventionsPlugin implements Plugin {
+
+ @Override
+ public void apply(Project project) {
+ project.setGroup("org.springframework.ws");
+ project.getPlugins()
+ .withType(JavaBasePlugin.class)
+ .all((plugin) -> new JavaBasePluginConventions().apply(project));
+ project.getPlugins().withType(JavaPlugin.class).all((plugin) -> new JavaPluginConventions().apply(project));
+ project.getPlugins()
+ .withType(MavenPublishPlugin.class)
+ .all((plugin) -> new MavenPublishPluginConventions().apply(project));
+ }
+
+}
diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaBasePluginConventions.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaBasePluginConventions.java
new file mode 100644
index 00000000..68c0a869
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaBasePluginConventions.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+package org.springframework.ws.gradle.conventions;
+
+import org.gradle.api.Project;
+import org.gradle.api.plugins.JavaBasePlugin;
+import org.gradle.api.tasks.javadoc.Javadoc;
+import org.gradle.external.javadoc.CoreJavadocOptions;
+import org.gradle.external.javadoc.MinimalJavadocOptions;
+
+/**
+ * Conventions for the {@link JavaBasePlugin}.
+ *
+ * @author Andy Wilkinson
+ */
+class JavaBasePluginConventions {
+
+ void apply(Project project) {
+ project.getTasks().withType(Javadoc.class).configureEach((javadoc) -> {
+ MinimalJavadocOptions options = javadoc.getOptions();
+ options.quiet();
+ options.source(JavaPluginConventions.JAVA_BASELINE.getMajorVersion());
+ if (options instanceof CoreJavadocOptions coreOptions) {
+ coreOptions.addBooleanOption("Xdoclint:-missing", true);
+ }
+ });
+ }
+
+}
diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java
new file mode 100644
index 00000000..734c6824
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+package org.springframework.ws.gradle.conventions;
+
+import java.util.Map;
+
+import io.spring.javaformat.gradle.SpringJavaFormatPlugin;
+import org.gradle.api.JavaVersion;
+import org.gradle.api.Project;
+import org.gradle.api.artifacts.Configuration;
+import org.gradle.api.artifacts.ConfigurationContainer;
+import org.gradle.api.artifacts.dsl.DependencyHandler;
+import org.gradle.api.plugins.JavaPlugin;
+import org.gradle.api.plugins.JavaPluginExtension;
+import org.gradle.api.tasks.SourceSet;
+import org.gradle.api.tasks.bundling.Jar;
+import org.gradle.api.tasks.testing.Test;
+import org.gradle.jvm.toolchain.JavaLanguageVersion;
+
+/**
+ * Conventions for the {@link JavaPlugin}.
+ *
+ * @author Andy Wilkinson
+ */
+class JavaPluginConventions {
+
+ static final JavaVersion JAVA_BASELINE = JavaVersion.VERSION_17;
+
+ void apply(Project project) {
+ project.getPlugins().apply(SpringJavaFormatPlugin.class);
+ JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
+ configureRepositories(project);
+ enableSourceAndJavadocJars(java);
+ configureSourceAndTargetCompatibility(java);
+ configureDependencyManagement(project);
+ configureJarManifest(project);
+ configureToolchain(project, java);
+ configureJavadocClasspath(project, java);
+ configureJUnitPlatform(project);
+ }
+
+ private void configureRepositories(Project project) {
+ project.getRepositories().mavenCentral();
+ String version = project.getVersion().toString();
+ if (version.contains("-")) {
+ project.getRepositories().maven((repository) -> {
+ repository.setName("Spring Milestones");
+ repository.setUrl("https://repo.spring.io/milestone");
+ });
+ }
+ if (version.endsWith("-SNAPSHOT")) {
+ project.getRepositories().maven((repository) -> {
+ repository.setName("Spring Snapshots");
+ repository.setUrl("https://repo.spring.io/snapshot");
+ });
+ }
+ }
+
+ private void enableSourceAndJavadocJars(JavaPluginExtension java) {
+ java.withSourcesJar();
+ java.withJavadocJar();
+ }
+
+ private void configureSourceAndTargetCompatibility(JavaPluginExtension java) {
+ java.setSourceCompatibility(JAVA_BASELINE);
+ java.setTargetCompatibility(JAVA_BASELINE);
+ }
+
+ private void configureDependencyManagement(Project project) {
+ ConfigurationContainer configurations = project.getConfigurations();
+ Configuration dependencyManagement = configurations.create("dependencyManagement", (configuration) -> {
+ configuration.setCanBeConsumed(false);
+ configuration.setCanBeResolved(false);
+ configuration.setVisible(false);
+ });
+ configurations.matching((candidate) -> candidate.getName().endsWith("Classpath"))
+ .all((classpath) -> classpath.extendsFrom(dependencyManagement));
+ DependencyHandler dependencies = project.getDependencies();
+ dependencyManagement.getDependencies()
+ .add(dependencies.enforcedPlatform(dependencies.project(Map.of("path", ":spring-ws-platform"))));
+ }
+
+ private void configureJarManifest(Project project) {
+ project.getTasks()
+ .named("jar", Jar.class,
+ (jar) -> jar.manifest((manifest) -> manifest.attributes(Map.of("Build-Jdk-Spec",
+ JAVA_BASELINE.getMajorVersion(), "Built-By", "Spring", "Implementation-Title",
+ project.getDescription(), "Implementation-Version", project.getVersion()))));
+ }
+
+ private void configureToolchain(Project project, JavaPluginExtension java) {
+ Object toolchainVersion = project.findProperty("toolchainVersion");
+ if (toolchainVersion != null) {
+ java.getToolchain().getLanguageVersion().set(JavaLanguageVersion.of(toolchainVersion.toString()));
+ }
+ }
+
+ private void configureJavadocClasspath(Project project, JavaPluginExtension java) {
+ project.getConfigurations().create("javadocClasspath", (javadocClasspath) -> {
+ javadocClasspath.setCanBeConsumed(true);
+ javadocClasspath.setCanBeResolved(false);
+ javadocClasspath.extendsFrom(project.getConfigurations()
+ .getByName(java.getSourceSets()
+ .getByName(SourceSet.MAIN_SOURCE_SET_NAME)
+ .getCompileClasspathConfigurationName()));
+ });
+ }
+
+ private void configureJUnitPlatform(Project project) {
+ project.getTasks().withType(Test.class).configureEach((task) -> task.useJUnitPlatform());
+ project.getDependencies().add("testRuntimeOnly", "org.junit.platform:junit-platform-launcher");
+ }
+
+}
diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/MavenPublishPluginConventions.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/MavenPublishPluginConventions.java
new file mode 100644
index 00000000..bd9c36a0
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/MavenPublishPluginConventions.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+package org.springframework.ws.gradle.conventions;
+
+import org.gradle.api.Project;
+import org.gradle.api.plugins.JavaPlatformPlugin;
+import org.gradle.api.plugins.JavaPlugin;
+import org.gradle.api.publish.PublishingExtension;
+import org.gradle.api.publish.maven.MavenPublication;
+import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
+
+/**
+ * Conventions for the {@link MavenPublishPlugin}.
+ *
+ * @author Andy Wilkinson
+ */
+class MavenPublishPluginConventions {
+
+ void apply(Project project) {
+ PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class);
+ configureRepositories(project, publishing);
+ project.getPlugins().withType(JavaPlugin.class).all((javaPlugin) -> {
+ publishing.getPublications().create("maven", MavenPublication.class, (publication) -> {
+ publication.from(project.getComponents().getByName("java"));
+ publication.versionMapping((strategy) -> {
+ strategy.usage("java-api",
+ (variantStrategy) -> variantStrategy.fromResolutionOf("runtimeClasspath"));
+ strategy.usage("java-runtime", (variantStrategy) -> variantStrategy.fromResolutionResult());
+ });
+ configurePom(publication);
+ });
+ });
+ project.getPlugins().withType(JavaPlatformPlugin.class).all((javaPlatformPlugin) -> {
+ publishing.getPublications().create("maven", MavenPublication.class, (publication) -> {
+ publication.from(project.getComponents().getByName("javaPlatform"));
+ configurePom(publication);
+ });
+ });
+ }
+
+ void configureRepositories(Project project, PublishingExtension publishing) {
+ Object deploymentRepository = project.findProperty("deploymentRepository");
+ if (deploymentRepository != null) {
+ publishing.getRepositories().maven((maven) -> {
+ maven.setName("deployment");
+ maven.setUrl(deploymentRepository);
+ });
+ }
+ }
+
+ void configurePom(MavenPublication mavenPublication) {
+ String organizationName = "Broadcom Inc.";
+ String organizationUrl = "https://www.spring.io";
+ mavenPublication.pom((pom) -> {
+ pom.developers((developers) -> developers.developer((developer) -> {
+ developer.getName().set("Spring");
+ developer.getEmail().set("ask@spring.io");
+ developer.getOrganization().set(organizationName);
+ developer.getOrganizationUrl().set(organizationUrl);
+ }));
+ pom.licenses((licenses) -> licenses.license((license) -> {
+ license.getName().set("The Apache License, Version 2.0");
+ license.getUrl().set("http://www.apache.org/licenses/LICENSE-2.0.txt");
+ }));
+ pom.organization((organization) -> {
+ organization.getName().set(organizationName);
+ organization.getUrl().set(organizationUrl);
+ });
+ pom.scm((scm) -> {
+ scm.getConnection().set("scm:git:git://github.com/spring-projects/spring-ws.git");
+ scm.getDeveloperConnection().set("scm:git:ssh://git@github.com:spring-projects/spring-ws.git");
+ scm.getUrl().set("https://github.com/spring-projects/spring-ws");
+ });
+ });
+ }
+
+}
diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/package-info.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/package-info.java
new file mode 100644
index 00000000..077381a4
--- /dev/null
+++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+/**
+ * Gradle build conventions.
+ */
+package org.springframework.ws.gradle.conventions;
diff --git a/gradle/plugins/gradle.properties b/gradle/plugins/gradle.properties
new file mode 100644
index 00000000..2a3dd72a
--- /dev/null
+++ b/gradle/plugins/gradle.properties
@@ -0,0 +1 @@
+javaFormatVersion=0.0.43
diff --git a/gradle/plugins/optional-dependencies-plugin/build.gradle b/gradle/plugins/optional-dependencies-plugin/build.gradle
new file mode 100644
index 00000000..d3a65449
--- /dev/null
+++ b/gradle/plugins/optional-dependencies-plugin/build.gradle
@@ -0,0 +1,23 @@
+plugins {
+ id "checkstyle"
+ id "java-gradle-plugin"
+ id "io.spring.javaformat" version "$javaFormatVersion"
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ checkstyle("com.puppycrawl.tools:checkstyle:${checkstyle.toolVersion}")
+ checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}")
+}
+
+gradlePlugin {
+ plugins {
+ optionalDependenciesPlugin {
+ id = "org.springframework.ws.optional-dependencies"
+ implementationClass = "org.springframework.ws.gradle.optional.OptionalDependenciesPlugin"
+ }
+ }
+}
diff --git a/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/OptionalDependenciesPlugin.java b/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/OptionalDependenciesPlugin.java
new file mode 100644
index 00000000..7c4a75f7
--- /dev/null
+++ b/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/OptionalDependenciesPlugin.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+package org.springframework.ws.gradle.optional;
+
+import org.gradle.api.Plugin;
+import org.gradle.api.Project;
+import org.gradle.api.artifacts.ConfigurationContainer;
+import org.gradle.api.plugins.JavaPlugin;
+import org.gradle.api.plugins.JavaPluginExtension;
+
+/**
+ * Plugin that adds support for "optional" dependencies. An optional dependency is
+ * available for compilation and at runtime when building and testing the project but is
+ * not exposed to consumers.
+ *
+ * @author Andy Wilkinson
+ */
+public class OptionalDependenciesPlugin implements Plugin {
+
+ @Override
+ public void apply(Project target) {
+ target.getPlugins().withType(JavaPlugin.class, (plugin) -> {
+ ConfigurationContainer configurations = target.getConfigurations();
+ configurations.create("optional", (optional) -> {
+ optional.setCanBeConsumed(false);
+ optional.setCanBeResolved(false);
+ target.getExtensions().getByType(JavaPluginExtension.class).getSourceSets().all((sourceSet) -> {
+ configurations.getByName(sourceSet.getCompileClasspathConfigurationName()).extendsFrom(optional);
+ configurations.getByName(sourceSet.getRuntimeClasspathConfigurationName()).extendsFrom(optional);
+ });
+ });
+ });
+ }
+
+}
diff --git a/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/package-info.java b/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/package-info.java
new file mode 100644
index 00000000..a4661eaa
--- /dev/null
+++ b/gradle/plugins/optional-dependencies-plugin/src/main/java/org/springframework/ws/gradle/optional/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2005-2025 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.
+ */
+
+/**
+ * Support for optional dependencies in a Gradle build.
+ */
+package org.springframework.ws.gradle.optional;
diff --git a/gradle/plugins/settings.gradle b/gradle/plugins/settings.gradle
new file mode 100644
index 00000000..32441d17
--- /dev/null
+++ b/gradle/plugins/settings.gradle
@@ -0,0 +1,2 @@
+include "conventions-plugin"
+include "optional-dependencies-plugin"
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..9bbc975c
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..37f853b1
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 00000000..faf93008
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,251 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..9d21a218
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,94 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/mvnw b/mvnw
deleted file mode 100755
index 2d1e3cfa..00000000
--- a/mvnw
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven2 Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-# JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-# M2_HOME - location of maven2's installed home dir
-# MAVEN_OPTS - parameters passed to the Java VM when running Maven
-# e.g. to debug Maven itself, use
-# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
- if [ -f /etc/mavenrc ] ; then
- . /etc/mavenrc
- fi
-
- if [ -f "$HOME/.mavenrc" ] ; then
- . "$HOME/.mavenrc"
- fi
-
-fi
-
-# OS specific support. $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- MINGW*) mingw=true;;
- Darwin*) darwin=true
- # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
- # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
- if [ -z "$JAVA_HOME" ]; then
- if [ -x "/usr/libexec/java_home" ]; then
- export JAVA_HOME="`/usr/libexec/java_home`"
- else
- export JAVA_HOME="/Library/Java/Home"
- fi
- fi
- ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
- if [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
- ## resolve links - $0 may be a link to maven's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- M2_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- M2_HOME=`cd "$M2_HOME" && pwd`
-
- cd "$saveddir"
- # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --unix "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Migwn, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME="`(cd "$M2_HOME"; pwd)`"
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
- # TODO classpath?
-fi
-
-if [ -z "$JAVA_HOME" ]; then
- javaExecutable="`which javac`"
- if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
- # readlink(1) is not available as standard on Solaris 10.
- readLink=`which readlink`
- if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
- if $darwin ; then
- javaHome="`dirname \"$javaExecutable\"`"
- javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
- else
- javaExecutable="`readlink -f \"$javaExecutable\"`"
- fi
- javaHome="`dirname \"$javaExecutable\"`"
- javaHome=`expr "$javaHome" : '\(.*\)/bin'`
- JAVA_HOME="$javaHome"
- export JAVA_HOME
- fi
- fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="`which java`"
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly." >&2
- echo " We cannot execute $JAVACMD" >&2
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-
- if [ -z "$1" ]
- then
- echo "Path not specified to find_maven_basedir"
- return 1
- fi
-
- basedir="$1"
- wdir="$1"
- while [ "$wdir" != '/' ] ; do
- if [ -d "$wdir"/.mvn ] ; then
- basedir=$wdir
- break
- fi
- # workaround for JBEAP-8937 (on Solaris 10/Sparc)
- if [ -d "${wdir}" ]; then
- wdir=`cd "$wdir/.."; pwd`
- fi
- # end of workaround
- done
- echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
- if [ -f "$1" ]; then
- echo "$(tr -s '\n' ' ' < "$1")"
- fi
-}
-
-BASE_DIR=`find_maven_basedir "$(pwd)"`
-if [ -z "$BASE_DIR" ]; then
- exit 1;
-fi
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
-echo $MAVEN_PROJECTBASEDIR
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --path --windows "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- [ -n "$MAVEN_PROJECTBASEDIR" ] &&
- MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
-fi
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
- $MAVEN_OPTS \
- -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
- "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
- ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
deleted file mode 100644
index 86846aea..00000000
--- a/mvnw.cmd
+++ /dev/null
@@ -1,143 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven2 Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index d53880ac..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,1225 +0,0 @@
-
-
- 4.0.0
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
- pom
- Spring Web Services
- Spring-based Web Services support
- https://spring.io/projects/spring-ws
-
- Broadcom Inc.
- https://www.spring.io
-
-
-
- Apache License, Version 2.0
- https://www.apache.org/licenses/LICENSE-2.0
-
-
-
- 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
-
-
-
- Spring
- ask@spring.io
- Broadcom Inc.
- https://www.spring.io
-
-
-
-
- 17
- UTF-8
- UTF-8
- 0.0.5
- 0.0.43
-
- 2.33.0
- 1.9.22
- 3.25.3
- 1.78
- 1.14.13
- 4.4
- 3.1
- 2.16.1
- 2.1.4
- 4.3
- 1.1.0
- 2.10.9.2
- 2.0.1
- 4.5.14
- 5.2.3
- 2.1.3
- 2.1.1
- 3.1.0
- 2.1.3
- 2.1.3
- 6.0.0
- 3.0.2
- 4.0.2
- 4.0.5
- 1.1.6
- 2.0.6.1
- 12.0.16
- 5.9.3
- 2.19.0
- 1.4.7
- 4.11.0
- 1.12.13
- 3.0.4
- 2.0.6
- 4.3.5
-
-
- 6.0.23
- 6.1.9
-
-
- 6.0.23
- 6.1.9
-
-
- 6.1.16
- 6.2.8
-
-
- 6.1.16
- 6.2.8
-
- 2.1.5
- 2.0.1
- 2.1.0
- 6.5.1
- 1.6.3
- 2.4.3
- 3.0.3
- 3.0.4
- 2.3.1
- 1.6
- 2.10.0
- 1.3.7
-
-
-
- spring-ws-bom
- spring-ws-core
- spring-ws-security
- spring-ws-support
- spring-ws-test
- spring-xml
-
-
-
-
-
- io.spring.javaformat
- spring-javaformat-maven-plugin
- ${spring-javaformat.version}
-
-
- validate
-
- validate
-
-
-
-
-
-
-
-
- com.gradle
- develocity-maven-extension
-
-
-
-
-
- builddef.lst
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.13.0
-
- ${java.version}
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
-
-
- true
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.2.3
-
- false
- --illegal-access=permit
-
-
-
-
-
-
-
-
-
-
- org.springframework.ws
- spring-ws-core
- ${project.version}
-
-
- org.springframework.ws
- spring-ws-security
- ${project.version}
-
-
- org.springframework.ws
- spring-ws-support
- ${project.version}
-
-
- org.springframework.ws
- spring-ws-test
- ${project.version}
-
-
- org.springframework.ws
- spring-xml
- ${project.version}
-
-
- io.micrometer
- micrometer-bom
- ${micrometer.version}
- pom
- import
-
-
- org.springframework
- spring-framework-bom
- ${spring.version}
- pom
- import
-
-
- org.springframework.security
- spring-security-bom
- ${spring-security.version}
- pom
- import
-
-
- org.eclipse.jetty
- jetty-bom
- ${jetty.version}
- pom
- import
-
-
- org.eclipse.jetty.ee10
- jetty-ee10-bom
- ${jetty.version}
- pom
- import
-
-
- org.junit
- junit-bom
- ${junit.version}
- pom
- import
-
-
-
- com.fasterxml.woodstox
- woodstox-core
- ${woodstox.version}
-
-
- com.icegreen
- greenmail
- ${greenmail.version}
-
-
- com.sun.mail
- jakarta.mail
-
-
- jakarta.activation
- jakarta.activation-api
-
-
-
-
- com.icegreen
- greenmail-junit5
- ${greenmail.version}
-
-
- com.icegreen
- greenmail-spring
- ${greenmail.version}
-
-
- com.sun.xml.messaging.saaj
- saaj-impl
- ${saaj-impl.version}
-
-
- jakarta.xml.soap
- jakarta.xml.soap-api
-
-
- com.sun.activation
- jakarta.activation
-
-
- jakarta.activation
- jakarta.activation-api
-
-
- org.eclipse.angus
- angus-activation
-
-
-
-
- commons-io
- commons-io
- ${commons-io.version}
-
-
- com.google.guava
- guava
- 32.1.3-jre
-
-
- commons-httpclient
- commons-httpclient
- ${commons-httpclient.version}
-
-
- commons-logging
- commons-logging
-
-
-
-
- com.sun.mail
- jakarta.mail
- ${sun-mail.version}
-
-
- jakarta.activation
- jakarta.activation-api
- ${jakarta-activation.version}
-
-
- jakarta.annotation
- jakarta.annotation-api
- ${jakarta-annotation.version}
-
-
- jakarta.jms
- jakarta.jms-api
- ${jakarta-jms.version}
-
-
- jakarta.mail
- jakarta.mail-api
- ${jakarta-mail-api.version}
-
-
- jakarta.activation
- jakarta.activation-api
-
-
-
-
- jakarta.servlet
- jakarta.servlet-api
- ${jakarta-servlet.version}
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
- ${jakarta-xml-bind.version}
-
-
- jakarta.xml.soap
- jakarta.xml.soap-api
- ${jakarta-soap.version}
-
-
- jakarta.activation
- jakarta.activation-api
-
-
-
-
- jaxen
- jaxen
- ${jaxen.version}
-
-
- net.bytebuddy
- byte-buddy
- ${byte-buddy.version}
-
-
- net.bytebuddy
- byte-buddy-agent
- ${byte-buddy.version}
-
-
- net.sf.ehcache
- ehcache
- ${ehcache.version}
-
-
- org.apache.activemq
- artemis-jakarta-server
- ${activemq.version}
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.apache.commons
- commons-collections4
- ${commons-collection.version}
-
-
- org.apache.logging.log4j
- log4j-core
- ${log4j2.version}
-
-
- org.apache.httpcomponents
- httpclient
- ${httpclient.version}
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.apache.httpcomponents.client5
- httpclient5
- ${httpclient5.version}
-
-
- org.apache.santuario
- xmlsec
- ${xmlsec.version}
-
-
- org.codehaus.woodstox
- woodstox-core-asl
-
-
- com.fasterxml.woodstox
- woodstox-core
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
-
-
- org.apache.ws.xmlschema
- xmlschema-core
- ${xml-schema-core.version}
-
-
- org.apache.wss4j
- wss4j-ws-security-dom
- ${wss4j.version}
-
-
- org.codehaus.woodstox
- wstx-asl
-
-
- org.codehaus.woodstox
- woodstox-core-asl
-
-
- org.apache.santuario
- xmlsec
-
-
- commons-codec
- commons-codec
-
-
- org.cryptacular
- cryptacular
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
- jakarta.xml.soap
- jakarta.xml.soap-api
-
-
- org.glassfish.jaxb
- jaxb-runtime
-
-
- jakarta.mail
- jakarta.mail-api
-
-
- org.apache.geronimo.javamail
- geronimo-javamail_1.4_mail
-
-
-
-
- org.aspectj
- aspectjrt
- ${aspectj.version}
-
-
- org.aspectj
- aspectjweaver
- ${aspectj.version}
-
-
- org.assertj
- assertj-core
- ${assertj.version}
-
-
- org.dom4j
- dom4j
- ${dom4j.version}
-
-
- org.easymock
- easymock
- ${easymock.version}
-
-
- org.eclipse.angus
- angus-mail
- ${eclipse-angus-mail.version}
-
-
- org.glassfish.jaxb
- jaxb-runtime
- ${glassfish-xml-bind.version}
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
- org.eclipse.angus
- angus-activation
-
-
-
-
- org.igniterealtime.smack
- smack-extensions
- ${smack.version}
-
-
- org.igniterealtime.smack
- smack-java7
- ${smack.version}
-
-
- org.igniterealtime.smack
- smack-tcp
- ${smack.version}
-
-
- org.jdom
- jdom2
- ${jdom2.version}
-
-
- org.jvnet.staxex
- stax-ex
- ${stax.version}
-
-
- jakarta.activation
- jakarta.activation-api
-
-
-
-
- org.mockito
- mockito-core
- ${mockito.version}
-
-
- org.slf4j
- slf4j-api
- ${slf4j.version}
-
-
- org.springframework
- spring-oxm
- ${spring.version}
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
-
-
- org.springframework.hateoas
- spring-hateoas
- ${spring-hateos.version}
-
-
- org.xmlunit
- xmlunit-assertj
- ${xmlunit.version}
-
-
- org.assertj
- assertj-core
-
-
- javax.xml.bind
- jaxb-api
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
- net.bytebuddy
- byte-buddy
-
-
-
-
- org.xmlunit
- xmlunit-core
- ${xmlunit.version}
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
-
-
- org.xmlunit
- xmlunit-legacy
- ${xmlunit.version}
-
-
- org.xmlunit
- xmlunit-placeholders
- ${xmlunit.version}
-
-
- wsdl4j
- wsdl4j
- ${wsdl4j.version}
-
-
- xom
- xom
- ${xom.version}
-
-
- xml-apis
- xml-apis
-
-
- xerces
- xercesImpl
-
-
- xalan
- xalan
-
-
-
-
-
-
-
-
- jakarta-ee-9
-
- 2.0.0
- 3.0.0
- 2.0.1
- 6.0.0
- 2.0.1
- 3.0.1
- 2.0.1
- 2.0.1
- 1.1.0
-
-
-
- spring-buildsnapshot
-
- ${spring-snapshot.version}
- ${spring-security-snapshot.version}
-
-
-
- spring-next-gen
-
- ${spring-next-gen.version}
- ${spring-security-next-gen.version}
-
-
-
- spring-next-gen-snapshot
-
- ${spring-next-gen-snapshot.version}
- ${spring-security-next-gen-snapshot.version}
-
-
-
- wss4j-next
-
- ${wss4j-next.version}
-
-
-
-
- convergence
-
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
- 3.3.0
-
-
- default-cli
-
- enforce
-
- validate
-
-
-
-
- commons-logging:*:*
-
- true
-
-
-
- true
-
-
-
-
-
- org.basepom.maven
- duplicate-finder-maven-plugin
- 1.5.0
-
-
- check-for-duplicates
-
- check
-
- validate
-
-
-
-
-
-
-
-
-
- flatten
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- 1.2.5
-
-
-
-
- flatten
- process-resources
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
-
-
-
-
-
- distribute
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.0
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
-
- maven-javadoc-plugin
- 2.10.4
-
- -Xdoclint:-missing
- -quiet
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
-
-
- snapshot
-
-
-
- org.jfrog.buildinfo
- artifactory-maven-plugin
- 3.6.2
- false
-
-
- build-info
-
- publish
-
-
-
- spring-ws
- {{BUILD_URL}}
-
-
- https://repo.spring.io
- {{ARTIFACTORY_USR}}
- {{ARTIFACTORY_PSW}}
- libs-snapshot-local
- libs-snapshot-local
-
-
-
-
-
-
-
-
-
-
- milestone
-
-
-
- org.jfrog.buildinfo
- artifactory-maven-plugin
- 3.6.2
- false
-
-
- build-info
-
- publish
-
-
-
- spring-ws
- {{BUILD_URL}}
-
-
- 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
-
-
-
- com.thoughtworks.xstream
- xstream
- 1.4.21
-
-
-
-
-
-
-
-
- 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/
-
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-resources-plugin
- 3.3.0
-
-
- copy-asciidoc-resources
- generate-resources
- false
-
- copy-resources
-
-
- ${project.build.directory}/refdocs/
-
-
- src/main/asciidoctor
- false
-
-
-
-
-
-
-
- org.asciidoctor
- asciidoctor-maven-plugin
- 2.2.6
-
-
- org.asciidoctor
- asciidoctorj-pdf
- 2.3.15
-
-
- io.spring.asciidoctor.backends
- spring-asciidoctor-backends
- ${spring-asciidoctor-backends.version}
-
-
-
-
- html
- generate-resources
- false
-
- process-asciidoc
-
-
- spring-html
- ${project.build.directory}/site/reference/html
-
- highlight.js
- // these attributes are required to use the doc resources
- shared
- css/
- site.css
- true
- font
- js/highlight
- github
- true
-
-
-
-
- pdf
- generate-resources
- false
-
- process-asciidoc
-
-
- ${project.build.directory}/site/reference/pdf
- pdf
-
- coderay
-
-
-
-
-
- ${project.build.directory}/refdocs/
- index.adoc
- book
-
- ${project.version}
- ${project.name}
- ${project.version}
- true
- 4
- true
- ${project.basedir}
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.4
-
- -Xdoclint:none
-
-
-
-
- aggregate
-
- aggregate
-
- prepare-package
- false
-
- ${project.root}/target/site/apidocs
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
- 3.5.0
-
-
- docs
-
- single
-
- package
-
-
- docs.xml
-
- spring-ws-${project.version}
- true
-
-
-
-
-
- org.jfrog.buildinfo
- artifactory-maven-plugin
- 3.6.2
-
-
- deploy-docs
-
- publish
-
- deploy
-
-
- false
-
-
- spring-ws-docs
- spring-ws-docs
- false
- docs
-
-
-
- Spring Docs spring-ws ${project.version}
- 1
-
-
- {{artifactory.server}}
- {{artifactory.username}}
- {{artifactory.password}}
- {{artifactory.distribution-repository}}
- {{artifactory.distribution-repository}}
- *-docs.zip
-
-
-
-
-
-
-
-
-
-
-
-
- spring-snapshot
- https://repo.spring.io/snapshot
-
- true
-
-
- false
-
-
-
- spring-milestone
- https://repo.spring.io/milestone
-
- false
-
-
-
-
-
-
- spring-snapshot
- https://repo.spring.io/snapshot
-
- true
-
-
- false
-
-
-
- spring-milestone
- https://repo.spring.io/milestone
-
- false
-
-
-
-
-
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..62a5973e
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,18 @@
+pluginManagement {
+ includeBuild "gradle/plugins"
+}
+
+plugins {
+ id "io.spring.develocity.conventions" version "0.0.21"
+}
+
+rootProject.name = "spring-ws"
+
+include "spring-ws-bom"
+include "spring-ws-core"
+include "spring-ws-docs"
+include "spring-ws-platform"
+include "spring-ws-security"
+include "spring-ws-support"
+include "spring-ws-test"
+include "spring-xml"
diff --git a/settings.xml b/settings.xml
deleted file mode 100644
index 28f0d133..00000000
--- a/settings.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
- sonatype
- ${env.SONATYPE_USR}
- ${env.SONATYPE_PSW}
-
-
- spring-snapshot
- ${env.ARTIFACTORY_USR}
- ${env.ARTIFACTORY_PSW}
-
-
- spring-milestone
- ${env.ARTIFACTORY_USR}
- ${env.ARTIFACTORY_PSW}
-
-
- spring-release
- ${env.ARTIFACTORY_USR}
- ${env.ARTIFACTORY_PSW}
-
-
- ge.spring.io
- ${env.GRADLE_ENTERPRISE_CACHE_USERNAME}
- ${env.GRADLE_ENTERPRISE_CACHE_PASSWORD}
-
-
-
-
\ No newline at end of file
diff --git a/spring-ws-bom/build.gradle b/spring-ws-bom/build.gradle
new file mode 100644
index 00000000..6e5ff6c9
--- /dev/null
+++ b/spring-ws-bom/build.gradle
@@ -0,0 +1,17 @@
+plugins {
+ id "java-platform"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+}
+
+description = "Spring WS – Bill of Materials (BOM)"
+
+dependencies {
+ constraints {
+ api(project(":spring-ws-core"))
+ api(project(":spring-ws-security"))
+ api(project(":spring-ws-support"))
+ api(project(":spring-ws-test"))
+ api(project(":spring-xml"))
+ }
+}
diff --git a/spring-ws-bom/pom.xml b/spring-ws-bom/pom.xml
deleted file mode 100644
index d8cef712..00000000
--- a/spring-ws-bom/pom.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-
-
- 4.0.0
- org.springframework.ws
- spring-ws-bom
- 4.0.12-SNAPSHOT
- pom
- Spring Web Services - BOM
- Spring WS - Bill of Materials (BOM)
- https://spring.io/projects/spring-ws
-
- Broadcom Inc.
- https://www.spring.io
-
-
-
- Apache License, Version 2.0
- https://www.apache.org/licenses/LICENSE-2.0
-
-
-
- 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
-
-
-
- Spring
- ask@spring.io
- Broadcom Inc.
- https://www.spring.io
-
-
-
-
-
-
- org.springframework.ws
- spring-ws-core
- 4.0.12-SNAPSHOT
-
-
- org.springframework.ws
- spring-ws-security
- 4.0.12-SNAPSHOT
-
-
- org.springframework.ws
- spring-ws-support
- 4.0.12-SNAPSHOT
-
-
- org.springframework.ws
- spring-ws-test
- 4.0.12-SNAPSHOT
-
-
- org.springframework.ws
- spring-xml
- 4.0.12-SNAPSHOT
-
-
-
-
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- 1.2.5
-
- bom
-
-
-
- flatten
- process-resources
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
-
-
-
-
-
- snapshot
-
-
-
- org.jfrog.buildinfo
- artifactory-maven-plugin
- 3.6.2
- false
-
-
- build-info
-
- publish
-
-
-
- spring-ws
- {{BUILD_URL}}
-
-
- https://repo.spring.io
- {{ARTIFACTORY_USR}}
- {{ARTIFACTORY_PSW}}
- libs-snapshot-local
- libs-snapshot-local
-
-
-
-
-
-
-
-
-
-
- milestone
-
-
-
- org.jfrog.buildinfo
- artifactory-maven-plugin
- 3.6.2
- false
-
-
- build-info
-
- publish
-
-
-
- spring-ws
- {{BUILD_URL}}
-
-
- 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/
-
-
-
-
-
-
diff --git a/spring-ws-core/build.gradle b/spring-ws-core/build.gradle
new file mode 100644
index 00000000..9e843d4e
--- /dev/null
+++ b/spring-ws-core/build.gradle
@@ -0,0 +1,56 @@
+plugins {
+ id "java-library"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+ id "org.springframework.ws.optional-dependencies"
+}
+
+description = "Spring WS Core"
+
+dependencies {
+ api(project(":spring-xml"))
+ api("jakarta.xml.bind:jakarta.xml.bind-api")
+ api("jakarta.xml.soap:jakarta.xml.soap-api")
+ api("org.springframework:spring-aop")
+ api("org.springframework:spring-beans")
+ api("org.springframework:spring-oxm")
+ api("org.springframework:spring-web")
+ api("org.springframework:spring-webmvc")
+
+ optional("commons-httpclient:commons-httpclient")
+ optional("jakarta.mail:jakarta.mail-api")
+ optional("jakarta.servlet:jakarta.servlet-api")
+ optional("org.apache.httpcomponents:httpclient")
+ optional("org.apache.httpcomponents.client5:httpclient5")
+ optional("org.apache.ws.xmlschema:xmlschema-core")
+ optional("org.dom4j:dom4j")
+ optional("org.jdom:jdom2")
+ optional("wsdl4j:wsdl4j")
+ optional("xom:xom") {
+ exclude(group: "xalan", module: "xalan")
+ exclude(group: "xerces", module: "xercesImpl")
+ exclude(group: "xml-apis", module: "xml-apis")
+ }
+
+ runtimeOnly("org.glassfish.jaxb:jaxb-runtime") {
+ exclude(group: "org.eclipse.angus", module: "angus-activation")
+ }
+
+ testImplementation("com.fasterxml.woodstox:woodstox-core")
+ testImplementation("commons-io:commons-io")
+ testImplementation("net.minidev:json-smart:jar")
+ testImplementation("org.apache.logging.log4j:log4j-core")
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.aspectj:aspectjrt")
+ testImplementation("org.aspectj:aspectjweaver")
+ testImplementation("org.easymock:easymock")
+ testImplementation("org.eclipse.jetty:jetty-server")
+ testImplementation("org.eclipse.jetty.ee10:jetty-ee10-servlet")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.mockito:mockito-core")
+ testImplementation("org.slf4j:slf4j-api")
+ testImplementation("org.springframework:spring-test")
+ testImplementation("org.springframework:spring-webflux")
+ testImplementation("org.springframework.hateoas:spring-hateoas")
+ testImplementation("org.xmlunit:xmlunit-assertj")
+}
diff --git a/spring-ws-core/pom.xml b/spring-ws-core/pom.xml
deleted file mode 100644
index 0246ecc7..00000000
--- a/spring-ws-core/pom.xml
+++ /dev/null
@@ -1,247 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
-
- spring-ws-core
- Spring WS Core
-
-
-
- org.springframework.ws
- spring-xml
-
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
-
-
- jakarta.xml.soap
- jakarta.xml.soap-api
-
-
- org.springframework
- spring-aop
-
-
- org.springframework
- spring-beans
-
-
- org.springframework
- spring-oxm
-
-
- org.springframework
- spring-web
-
-
- org.springframework
- spring-webmvc
-
-
-
- org.glassfish.jaxb
- jaxb-runtime
- runtime
-
-
-
- commons-httpclient
- commons-httpclient
- true
-
-
- commons-codec
- commons-codec
-
-
- commons-logging
- commons-logging
-
-
-
-
- jakarta.servlet
- jakarta.servlet-api
- true
-
-
- org.apache.httpcomponents
- httpclient
- true
-
-
- org.apache.httpcomponents.client5
- httpclient5
- true
-
-
- org.apache.ws.xmlschema
- xmlschema-core
- true
-
-
- org.dom4j
- dom4j
- true
-
-
- org.jdom
- jdom2
- true
-
-
- wsdl4j
- wsdl4j
- true
-
-
- xom
- xom
- true
-
-
-
- com.fasterxml.woodstox
- woodstox-core
- test
-
-
- commons-io
- commons-io
- test
-
-
- org.apache.logging.log4j
- log4j-core
- test
-
-
- org.assertj
- assertj-core
- test
-
-
- org.aspectj
- aspectjrt
- test
-
-
- org.aspectj
- aspectjweaver
- test
-
-
- org.easymock
- easymock
- test
-
-
- org.eclipse.jetty
- jetty-server
- test
-
-
- org.eclipse.jetty.ee10
- jetty-ee10-servlet
- test
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
- org.mockito
- mockito-core
- test
-
-
- org.slf4j
- slf4j-api
- test
-
-
- org.springframework
- spring-test
- test
-
-
- org.springframework
- spring-webflux
- test
-
-
- org.springframework.hateoas
- spring-hateoas
- test
-
-
- org.xmlunit
- xmlunit-assertj
- test
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- docs
-
- single
-
- package
-
- true
-
-
-
-
-
-
-
-
- jakarta-ee-9
-
-
- com.sun.mail
- jakarta.mail
- test
-
-
-
-
- jakarta-ee-10
-
- true
-
-
-
- jakarta.mail
- jakarta.mail-api
- provided
-
-
- org.eclipse.angus
- angus-mail
- test
-
-
-
-
-
-
diff --git a/spring-ws-docs/build.gradle b/spring-ws-docs/build.gradle
new file mode 100644
index 00000000..e1ad7de3
--- /dev/null
+++ b/spring-ws-docs/build.gradle
@@ -0,0 +1,88 @@
+plugins {
+ id "io.freefair.aggregate-javadoc" version "8.12.1"
+ id "org.asciidoctor.jvm.convert" version "4.0.4"
+ id "org.asciidoctor.jvm.pdf" version "4.0.4"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+}
+
+repositories {
+ mavenCentral()
+}
+
+configurations {
+ asciidoctorExt
+}
+
+dependencies {
+ asciidoctorExt("io.spring.asciidoctor.backends:spring-asciidoctor-backends:0.0.5")
+ javadoc(enforcedPlatform(project(":spring-ws-platform")))
+ [":spring-ws-core", ":spring-ws-security", ":spring-ws-support", ":spring-ws-test", ":spring-xml"].each {
+ javadoc(project(it))
+ javadoc(project(path: it, configuration: "javadocClasspath"))
+ }
+}
+
+asciidoctorj {
+ attributes = [
+ "allow-uri-read": true,
+ "numbered": true,
+ "toclevels": 4
+ ]
+ options = [
+ "doctype": "book",
+ ]
+}
+
+tasks.named("asciidoctor") {
+ sources {
+ include "index.adoc"
+ }
+ configureOutputOptions {
+ backends = ["spring-html"]
+ }
+ baseDirFollowsSourceFile()
+ configurations("asciidoctorExt")
+}
+
+tasks.named("asciidoctorPdf") {
+ sources {
+ include "index.adoc"
+ }
+ baseDirFollowsSourceFile()
+}
+
+tasks.named("javadoc") {
+ title = "Spring Web Services ${project.version} API"
+ options {
+ use = true
+ bottom = "Copyright © ${java.time.Year.now()} VMware by Broadcom. All rights reserved."
+ }
+}
+
+def zip = tasks.register("zip", Zip) {
+ archiveBaseName = project.name
+ archiveVersion = project.version
+ destinationDirectory = project.layout.buildDirectory
+ into("reference/html") {
+ from asciidoctor
+ }
+ into ("reference/pdf") {
+ from asciidoctorPdf
+ }
+ into ("api") {
+ from javadoc
+ }
+}
+
+tasks.named("assemble") {
+ dependsOn(zip)
+}
+
+publishing {
+ publications {
+ maven(MavenPublication) {
+ artifact zip
+ }
+ }
+}
diff --git a/src/main/asciidoctor/bibliography.adoc b/spring-ws-docs/src/docs/asciidoc/bibliography.adoc
similarity index 100%
rename from src/main/asciidoctor/bibliography.adoc
rename to spring-ws-docs/src/docs/asciidoc/bibliography.adoc
diff --git a/src/main/asciidoctor/client.adoc b/spring-ws-docs/src/docs/asciidoc/client.adoc
similarity index 100%
rename from src/main/asciidoctor/client.adoc
rename to spring-ws-docs/src/docs/asciidoc/client.adoc
diff --git a/src/main/asciidoctor/common.adoc b/spring-ws-docs/src/docs/asciidoc/common.adoc
similarity index 100%
rename from src/main/asciidoctor/common.adoc
rename to spring-ws-docs/src/docs/asciidoc/common.adoc
diff --git a/src/main/asciidoctor/images/i21-banner-rhs.jpg b/spring-ws-docs/src/docs/asciidoc/images/i21-banner-rhs.jpg
similarity index 100%
rename from src/main/asciidoctor/images/i21-banner-rhs.jpg
rename to spring-ws-docs/src/docs/asciidoc/images/i21-banner-rhs.jpg
diff --git a/src/main/asciidoctor/images/oxm-exceptions.png b/spring-ws-docs/src/docs/asciidoc/images/oxm-exceptions.png
similarity index 100%
rename from src/main/asciidoctor/images/oxm-exceptions.png
rename to spring-ws-docs/src/docs/asciidoc/images/oxm-exceptions.png
diff --git a/src/main/asciidoctor/images/oxm-exceptions.svg b/spring-ws-docs/src/docs/asciidoc/images/oxm-exceptions.svg
similarity index 100%
rename from src/main/asciidoctor/images/oxm-exceptions.svg
rename to spring-ws-docs/src/docs/asciidoc/images/oxm-exceptions.svg
diff --git a/src/main/asciidoctor/images/s2_box_logo.png b/spring-ws-docs/src/docs/asciidoc/images/s2_box_logo.png
similarity index 100%
rename from src/main/asciidoctor/images/s2_box_logo.png
rename to spring-ws-docs/src/docs/asciidoc/images/s2_box_logo.png
diff --git a/src/main/asciidoctor/images/sequence.png b/spring-ws-docs/src/docs/asciidoc/images/sequence.png
similarity index 100%
rename from src/main/asciidoctor/images/sequence.png
rename to spring-ws-docs/src/docs/asciidoc/images/sequence.png
diff --git a/src/main/asciidoctor/images/spring-deps.png b/spring-ws-docs/src/docs/asciidoc/images/spring-deps.png
similarity index 100%
rename from src/main/asciidoctor/images/spring-deps.png
rename to spring-ws-docs/src/docs/asciidoc/images/spring-deps.png
diff --git a/src/main/asciidoctor/images/spring-ws-logo.png b/spring-ws-docs/src/docs/asciidoc/images/spring-ws-logo.png
similarity index 100%
rename from src/main/asciidoctor/images/spring-ws-logo.png
rename to spring-ws-docs/src/docs/asciidoc/images/spring-ws-logo.png
diff --git a/src/main/asciidoctor/images/xdev-spring_logo.jpg b/spring-ws-docs/src/docs/asciidoc/images/xdev-spring_logo.jpg
similarity index 100%
rename from src/main/asciidoctor/images/xdev-spring_logo.jpg
rename to spring-ws-docs/src/docs/asciidoc/images/xdev-spring_logo.jpg
diff --git a/src/main/asciidoctor/index.adoc b/spring-ws-docs/src/docs/asciidoc/index.adoc
similarity index 98%
rename from src/main/asciidoctor/index.adoc
rename to spring-ws-docs/src/docs/asciidoc/index.adoc
index 7f7e4479..7dca416b 100644
--- a/src/main/asciidoctor/index.adoc
+++ b/spring-ws-docs/src/docs/asciidoc/index.adoc
@@ -1,7 +1,7 @@
= Spring Web Services Reference Documentation
Arjen Poutsma, Rick Evans, Tareq Abed Rabbo, Greg Turnquist, Jay Bryant, Corneil du Plessis
:doctype: book
-:revnumber: {version}
+:revnumber: {gradle-project-version}
:revdate: {localdate}
:toc: left
:toclevels: 4
diff --git a/src/main/asciidoctor/preface.adoc b/spring-ws-docs/src/docs/asciidoc/preface.adoc
similarity index 100%
rename from src/main/asciidoctor/preface.adoc
rename to spring-ws-docs/src/docs/asciidoc/preface.adoc
diff --git a/src/main/asciidoctor/security.adoc b/spring-ws-docs/src/docs/asciidoc/security.adoc
similarity index 100%
rename from src/main/asciidoctor/security.adoc
rename to spring-ws-docs/src/docs/asciidoc/security.adoc
diff --git a/src/main/asciidoctor/server.adoc b/spring-ws-docs/src/docs/asciidoc/server.adoc
similarity index 100%
rename from src/main/asciidoctor/server.adoc
rename to spring-ws-docs/src/docs/asciidoc/server.adoc
diff --git a/src/main/asciidoctor/tutorial.adoc b/spring-ws-docs/src/docs/asciidoc/tutorial.adoc
similarity index 100%
rename from src/main/asciidoctor/tutorial.adoc
rename to spring-ws-docs/src/docs/asciidoc/tutorial.adoc
diff --git a/src/main/asciidoctor/what-is-spring-ws.adoc b/spring-ws-docs/src/docs/asciidoc/what-is-spring-ws.adoc
similarity index 100%
rename from src/main/asciidoctor/what-is-spring-ws.adoc
rename to spring-ws-docs/src/docs/asciidoc/what-is-spring-ws.adoc
diff --git a/src/main/asciidoctor/why-contract-first.adoc b/spring-ws-docs/src/docs/asciidoc/why-contract-first.adoc
similarity index 100%
rename from src/main/asciidoctor/why-contract-first.adoc
rename to spring-ws-docs/src/docs/asciidoc/why-contract-first.adoc
diff --git a/spring-ws-platform/build.gradle b/spring-ws-platform/build.gradle
new file mode 100644
index 00000000..d36239e4
--- /dev/null
+++ b/spring-ws-platform/build.gradle
@@ -0,0 +1,63 @@
+plugins {
+ id "java-platform"
+}
+
+javaPlatform {
+ allowDependencies()
+}
+
+dependencies {
+ api(platform("org.eclipse.jetty:jetty-bom:12.0.16"))
+ api(platform("org.eclipse.jetty.ee10:jetty-ee10-bom:12.0.16"))
+ api(platform("org.junit:junit-bom:5.11.0"))
+ api(platform("org.springframework:spring-framework-bom:6.0.23"))
+ api(platform("org.springframework.security:spring-security-bom:6.1.9"))
+ constraints {
+ api("com.fasterxml.woodstox:woodstox-core:6.5.1")
+ api("com.icegreen:greenmail:2.0.1")
+ api("com.icegreen:greenmail-junit5:2.0.1")
+ api("com.icegreen:greenmail-spring:2.0.1")
+ api("com.sun.xml.messaging.saaj:saaj-impl:3.0.4")
+ api("commons-httpclient:commons-httpclient:3.1")
+ api("commons-io:commons-io:2.16.1")
+ api("jakarta.activation:jakarta.activation-api:2.1.3")
+ api("jakarta.annotation:jakarta.annotation-api:2.1.1")
+ api("jakarta.jms:jakarta.jms-api:3.1.0")
+ api("jakarta.mail:jakarta.mail-api:2.1.3")
+ api("jakarta.servlet:jakarta.servlet-api:6.0.0")
+ api("jakarta.xml.bind:jakarta.xml.bind-api:4.0.2")
+ api("jakarta.xml.soap:jakarta.xml.soap-api:3.0.2")
+ api("jaxen:jaxen:1.1.6")
+ api("net.minidev:json-smart:2.5.2")
+ api("net.sf.ehcache:ehcache:2.10.9.2")
+ api("org.apache.activemq:artemis-jakarta-server:2.33.0")
+ api("org.apache.commons:commons-collections4:4.4")
+ api("org.apache.httpcomponents.client5:httpclient5:5.2.3")
+ api("org.apache.httpcomponents:httpclient:4.5.14")
+ api("org.apache.logging.log4j:log4j-core:2.19.0")
+ api("org.apache.santuario:xmlsec:3.0.4")
+ api("org.apache.wss4j:wss4j-ws-security-dom:2.4.3")
+ api("org.apache.ws.xmlschema:xmlschema-core:2.3.1")
+ api("org.aspectj:aspectjrt:1.9.22")
+ api("org.aspectj:aspectjweaver:1.9.22")
+ api("org.assertj:assertj-core:3.25.3")
+ api("org.dom4j:dom4j:2.1.4")
+ api("org.easymock:easymock:4.3")
+ api("org.eclipse.angus:angus-mail:1.1.0")
+ api("org.glassfish.jaxb:jaxb-runtime:4.0.5")
+ api("org.igniterealtime.smack:smack-extensions:4.3.5")
+ api("org.igniterealtime.smack:smack-java7:4.3.5")
+ api("org.igniterealtime.smack:smack-tcp:4.3.5")
+ api("org.jdom:jdom2:2.0.6.1")
+ api("org.jvnet.staxex:stax-ex:2.1.0")
+ api("org.mockito:mockito-core:4.11.0")
+ api("org.slf4j:slf4j-api:2.0.6")
+ api("org.springframework.hateoas:spring-hateoas:2.1.5")
+ api("org.xmlunit:xmlunit-assertj:2.10.0")
+ api("org.xmlunit:xmlunit-core:2.10.0")
+ api("org.xmlunit:xmlunit-legacy:2.10.0")
+ api("org.xmlunit:xmlunit-placeholders:2.10.0")
+ api("wsdl4j:wsdl4j:1.6.3")
+ api("xom:xom:1.3.7")
+ }
+}
diff --git a/spring-ws-security/build.gradle b/spring-ws-security/build.gradle
new file mode 100644
index 00000000..e32d4f92
--- /dev/null
+++ b/spring-ws-security/build.gradle
@@ -0,0 +1,31 @@
+plugins {
+ id "java-library"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+ id "org.springframework.ws.optional-dependencies"
+}
+
+description = "Spring WS Security"
+
+dependencies {
+ api(project(":spring-ws-core"))
+ api(project(":spring-xml"))
+ api("org.apache.santuario:xmlsec")
+ api("org.apache.wss4j:wss4j-ws-security-dom") {
+ exclude(group: "org.apache.geronimo.javamail", module: "geronimo-javamail_1.4_mail")
+ exclude(group: "org.cryptacular", module: "cryptacular")
+ }
+ api("org.jvnet.staxex:stax-ex")
+ api("org.slf4j:slf4j-api")
+ api("org.springframework:spring-beans")
+ api("org.springframework:spring-tx")
+ api("org.springframework.security:spring-security-core")
+
+ optional("com.sun.xml.messaging.saaj:saaj-impl")
+ optional("net.sf.ehcache:ehcache")
+
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.easymock:easymock")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.springframework:spring-test")
+}
diff --git a/spring-ws-security/pom.xml b/spring-ws-security/pom.xml
deleted file mode 100644
index 169bb007..00000000
--- a/spring-ws-security/pom.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
-
- spring-ws-security
- Spring WS Security
-
-
-
- org.springframework.ws
- spring-ws-core
-
-
- org.springframework.ws
- spring-xml
-
-
-
- org.apache.santuario
- xmlsec
-
-
- org.apache.wss4j
- wss4j-ws-security-dom
-
-
- org.jvnet.staxex
- stax-ex
-
-
- org.slf4j
- slf4j-api
-
-
- org.springframework
- spring-beans
-
-
- org.springframework
- spring-tx
-
-
- org.springframework.security
- spring-security-core
-
-
-
- com.sun.xml.messaging.saaj
- saaj-impl
- true
-
-
- net.sf.ehcache
- ehcache
- true
-
-
-
- org.assertj
- assertj-core
- test
-
-
- org.easymock
- easymock
- test
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
- org.springframework
- spring-test
- test
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- docs
-
- single
-
- package
-
- true
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-ws-support/build.gradle b/spring-ws-support/build.gradle
new file mode 100644
index 00000000..3a99b81b
--- /dev/null
+++ b/spring-ws-support/build.gradle
@@ -0,0 +1,37 @@
+plugins {
+ id "java-library"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+ id "org.springframework.ws.optional-dependencies"
+}
+
+description = "Spring WS Support"
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ api(project(":spring-ws-core"))
+ api(project(":spring-xml"))
+ api("org.springframework:spring-jms")
+
+ optional("jakarta.jms:jakarta.jms-api")
+ optional("jakarta.mail:jakarta.mail-api")
+ optional("org.eclipse.angus:angus-mail")
+ optional("org.igniterealtime.smack:smack-extensions")
+ optional("org.igniterealtime.smack:smack-java7")
+ optional("org.igniterealtime.smack:smack-tcp")
+
+ testImplementation("com.icegreen:greenmail")
+ testImplementation("com.icegreen:greenmail-junit5")
+ testImplementation("com.icegreen:greenmail-spring")
+ testImplementation("commons-httpclient:commons-httpclient")
+ testImplementation("jakarta.annotation:jakarta.annotation-api")
+ testImplementation("org.apache.activemq:artemis-jakarta-server")
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.slf4j:slf4j-api")
+ testImplementation("org.springframework:spring-test")
+ testImplementation("org.xmlunit:xmlunit-assertj")
+}
diff --git a/spring-ws-support/pom.xml b/spring-ws-support/pom.xml
deleted file mode 100644
index b063aaee..00000000
--- a/spring-ws-support/pom.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
-
- spring-ws-support
- Spring WS Support
-
-
-
- org.springframework.ws
- spring-ws-core
-
-
- org.springframework.ws
- spring-xml
-
-
-
- org.springframework
- spring-beans
-
-
- org.springframework
- spring-jms
-
-
-
- jakarta.jms
- jakarta.jms-api
- true
-
-
- jakarta.mail
- jakarta.mail-api
- provided
-
-
- org.igniterealtime.smack
- smack-extensions
- true
-
-
- org.igniterealtime.smack
- smack-java7
- true
-
-
- org.igniterealtime.smack
- smack-tcp
- true
-
-
-
- com.icegreen
- greenmail
- test
-
-
- com.icegreen
- greenmail-junit5
- test
-
-
- com.icegreen
- greenmail-spring
- test
-
-
- commons-httpclient
- commons-httpclient
- test
-
-
- jakarta.annotation
- jakarta.annotation-api
- test
-
-
- org.apache.activemq
- artemis-jakarta-server
- test
-
-
- org.assertj
- assertj-core
- test
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
- org.slf4j
- slf4j-api
- test
-
-
- org.springframework
- spring-test
- test
-
-
- org.xmlunit
- xmlunit-assertj
- test
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- docs
-
- single
-
- package
-
- true
-
-
-
-
-
-
-
-
-
- jakarta-ee-9
-
-
- com.sun.mail
- jakarta.mail
- provided
-
-
-
-
-
- jakarta-ee-10
-
- true
-
-
-
- org.eclipse.angus
- angus-mail
- provided
-
-
-
-
-
-
diff --git a/spring-ws-test/build.gradle b/spring-ws-test/build.gradle
new file mode 100644
index 00000000..33436ed4
--- /dev/null
+++ b/spring-ws-test/build.gradle
@@ -0,0 +1,22 @@
+plugins {
+ id "java-library"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+}
+
+description = "Spring WS Test"
+
+dependencies {
+ api(project(":spring-ws-core"))
+ api(project(":spring-xml"))
+ api("org.springframework:spring-context")
+ api("org.xmlunit:xmlunit-core")
+ api("org.xmlunit:xmlunit-legacy")
+ api("org.xmlunit:xmlunit-placeholders")
+
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.easymock:easymock")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.springframework:spring-test")
+ testImplementation("org.xmlunit:xmlunit-assertj")
+}
diff --git a/spring-ws-test/pom.xml b/spring-ws-test/pom.xml
deleted file mode 100644
index 718397ee..00000000
--- a/spring-ws-test/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
-
- spring-ws-test
- Spring WS Test
-
-
-
- org.springframework.ws
- spring-ws-core
-
-
- org.springframework.ws
- spring-xml
-
-
-
- org.springframework
- spring-context
-
-
- org.xmlunit
- xmlunit-core
-
-
- org.xmlunit
- xmlunit-legacy
-
-
- org.xmlunit
- xmlunit-placeholders
-
-
-
- org.assertj
- assertj-core
- test
-
-
- org.easymock
- easymock
- test
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
- org.springframework
- spring-test
- test
-
-
- org.xmlunit
- xmlunit-assertj
- test
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- docs
-
- single
-
- package
-
- true
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-xml/build.gradle b/spring-xml/build.gradle
new file mode 100644
index 00000000..ee0ca106
--- /dev/null
+++ b/spring-xml/build.gradle
@@ -0,0 +1,32 @@
+plugins {
+ id "java-library"
+ id "maven-publish"
+ id "org.springframework.ws.conventions"
+ id "org.springframework.ws.optional-dependencies"
+}
+
+description = "Spring XML"
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ api("com.sun.xml.messaging.saaj:saaj-impl") {
+ exclude(group: "org.eclipse.angus", module: "angus-activation")
+ }
+ api("jakarta.activation:jakarta.activation-api")
+ api("jakarta.xml.soap:jakarta.xml.soap-api")
+ api("org.springframework:spring-beans")
+ api("org.springframework:spring-context")
+
+ optional("org.apache.ws.xmlschema:xmlschema-core")
+ optional("jaxen:jaxen")
+
+ testImplementation("org.apache.commons:commons-collections4")
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.easymock:easymock")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.mockito:mockito-core")
+ testImplementation("org.xmlunit:xmlunit-assertj")
+}
diff --git a/spring-xml/pom.xml b/spring-xml/pom.xml
deleted file mode 100644
index 667287a5..00000000
--- a/spring-xml/pom.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws
- 4.0.12-SNAPSHOT
-
- spring-xml
- Spring XML
-
-
-
- com.sun.xml.messaging.saaj
- saaj-impl
-
-
- jakarta.activation
- jakarta.activation-api
-
-
- jakarta.xml.soap
- jakarta.xml.soap-api
-
-
- org.springframework
- spring-beans
-
-
- org.springframework
- spring-context
-
-
-
- org.apache.ws.xmlschema
- xmlschema-core
- true
-
-
- jaxen
- jaxen
- true
-
-
-
- org.apache.commons
- commons-collections4
- test
-
-
- org.assertj
- assertj-core
- test
-
-
- org.easymock
- easymock
- test
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
- org.mockito
- mockito-core
- test
-
-
- org.xmlunit
- xmlunit-assertj
- test
-
-
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- docs
-
- single
-
- package
-
- true
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file