[jboss-cvs] Picketbox SVN: r82 - trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/audit.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 6 17:19:56 EDT 2010


Author: anil.saldhana at jboss.com
Date: 2010-04-06 17:19:56 -0400 (Tue, 06 Apr 2010)
New Revision: 82

Modified:
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java
Log:
SECURITY-499: loadClass bottlneck

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java	2010-04-06 21:10:51 UTC (rev 81)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java	2010-04-06 21:19:56 UTC (rev 82)
@@ -9,6 +9,8 @@
 import java.security.PrivilegedActionException;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.jboss.logging.Logger;
@@ -20,7 +22,7 @@
 import org.jboss.security.audit.providers.LogAuditProvider;
 import org.jboss.security.config.ApplicationPolicy;
 import org.jboss.security.config.AuditInfo;
-import org.jboss.security.config.SecurityConfiguration;
+import org.jboss.security.config.SecurityConfiguration; 
 
 /**
  *  Manages a set of AuditContext
@@ -36,6 +38,8 @@
    
    private static AuditContext defaultContext = null;
    
+   private static Map<String, Class<?> > clazzMap = new WeakHashMap<String, Class<?>>();
+   
    static
    {
       defaultContext = new JBossAuditContext("Default_Context");
@@ -68,7 +72,14 @@
                   String pname = ape.getName();
                   try
                   {
-                     ac.addProvider((AuditProvider) SecurityActions.loadClass(pname).newInstance());
+                     Class<?> clazz = clazzMap.get(pname);
+                     if( clazz == null )
+                     {
+                        clazz = SecurityActions.loadClass(pname);
+                        clazzMap.put(pname, clazz); 
+                     }
+                     
+                     ac.addProvider((AuditProvider) clazz.newInstance());
                   }
                   catch (Exception e)
                   {




More information about the jboss-cvs-commits mailing list