[jboss-cvs] JBossAS SVN: r100783 - 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
Tue Feb 9 22:06:50 EST 2010


Author: remy.maucherat at jboss.com
Date: 2010-02-09 22:06:50 -0500 (Tue, 09 Feb 2010)
New Revision: 100783

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.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
Log:
- Allow dynamic cl configuration (if the properties can use sets, which I didn't check yet).
- Default to null which means no injections in JSP scriptlets.

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-02-10 03:03:56 UTC (rev 100782)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-02-10 03:06:50 UTC (rev 100783)
@@ -21,13 +21,6 @@
  */
 package org.jboss.web.tomcat.service;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NameNotFoundException;
-import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.Servlet;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.annotation.Annotation;
@@ -37,14 +30,20 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.Collections;
 
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+
 import org.apache.tomcat.InstanceManager;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
@@ -137,7 +136,7 @@
    private PersistenceUnitDependencyResolver persistenceUnitDependencyResolver;
    private DeploymentEndpointResolver deploymentEndpointResolver;
    private Map<String, ContainerDependencyMetaData> endpointMap;
-   private static final Set<String> dynamicClassLoaders = new HashSet<String>();
+   private Set<String> dynamicClassLoaders = null;
    private static final Properties restrictedFilters = new Properties();
    private static final Properties restrictedListeners = new Properties();
    private static final Properties restrictedServlets = new Properties();
@@ -195,13 +194,10 @@
       {
          log.error("Error reading org/apache/catalina/core/RestrictedFilters.properties", e);
       }
-
-      // 
-      dynamicClassLoaders.add("org.apache.jasper.servlet.JasperLoader");
    }
 
    public TomcatInjectionContainer(WebApplication appInfo, DeploymentUnit unit, org.apache.catalina.Context catalinaContext,
-         PersistenceUnitDependencyResolver resolver)
+         PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders)
    {
       super(new SimpleJavaEEModule(appInfo.getName()));
 
@@ -211,6 +207,7 @@
       this.persistenceUnitDependencyResolver = resolver;
       this.deploymentEndpointResolver = unit.getAttachment(DeploymentEndpointResolver.class);
       this.endpointMap = unit.getTopLevel().getAttachment(MappedReferenceMetaDataResolverDeployer.ENDPOINT_MAP_KEY, Map.class);
+      this.dynamicClassLoaders = dynamicClassLoaders;
 
       this.webDD = unit.getAttachment(JBossWebMetaData.class);
       assert this.webDD != null : "webDD is null (no JBossWebMetaData attachment in VFSDeploymentUnit)";
@@ -486,6 +483,8 @@
     */
    private boolean isDynamicBean(Object object)
    {
+      if (dynamicClassLoaders == null)
+         return false;
       if (object == null)
          throw new IllegalArgumentException("null class");
 

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-02-10 03:03:56 UTC (rev 100782)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java	2010-02-10 03:06:50 UTC (rev 100783)
@@ -22,6 +22,7 @@
 package org.jboss.web.tomcat.service.deployers;
 
 import java.util.List;
+import java.util.Set;
 
 import javax.management.ObjectName;
 
@@ -109,6 +110,9 @@
    /** FQN of the SecurityContext Class */
    private String securityContextClassName;
 
+   /** Dynamic classloaders */
+   private Set<String> dynamicClassloaders;
+
    public ClassLoader getServiceClassLoader()
    {
       return serviceClassLoader;
@@ -269,6 +273,16 @@
    public void setSharedTldMetaData(List<TldMetaData> sharedTldMetaData)
    {
       this.sharedTldMetaData = sharedTldMetaData;
+   }
+
+   public Set<String> getDynamicClassloaders()
+   {
+      return dynamicClassloaders;
+   }
+
+   public void setDynamicClassloaders(Set<String> dynamicClassloaders)
+   {
+      this.dynamicClassloaders = dynamicClassloaders;
    }   
    
 }

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-02-10 03:03:56 UTC (rev 100782)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java	2010-02-10 03:06:50 UTC (rev 100783)
@@ -25,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
+import java.util.Set;
 import java.util.StringTokenizer;
 
 import javax.management.ObjectName;
@@ -93,6 +94,9 @@
 
    private boolean deleteWorkDirOnContextDestroy = true;
 
+   /** Dynamic classloaders */
+   private Set<String> dynamicClassloaders;
+
    /**
     * JBAS-2283: Provide custom header based auth support
     */
@@ -211,6 +215,16 @@
       log.debug("Passed set of authenticators=" + prop);
    }
 
+   public Set<String> getDynamicClassloaders()
+   {
+      return dynamicClassloaders;
+   }
+
+   public void setDynamicClassloaders(Set<String> dynamicClassloaders)
+   {
+      this.dynamicClassloaders = dynamicClassloaders;
+   }
+
    public String getTldJars()
    {
       return tldJars;
@@ -452,6 +466,7 @@
       config.setSharedMetaData(sharedMetaData);
       config.setSharedTldMetaData(sharedTldMetaData);
       config.setDeleteWorkDirs(deleteWorkDirOnContextDestroy);
+      config.setDynamicClassloaders(dynamicClassloaders);
 
       config.setSecurityContextClassName(securityContextClassName);
       deployment.setSecurityManagementName(securityManagement);

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-02-10 03:03:56 UTC (rev 100782)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-02-10 03:06:50 UTC (rev 100783)
@@ -189,7 +189,9 @@
          tldMetaDataMap.put(tldMetaData.toString(), tldMetaData);
       }
       
-      TomcatInjectionContainer injectionContainer = new TomcatInjectionContainer(webApp, depUnit, context, getPersistenceUnitDependencyResolver());
+      TomcatInjectionContainer injectionContainer = 
+         new TomcatInjectionContainer(webApp, depUnit, context, 
+               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders());
 
       if (kernel != null)
       {




More information about the jboss-cvs-commits mailing list