[jboss-cvs] JBossAS SVN: r102764 - projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/hibernate.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 23 03:09:33 EDT 2010
Author: alesj
Date: 2010-03-23 03:09:33 -0400 (Tue, 23 Mar 2010)
New Revision: 102764
Modified:
projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/hibernate/ScannerImpl.java
Log:
Cache package calls -- no multiple loading.
Modified: projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/hibernate/ScannerImpl.java
===================================================================
--- projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/hibernate/ScannerImpl.java 2010-03-23 06:34:45 UTC (rev 102763)
+++ projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/hibernate/ScannerImpl.java 2010-03-23 07:09:33 UTC (rev 102764)
@@ -54,6 +54,8 @@
{
/** The packages cache */
private Map<URL, Set<Package>> packages = new HashMap<URL, Set<Package>>();
+ /** The packages cache */
+ private Map<URL, Set<String>> pckgCache = new HashMap<URL, Set<String>>();
/** The classes cache */
private Map<URL, Map<Class<? extends Annotation>, Set<String>>> classes = new HashMap<URL, Map<Class<? extends Annotation>, Set<String>>>();
/** The files cache */
@@ -107,6 +109,20 @@
void addPackage(URL url, String pckg)
{
+ Set<String> cache = pckgCache.get(url);
+ if (cache != null)
+ {
+ if (cache.contains(pckg))
+ return;
+ }
+ else
+ {
+ cache = new HashSet<String>();
+ pckgCache.put(url, cache);
+ }
+
+ cache.add(pckg); // cache result
+
Set<Package> pckgs = packages.get(url);
if (pckgs == null)
{
@@ -195,6 +211,9 @@
packages.put(jartoScan, p);
}
+ // remove cached string packages
+ pckgCache.remove(jartoScan);
+
return p != null ? Collections.unmodifiableSet(p) : Collections.<Package>emptySet();
}
More information about the jboss-cvs-commits
mailing list