diff --git a/java/org/apache/catalina/Context.java b/java/org/apache/catalina/Context.java index ddb29516b618..30f9f3016d78 100644 --- a/java/org/apache/catalina/Context.java +++ b/java/org/apache/catalina/Context.java @@ -17,6 +17,8 @@ package org.apache.catalina; import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; import java.net.URL; import java.util.Locale; import java.util.Map; @@ -39,6 +41,7 @@ import org.apache.tomcat.util.descriptor.web.FilterMap; import org.apache.tomcat.util.descriptor.web.LoginConfig; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; +import org.apache.tomcat.util.file.ConfigFileLoader; import org.apache.tomcat.util.file.ConfigurationSource.Resource; import org.apache.tomcat.util.http.CookieProcessor; @@ -1982,5 +1985,22 @@ void setAllowMultipleLeadingForwardSlashInPath( * @return the resource * @throws IOException if an error occurs or if the resource does not exist */ - Resource findConfigFileResource(String name) throws IOException; + default Resource findConfigFileResource(String name) throws IOException { + if (name.startsWith(WEBAPP_PROTOCOL)) { + String path = name.substring(WEBAPP_PROTOCOL.length()); + WebResource resource = getResources().getResource(path); + if (resource.canRead()) { + InputStream stream = resource.getInputStream(); + try { + return new Resource(stream, resource.getURL().toURI()); + } catch (URISyntaxException e) { + stream.close(); + } + } + return null; + } else { + return ConfigFileLoader.getSource().getResource(name); + } + } + } diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java index b8c911a9c300..6476bf08c5c6 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; -import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.ArrayDeque; @@ -128,8 +127,6 @@ import org.apache.tomcat.util.descriptor.web.MessageDestination; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; -import org.apache.tomcat.util.file.ConfigFileLoader; -import org.apache.tomcat.util.file.ConfigurationSource.Resource; import org.apache.tomcat.util.http.CookieProcessor; import org.apache.tomcat.util.http.Rfc6265CookieProcessor; import org.apache.tomcat.util.scan.StandardJarScanner; @@ -3500,25 +3497,6 @@ public String[] findWrapperListeners() { } - @Override - public Resource findConfigFileResource(String name) throws IOException { - if (name.startsWith(WEBAPP_PROTOCOL)) { - String path = name.substring(WEBAPP_PROTOCOL.length()); - WebResource resource = getResources().getResource(path); - if (resource.canRead()) { - InputStream stream = resource.getInputStream(); - try { - return new Resource(stream, resource.getURL().toURI()); - } catch (URISyntaxException e) { - stream.close(); - } - } - return null; - } else { - return ConfigFileLoader.getSource().getResource(name); - } - } - /** * Reload this web application, if reloading is supported. *

diff --git a/java/org/apache/catalina/startup/FailedContext.java b/java/org/apache/catalina/startup/FailedContext.java index 62ae2f35a89c..71e9e76c2771 100644 --- a/java/org/apache/catalina/startup/FailedContext.java +++ b/java/org/apache/catalina/startup/FailedContext.java @@ -18,7 +18,6 @@ import java.beans.PropertyChangeListener; import java.io.File; -import java.io.IOException; import java.net.URL; import java.util.Locale; import java.util.Map; @@ -62,7 +61,6 @@ import org.apache.tomcat.util.descriptor.web.FilterMap; import org.apache.tomcat.util.descriptor.web.LoginConfig; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; -import org.apache.tomcat.util.file.ConfigurationSource.Resource; import org.apache.tomcat.util.http.CookieProcessor; import org.apache.tomcat.util.res.StringManager; @@ -853,6 +851,4 @@ public void setDispatcherWrapsSameObject(boolean dispatcherWrapsSameObject) {} @Override public void setParallelAnnotationScanning(boolean parallelAnnotationScanning) {} - @Override - public Resource findConfigFileResource(String name) throws IOException { return null; } } \ No newline at end of file diff --git a/test/org/apache/tomcat/unittest/TesterContext.java b/test/org/apache/tomcat/unittest/TesterContext.java index d906b6001072..9c2e10754cb2 100644 --- a/test/org/apache/tomcat/unittest/TesterContext.java +++ b/test/org/apache/tomcat/unittest/TesterContext.java @@ -18,7 +18,6 @@ import java.beans.PropertyChangeListener; import java.io.File; -import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -65,7 +64,6 @@ import org.apache.tomcat.util.descriptor.web.FilterMap; import org.apache.tomcat.util.descriptor.web.LoginConfig; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; -import org.apache.tomcat.util.file.ConfigurationSource.Resource; import org.apache.tomcat.util.http.CookieProcessor; /** @@ -1323,6 +1321,4 @@ public void setParallelAnnotationScanning(boolean parallelAnnotationScanning) {} @Override public void setMetadataComplete(boolean metadataComplete) { /* NO-OP */ } - @Override - public Resource findConfigFileResource(String name) throws IOException { return null; } }