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 05f0e84e88..00d710a12d 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 5636869a81..f39d13071b 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 b52fc844f4..bb13f9a5e6 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() ); }