Author: markt
Date: Mon Sep 16 13:10:18 2013
New Revision: 1523625

URL: http://svn.apache.org/r1523625
Log:
Extend the WebResourceRoot API to allow definition of a base, archive
and internal path for the creation of a ResourceSet

Modified:
    tomcat/trunk/java/org/apache/catalina/WebResourceRoot.java
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
    tomcat/trunk/java/org/apache/catalina/webresources/DirResourceSet.java
    tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java
    tomcat/trunk/test/javax/el/TestCompositeELResolver.java
    tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java
    tomcat/trunk/test/org/apache/catalina/loader/TestVirtualContext.java
    tomcat/trunk/test/org/apache/catalina/loader/TestVirtualWebappLoader.java
    
tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java
    tomcat/trunk/test/org/apache/jasper/compiler/TestGenerator.java
    
tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/AbstractTestTag.java

Modified: tomcat/trunk/java/org/apache/catalina/WebResourceRoot.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/WebResourceRoot.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/WebResourceRoot.java (original)
+++ tomcat/trunk/java/org/apache/catalina/WebResourceRoot.java Mon Sep 16 
13:10:18 2013
@@ -179,15 +179,15 @@ public interface WebResourceRoot extends
      * based on the provided parameters.
      *
      * @param type          The type of {@link WebResourceSet} to create
-     * @param url           The URL of the resource (must locate a JAR, file or
-     *                          directory)
      * @param webAppMount   The path within the web application that the
      *                          resources should be published at. It must start
      *                          with '/'.
+     * @param url           The URL of the resource (must locate a JAR, file or
+     *                          directory)
      * @param internalPath  The path within the resource where the content is 
to
      *                          be found. It must start with '/'.
      */
