diff --git a/README.adoc b/README.adoc index 1d321285b3..62d9862d04 100644 --- a/README.adoc +++ b/README.adoc @@ -137,7 +137,7 @@ The https://spring.io/[spring.io] site contains several guides that show how to [[building-from-source]] == Building from Source -You do not need to build from source to use Spring Data. Binaries are available in https://repo.spring.io[repo.spring.io] +You do not need to build from source to use Spring Data. Binaries are available in https://central.sonatype.com[Maven Central] or in case of snapshots from https://repo.spring.io[repo.spring.io] and accessible from Maven using the Maven configuration noted <>. NOTE: Configuration for Gradle is similar to Maven. diff --git a/SECURITY.adoc b/SECURITY.adoc index 9c518d999a..de5e8d975b 100644 --- a/SECURITY.adoc +++ b/SECURITY.adoc @@ -1,9 +1,16 @@ -# Security Policy += Security Policy -## Supported Versions +== Reporting a Vulnerability -Please see the https://spring.io/projects/spring-data-mongodb[Spring Data MongoDB] project page for supported versions. +Please, https://github.com/spring-projects/security-advisories/security/advisories/new[open a draft security advisory] if you need to disclose and discuss a security issue in private with the Spring Data team. +Note that we only accept reports against https://spring.io/projects/spring-data#support[supported versions]. -## Reporting a Vulnerability +For more details, check out our https://spring.io/security-policy[security policy]. + +== JAR signing + +Spring Data JARs released on Maven Central are signed. +You'll find more information about the key here: https://spring.io/GPG-KEY-spring.txt + +Versions released prior to 2023 may be signed with a different key. -Please don't raise security vulnerabilities here. Head over to https://pivotal.io/security to learn how to disclose them responsibly. diff --git a/pom.xml b/pom.xml index b23a16229f..1c2a7ffee9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5078-SNAPSHOT pom Spring Data MongoDB diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml index fc88571622..0a30bf9ff8 100644 --- a/spring-data-mongodb-distribution/pom.xml +++ b/spring-data-mongodb-distribution/pom.xml @@ -15,7 +15,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5078-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 37730f7d40..469b10ab92 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -13,7 +13,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5078-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java index 4b37225b5d..4878c5686c 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java @@ -37,6 +37,9 @@ /** * Factory to create a {@link ContextProvider} to propagate the request context across tasks. Requires either * {@link SynchronousContextProvider} or {@link ReactiveContextProvider} to be present. + *

+ * NOTE: MongoDB Java Driver 5.7+ comes with observability directly built in which can be configured + * via {@code MongoClientSettings.Builder#observabilitySettings(ObservabilitySettings)}. * * @author Mark Paluch * @since 3.0 diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java index cab9cd5cb8..e91f1f068b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java @@ -35,6 +35,9 @@ /** * A {@link Observation.Context} that contains MongoDB events. + *

+ * NOTE: MongoDB Java Driver 5.7+ comes with observability directly built in which can be configured + * via {@code MongoClientSettings.Builder#observabilitySettings(ObservabilitySettings)}. * * @author Marcin Grzejszczak * @author Greg Turnquist diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java index 7d1100c582..6081bf9f65 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java @@ -20,7 +20,10 @@ /** * {@link ObservationConvention} for {@link MongoHandlerContext}. - * + *

+ * NOTE: MongoDB Java Driver 5.7+ comes with observability directly built in which can be configured + * via {@code MongoClientSettings.Builder#observabilitySettings(ObservabilitySettings)}. + * * @author Greg Turnquist * @since 4 */ diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java index fcd4778042..014fa06402 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java @@ -35,6 +35,9 @@ /** * Implement MongoDB's {@link CommandListener} using Micrometer's {@link Observation} API. + *

+ * NOTE: MongoDB Java Driver 5.7+ comes with observability directly built in which can be configured + * via {@code MongoClientSettings.Builder#observabilitySettings(ObservabilitySettings)}. * * @author OpenZipkin Brave Authors * @author Marcin Grzejszczak diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java index d6319e5f4f..b9cb874dc9 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java @@ -1,5 +1,8 @@ /** * Infrastructure to provide driver observability using Micrometer. + *

+ * NOTE: MongoDB Java Driver 5.7+ comes with observability directly built in which can be configured + * via {@code MongoClientSettings.Builder#observabilitySettings(ObservabilitySettings)}. */ @org.jspecify.annotations.NullMarked package org.springframework.data.mongodb.observability; diff --git a/src/main/antora/modules/ROOT/pages/observability/observability.adoc b/src/main/antora/modules/ROOT/pages/observability/observability.adoc index 8a9b0a1eeb..3e18d5f13f 100644 --- a/src/main/antora/modules/ROOT/pages/observability/observability.adoc +++ b/src/main/antora/modules/ROOT/pages/observability/observability.adoc @@ -3,11 +3,27 @@ [[mongodb.observability]] = Observability -Spring Data MongoDB currently has the most up-to-date code to support Observability in your MongoDB application. -These changes, however, haven't been picked up by Spring Boot (yet). -Until those changes are applied, if you wish to use Spring Data MongoDB's flavor of Observability, you must carry out the following steps. +[NOTE] +==== +MongoDB Java Driver 5.7+ comes with observability directly built in. +We recommend switching to the driver native `ObservabilitySettings`, which can be configured as outlined below: +[source,java] +---- +@Bean +MongoClientSettingsBuilderCustomizer mongoDbObservabilitySettings(ObservationRegistry registry) { + return (clientSettingsBuilder) -> { + clientSettingsBuilder.observabilitySettings(ObservabilitySettings.micrometerBuilder() + .observationRegistry(observationRegistry) + .build()); + }; +} +---- +In the light of driver native observability support, the types within the Spring Data provided _org.springframework.data.mongodb.observability_ package will not see further development and are subject to deprecation/removal in subsequent releases. +==== + +To use Spring Data MongoDB's flavor of Observability you must: -. First of all, you must opt into Spring Data MongoDB's configuration settings by customizing `MongoClientSettings` through either your `@SpringBootApplication` class or one of your configuration classes. +. opt into Spring Data MongoDB's configuration settings by customizing `MongoClientSettings` through either your `@SpringBootApplication` class or one of your configuration classes. + .Registering MongoDB Micrometer customizer setup ====