Browse Source

Make ProblemDetailJacksonXmlMixin compatible with Jackson 3

Closes gh-34925
pull/34949/head
Sébastien Deleuze 7 months ago
parent
commit
13be54a1d2
  1. 22
      spring-web/src/main/java/org/springframework/http/converter/json/ProblemDetailJacksonXmlMixin.java
  2. 2
      spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java

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

@ -22,7 +22,7 @@ import java.util.Map; @@ -22,7 +22,7 @@ import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import org.jspecify.annotations.Nullable;
@ -40,36 +40,44 @@ import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY; @@ -40,36 +40,44 @@ import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY;
* <a href="https://github.com/FasterXML/jackson-dataformat-xml/issues/355">FasterXML/jackson-dataformat-xml#355</a>.
*
* @author Rossen Stoyanchev
* @author Sebastien Deleuze
* @since 6.0.5
*/
@JsonInclude(NON_EMPTY)
@JacksonXmlRootElement(localName = "problem", namespace = ProblemDetailJacksonXmlMixin.NAMESPACE)
@JsonRootName(value = "problem", namespace = ProblemDetailJacksonXmlMixin.NAMESPACE)
public interface ProblemDetailJacksonXmlMixin {
/** RFC 7807 (obsoleted by RFC 9457) namespace. */
String NAMESPACE = "urn:ietf:rfc:7807";
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
URI getType();
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
String getTitle();
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
int getStatus();
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
String getDetail();
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
URI getInstance();
@JsonAnySetter
void setProperty(String name, @Nullable Object value);
@JsonAnyGetter
@JacksonXmlProperty(namespace = NAMESPACE)
@com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
@tools.jackson.dataformat.xml.annotation.JacksonXmlProperty(namespace = NAMESPACE)
Map<String, Object> getProperties();
}

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

@ -29,7 +29,6 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; @@ -29,7 +29,6 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonView;
import org.jspecify.annotations.Nullable;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.skyscreamer.jsonassert.JSONAssert;
import org.xmlunit.assertj.XmlAssert;
@ -413,7 +412,6 @@ class RequestResponseBodyMethodProcessorTests { @@ -413,7 +412,6 @@ class RequestResponseBodyMethodProcessorTests {
}
@Test
@Disabled("https://github.com/FasterXML/jackson-dataformat-xml/issues/757")
void problemDetailWhenProblemXmlRequested() throws Exception {
this.servletRequest.addHeader("Accept", MediaType.APPLICATION_PROBLEM_XML_VALUE);
testProblemDetailMediaType(MediaType.APPLICATION_PROBLEM_XML_VALUE);

Loading…
Cancel
Save