Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions eng/lintingconfigs/revapi/track2/revapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,12 @@
"new" : "parameter void com.azure.spring.integration.core.handler.DefaultMessageHandler::setSendCallback(===java.util.function.BiConsumer<java.lang.Void, java.lang.Throwable>===)",
"justification" : "Replace deprecated parameterType"
},
{
"code" : "java.field.typeChanged",
"old" : "field com.azure.spring.cloud.feature.management.filters.TargetingFilter.OBJECT_MAPPER",
"new" : "field com.azure.spring.cloud.feature.management.filters.TargetingFilter.OBJECT_MAPPER",
"justification" : "Jackson 2 to Jackson 3 migration to align with Spring Boot 4: the field type changed from com.fasterxml.jackson.databind.ObjectMapper to tools.jackson.databind.ObjectMapper. This is an intentional breaking change for these beta Spring libraries (see issue 49538)."
},
{
"code": "java.method.numberOfParametersChanged",
"old": {
Expand Down
3 changes: 2 additions & 1 deletion eng/versioning/external_dependencies.txt
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,6 @@ storage_com.microsoft.azure:azure-storage;8.6.6
# sdk\spring\pom.xml modules
springboot4_com.diffplug.spotless:spotless-maven-plugin;2.30.0
springboot4_com.fasterxml.jackson.core:jackson-annotations;2.21
springboot4_com.fasterxml.jackson.core:jackson-databind;2.21.4
springboot4_com.fasterxml.jackson.datatype:jackson-datatype-jdk8;2.21.4
springboot4_com.fasterxml.jackson.module:jackson-module-parameter-names;2.21.4
springboot4_com.github.spotbugs:spotbugs-maven-plugin;4.8.2.0
Expand Down Expand Up @@ -346,6 +345,7 @@ springboot4_org.springframework.boot:spring-boot-data-redis;4.1.0
springboot4_org.springframework.boot:spring-boot-docker-compose;4.1.0
springboot4_org.springframework.boot:spring-boot-health;4.1.0
springboot4_org.springframework.boot:spring-boot-http-converter;4.1.0
springboot4_org.springframework.boot:spring-boot-jackson;4.1.0
springboot4_org.springframework.boot:spring-boot-jackson2;4.1.0
springboot4_org.springframework.boot:spring-boot-jdbc;4.1.0
springboot4_org.springframework.boot:spring-boot-jms;4.1.0
Expand Down Expand Up @@ -387,6 +387,7 @@ springboot4_org.springframework:spring-web;7.0.8
springboot4_org.springframework:spring-webmvc;7.0.8
springboot4_org.testcontainers:testcontainers-junit-jupiter;2.0.5
springboot4_org.testcontainers:testcontainers-azure;2.0.5
springboot4_tools.jackson.core:jackson-databind;3.1.4
springboot4_jakarta.annotation:jakarta.annotation-api;3.0.0
springboot4_ch.qos.logback:logback-classic;1.5.34
springboot4_org.awaitility:awaitility;4.3.0
Expand Down
74 changes: 74 additions & 0 deletions sdk/spring/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,80 @@ This section includes changes in `spring-cloud-azure-autoconfigure` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Messaging Azure

This section includes changes in `spring-messaging-azure` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Messaging Azure Event Hubs

This section includes changes in `spring-messaging-azure-eventhubs` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Messaging Azure Service Bus

This section includes changes in `spring-messaging-azure-servicebus` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Messaging Azure Storage Queue

This section includes changes in `spring-messaging-azure-storage-queue` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Cloud Azure App Configuration Config

This section includes changes in `spring-cloud-azure-appconfiguration-config` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Cloud Azure App Configuration Config Web

This section includes changes in `spring-cloud-azure-appconfiguration-config-web` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Cloud Azure Feature Management

This section includes changes in `spring-cloud-azure-feature-management` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Cloud Azure Actuator Autoconfigure

This section includes changes in `spring-cloud-azure-actuator-autoconfigure` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

### Spring Cloud Azure Docker Compose

This section includes changes in `spring-cloud-azure-docker-compose` module.

#### Other Changes

- Upgrade to Jackson 3 to align with Spring Boot 4 ([#49538](https://github.com/Azure/azure-sdk-for-java/issues/49538)).

## 6.4.0 (2026-06-01)
- This release is compatible with Spring Boot 3.5.0-3.5.14. (Note: 3.5.x (x>14) should be supported, but they aren't tested with this release.)
- This release is compatible with Spring Cloud 2025.0.0-2025.0.2. (Note: 2025.0.x (x>2) should be supported, but they aren't tested with this release.)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.21.4</version> <!-- {x-version-update;springboot4_com.fasterxml.jackson.core:jackson-databind;external_dependency} -->
<version>3.1.4</version> <!-- {x-version-update;springboot4_tools.jackson.core:jackson-databind;external_dependency} -->
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
Expand Down Expand Up @@ -198,7 +198,7 @@
<rules>
<bannedDependencies>
<includes>
<include>com.fasterxml.jackson.core:jackson-databind:[2.21.4]</include> <!-- {x-include-update;springboot4_com.fasterxml.jackson.core:jackson-databind;external_dependency} -->
<include>tools.jackson.core:jackson-databind:[3.1.4]</include> <!-- {x-include-update;springboot4_tools.jackson.core:jackson-databind;external_dependency} -->
<include>org.springframework.boot:spring-boot-actuator:[4.1.0]</include> <!-- {x-include-update;springboot4_org.springframework.boot:spring-boot-actuator;external_dependency} -->
<include>org.springframework.boot:spring-boot-actuator-autoconfigure:[4.1.0]</include> <!-- {x-include-update;springboot4_org.springframework.boot:spring-boot-actuator-autoconfigure;external_dependency} -->
</includes>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@
import com.azure.spring.cloud.appconfiguration.config.implementation.properties.AppConfigurationStoreMonitoring.AccessToken;
import com.azure.spring.cloud.appconfiguration.config.implementation.properties.AppConfigurationStoreMonitoring.PushNotification;
import com.azure.spring.cloud.appconfiguration.config.implementation.properties.ConfigStore;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import jakarta.servlet.http.HttpServletRequest;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.databind.json.JsonMapper;

/**
* Common class for authenticating refresh requests.
Expand All @@ -37,7 +38,7 @@ public class AppConfigurationEndpoint {

private final JsonNode validationResponse;

private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder().build();

/**
* Base Authentication for refresh endpoints.
Expand All @@ -63,7 +64,7 @@ public AppConfigurationEndpoint(HttpServletRequest request, List<ConfigStore> co
if (data != null) {
JsonNode syncTokenNode = data.findValue(SYNC_TOKEN);
if (syncTokenNode != null) {
sToken = syncTokenNode.asText();
sToken = syncTokenNode.asString();
}
}

Expand All @@ -73,7 +74,7 @@ public AppConfigurationEndpoint(HttpServletRequest request, List<ConfigStore> co

JsonNode requestSubject = requestBody.findValue(CONFIG_STORE_SUBJECT);
if (requestSubject != null) {
String subject = requestSubject.asText();
String subject = requestSubject.asString();
endpoint = URI.create(subject);
} else {
throw new IllegalArgumentException("Refresh request missing topic field.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@

import com.azure.spring.cloud.appconfiguration.config.implementation.properties.AppConfigurationProperties;
import com.azure.spring.cloud.appconfiguration.config.web.implementation.AppConfigurationEndpoint;
import com.fasterxml.jackson.databind.JsonNode;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import tools.jackson.databind.JsonNode;

/**
* Endpoint for requesting new configurations to be loaded in all registered instances on the Bus.
Expand Down Expand Up @@ -82,7 +82,7 @@ public String refresh(HttpServletRequest request, HttpServletResponse response,
JsonNode validationResponse = endpoint.getValidationResponse();
if (validationResponse != null) {
// Validating Web Hook
return VALIDATION_CODE_FORMAT_START + validationResponse.asText() + "\"}";
return VALIDATION_CODE_FORMAT_START + validationResponse.asString() + "\"}";
} else {
if (!endpoint.authenticate()) {
return HttpStatus.UNAUTHORIZED.getReasonPhrase();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@

import com.azure.spring.cloud.appconfiguration.config.implementation.properties.AppConfigurationProperties;
import com.azure.spring.cloud.appconfiguration.config.web.implementation.AppConfigurationEndpoint;
import com.fasterxml.jackson.databind.JsonNode;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import tools.jackson.databind.JsonNode;

/**
* Endpoint for requesting new configurations to be loaded.
Expand Down Expand Up @@ -84,7 +84,7 @@ public String refresh(HttpServletRequest request, HttpServletResponse response,
JsonNode validationResponse = endpoint.getValidationResponse();
if (validationResponse != null) {
// Validating Web Hook
return String.format("%s%s\"}", VALIDATION_CODE_FORMAT_START, validationResponse.asText());
return String.format("%s%s\"}", VALIDATION_CODE_FORMAT_START, validationResponse.asString());
} else {
if (!endpoint.authenticate()) {
return HttpStatus.UNAUTHORIZED.getReasonPhrase();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,11 @@
import org.mockito.MockitoAnnotations;

import com.azure.spring.cloud.appconfiguration.config.implementation.properties.ConfigStore;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import jakarta.servlet.http.HttpServletRequest;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.databind.json.JsonMapper;

public class AppConfigurationEndpointTest {

Expand All @@ -49,7 +47,7 @@ public class AppConfigurationEndpointTest {

private static final String GET_TEST_INVALID = "src/test/resources/webHookInvalid.json";

private ObjectMapper mapper = new ObjectMapper();
private ObjectMapper mapper = JsonMapper.builder().build();

@BeforeEach
public void setup() throws IOException {
Expand All @@ -59,7 +57,7 @@ public void setup() throws IOException {
}

@Test
public void validationParsing() throws JsonGenerationException, JsonMappingException, IOException {
public void validationParsing() throws IOException {
String requestBody = mapper.readValue(new File(GET_TEST_VALIDATION), JsonNode.class).toString();
when(lines.collect(Mockito.any())).thenReturn(requestBody);

Expand All @@ -77,7 +75,7 @@ public void validationParsing() throws JsonGenerationException, JsonMappingExcep
}

@Test
public void validationInvalidParsing() throws JsonGenerationException, JsonMappingException, IOException {
public void validationInvalidParsing() throws IOException {
String requestBody = mapper.readValue(new File(GET_TEST_INVALID), JsonNode.class).toString();
when(lines.collect(Mockito.any())).thenReturn(requestBody);
List<ConfigStore> configStores = new ArrayList<ConfigStore>();
Expand All @@ -88,7 +86,7 @@ public void validationInvalidParsing() throws JsonGenerationException, JsonMappi
}

@Test
public void authenticate() throws JsonParseException, JsonMappingException, IOException {
public void authenticate() throws IOException {
String requestBody = mapper.readValue(new File(GET_TEST_VALIDATION), JsonNode.class).toString();
when(lines.collect(Mockito.any())).thenReturn(requestBody);

Expand Down Expand Up @@ -158,7 +156,7 @@ public void authenticate() throws JsonParseException, JsonMappingException, IOEx
}

@Test
public void triggerRefresh() throws JsonParseException, JsonMappingException, IOException {
public void triggerRefresh() throws IOException {
String requestBody = mapper.readValue(new File(GET_TEST_VALIDATION), JsonNode.class).toString();
when(lines.collect(Mockito.any())).thenReturn(requestBody);
List<ConfigStore> configStores = new ArrayList<ConfigStore>();
Expand Down
12 changes: 11 additions & 1 deletion sdk/spring/spring-cloud-azure-appconfiguration-config/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,16 @@
<artifactId>spring-cloud-azure-autoconfigure</artifactId>
<version>7.4.0-beta.1</version> <!-- {x-version-update;com.azure.spring:spring-cloud-azure-autoconfigure;current} -->
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>3.1.4</version> <!-- {x-version-update;springboot4_tools.jackson.core:jackson-databind;external_dependency} -->
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.21</version> <!-- {x-version-update;springboot4_com.fasterxml.jackson.core:jackson-annotations;external_dependency} -->
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down Expand Up @@ -177,7 +187,7 @@
<bannedDependencies>
<includes>
<include>com.fasterxml.jackson.core:jackson-annotations:[2.21]</include> <!-- {x-include-update;springboot4_com.fasterxml.jackson.core:jackson-annotations;external_dependency} -->
<include>com.fasterxml.jackson.core:jackson-databind:[2.21.4]</include> <!-- {x-include-update;springboot4_com.fasterxml.jackson.core:jackson-databind;external_dependency} -->
<include>tools.jackson.core:jackson-databind:[3.1.4]</include> <!-- {x-include-update;springboot4_tools.jackson.core:jackson-databind;external_dependency} -->
<include>org.springframework.boot:spring-boot-actuator:[4.1.0]</include> <!-- {x-include-update;springboot4_org.springframework.boot:spring-boot-actuator;external_dependency} -->
<include>org.springframework.boot:spring-boot-autoconfigure:[4.1.0]</include> <!-- {x-include-update;springboot4_org.springframework.boot:spring-boot-autoconfigure;external_dependency} -->
<include>org.springframework.cloud:spring-cloud-context:[5.0.2]</include> <!-- {x-include-update;springboot4_org.springframework.cloud:spring-cloud-context;external_dependency} -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

import org.springframework.core.env.EnumerablePropertySource;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.databind.json.JsonMapper;

/**
* Azure App Configuration PropertySource unique per Store Label(Profile) combo.
Expand Down
Loading
Loading