[jboss-cvs] Picketbox SVN: r79 - trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 6 16:41:18 EDT 2010
Author: anil.saldhana at jboss.com
Date: 2010-04-06 16:41:17 -0400 (Tue, 06 Apr 2010)
New Revision: 79
Modified:
trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java
Log:
SECURITY-496: loadClass bottlenecks in IdentityFactory
Modified: trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java
===================================================================
--- trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java 2010-04-06 20:24:32 UTC (rev 78)
+++ trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java 2010-04-06 20:41:17 UTC (rev 79)
@@ -24,11 +24,12 @@
import java.lang.reflect.Constructor;
import java.security.Principal;
import java.security.acl.Group;
+import java.util.Map;
+import java.util.WeakHashMap;
import org.jboss.security.identity.Identity;
import org.jboss.security.identity.Role;
-//$Id$
/**
* Factory to create customized principal and group
@@ -44,6 +45,8 @@
public static final String PRINCIPAL_CLASS = "org.jboss.security.SimplePrincipal";
public static final String GROUP_CLASS = "org.jboss.security.SimpleGroup";
+
+ private static Map<String, Class<?> > clazzMap = new WeakHashMap<String, Class<?>>();
public static Principal createPrincipal(String name) throws Exception
{
@@ -87,7 +90,12 @@
private static Object loadClass(String className, String ctorArg) throws Exception
{
- Class<?> clazz = SecurityActions.getClass(className);
+ Class<?> clazz = clazzMap.get(className);
+ if( clazz == null )
+ {
+ clazz = SecurityActions.getClass(className);
+ clazzMap.put(className, clazz);
+ }
Constructor<?> ctr = clazz.getConstructor(new Class[]
{String.class});
return ctr.newInstance(new Object[]
@@ -96,7 +104,13 @@
private static Object loadClass(String className, String ctorArg1, String ctorArg2) throws Exception
{
- Class<?> clazz = SecurityActions.getClass(className);
+ Class<?> clazz = clazzMap.get(className);
+ if( clazz == null )
+ {
+ clazz = SecurityActions.getClass(className);
+ clazzMap.put(className, clazz);
+ }
+
Constructor<?> ctr = clazz.getConstructor(new Class[]
{String.class, String.class});
return ctr.newInstance(new Object[]
@@ -105,11 +119,15 @@
private static Object loadClass(String className, String ctorArg1, Role ctorArg2) throws Exception
{
- Class<?> clazz = SecurityActions.getClass(className);
+ Class<?> clazz = clazzMap.get(className);
+ if( clazz == null )
+ {
+ clazz = SecurityActions.getClass(className);
+ clazzMap.put(className, clazz);
+ }
Constructor<?> ctr = clazz.getConstructor(new Class[]
{String.class, Role.class});
return ctr.newInstance(new Object[]
{ctorArg1, ctorArg2});
}
-
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list