-    void createWebResourceSet(ResourceSetType type, URL url, String 
webAppMount,
+    void createWebResourceSet(ResourceSetType type, String webAppMount, URL 
url,
             String internalPath);
 
     /**
@@ -195,15 +195,19 @@ public interface WebResourceRoot extends
      * based on the provided parameters.
      *
      * @param type          The type of {@link WebResourceSet} to create
-     * @param base          The location of the resources
      * @param webAppMount   The path within the web application that the
      *                          resources should be published at. It must start
      *                          with '/'.
-     * @param internalPath  The path within the resource where the content is 
to
-     *                          be found. It must start with '/'.
+     * @param base          The location of the resources
+     * @param archivePath   The path within the resource to the archive where
+     *                          the content is to be found. If there is no
+     *                          archive then this should be <code>null</code>.
+     * @param internalPath  The path within the archive (or the resource if the
+     *                          archivePath is <code>null</code> where the
+     *                          content is to be found. It must start with '/'.
      */
-    void createWebResourceSet(ResourceSetType type, String base,
-            String webAppMount, String internalPath);
+    void createWebResourceSet(ResourceSetType type, String webAppMount,
+            String base, String archivePath, String internalPath);
 
 
     /**

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Mon Sep 16 
13:10:18 2013
@@ -4947,8 +4947,8 @@ public class StandardContext extends Con
                     "/WEB-INF/classes/META-INF/resources");
             if (webinfClassesResource.isDirectory()) {
                 getResources().createWebResourceSet(
-                        WebResourceRoot.ResourceSetType.RESOURCE_JAR,
-                        webinfClassesResource.getURL(), "/", "/");
+                        WebResourceRoot.ResourceSetType.RESOURCE_JAR, "/",
+                        webinfClassesResource.getURL(), "/");
             }
         }
 

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Mon Sep 16 
13:10:18 2013
@@ -1667,7 +1667,7 @@ public class ContextConfig implements Li
                         if (entryName.startsWith("META-INF/resources/")) {
                             context.getResources().createWebResourceSet(
                                     
WebResourceRoot.ResourceSetType.RESOURCE_JAR,
-                                    url, "/", "/META-INF/resources");
+                                    "/", url, "/META-INF/resources");
                             break;
                         }
                         jar.nextEntry();
@@ -1679,7 +1679,7 @@ public class ContextConfig implements Li
                     if (resources.isDirectory()) {
                         context.getResources().createWebResourceSet(
                                 WebResourceRoot.ResourceSetType.RESOURCE_JAR,
-                                file.getAbsolutePath(), "/", "/");
+                                "/", file.getAbsolutePath(), null, "/");
                     }
                 }
             } catch (IOException ioe) {

Modified: tomcat/trunk/java/org/apache/catalina/webresources/DirResourceSet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/DirResourceSet.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/DirResourceSet.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/DirResourceSet.java Mon 
Sep 16 13:10:18 2013
@@ -71,8 +71,8 @@ public class DirResourceSet extends Abst
             f = new File(f, "/WEB-INF/classes/META-INF/resources");
 
             if (f.isDirectory()) {
-                root.createWebResourceSet(ResourceSetType.RESOURCE_JAR,
-                         f.getAbsolutePath(), "/", "/");
+                root.createWebResourceSet(ResourceSetType.RESOURCE_JAR, "/",
+                         f.getAbsolutePath(), null, "/");
             }
         }
 

Modified: tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java Mon 
Sep 16 13:10:18 2013
@@ -44,8 +44,8 @@ import org.apache.tomcat.util.res.String
  * </p><p>
  * This implementation assumes that the base attribute supplied to {@link
  * StandardRoot#createWebResourceSet(
- * org.apache.catalina.WebResourceRoot.ResourceSetType, String, String, 
String)}
- * represents the absolute path to a file.
+ * org.apache.catalina.WebResourceRoot.ResourceSetType, String, String, String,
+ * String)} represents the absolute path to a file.
  * </p>
  */
 public class StandardRoot extends LifecycleMBeanBase
@@ -231,15 +231,14 @@ public class StandardRoot extends Lifecy
 
 
     @Override
-    public void createWebResourceSet(ResourceSetType type, URL url,
-            String webAppMount, String internalPath) {
-        createWebResourceSet(type, toBase(url), webAppMount, internalPath);
+    public void createWebResourceSet(ResourceSetType type, String webAppMount,
+            URL url, String internalPath) {
+        createWebResourceSet(type, webAppMount, toBase(url), null, 
internalPath);
     }
 
     @Override
-    public void createWebResourceSet(ResourceSetType type, String base,
-            String webAppMount, String internalPath) {
-
+    public void createWebResourceSet(ResourceSetType type, String webAppMount,
+            String base, String archivePath, String internalPath) {
         ArrayList<WebResourceSet> resourceList;
         WebResourceSet resourceSet;
 

Modified: tomcat/trunk/test/javax/el/TestCompositeELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TestCompositeELResolver.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/test/javax/el/TestCompositeELResolver.java (original)
+++ tomcat/trunk/test/javax/el/TestCompositeELResolver.java Mon Sep 16 13:10:18 
2013
@@ -46,8 +46,8 @@ public class TestCompositeELResolver ext
         File lib = new File("webapps/examples/WEB-INF/lib");
         ctxt.setResources(new StandardRoot(ctxt));
         ctxt.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, lib.getAbsolutePath(),
-                "/WEB-INF/lib", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+                lib.getAbsolutePath(), null, "/");
 
         tomcat.start();
 

Modified: 
tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java 
Mon Sep 16 13:10:18 2013
@@ -51,8 +51,8 @@ public class TestStandardContextAliases 
         File lib = new File("webapps/examples/WEB-INF/lib");
         ctx.setResources(new StandardRoot(ctx));
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, lib.getAbsolutePath(),
-                "/WEB-INF/lib", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+                lib.getAbsolutePath(), null, "/");
 
 
         Tomcat.addServlet(ctx, "test", new TestServlet());

Modified: tomcat/trunk/test/org/apache/catalina/loader/TestVirtualContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestVirtualContext.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/loader/TestVirtualContext.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/loader/TestVirtualContext.java Mon 
Sep 16 13:10:18 2013
@@ -77,23 +77,23 @@ public class TestVirtualContext extends 
         File f5 = new File("test/webapp-virtual-webapp/src/main/misc");
         File f6 = new File("test/webapp-virtual-webapp/src/main/webapp2");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f1.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f1.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f2.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f2.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f3.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f3.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f4.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f4.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f5.getAbsolutePath(),
-                "/other", "/");
+                WebResourceRoot.ResourceSetType.POST, "/other",
+                f5.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f6.getAbsolutePath(),
-                "/", "/");
+                WebResourceRoot.ResourceSetType.POST, "/",
+                f6.getAbsolutePath(), null, "/");
 
         StandardJarScanner jarScanner = new StandardJarScanner();
         jarScanner.setScanAllDirectories(true);
