Skip to content

Commit 13be54a

Browse files
committed
Make ProblemDetailJacksonXmlMixin compatible with Jackson 3
Closes gh-34925
1 parent eed0a3f commit 13be54a

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

spring-web/src/main/java/org/springframework/http/converter/json/ProblemDetailJacksonXmlMixin.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.fasterxml.jackson.annotation.JsonAnyGetter;
2323
import com.fasterxml.jackson.annotation.JsonAnySetter;
2424
import com.fasterxml.jackson.annotation.JsonInclude;
25-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
25+
import com.fasterxml.jackson.annotation.JsonRootName;
2626
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
2727
import org.jspecify.annotations.Nullable;
2828

@@ -40,36 +40,44 @@
4040
* <a href="https://github.com/FasterXML/jackson-dataformat-xml/issues/355">FasterXML/jackson-dataformat-xml#355</a>.
4141
*
4242
* @author Rossen Stoyanchev
43+
* @author Sebastien Deleuze
4344
* @since 6.0.5
4445
*/
4546
@JsonInclude(NON_EMPTY)
4647
@JacksonXmlRootElement(localName = "problem", namespace = ProblemDetailJacksonXmlMixin.NAMESPACE)
48+
@JsonRootName(value = "problem", namespace = ProblemDetailJacksonXmlMixin.NAMESPACE)
4749
public interface ProblemDetailJacksonXmlMixin {
4850

4951
/** RFC 7807 (obsoleted by RFC 9457) namespace. */
5052
String NAMESPACE = "urn:ietf:rfc:7807";
5153

5254

53-
@JacksonXmlProperty(namespace = NAMESPACE)
55+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
56+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
5457
URI getType();
5558

56-
@JacksonXmlProperty(namespace = NAMESPACE)
59+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
60+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
5761
String getTitle();
5862

59-
@JacksonXmlProperty(namespace = NAMESPACE)
63+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
64+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
6065
int getStatus();
6166

62-
@JacksonXmlProperty(namespace = NAMESPACE)
67+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
68+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
6369
String getDetail();
6470

65-
@JacksonXmlProperty(namespace = NAMESPACE)
71+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
72+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
6673
URI getInstance();
6774

6875
@JsonAnySetter
6976
void setProperty(String name, @Nullable Object value);
7077

7178
@JsonAnyGetter
72-
@JacksonXmlProperty(namespace = NAMESPACE)
79+
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
80+
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
7381
Map<String, Object> getProperties();
7482

7583
}

spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import com.fasterxml.jackson.annotation.JsonTypeName;
3030
import com.fasterxml.jackson.annotation.JsonView;
3131
import org.jspecify.annotations.Nullable;
32-
import org.junit.jupiter.api.Disabled;
3332
import org.junit.jupiter.api.Test;
3433
import org.skyscreamer.jsonassert.JSONAssert;
3534
import org.xmlunit.assertj.XmlAssert;
@@ -413,7 +412,6 @@ private void testProblemDetailMediaType(String expectedContentType) throws Excep
413412
}
414413

415414
@Test
416-
@Disabled("https://github.com/FasterXML/jackson-dataformat-xml/issues/757")
417415
void problemDetailWhenProblemXmlRequested() throws Exception {
418416
this.servletRequest.addHeader("Accept", MediaType.APPLICATION_PROBLEM_XML_VALUE);
419417
testProblemDetailMediaType(MediaType.APPLICATION_PROBLEM_XML_VALUE);

0 commit comments

Comments
 (0)