376152 apply context resources recursively
This commit is contained in:
parent
66e7caea86
commit
fbac246a41
|
@ -19,6 +19,7 @@ import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.security.PermissionCollection;
|
import java.security.PermissionCollection;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EventListener;
|
import java.util.EventListener;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -271,11 +272,23 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
public String getResourceAlias(String alias)
|
public String getResourceAlias(String path)
|
||||||
{
|
{
|
||||||
if (_resourceAliases == null)
|
if (_resourceAliases == null)
|
||||||
return null;
|
return null;
|
||||||
return _resourceAliases.get(alias);
|
String alias = _resourceAliases.get(path);
|
||||||
|
|
||||||
|
int slash=path.length();
|
||||||
|
while (alias==null)
|
||||||
|
{
|
||||||
|
slash=path.lastIndexOf("/",slash-1);
|
||||||
|
if (slash<0)
|
||||||
|
break;
|
||||||
|
String match=_resourceAliases.get(path.substring(0,slash+1));
|
||||||
|
if (match!=null)
|
||||||
|
alias=match+path.substring(slash+1);
|
||||||
|
}
|
||||||
|
return alias;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
|
|
|
@ -16,6 +16,7 @@ import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@ -29,6 +30,8 @@ import junit.framework.Assert;
|
||||||
|
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.handler.HandlerList;
|
import org.eclipse.jetty.server.handler.HandlerList;
|
||||||
|
import org.eclipse.jetty.util.resource.Resource;
|
||||||
|
import org.eclipse.jetty.util.resource.ResourceCollection;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class WebAppContextTest
|
public class WebAppContextTest
|
||||||
|
@ -137,6 +140,34 @@ public class WebAppContextTest
|
||||||
Assert.assertNotNull(contextB.getServletHandler().getServletContext().getContext("/B/s"));
|
Assert.assertNotNull(contextB.getServletHandler().getServletContext().getContext("/B/s"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAlias() throws Exception
|
||||||
|
{
|
||||||
|
File dir = File.createTempFile("dir",null);
|
||||||
|
dir.delete();
|
||||||
|
dir.mkdir();
|
||||||
|
dir.deleteOnExit();
|
||||||
|
|
||||||
|
File webinf = new File(dir,"WEB-INF");
|
||||||
|
webinf.mkdir();
|
||||||
|
|
||||||
|
File classes = new File(dir,"classes");
|
||||||
|
classes.mkdir();
|
||||||
|
|
||||||
|
File someclass = new File(classes,"SomeClass.class");
|
||||||
|
someclass.createNewFile();
|
||||||
|
|
||||||
|
WebAppContext context = new WebAppContext();
|
||||||
|
context.setBaseResource(new ResourceCollection(dir.getAbsolutePath()));
|
||||||
|
|
||||||
|
context.setResourceAlias("/WEB-INF/classes/", "/classes/");
|
||||||
|
|
||||||
|
assertTrue(Resource.newResource(context.getServletContext().getResource("/WEB-INF/classes/SomeClass.class")).exists());
|
||||||
|
assertTrue(Resource.newResource(context.getServletContext().getResource("/classes/SomeClass.class")).exists());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
class ServletA extends GenericServlet
|
class ServletA extends GenericServlet
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue