[jboss-cvs] JBossAS SVN: r96682 - in projects/kernel/trunk: dependency/src/main/java/org/jboss/dependency/plugins/helpers and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Nov 22 08:47:01 EST 2009
Author: alesj
Date: 2009-11-22 08:47:00 -0500 (Sun, 22 Nov 2009)
New Revision: 96682
Modified:
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/helpers/StatelessController.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ContextTracker.java
projects/kernel/trunk/weld-int/src/test/java/org/jboss/test/kernel/weld/mctowb/support/mock/MockController.java
Log:
[JBKERNEL-61]; additional context2class tracker methods.
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-11-22 12:30:32 UTC (rev 96681)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-11-22 13:47:00 UTC (rev 96682)
@@ -2605,6 +2605,34 @@
prepareToTraverse(context, true);
}
+ public void registerInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ handleInstantiatedContext(context, true, classes);
+ }
+
+ /**
+ * Register / unregister contexts against explicit classes.
+ *
+ * @param context the context
+ * @param addition whether this is an addition
+ * @param classes the exposed classes
+ */
+ protected void handleInstantiatedContext(ControllerContext context, boolean addition, Class<?>... classes)
+ {
+ if (classes != null && classes.length > 0)
+ {
+ boolean trace = log.isTraceEnabled();
+
+ for (Class<?> clazz : classes)
+ handleContext(context, clazz, addition, trace);
+ }
+ }
+
+ public void unregisterInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ handleInstantiatedContext(context, false, classes);
+ }
+
public void removeInstantiatedContext(ControllerContext context)
{
prepareToTraverse(context, false);
@@ -2615,11 +2643,18 @@
lockWrite();
try
{
- Object target = addition ? context.getTarget() : context.ungetTarget();
- if (target != null)
+ Object target = context.getTarget();
+ try
{
- traverseBean(context, target.getClass(), addition, log.isTraceEnabled());
+ if (target != null)
+ {
+ traverseBean(context, target.getClass(), addition, log.isTraceEnabled());
+ }
}
+ finally
+ {
+ context.ungetTarget();
+ }
}
finally
{
@@ -2642,6 +2677,29 @@
{
return;
}
+
+ handleContext(context, clazz, addition, trace);
+
+ // traverse superclass
+ traverseBean(context, clazz.getSuperclass(), addition, trace);
+ Class<?>[] interfaces = clazz.getInterfaces();
+ // traverse interfaces
+ for(Class<?> intface : interfaces)
+ {
+ traverseBean(context, intface, addition, trace);
+ }
+ }
+
+ /**
+ * Map or remove context against class.
+ *
+ * @param context the context
+ * @param clazz the class
+ * @param addition whether this is an addition
+ * @param trace trace is enabled
+ */
+ protected void handleContext(ControllerContext context, Class<?> clazz, boolean addition, boolean trace)
+ {
ClassContext classContext = contextsByClass.get(clazz);
if (addition)
{
@@ -2672,14 +2730,6 @@
classContext.contexts.remove(context);
}
}
- // traverse superclass
- traverseBean(context, clazz.getSuperclass(), addition, trace);
- Class<?>[] interfaces = clazz.getInterfaces();
- // traverse interfaces
- for(Class<?> intface : interfaces)
- {
- traverseBean(context, intface, addition, trace);
- }
}
private static class ClassContext
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/helpers/StatelessController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/helpers/StatelessController.java 2009-11-22 12:30:32 UTC (rev 96681)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/helpers/StatelessController.java 2009-11-22 13:47:00 UTC (rev 96682)
@@ -114,6 +114,16 @@
}
@Override
+ public void registerInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ }
+
+ @Override
+ public void unregisterInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ }
+
+ @Override
public void removeInstantiatedContext(ControllerContext context)
{
}
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ContextTracker.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ContextTracker.java 2009-11-22 12:30:32 UTC (rev 96681)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ContextTracker.java 2009-11-22 13:47:00 UTC (rev 96682)
@@ -66,7 +66,28 @@
void addInstantiatedContext(ControllerContext context);
/**
+ * Add instantiated context into the map used by {@link #getContextByClass(Class)}.
+ * Only map against explicit classes.
+ *
+ * Note: it is up to the caller to make sure the context's target implements
+ * all of the exposed classes.
+ *
+ * @param context the context
+ * @param classes the classes to expose
+ */
+ void registerInstantiatedContext(ControllerContext context, Class<?>... classes);
+
+ /**
* Remove instantiated context from the map used by {@link #getContextByClass(Class)}.
+ * Only remove explicit classes.
+ *
+ * @param context the context
+ * @param classes the classes to expose
+ */
+ void unregisterInstantiatedContext(ControllerContext context, Class<?>... classes);
+
+ /**
+ * Remove instantiated context from the map used by {@link #getContextByClass(Class)}.
* Look at all target's superclasses and interfaces.
*
* @param context the context
Modified: projects/kernel/trunk/weld-int/src/test/java/org/jboss/test/kernel/weld/mctowb/support/mock/MockController.java
===================================================================
--- projects/kernel/trunk/weld-int/src/test/java/org/jboss/test/kernel/weld/mctowb/support/mock/MockController.java 2009-11-22 12:30:32 UTC (rev 96681)
+++ projects/kernel/trunk/weld-int/src/test/java/org/jboss/test/kernel/weld/mctowb/support/mock/MockController.java 2009-11-22 13:47:00 UTC (rev 96682)
@@ -119,6 +119,14 @@
{
}
+ public void registerInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ }
+
+ public void unregisterInstantiatedContext(ControllerContext context, Class<?>... classes)
+ {
+ }
+
public void addSupplies(KernelControllerContext context)
{
}
More information about the jboss-cvs-commits
mailing list