[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