[jboss-cvs] JBossAS SVN: r97417 - projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Dec 3 11:52:44 EST 2009
Author: alesj
Date: 2009-12-03 11:52:44 -0500 (Thu, 03 Dec 2009)
New Revision: 97417
Modified:
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
Log:
Expose useful handles for osgi service factory usage.
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java 2009-12-03 16:30:27 UTC (rev 97416)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java 2009-12-03 16:52:44 UTC (rev 97417)
@@ -423,18 +423,46 @@
return tracker;
}
- public Object getTarget(ControllerContext user)
+ /**
+ * Get the actual user.
+ *
+ * e.g. OSGi uses bundle to track usage
+ *
+ * @param context the controller context
+ * @return actual user
+ */
+ protected Object getActualUser(ControllerContext context)
{
- Object result = getTarget();
+ return context;
+ }
+
+ /**
+ * Get target for actual user.
+ *
+ * e.g. OSGi can return different services
+ * for bundle from service factory.
+ *
+ * @param user the user/tracker
+ * @return target
+ */
+ protected Object getTargetForActualUser(Object user)
+ {
+ return getTarget();
+ }
+
+ public Object getTarget(ControllerContext context)
+ {
+ Object user = getActualUser(context);
+ Object result = getTargetForActualUser(user);
if (result != null)
{
ContextTracker myTracker = getContextTracker();
if (myTracker != null)
myTracker.incrementUsedBy(this, user);
- if (user instanceof ContextTracking)
+ if (context instanceof ContextTracking)
{
- ContextTracking ct = ContextTracking.class.cast(user);
+ ContextTracking ct = ContextTracking.class.cast(context);
ContextTracker otherTracker = ct.getContextTracker();
if (otherTracker != null)
otherTracker.incrementUsedBy(this, user);
@@ -443,18 +471,19 @@
return result;
}
- public Object ungetTarget(ControllerContext user)
+ public Object ungetTarget(ControllerContext context)
{
- Object result = getTarget();
+ Object user = getActualUser(context);
+ Object result = getTargetForActualUser(user);
if (result != null)
{
ContextTracker myTracker = getContextTracker();
if (myTracker != null)
myTracker.decrementUsedBy(this, user);
- if (user instanceof ContextTracking)
+ if (context instanceof ContextTracking)
{
- ContextTracking ct = ContextTracking.class.cast(user);
+ ContextTracking ct = ContextTracking.class.cast(context);
ContextTracker otherTracker = ct.getContextTracker();
if (otherTracker != null)
otherTracker.decrementUsedBy(this, user);
@@ -463,23 +492,9 @@
return result;
}
- /**
- * Get target for tracker.
- *
- * e.g. OSGi can return different services
- * for bundle from service factory.
- *
- * @param tracker the user/tracker
- * @return target
- */
- protected Object getTargetForTracker(ContextTracker tracker)
- {
- return getTarget();
- }
-
public Object getTarget(ContextTracker tracker)
{
- Object result = getTargetForTracker(tracker);
+ Object result = getTargetForActualUser(tracker);
if (tracker != null)
{
ContextTracker myTracker = getContextTracker();
More information about the jboss-cvs-commits
mailing list