Skip to content

Commit 0011371

Browse files
Merge branch 'release-v1.2.x'
2 parents 16c46ca + bb51860 commit 0011371

65 files changed

Lines changed: 390 additions & 269 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/autoconfigure/ProblemParameterConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.github.problem4j.spring.web.parameter.MethodValidationResultSupport;
1010
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1111
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
12+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
1213
import org.springframework.context.annotation.Bean;
1314
import org.springframework.context.annotation.Configuration;
1415
import org.springframework.core.annotation.Order;
@@ -19,6 +20,7 @@
1920
* Configuration for parameter support components, such as method parameter name resolution and
2021
* binding / method validation result conversion.
2122
*/
23+
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.ANY)
2224
@Configuration(proxyBeanMethods = false)
2325
class ProblemParameterConfiguration {
2426

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/autoconfigure/ProblemResolverConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import io.github.problem4j.spring.web.ProblemFormat;
1818
import io.github.problem4j.spring.web.parameter.BindingResultSupport;
19+
import io.github.problem4j.spring.web.parameter.MethodParameterSupport;
1920
import io.github.problem4j.spring.web.parameter.MethodValidationResultSupport;
2021
import io.github.problem4j.spring.web.resolver.BindProblemResolver;
2122
import io.github.problem4j.spring.web.resolver.ConstraintViolationProblemResolver;
@@ -254,8 +255,9 @@ ServerErrorProblemResolver serverErrorProblemResolver(ProblemFormat problemForma
254255
static class ServerWebInputProblemConfiguration {
255256
@ConditionalOnMissingBean(ServerWebInputProblemResolver.class)
256257
@Bean
257-
ServerWebInputProblemResolver serverWebInputProblemResolver(ProblemFormat problemFormat) {
258-
return new ServerWebInputProblemResolver(problemFormat);
258+
ServerWebInputProblemResolver serverWebInputProblemResolver(
259+
ProblemFormat problemFormat, MethodParameterSupport methodParameterSupport) {
260+
return new ServerWebInputProblemResolver(problemFormat, methodParameterSupport);
259261
}
260262
}
261263

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/parameter/DefaultBindingResultSupport.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ public List<Violation> fetchViolations(BindingResult result) {
3333
*
3434
* <p>{@code isBindingFailure() == true} usually means that there was a failure in creation of
3535
* object from values taken out of request. Most common one is validation error or type mismatch
36-
* between {@code @ModelAttribute}-annotated argument and one of its values. Consider running
37-
* {@code WebExchangeBindExceptionWebFluxTest} or {@code MethodArgumentNotValidExceptionMvcTest}
38-
* to debug this feature.
36+
* between {@code @ModelAttribute}-annotated argument and one of its values.
3937
*
4038
* @param bindingResult the {@link BindingResult} containing the validation errors
4139
* @param error the {@link FieldError} to convert

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/BindProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.github.problem4j.core.ProblemBuilder;
2121
import io.github.problem4j.core.ProblemContext;
2222
import io.github.problem4j.core.ProblemStatus;
23+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2324
import io.github.problem4j.spring.web.ProblemFormat;
2425
import io.github.problem4j.spring.web.ProblemSupport;
2526
import io.github.problem4j.spring.web.parameter.BindingResultSupport;
@@ -52,6 +53,10 @@ public class BindProblemResolver extends AbstractProblemResolver {
5253

5354
private final BindingResultSupport bindingResultSupport;
5455

56+
public BindProblemResolver() {
57+
this(new IdentityProblemFormat());
58+
}
59+
5560
public BindProblemResolver(ProblemFormat problemFormat) {
5661
this(problemFormat, new DefaultBindingResultSupport());
5762
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/ConstraintViolationProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.github.problem4j.core.ProblemBuilder;
2222
import io.github.problem4j.core.ProblemContext;
2323
import io.github.problem4j.core.ProblemStatus;
24+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2425
import io.github.problem4j.spring.web.ProblemFormat;
2526
import io.github.problem4j.spring.web.parameter.Violation;
2627
import jakarta.validation.ConstraintViolation;
@@ -41,6 +42,10 @@
4142
*/
4243
public class ConstraintViolationProblemResolver extends AbstractProblemResolver {
4344

45+
public ConstraintViolationProblemResolver() {
46+
this(new IdentityProblemFormat());
47+
}
48+
4449
public ConstraintViolationProblemResolver(ProblemFormat problemFormat) {
4550
super(ConstraintViolationException.class, problemFormat);
4651
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/DecodingProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.github.problem4j.core.ProblemBuilder;
1919
import io.github.problem4j.core.ProblemContext;
2020
import io.github.problem4j.core.ProblemStatus;
21+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2122
import io.github.problem4j.spring.web.ProblemFormat;
2223
import org.springframework.core.codec.DecodingException;
2324
import org.springframework.http.HttpHeaders;
@@ -32,6 +33,10 @@
3233
*/
3334
public class DecodingProblemResolver extends AbstractProblemResolver {
3435

36+
public DecodingProblemResolver() {
37+
this(new IdentityProblemFormat());
38+
}
39+
3540
public DecodingProblemResolver(ProblemFormat problemFormat) {
3641
super(DecodingException.class, problemFormat);
3742
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/ErrorResponseProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.github.problem4j.core.Problem;
1818
import io.github.problem4j.core.ProblemBuilder;
1919
import io.github.problem4j.core.ProblemContext;
20+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2021
import io.github.problem4j.spring.web.ProblemFormat;
2122
import org.springframework.http.HttpHeaders;
2223
import org.springframework.http.HttpStatusCode;
@@ -36,6 +37,10 @@
3637
*/
3738
public class ErrorResponseProblemResolver extends AbstractProblemResolver {
3839

40+
public ErrorResponseProblemResolver() {
41+
this(new IdentityProblemFormat());
42+
}
43+
3944
public ErrorResponseProblemResolver(ProblemFormat problemFormat) {
4045
super(ErrorResponseException.class, problemFormat);
4146
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/HandlerMethodValidationProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.github.problem4j.core.Problem;
2222
import io.github.problem4j.core.ProblemBuilder;
2323
import io.github.problem4j.core.ProblemContext;
24+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2425
import io.github.problem4j.spring.web.ProblemFormat;
2526
import io.github.problem4j.spring.web.parameter.DefaultMethodValidationResultSupport;
2627
import io.github.problem4j.spring.web.parameter.MethodValidationResultSupport;
@@ -41,6 +42,10 @@ public class HandlerMethodValidationProblemResolver extends AbstractProblemResol
4142

4243
private final MethodValidationResultSupport methodValidationResultSupport;
4344

45+
public HandlerMethodValidationProblemResolver() {
46+
this(new IdentityProblemFormat());
47+
}
48+
4449
public HandlerMethodValidationProblemResolver(ProblemFormat problemFormat) {
4550
this(problemFormat, new DefaultMethodValidationResultSupport());
4651
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/HttpMediaTypeNotAcceptableProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.github.problem4j.core.ProblemBuilder;
1919
import io.github.problem4j.core.ProblemContext;
2020
import io.github.problem4j.core.ProblemStatus;
21+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2122
import io.github.problem4j.spring.web.ProblemFormat;
2223
import org.springframework.http.HttpHeaders;
2324
import org.springframework.http.HttpStatusCode;
@@ -35,6 +36,10 @@
3536
*/
3637
public class HttpMediaTypeNotAcceptableProblemResolver extends AbstractProblemResolver {
3738

39+
public HttpMediaTypeNotAcceptableProblemResolver() {
40+
this(new IdentityProblemFormat());
41+
}
42+
3843
public HttpMediaTypeNotAcceptableProblemResolver(ProblemFormat problemFormat) {
3944
super(HttpMediaTypeNotAcceptableException.class, problemFormat);
4045
}

problem4j-spring-web/src/main/java/io/github/problem4j/spring/web/resolver/HttpMediaTypeNotSupportedProblemResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.github.problem4j.core.ProblemBuilder;
1919
import io.github.problem4j.core.ProblemContext;
2020
import io.github.problem4j.core.ProblemStatus;
21+
import io.github.problem4j.spring.web.IdentityProblemFormat;
2122
import io.github.problem4j.spring.web.ProblemFormat;
2223
import org.springframework.http.HttpHeaders;
2324
import org.springframework.http.HttpStatusCode;
@@ -35,6 +36,10 @@
3536
*/
3637
public class HttpMediaTypeNotSupportedProblemResolver extends AbstractProblemResolver {
3738

39+
public HttpMediaTypeNotSupportedProblemResolver() {
40+
this(new IdentityProblemFormat());
41+
}
42+
3843
public HttpMediaTypeNotSupportedProblemResolver(ProblemFormat problemFormat) {
3944
super(HttpMediaTypeNotSupportedException.class, problemFormat);
4045
}

0 commit comments

Comments
 (0)