From dcf160e42790ba34b6624c2a84140e0b97d82e06 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Sun, 4 Sep 2022 15:09:56 +0200 Subject: [PATCH] Consistently include leading slash for classpath: resources in the TCF --- .../test/context/jdbc/SqlScriptsTestExecutionListener.java | 6 ++++-- .../test/context/support/AbstractContextLoader.java | 4 +++- .../test/context/support/TestPropertySourceAttributes.java | 6 ++++-- .../support/BootstrapTestUtilsMergedConfigTests.java | 2 +- .../GenericXmlContextLoaderResourceLocationsTests.java | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java index 6f1ca25e97a..33376a4d351 100644 --- a/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -98,6 +98,8 @@ import org.springframework.util.StringUtils; */ public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListener { + private static final String SLASH = "/"; + private static final Log logger = LogFactory.getLog(SqlScriptsTestExecutionListener.class); @@ -343,7 +345,7 @@ public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListen } resourcePath += ".sql"; - String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + resourcePath; + String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + SLASH + resourcePath; ClassPathResource classPathResource = new ClassPathResource(resourcePath); if (classPathResource.exists()) { diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java index a78936419b2..25a29fec55a 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java @@ -67,6 +67,8 @@ import org.springframework.util.ResourceUtils; */ public abstract class AbstractContextLoader implements SmartContextLoader { + private static final String SLASH = "/"; + private static final String[] EMPTY_STRING_ARRAY = new String[0]; private static final Log logger = LogFactory.getLog(AbstractContextLoader.class); @@ -252,7 +254,7 @@ public abstract class AbstractContextLoader implements SmartContextLoader { String resourcePath = ClassUtils.convertClassNameToResourcePath(clazz.getName()) + suffix; ClassPathResource classPathResource = new ClassPathResource(resourcePath); if (classPathResource.exists()) { - String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + resourcePath; + String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + SLASH + resourcePath; if (logger.isInfoEnabled()) { logger.info(String.format("Detected default resource location \"%s\" for test class [%s]", prefixedResourcePath, clazz.getName())); diff --git a/spring-test/src/main/java/org/springframework/test/context/support/TestPropertySourceAttributes.java b/spring-test/src/main/java/org/springframework/test/context/support/TestPropertySourceAttributes.java index 216bfe80bc6..a91b103be70 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/TestPropertySourceAttributes.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/TestPropertySourceAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,8 @@ import org.springframework.util.StringUtils; */ class TestPropertySourceAttributes { + private static final String SLASH = "/"; + private static final Log logger = LogFactory.getLog(TestPropertySourceAttributes.class); @@ -156,7 +158,7 @@ class TestPropertySourceAttributes { logger.error(msg); throw new IllegalStateException(msg); } - String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + resourcePath; + String prefixedResourcePath = ResourceUtils.CLASSPATH_URL_PREFIX + SLASH + resourcePath; if (logger.isInfoEnabled()) { logger.info(String.format("Detected default properties file \"%s\" for test class [%s]", prefixedResourcePath, testClass.getName())); diff --git a/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java b/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java index 6e8c186f592..a6a8381a4a1 100644 --- a/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java @@ -73,7 +73,7 @@ class BootstrapTestUtilsMergedConfigTests extends AbstractContextConfigurationUt assertMergedConfig( mergedConfig, testClass, - array("classpath:org/springframework/test/context/support/AbstractContextConfigurationUtilsTests$BareAnnotations-context.xml"), + array("classpath:/org/springframework/test/context/support/AbstractContextConfigurationUtilsTests$BareAnnotations-context.xml"), EMPTY_CLASS_ARRAY, DelegatingSmartContextLoader.class); } diff --git a/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java b/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java index 6b9e8e34ec3..39367e05714 100644 --- a/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java @@ -78,7 +78,7 @@ class GenericXmlContextLoaderResourceLocationsTests { args(ClasspathNonExistentDefaultLocationsTestCase.class, array()), args(ClasspathExistentDefaultLocationsTestCase.class, array( - "classpath:org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests$ClasspathExistentDefaultLocationsTestCase-context.xml")), + "classpath:/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests$ClasspathExistentDefaultLocationsTestCase-context.xml")), args(ImplicitClasspathLocationsTestCase.class, array("classpath:/org/springframework/test/context/support/context1.xml",