[jboss-cvs] JBossAS SVN: r103485 - in trunk: tomcat/src/main/java/org/jboss/web/tomcat/service/deployers and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 2 18:10:56 EDT 2010


Author: remy.maucherat at jboss.com
Date: 2010-04-02 18:10:56 -0400 (Fri, 02 Apr 2010)
New Revision: 103485

Added:
   trunk/server/src/main/java/org/jboss/web/deployers/SharedJBossWebMetaDataDeployer.java
   trunk/server/src/main/java/org/jboss/web/deployers/SharedTldMetaDataDeployer.java
Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
   trunk/tomcat/src/resources/standalone/war-deployers-jboss-beans.xml
   trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
Log:
- Moved shared TLDs and web.xml to new deployers. This can allow better framework integration.

Added: trunk/server/src/main/java/org/jboss/web/deployers/SharedJBossWebMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/SharedJBossWebMetaDataDeployer.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/web/deployers/SharedJBossWebMetaDataDeployer.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -0,0 +1,127 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.web.deployers;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.web.jboss.JBoss60WebMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.xb.binding.JBossXBException;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+
+/**
+ * A deployer that processes the shared web.xml and jboss-web.xml.
+ * 
+ * @author Remy Maucherat
+ * @version $Revision: 93820 $
+ */
+public class SharedJBossWebMetaDataDeployer extends AbstractDeployer
+{
+   public static final String SHARED_JBOSSWEB_ATTACHMENT_NAME = "shared."+ JBossWebMetaData.class.getName();
+
+   private String webXml = null;
+   private String jbossWebXml = null;
+   private JBossWebMetaData sharedJBossWebMetaData = null;
+   private WebMetaData sharedWebMetaData = null;
+
+   public String getWebXml()
+   {
+      return webXml;
+   }
+
+   public void setWebXml(String webXml)
+   {
+      this.webXml = webXml;
+   }
+
+   public String getJbossWebXml()
+   {
+      return jbossWebXml;
+   }
+
+   public void setJbossWebXml(String jbossWebXml)
+   {
+      this.jbossWebXml = jbossWebXml;
+   }
+
+   public SharedJBossWebMetaDataDeployer()
+   {
+      setStage(DeploymentStages.POST_CLASSLOADER);
+      addOutput(SHARED_JBOSSWEB_ATTACHMENT_NAME);
+   }
+
+   public void deploy(DeploymentUnit unit) throws DeploymentException
+   {
+      if (!unit.getSimpleName().endsWith(".war"))
+      {
+         return;
+      }
+
+      synchronized (this)
+      {
+         if ((sharedWebMetaData == null && webXml != null)
+               || (sharedJBossWebMetaData == null && jbossWebXml != null))
+         {
+            UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
+            Unmarshaller unmarshaller = factory.newUnmarshaller();
+            SchemaBindingResolver resolver = SingletonSchemaResolverFactory
+                  .getInstance().getSchemaBindingResolver();
+            if (webXml != null)
+            {
+               try
+               {
+                  sharedWebMetaData = (WebMetaData) unmarshaller.unmarshal(webXml, resolver);
+               }
+               catch (JBossXBException e)
+               {
+                  throw new DeploymentException("Error parsing shared web.xml", e);
+               }
+            }
+            if (jbossWebXml != null)
+            {
+               try
+               {
+                  sharedJBossWebMetaData = (JBossWebMetaData) unmarshaller.unmarshal(jbossWebXml, resolver);
+               }
+               catch (JBossXBException e)
+               {
+                  throw new DeploymentException("Error parsing shared jboss-web.xml", e);
+               }
+            }
+         }
+      }
+
+      if (sharedWebMetaData != null || sharedJBossWebMetaData != null)
+      {
+         JBossWebMetaData clone = new JBoss60WebMetaData();
+         clone.merge(sharedJBossWebMetaData, sharedWebMetaData);
+         unit.addAttachment(SHARED_JBOSSWEB_ATTACHMENT_NAME, clone);
+      }
+  }
+   
+}

