WICKET-4388 o.a.w.util.file.WebApplicationPath duplicates the same logic as o.a.w.util.file.Path
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/69016338 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/69016338 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/69016338 Branch: refs/heads/master Commit: 69016338dbd7a31709262064e2eb89ee83f702fb Parents: bff7149 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Feb 6 09:47:31 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Feb 6 09:48:42 2012 +0200 ---------------------------------------------------------------------- .../wicket/util/file/WebApplicationPath.java | 47 +++++++-------- .../java/org/apache/wicket/util/file/Path.java | 4 +- 2 files changed, 25 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/69016338/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java b/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java index 6861618..5e2737d 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java @@ -22,7 +22,6 @@ import java.util.List; import javax.servlet.ServletContext; -import org.apache.wicket.util.resource.FileResourceStream; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.UrlResourceStream; import org.apache.wicket.util.string.StringList; @@ -36,16 +35,13 @@ import org.slf4j.LoggerFactory; * * @author Johan Compagner */ -public final class WebApplicationPath implements IResourcePath +public final class WebApplicationPath extends Path { private final static Logger log = LoggerFactory.getLogger(WebApplicationPath.class); /** The list of urls in the path */ private final List<String> webappPaths = new ArrayList<String>(); - /** The list of folders in the path */ - private final List<Folder> folders = new ArrayList<Folder>(); - /** The web apps servlet context */ private final ServletContext servletContext; @@ -73,7 +69,7 @@ public final class WebApplicationPath implements IResourcePath final Folder folder = new Folder(path); if (folder.exists()) { - folders.add(folder); + super.add(folder); } else { @@ -96,41 +92,42 @@ public final class WebApplicationPath implements IResourcePath @Override public IResourceStream find(final Class<?> clazz, final String pathname) { - for (Folder folder : folders) - { - final File file = new File(folder, pathname); - if (file.exists()) - { - return new FileResourceStream(file); - } - } + IResourceStream resourceStream = super.find(clazz, pathname); - for (String path : webappPaths) + if (resourceStream == null) { - try + for (String path : webappPaths) { - final URL url = servletContext.getResource(path + pathname); - if (url != null) + try { - return new UrlResourceStream(url); + final URL url = servletContext.getResource(path + pathname); + if (url != null) + { + resourceStream = new UrlResourceStream(url); + break; + } + } + catch (Exception ex) + { + // ignore, file couldn't be found } - } - catch (Exception ex) - { - // ignore, file couldn't be found } } - return null; + return resourceStream; } + public List<String> getWebappPaths() + { + return webappPaths; + } /** * @see java.lang.Object#toString() */ @Override public String toString() { - return "[folders = " + StringList.valueOf(folders) + ", webapppaths: " + + return "[folders = " + StringList.valueOf(getFolders()) + ", webapppaths: " + StringList.valueOf(webappPaths) + "]"; } } http://git-wip-us.apache.org/repos/asf/wicket/blob/69016338/wicket-util/src/main/java/org/apache/wicket/util/file/Path.java ---------------------------------------------------------------------- diff --git a/wicket-util/src/main/java/org/apache/wicket/util/file/Path.java b/wicket-util/src/main/java/org/apache/wicket/util/file/Path.java index a09fb4a..107acc6 100644 --- a/wicket-util/src/main/java/org/apache/wicket/util/file/Path.java +++ b/wicket-util/src/main/java/org/apache/wicket/util/file/Path.java @@ -29,7 +29,7 @@ import org.apache.wicket.util.string.StringList; * * @author Jonathan Locke */ -public final class Path implements IResourcePath +public class Path implements IResourcePath { /** The list of folders in the path */ private final List<Folder> folders = new ArrayList<Folder>(); @@ -88,6 +88,7 @@ public final class Path implements IResourcePath * Folder to add to path * @see org.apache.wicket.util.file.IResourcePath#add(java.lang.String) */ + @Override public void add(final String path) { add(new Folder(path)); @@ -97,6 +98,7 @@ public final class Path implements IResourcePath * * @see org.apache.wicket.util.file.IResourceFinder#find(Class, String) */ + @Override public IResourceStream find(final Class<?> clazz, final String pathname) { for (Folder folder : folders)
