Since getPath() returns a relative path if the resource was created
using the ClassPathResource(String,Class) constructor, there was
previously no way to consistently obtain the absolute path to the
resource within the class path.
This commit addresses this shortcoming by introducing a new
getAbsolutePath() for consistently obtaining the absolute path to the
resource within the class path.
See gh-29083
Closes gh-29094
@ -47,6 +47,8 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@@ -47,6 +47,8 @@ public class ClassPathResource extends AbstractFileResolvingResource {
privatefinalStringpath;
privatefinalStringabsolutePath;
@Nullable
privatefinalClassLoaderclassLoader;
@ -83,6 +85,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@@ -83,6 +85,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@ -100,6 +103,16 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@@ -100,6 +103,16 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@ -117,11 +130,24 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@@ -117,11 +130,24 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@ -245,18 +271,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {
@@ -245,18 +271,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {