[jboss-cvs] JBossAS SVN: r103585 - projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/authorization/modules.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 6 12:54:03 EDT 2010


Author: anil.saldhana at jboss.com
Date: 2010-04-06 12:54:02 -0400 (Tue, 06 Apr 2010)
New Revision: 103585

Modified:
   projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java
Log:
SECURITY-493; cache the loaded class instances

Modified: projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java
===================================================================
--- projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java	2010-04-06 16:35:21 UTC (rev 103584)
+++ projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java	2010-04-06 16:54:02 UTC (rev 103585)
@@ -59,6 +59,9 @@
    /** Map of delegates for the various layers */
    protected Map<ResourceType,String> delegateMap = new HashMap<ResourceType,String>();
    
+   /** A map that is available to reduce the loadClass synchronization */
+   protected static Map<String, Class<?> > clazzMap = new HashMap<String, Class<?> >();
+   
    /**
     * @see AuthorizationModule#authorize(Resource)
     */
@@ -162,7 +165,13 @@
    throws Exception
    {
       ClassLoader tcl = SecurityActions.getContextClassLoader();
-      Class<?> clazz = tcl.loadClass(delegateStr);
+      Class<?> clazz = clazzMap.get(delegateStr);
+      if(clazz == null)
+      {
+         clazz = tcl.loadClass(delegateStr);
+         clazzMap.put(delegateStr, clazz); 
+      } 
+      
       return (AuthorizationModuleDelegate)clazz.newInstance();
    }
    




More information about the jboss-cvs-commits mailing list