Added: trunk/server/src/main/java/org/jboss/web/deployers/SharedTldMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/SharedTldMetaDataDeployer.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/web/deployers/SharedTldMetaDataDeployer.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.web.deployers;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.web.spec.TldMetaData;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileFilter;
+import org.jboss.vfs.VisitorAttributes;
+import org.jboss.vfs.util.SuffixMatchFilter;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+
+/**
+ * A deployer that processes the shared TLDs.
+ * 
+ * @author Remy Maucherat
+ * @version $Revision: 93820 $
+ */
+public class SharedTldMetaDataDeployer extends AbstractDeployer
+{
+   public static final String SHARED_TLDS_ATTACHMENT_NAME = "shared."+TldMetaData.class.getName();
+
+   private List<URL> tldJars = null;
+   private List<TldMetaData> sharedTldMetaData = null;
+
+   public List<URL> getTldJars()
+   {
+      return tldJars;
+   }
+
+   public void setTldJars(List<URL> tldJars)
+   {
+      this.tldJars = tldJars;
+   }
+
+   public SharedTldMetaDataDeployer()
+   {
+      setStage(DeploymentStages.POST_CLASSLOADER);
+      addOutput(SHARED_TLDS_ATTACHMENT_NAME);
+   }
+
+   public void deploy(DeploymentUnit unit) throws DeploymentException
+   {
+      if (!unit.getSimpleName().endsWith(".war"))
+      {
+         return;
+      }
+      
+      synchronized (this)
+      {
+         if (sharedTldMetaData == null && tldJars != null)
+         {
+            UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
+            Unmarshaller unmarshaller = factory.newUnmarshaller();
+            SchemaBindingResolver resolver = SingletonSchemaResolverFactory
+                  .getInstance().getSchemaBindingResolver();
+
+            // Parse shared JARs for TLDs
+            sharedTldMetaData = new ArrayList<TldMetaData>();
+            if (tldJars != null)
+            {
+               VirtualFileFilter tldFilter = new SuffixMatchFilter(".tld", VisitorAttributes.DEFAULT);
+               for (URL tldJar : tldJars)
+               {
+                  try
+                  {
+                     VirtualFile virtualFile = VFS.getChild(tldJar);
+                     VirtualFile metaInf = virtualFile.getChild("META-INF");
+                     if (metaInf != null)
+                     {
+                        List<VirtualFile> tlds = metaInf.getChildren(tldFilter);
+                        for (VirtualFile tld : tlds)
+                        {
+                           TldMetaData tldMetaData = (TldMetaData) unmarshaller.unmarshal(tld.toURL().toString(), resolver);
+                           sharedTldMetaData.add(tldMetaData);
+                        }
+                     }
+                  }
+                  catch (Exception e)
+                  {
+                     throw new DeploymentException("Error processing TLDs for JAR: " + tldJar, e);
+                  }
+               }
+            }
+         }
+      }
+      if (sharedTldMetaData != null)
+      {
+         List<TldMetaData> clone = new ArrayList<TldMetaData>();
+         clone.addAll(sharedTldMetaData);
+         unit.addAttachment(SHARED_TLDS_ATTACHMENT_NAME, clone);
+      }
+
+   }
+
+}

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java	2010-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -90,16 +90,6 @@
    private String defaultSecurityDomain;
 
    /**
-    * Shared WebMetaData.
-    */
-   private JBossWebMetaData sharedMetaData = null;
-
-   /**
-    * Shared TLD metaData.
-    */
-   private List<TldMetaData> sharedTldMetaData = null;
-
-   /**
     * Flag indicating whether web-app specific context xmls may set the privileged flag.
     */
    private boolean allowSelfPrivilegedWebApps = false;
@@ -255,26 +245,6 @@
       this.securityContextClassName = securityContextClassName;
    }
 
