[jboss-cvs] JBossAS SVN: r92263 - projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 12 10:09:37 EDT 2009
Author: anil.saldhana at jboss.com
Date: 2009-08-12 10:09:36 -0400 (Wed, 12 Aug 2009)
New Revision: 92263
Modified:
projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java
projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/SecurityActions.java
Log:
SECURITY-435: cache JAXBContext in JBossPDP
Modified: projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java
===================================================================
--- projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java 2009-08-12 14:04:23 UTC (rev 92262)
+++ projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/JBossPDP.java 2009-08-12 14:09:36 UTC (rev 92263)
@@ -101,7 +101,27 @@
private org.jboss.security.xacml.sunxacml.PDP policyDecisionPoint = null;
private Lock lock = new ReentrantLock();
+
+ /**
+ * JAXBContext is thread safe and very expensive to create
+ */
+ private static JAXBContext jaxbContext;
+ static
+ {
+ try
+ {
+ jaxbContext = JAXBContext.newInstance("org.jboss.security.xacml.jaxb");
+ }
+ catch (JAXBException e)
+ {
+ throw new RuntimeException(e);
+ }
+
+ //Following is an optimization for Sun VMs which does affect other VMs
+ SecurityActions.setSystemProperty("com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot", "true");
+ }
+
/**
* CTR
*/
@@ -429,9 +449,8 @@
private void createUnMarshaller()
{
try
- {
- JAXBContext jc = JAXBContext.newInstance("org.jboss.security.xacml.jaxb");;
- unmarshaller = jc.createUnmarshaller();
+ {
+ unmarshaller = jaxbContext.createUnmarshaller();
}catch(JAXBException je)
{
throw new RuntimeException(je);
Modified: projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/SecurityActions.java
===================================================================
--- projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/SecurityActions.java 2009-08-12 14:04:23 UTC (rev 92262)
+++ projects/security/security-xacml/trunk/jboss-xacml/src/main/java/org/jboss/security/xacml/core/SecurityActions.java 2009-08-12 14:09:36 UTC (rev 92263)
@@ -58,4 +58,16 @@
}
});
}
+
+ static void setSystemProperty(final String key, final String value)
+ {
+ AccessController.doPrivileged(new PrivilegedAction<Object>()
+ {
+ public Object run()
+ {
+ System.setProperty(key, value);
+ return null;
+ }
+ });
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list