[Jboss-cvs] JBossAS SVN: r55906 - projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Aug 14 12:53:54 EDT 2006
Author: alesj
Date: 2006-08-14 12:53:52 -0400 (Mon, 14 Aug 2006)
New Revision: 55906
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
Log:
Added info about context usage with contextual injection.
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java 2006-08-14 16:25:32 UTC (rev 55905)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java 2006-08-14 16:53:52 UTC (rev 55906)
@@ -61,7 +61,7 @@
protected Map<Object, List<KernelControllerContext>> suppliers = CollectionsFactory.createConcurrentReaderMap();
/** The contexts by class Map<Class, Set<ControllerContext>> */
- protected Map<Class, Set<ControllerContext>> contextsByClass = CollectionsFactory.createConcurrentReaderMap();
+ protected Map<Class, ClassContext> contextsByClass = CollectionsFactory.createConcurrentReaderMap();
/**
* Create an abstract kernel controller
@@ -217,7 +217,13 @@
lockRead();
try
{
- return contextsByClass.get(clazz);
+ ClassContext classContext = contextsByClass.get(clazz);
+ if (classContext != null)
+ {
+ classContext.used = true;
+ return classContext.contexts;
+ }
+ return null;
}
finally
{
@@ -273,33 +279,34 @@
{
return;
}
- Set<ControllerContext> beans = contextsByClass.get(clazz);
+ ClassContext classContext = contextsByClass.get(clazz);
if (addition)
{
- if (beans == null)
+ if (classContext == null)
{
- beans = new HashSet<ControllerContext>();
- contextsByClass.put(clazz, beans);
+ classContext = new ClassContext();
+ classContext.contexts = new HashSet<ControllerContext>();
+ contextsByClass.put(clazz, classContext);
}
+ else if (classContext.used)
+ {
+ log.warn("Additional matching bean - contextual injection already used for class: " + clazz);
+ }
if (trace)
{
log.trace("Mapping contex " + context + " to class: " + clazz);
}
- beans.add(context);
+ classContext.contexts.add(context);
}
else
{
- if (beans != null)
+ if (classContext != null)
{
if (trace)
{
log.trace("Removing contex " + context + " to class: " + clazz);
}
- beans.remove(context);
- if (beans.isEmpty())
- {
- contextsByClass.remove(clazz);
- }
+ classContext.contexts.remove(context);
}
}
// traverse superclass
@@ -312,4 +319,10 @@
}
}
+ private class ClassContext
+ {
+ private boolean used;
+ private Set<ControllerContext> contexts;
+ }
+
}
More information about the jboss-cvs-commits
mailing list