[jboss-cvs] JBossAS SVN: r103598 - projects/security/security-jboss-sx/branches/Branch_2_0/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:21:56 EDT 2010
Author: anil.saldhana at jboss.com
Date: 2010-04-06 17:21:56 -0400 (Tue, 06 Apr 2010)
New Revision: 103598
Modified:
projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java
Log:
SECURITY-499: loadClass bottlneck
Modified: projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java
===================================================================
--- projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java 2010-04-06 21:12:00 UTC (rev 103597)
+++ projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/audit/JBossAuditManager.java 2010-04-06 21:21:56 UTC (rev 103598)
@@ -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