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