[jboss-cvs] JBossAS SVN: r102735 - in trunk/tomcat/src/main/java/org/jboss/web/tomcat: service/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 22 17:20:06 EDT 2010


Author: remy.maucherat at jboss.com
Date: 2010-03-22 17:20:06 -0400 (Mon, 22 Mar 2010)
New Revision: 102735

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/metadata/ContextMetaData.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
Log:
- Use overlays to easily add "linking" to external static files. The downside is the potential for abuse ...

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/metadata/ContextMetaData.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/metadata/ContextMetaData.java	2010-03-22 20:24:44 UTC (rev 102734)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/metadata/ContextMetaData.java	2010-03-22 21:20:06 UTC (rev 102735)
@@ -48,6 +48,7 @@
    private SessionCookieMetaData sessionCookie;
    private List<String> wrapperLifecycles;
    private List<String> wrapperListeners;
+   private List<String> overlays;
    
    public String getName()
    {
@@ -189,4 +190,14 @@
       this.wrapperListeners = wrapperListeners;
    }
    
+   public List<String> getOverlays()
+   {
+      return overlays;
+   }
+   @XmlElement(name = "Overlay")
+   public void setOverlays(List<String> overlays)
+   {
+      this.overlays = overlays;
+   }
+   
 }

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2010-03-22 20:24:44 UTC (rev 102734)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2010-03-22 21:20:06 UTC (rev 102735)
@@ -148,6 +148,8 @@
 
    private static Logger log = Logger.getLogger(JBossContextConfig.class);
 
+   private Set<String> overlays = new HashSet<String>();
+   
    private boolean runDestroy = false;
 
    /**
@@ -862,6 +864,12 @@
                }
             }
 
+            // Context/Overlay
+            if (contextMetaData.getOverlays() != null)
+            {
+               overlays.addAll(contextMetaData.getOverlays());
+            }
+
          }
          catch (Exception e)
          {
@@ -1331,6 +1339,30 @@
             }
          }
       }
+      
+      // Add other overlays, if any
+      if (ok)
+      {
+         for (String overlay : overlays)
+         {
+            if (context.getResources() instanceof ProxyDirContext)
+            {
+               ProxyDirContext resources = (ProxyDirContext) context.getResources();
+               FileDirContext dirContext = new FileDirContext();
+               try
+               {
+                  dirContext.setDocBase(overlay);
+                  resources.addOverlay(dirContext);
+               }
+               catch (IOException e)
+               {
+                  log.error(sm.getString("contextConfig.noOverlay", context.getName()), e);
+                  ok = false;
+                  break;
+               }
+            }
+         }
+      }
 
       // Make our application unavailable if problems were encountered
       if (!ok) {




More information about the jboss-cvs-commits mailing list