From 3b2f6e74a6baade66ac8389314c5499b60734f55 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:41:40 +0100 Subject: [PATCH] Make assertions based on Annotation#toString() lenient The behavior for the toString() implementation for annotations changed in JDK 19, per my request to the JDK team (see link below). Specifically, since JDK 19, the toString() implementation for annotation proxies created by the JDK started using canonical names instead of binary names for types. See https://bugs.openjdk.org/browse/JDK-8281462 --- .../service/invoker/HttpServiceMethodTests.java | 8 ++++---- .../RequestMappingHandlerMappingTests.java | 16 ++++++++-------- .../RequestMappingHandlerMappingTests.java | 16 ++++++++-------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/spring-web/src/test/java/org/springframework/web/service/invoker/HttpServiceMethodTests.java b/spring-web/src/test/java/org/springframework/web/service/invoker/HttpServiceMethodTests.java index 05f0e84e889..00d710a12d0 100644 --- a/spring-web/src/test/java/org/springframework/web/service/invoker/HttpServiceMethodTests.java +++ b/spring-web/src/test/java/org/springframework/web/service/invoker/HttpServiceMethodTests.java @@ -220,8 +220,8 @@ class HttpServiceMethodTests { .isThrownBy(() -> this.proxyFactory.createClient(serviceInterface)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on " + serviceInterface, - "@" + HttpExchange.class.getName(), - "@" + ExtraHttpExchange.class.getName() + HttpExchange.class.getSimpleName(), + ExtraHttpExchange.class.getSimpleName() ); } @@ -234,8 +234,8 @@ class HttpServiceMethodTests { .isThrownBy(() -> this.proxyFactory.createClient(serviceInterface)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on method " + method, - "@" + PostExchange.class.getName(), - "@" + PutExchange.class.getName() + PostExchange.class.getSimpleName(), + PutExchange.class.getSimpleName() ); } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMappingTests.java index 5636869a818..f39d13071b2 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMappingTests.java @@ -163,8 +163,8 @@ class RequestMappingHandlerMappingTests { .isThrownBy(() -> this.handlerMapping.getMappingForMethod(method, controllerClass)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on " + controllerClass, - "@" + HttpExchange.class.getName(), - "@" + ExtraHttpExchange.class.getName() + HttpExchange.class.getSimpleName(), + ExtraHttpExchange.class.getSimpleName() ); } @@ -179,8 +179,8 @@ class RequestMappingHandlerMappingTests { .isThrownBy(() -> this.handlerMapping.getMappingForMethod(method, controllerClass)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on " + method, - "@" + PostExchange.class.getName(), - "@" + PutExchange.class.getName() + PostExchange.class.getSimpleName(), + PutExchange.class.getSimpleName() ); } @@ -196,8 +196,8 @@ class RequestMappingHandlerMappingTests { .withMessageContainingAll( controllerClass.getName(), "is annotated with @RequestMapping and @HttpExchange annotations, but only one is allowed:", - "@" + RequestMapping.class.getName(), - "@" + HttpExchange.class.getName() + RequestMapping.class.getSimpleName(), + HttpExchange.class.getSimpleName() ); } @@ -213,8 +213,8 @@ class RequestMappingHandlerMappingTests { .withMessageContainingAll( method.toString(), "is annotated with @RequestMapping and @HttpExchange annotations, but only one is allowed:", - "@" + PostMapping.class.getName(), - "@" + PostExchange.class.getName() + PostMapping.class.getSimpleName(), + PostExchange.class.getSimpleName() ); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java index b52fc844f46..bb13f9a5e66 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java @@ -289,8 +289,8 @@ class RequestMappingHandlerMappingTests { .isThrownBy(() -> mapping.getMappingForMethod(method, controllerClass)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on " + controllerClass, - "@" + HttpExchange.class.getName(), - "@" + ExtraHttpExchange.class.getName() + HttpExchange.class.getSimpleName(), + ExtraHttpExchange.class.getSimpleName() ); } @@ -305,8 +305,8 @@ class RequestMappingHandlerMappingTests { .isThrownBy(() -> mapping.getMappingForMethod(method, controllerClass)) .withMessageContainingAll( "Multiple @HttpExchange annotations found on " + method, - "@" + PostExchange.class.getName(), - "@" + PutExchange.class.getName() + PostExchange.class.getSimpleName(), + PutExchange.class.getSimpleName() ); } @@ -322,8 +322,8 @@ class RequestMappingHandlerMappingTests { .withMessageContainingAll( controllerClass.getName(), "is annotated with @RequestMapping and @HttpExchange annotations, but only one is allowed:", - "@" + RequestMapping.class.getName(), - "@" + HttpExchange.class.getName() + RequestMapping.class.getSimpleName(), + HttpExchange.class.getSimpleName() ); } @@ -339,8 +339,8 @@ class RequestMappingHandlerMappingTests { .withMessageContainingAll( method.toString(), "is annotated with @RequestMapping and @HttpExchange annotations, but only one is allowed:", - "@" + PostMapping.class.getName(), - "@" + PostExchange.class.getName() + PostMapping.class.getSimpleName(), + PostExchange.class.getSimpleName() ); }