-   public JBossWebMetaData getSharedMetaData()
-   {
-      return sharedMetaData;
-   }
-
-   public void setSharedMetaData(JBossWebMetaData sharedMetaData)
-   {
-      this.sharedMetaData = sharedMetaData;
-   }
-
-   public List<TldMetaData> getSharedTldMetaData()
-   {
-      return sharedTldMetaData;
-   }
-
-   public void setSharedTldMetaData(List<TldMetaData> sharedTldMetaData)
-   {
-      this.sharedTldMetaData = sharedTldMetaData;
-   }
-
    public Set<String> getDynamicClassloaders()
    {
       return dynamicClassloaders;

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-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -121,6 +121,7 @@
 import org.jboss.vfs.VirtualFile;
 import org.jboss.web.deployers.MergedJBossWebMetaDataDeployer;
 import org.jboss.web.deployers.ServletContainerInitializerDeployer;
+import org.jboss.web.deployers.SharedJBossWebMetaDataDeployer;
 import org.jboss.web.tomcat.metadata.ContextMetaData;
 import org.jboss.web.tomcat.metadata.ManagerMetaData;
 import org.jboss.web.tomcat.metadata.ParameterMetaData;
@@ -137,8 +138,6 @@
 {
    public static ThreadLocal<JBossWebMetaData> metaDataLocal = new ThreadLocal<JBossWebMetaData>();
 
-   public static ThreadLocal<JBossWebMetaData> metaDataShared = new ThreadLocal<JBossWebMetaData>();
-
    public static ThreadLocal<Map<String, TldMetaData>> tldMetaDataMapLocal = new ThreadLocal<Map<String, TldMetaData>>();
 
    public static ThreadLocal<Kernel> kernelLocal = new ThreadLocal<Kernel>();
@@ -207,7 +206,12 @@
 
    protected void defaultWebConfig()
    {
-      processWebMetaData(metaDataShared.get());
+      JBossWebMetaData sharedJBossWebMetaData = (JBossWebMetaData)
+         deploymentUnitLocal.get().getAttachment(SharedJBossWebMetaDataDeployer.SHARED_JBOSSWEB_ATTACHMENT_NAME);
+      if (sharedJBossWebMetaData != null)
+      {
+         processWebMetaData(sharedJBossWebMetaData);
+      }
 
       ServletContext servletContext = context.getServletContext();
       Kernel kernel = kernelLocal.get();
@@ -638,7 +642,11 @@
    protected void processContextParameters()
    {
       JBossWebMetaData local = metaDataLocal.get();
-      JBossWebMetaData shared = metaDataShared.get();
+      JBossWebMetaData shared = (JBossWebMetaData)
+         deploymentUnitLocal.get().getAttachment(SharedJBossWebMetaDataDeployer.SHARED_JBOSSWEB_ATTACHMENT_NAME);
+      
+      if (shared == null)
+         return;
 
       Map<String, String> overrideParams = new HashMap<String, String>();
 

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java	2010-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -106,16 +106,6 @@
    private String sessionCookieForSSOAuth = null;
 
    /**
-    * Shared metaData.
-    */
-   private JBossWebMetaData sharedMetaData = null;
-
-   /**
-    * Shared TLD metaData.
-    */
-   private List<TldMetaData> sharedTldMetaData = null;
-
-   /**
     * The server xml configuration file name
     */
    private String serverConfigFile = "server.xml";
@@ -392,63 +382,6 @@
       AbstractWarDeployment deployment = (AbstractWarDeployment) (getClass().getClassLoader().loadClass(className))
             .newInstance();
 
-      synchronized (this)
-      {
-         if (sharedMetaData == null)
-         {
-            Unmarshaller unmarshaller = factory.newUnmarshaller();
-            SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
-
-            // Parse shared web.xml
-            URL webXml = deployment.getClass().getClassLoader().getResource("web.xml");
-            if (webXml == null)
-            {
-               webXml = this.getClass().getClassLoader().getResource("web.xml");
-            }
-            if (webXml == null)
-            {
-               webXml = this.getClass().getClassLoader().getResource("conf/web.xml");
-            }
-            if (webXml == null)
-               throw new IllegalStateException("Unable to find shared web.xml or conf/web.xml");
-            WebMetaData confWebMD = (WebMetaData) unmarshaller.unmarshal(webXml.toString(), resolver);
-            sharedMetaData = new JBoss50WebMetaData();
-            sharedMetaData.merge(null, confWebMD);
-
-            // Parse shared JARs for TLDs
-            sharedTldMetaData = new ArrayList<TldMetaData>();
-            if (tldJars != null)
-            {
-               List<URL> urls = new ArrayList<URL>();
-               StringTokenizer tokenizer = new StringTokenizer(tldJars, ",");
-               while (tokenizer.hasMoreTokens())
-               {
-                  String jar = tokenizer.nextToken().trim();
-                  URL jarURL = deployment.getClass().getClassLoader().getResource(jar);
-                  if (jarURL != null)
-                  {
-                     urls.add(jarURL);
-                  }
-               }
-               VirtualFileFilter tldFilter = new SuffixMatchFilter(".tld", VisitorAttributes.DEFAULT);
-               for (URL url : urls)
-               {
-                  VirtualFile virtualFile = VFS.getChild(url);
-                  VirtualFile metaInf = virtualFile.getChild("META-INF");
-                  if (metaInf != null)
-                  {
-                     List<VirtualFile> tlds = metaInf.getChildren(tldFilter);
-                     for (VirtualFile tld : tlds)
-                     {
-                        TldMetaData tldMetaData = (TldMetaData) unmarshaller.unmarshal(tld.toURL().toString(), resolver);
-                        sharedTldMetaData.add(tldMetaData);
-                     }
-                  }
-               }
-            }
-         }
-      }
-      
       DeployerConfig config = new DeployerConfig();
       config.setDefaultSecurityDomain(this.defaultSecurityDomain);
       config.setSubjectAttributeName(this.subjectAttributeName);
@@ -464,8 +397,6 @@
       config.setSubjectAttributeName(this.subjectAttributeName);
       config.setAllowSelfPrivilegedWebApps(this.allowSelfPrivilegedWebApps);
       config.setSecurityManagerService(this.secMgrService);
-      config.setSharedMetaData(sharedMetaData);
-      config.setSharedTldMetaData(sharedTldMetaData);
       config.setDeleteWorkDirs(deleteWorkDirOnContextDestroy);
       config.setDynamicClassloaders(dynamicClassloaders);
 

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-04-02 22:10:56 UTC (rev 103485)
@@ -63,6 +63,8 @@
 import org.jboss.vfs.VirtualFile;
 import org.jboss.web.WebApplication;
 import org.jboss.web.deployers.AbstractWarDeployment;
+import org.jboss.web.deployers.SharedJBossWebMetaDataDeployer;
+import org.jboss.web.deployers.SharedTldMetaDataDeployer;
 import org.jboss.web.tomcat.security.JaccContextValve;
 import org.jboss.web.tomcat.security.RunAsListener;
 import org.jboss.web.tomcat.security.SecurityAssociationValve;
@@ -186,9 +188,14 @@
             tldMetaDataMap.put(name, (TldMetaData) attachement);
          }
       }
-      for (TldMetaData tldMetaData : config.getSharedTldMetaData())
+      List<TldMetaData> sharedTldMetaData = (List<TldMetaData>)
+         depUnit.getAttachment(SharedTldMetaDataDeployer.SHARED_TLDS_ATTACHMENT_NAME);
+      if (sharedTldMetaData != null)
       {
-         tldMetaDataMap.put("shared:" + tldMetaData.toString(), tldMetaData);
+         for (TldMetaData tldMetaData : sharedTldMetaData)
+         {
+            tldMetaDataMap.put("shared:" + tldMetaData.toString(), tldMetaData);
+         }
       }
       
       TomcatInjectionContainer injectionContainer = 
@@ -305,7 +312,6 @@
       // Pass the metadata to the RunAsListener via a thread local
       RunAsListener.metaDataLocal.set(metaData);
       JBossContextConfig.metaDataLocal.set(metaData);
-      JBossContextConfig.metaDataShared.set(config.getSharedMetaData());
       JBossContextConfig.deployerConfig.set(config);
       JBossContextConfig.tldMetaDataMapLocal.set(tldMetaDataMap);
 
@@ -326,7 +332,6 @@
       {
          RunAsListener.metaDataLocal.set(null);
          JBossContextConfig.metaDataLocal.set(null);
-         JBossContextConfig.metaDataShared.set(null);
          JBossContextConfig.deployerConfig.set(null);
          JBossContextConfig.tldMetaDataMapLocal.set(null);
 

Modified: trunk/tomcat/src/resources/standalone/war-deployers-jboss-beans.xml
===================================================================
--- trunk/tomcat/src/resources/standalone/war-deployers-jboss-beans.xml	2010-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/resources/standalone/war-deployers-jboss-beans.xml	2010-04-02 22:10:56 UTC (rev 103485)
@@ -37,6 +37,17 @@
          </list>         
       </property>
    </bean>
+   <!--<bean name="SharedTldMetaDataDeployer" 
+          class="org.jboss.web.deployers.SharedTldMetaDataDeployer">
+      <property name="tldJars">
+         <list class="java.util.ArrayList" elementClass="java.net.URL">
+         </list>
+      </property>
+   </bean>-->
+   <bean name="SharedJBossWebMetaDataDeployer" 
+          class="org.jboss.web.deployers.SharedJBossWebMetaDataDeployer">
+      <property name="webXml">${jboss.server.home.url}/deploy/jbossweb.sar/web.xml</property>
+   </bean>
    <!-- Servlet 3.0 annotation support (performance drop) -->
    <bean name="WebAnnotationMetaDataDeployer" class="org.jboss.web.deployers.WarAnnotationMetaDataDeployer">
       <property name="relativeOrder">2005</property>
@@ -87,9 +98,6 @@
          </value-factory>
       </property>
 
-      <!-- JARs containing TLDs 
-      <property name="tldJars"></property> -->
-      
       <!-- You can configure a set of authenticators keyed by http-auth method
       used. This will apply the same set of authenticators across all web
       applications. You can override the set of authenticators at the web

Modified: trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
===================================================================
--- trunk/tomcat/src/resources/war-deployers-jboss-beans.xml	2010-04-02 19:20:02 UTC (rev 103484)
+++ trunk/tomcat/src/resources/war-deployers-jboss-beans.xml	2010-04-02 22:10:56 UTC (rev 103485)
@@ -38,6 +38,20 @@
          </list>         
       </property>
    </bean>
+   <bean name="SharedTldMetaDataDeployer" 
+          class="org.jboss.web.deployers.SharedTldMetaDataDeployer">
+      <!-- JARs containing TLDs -->
+      <property name="tldJars">
+         <list class="java.util.ArrayList" elementClass="java.net.URL">
+            <value>${jboss.server.home.url}/deploy/jbossweb.sar/jsf-libs/jsf-impl.jar</value>
+            <value>${jboss.server.home.url}/deploy/jbossweb.sar/jstl.jar</value>
+         </list>
+      </property>
+   </bean>
+   <bean name="SharedJBossWebMetaDataDeployer" 
+          class="org.jboss.web.deployers.SharedJBossWebMetaDataDeployer">
+      <property name="webXml">${jboss.server.home.url}/deploy/jbossweb.sar/web.xml</property>
+   </bean>
    <!-- Servlet 3.0 annotation support (performance drop) -->
    <bean name="WebAnnotationMetaDataDeployer" class="org.jboss.web.deployers.WarAnnotationMetaDataDeployer">
       <property name="relativeOrder">2005</property>
@@ -161,9 +175,6 @@
          </value-factory>
       </property>
 
-      <!-- JARs containing TLDs -->
-      <property name="tldJars">jstl.jar, jsf-libs/jsf-impl.jar</property>
-      
       <!-- You can configure a set of authenticators keyed by http-auth method
       used. This will apply the same set of authenticators across all web
       applications. You can override the set of authenticators at the web




More information about the jboss-cvs-commits mailing list