diff --git a/projects/samskivert/src/java/com/samskivert/servlet/SiteResourceLoader.java b/projects/samskivert/src/java/com/samskivert/servlet/SiteResourceLoader.java index 138c3e5d..385af641 100644 --- a/projects/samskivert/src/java/com/samskivert/servlet/SiteResourceLoader.java +++ b/projects/samskivert/src/java/com/samskivert/servlet/SiteResourceLoader.java @@ -1,5 +1,5 @@ // -// $Id: SiteResourceLoader.java,v 1.1 2001/11/05 09:12:31 mdb Exp $ +// $Id: SiteResourceLoader.java,v 1.2 2001/11/05 18:08:01 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -112,10 +112,29 @@ public class SiteResourceLoader HttpServletRequest req, String path) throws IOException { - InputStream stream = null; + return getResourceAsStream(_siteIdent.identifySite(req), path); + } - // figure out which site in which we're interested - int siteId = _siteIdent.identifySite(req); + /** + * Loads the specific resource, from the site-specific jar file if one + * exists and contains the specified resource, or via the servlet + * context. If no resource exists with that path in either location, + * null will be returned. + * + * @param siteId the unique identifer for the site for which we are + * loading the resource. + * @param path the path to the desired resource. + * + * @return an input stream via which the resource can be read or null + * if no resource could be located with the specified path. + * + * @exception IOException thrown if an I/O error occurs while loading + * a resource. + */ + public InputStream getResourceAsStream (int siteId, String path) + throws IOException + { + InputStream stream = null; // if we identified a non-default site, we first look for a // site-specific resource diff --git a/projects/samskivert/tests/src/java/com/samskivert/servlet/SiteResourceLoaderTest.java b/projects/samskivert/tests/src/java/com/samskivert/servlet/SiteResourceLoaderTest.java index bc02ed62..c1260326 100644 --- a/projects/samskivert/tests/src/java/com/samskivert/servlet/SiteResourceLoaderTest.java +++ b/projects/samskivert/tests/src/java/com/samskivert/servlet/SiteResourceLoaderTest.java @@ -1,5 +1,5 @@ // -// $Id: SiteResourceLoaderTest.java,v 1.1 2001/11/05 09:12:31 mdb Exp $ +// $Id: SiteResourceLoaderTest.java,v 1.2 2001/11/05 18:08:01 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -59,27 +59,24 @@ public class SiteResourceLoaderTest extends TestCase SiteResourceLoader loader = new SiteResourceLoader(ident, context); try { - testResourceLoader(loader, "defaultout.txt"); - - ident.setSiteId(SITE1_ID); - testResourceLoader(loader, "site1out.txt"); - - ident.setSiteId(SITE2_ID); - testResourceLoader(loader, "site2out.txt"); + testResourceLoader(SiteIdentifier.DEFAULT_SITE_ID, + loader, "defaultout.txt"); + testResourceLoader(SITE1_ID, loader, "site1out.txt"); + testResourceLoader(SITE2_ID, loader, "site2out.txt"); } catch (IOException ioe) { fail("Error testing resource loader: " + ioe); } } - protected void testResourceLoader (SiteResourceLoader loader, - String compareFile) + protected void testResourceLoader ( + int siteId, SiteResourceLoader loader, String compareFile) throws IOException { StringBuffer gen = new StringBuffer(); - appendResource(gen, loader, "/header.txt"); - appendResource(gen, loader, "/body.txt"); - appendResource(gen, loader, "/footer.txt"); + appendResource(siteId, gen, loader, "/header.txt"); + appendResource(siteId, gen, loader, "/body.txt"); + appendResource(siteId, gen, loader, "/footer.txt"); StringBuffer cmp = new StringBuffer(); compareFile = "servlet/srl/" + compareFile; @@ -96,11 +93,11 @@ public class SiteResourceLoaderTest extends TestCase cmp.toString(), gen.toString()); } - protected void appendResource ( - StringBuffer buffer, SiteResourceLoader loader, String path) + protected void appendResource (int siteId, StringBuffer buffer, + SiteResourceLoader loader, String path) throws IOException { - InputStream rin = loader.getResourceAsStream(null, path); + InputStream rin = loader.getResourceAsStream(siteId, path); if (rin == null) { throw new IOException("Unable to load " + path); } @@ -165,27 +162,19 @@ public class SiteResourceLoaderTest extends TestCase public static class TestSiteIdentifier implements SiteIdentifier { - public void setSiteId (int siteId) - { - _siteId = siteId; - } - public int identifySite (HttpServletRequest req) { - return _siteId; + return DEFAULT_SITE_ID; } public String getSiteString (int siteId) { - // we are required to map site ids to strings, however switch (siteId) { case SITE1_ID: return "site1"; case SITE2_ID: return "site2"; default: return DEFAULT_SITE_STRING; } } - - protected int _siteId = SiteIdentifier.DEFAULT_SITE_ID; } protected static final int SITE1_ID = 1;