@@ -280,11 +280,11 @@ public class TestVirtualContext extends 
         File f1 = new File("test/webapp-virtual-webapp/target/classes");
         File f2 = new File("test/webapp-virtual-library/target/classes");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f1.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f1.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f2.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f2.getAbsolutePath(), null, "/");
 
         tomcat.start();
         // first test that without the setting on StandardContext the annotated
@@ -297,15 +297,14 @@ public class TestVirtualContext extends 
         // path, the servlet is detected
         ctx.setResources(new StandardRoot(ctx));
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f1.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f1.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f2.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                f2.getAbsolutePath(), null, "/");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST,
-                additionWebInfClasses.getAbsolutePath(),
-                "/WEB-INF/classes", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/classes",
+                additionWebInfClasses.getAbsolutePath(), null, "/");
 
         tomcat.start();
         assertPageContains("/test/annotatedServlet", 
MyAnnotatedServlet.MESSAGE);

Modified: 
tomcat/trunk/test/org/apache/catalina/loader/TestVirtualWebappLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestVirtualWebappLoader.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/loader/TestVirtualWebappLoader.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/loader/TestVirtualWebappLoader.java 
Mon Sep 16 13:10:18 2013
@@ -58,8 +58,8 @@ public class TestVirtualWebappLoader ext
 
         File f1 = new File("test/webapp-fragments/WEB-INF/lib");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, f1.getAbsolutePath(),
-                "/WEB-INF/lib", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+                f1.getAbsolutePath(), null, "/");
 
         loader.start();
         String[] repos = loader.getLoaderRepositories();

Modified: 
tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java 
(original)
+++ 
tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java 
Mon Sep 16 13:10:18 2013
@@ -91,14 +91,14 @@ public class TesterWebResourceRoot exten
     }
 
     @Override
-    public void createWebResourceSet(ResourceSetType type, URL url,
-            String webAppPath, String internalPath) {
+    public void createWebResourceSet(ResourceSetType type, String webAppPath,
+            URL url, String internalPath) {
         // NO-OP
     }
 
     @Override
-    public void createWebResourceSet(ResourceSetType type, String base,
-            String webAppMount, String internalPath) {
+    public void createWebResourceSet(ResourceSetType type, String webAppPath,
+            String base, String archivePath, String internalPath) {
         // NO-OP
     }
 

Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestGenerator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/compiler/TestGenerator.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/jasper/compiler/TestGenerator.java (original)
+++ tomcat/trunk/test/org/apache/jasper/compiler/TestGenerator.java Mon Sep 16 
13:10:18 2013
@@ -121,8 +121,8 @@ public class TestGenerator extends Tomca
         File lib = new File("webapps/examples/WEB-INF/lib");
         ctxt.setResources(new StandardRoot(ctxt));
         ctxt.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, lib.getAbsolutePath(),
-                "/WEB-INF/lib", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+                lib.getAbsolutePath(), null, "/");
 
         tomcat.start();
 

Modified: 
tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/AbstractTestTag.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/AbstractTestTag.java?rev=1523625&r1=1523624&r2=1523625&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/AbstractTestTag.java 
(original)
+++ 
tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/AbstractTestTag.java 
Mon Sep 16 13:10:18 2013
@@ -43,16 +43,16 @@ public abstract class AbstractTestTag ex
         // Add the JSTL (we need the TLD)
         File lib = new File("webapps/examples/WEB-INF/lib");
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, lib.getAbsolutePath(),
-                "/WEB-INF/lib", "/");
+                WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+                lib.getAbsolutePath(), null, "/");
 
         // Configure the use of the plug-in rather than the standard impl
         File plugin = new File(
                 "java/org/apache/jasper/tagplugins/jstl/tagPlugins.xml");
         Assert.assertTrue(plugin.isFile());
         ctx.getResources().createWebResourceSet(
-                WebResourceRoot.ResourceSetType.POST, plugin.getAbsolutePath(),
-                "/WEB-INF/tagPlugins.xml", "/");
+                WebResourceRoot.ResourceSetType.POST, 
"/WEB-INF/tagPlugins.xml",
+                plugin.getAbsolutePath(), null, "/");
 
         tomcat.start();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to