[jboss-cvs] Picketbox SVN: r83 - trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 6 17:52:36 EDT 2010
Author: anil.saldhana at jboss.com
Date: 2010-04-06 17:52:35 -0400 (Tue, 06 Apr 2010)
New Revision: 83
Modified:
trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/JBossMappingManager.java
trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/SecurityActions.java
Log:
SECURITY-500: loadClass bottleneck
Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/JBossMappingManager.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/JBossMappingManager.java 2010-04-06 21:19:56 UTC (rev 82)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/JBossMappingManager.java 2010-04-06 21:52:35 UTC (rev 83)
@@ -22,13 +22,15 @@
package org.jboss.security.plugins.mapping;
import java.util.ArrayList;
+import java.util.Map;
+import java.util.WeakHashMap;
import org.jboss.logging.Logger;
import org.jboss.security.SecurityConstants;
import org.jboss.security.SecurityContext;
import org.jboss.security.config.ApplicationPolicy;
import org.jboss.security.config.MappingInfo;
-import org.jboss.security.config.SecurityConfiguration;
+import org.jboss.security.config.SecurityConfiguration;
import org.jboss.security.mapping.MappingContext;
import org.jboss.security.mapping.MappingManager;
import org.jboss.security.mapping.MappingProvider;
@@ -48,6 +50,8 @@
private String securityDomain;
+ private static Map<String, Class<?> > clazzMap = new WeakHashMap<String, Class<?>>();
+
public JBossMappingManager(String domain)
{
this.securityDomain = domain;
@@ -138,8 +142,13 @@
try
{
String fqn = mme.getMappingModuleName();
- Class<?> cl = SecurityActions.loadClass(fqn,tcl);
- mp = (MappingProvider<T>) cl.newInstance();
+ Class<?> clazz = clazzMap.get(fqn);
+ if( clazz == null )
+ {
+ clazz = tcl.loadClass(fqn);
+ clazzMap.put(fqn, clazz);
+ }
+ mp = (MappingProvider<T>) clazz.newInstance();
mp.init(mme.getOptions());
}
catch(Exception e)
Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/SecurityActions.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/SecurityActions.java 2010-04-06 21:19:56 UTC (rev 82)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/mapping/SecurityActions.java 2010-04-06 21:52:35 UTC (rev 83)
@@ -23,8 +23,6 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
/**
* Privileged Blocks
@@ -43,17 +41,5 @@
return Thread.currentThread().getContextClassLoader();
}
});
- }
-
- static Class<?> loadClass(final String fqn, final ClassLoader tcl)
- throws PrivilegedActionException
- {
- return AccessController.doPrivileged(new PrivilegedExceptionAction<Class<?>>()
- {
- public Class<?> run() throws PrivilegedActionException, ClassNotFoundException
- {
- return tcl.loadClass(fqn);
- }
- });
- }
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list