[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