[jboss-cvs] JBossAS SVN: r99855 - in projects/kernel/trunk/kernel/src/main/java/org/jboss: kernel/plugins/dependency and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jan 24 07:02:52 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-24 07:02:52 -0500 (Sun, 24 Jan 2010)
New Revision: 99855

Added:
   projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClearableDependencyItem.java
Modified:
   projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ContextualInjectionDependencyItem.java
   projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
   projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassDependencyItem.java
Log:
[JBKERNEL-82] Clear all dependency items holding a reference to a class

Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ContextualInjectionDependencyItem.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ContextualInjectionDependencyItem.java	2010-01-24 09:25:14 UTC (rev 99854)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ContextualInjectionDependencyItem.java	2010-01-24 12:02:52 UTC (rev 99855)
@@ -32,6 +32,7 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.graph.LookupStrategy;
 import org.jboss.dependency.spi.graph.SearchInfo;
+import org.jboss.kernel.plugins.dependency.ClearableDependencyItem;
 import org.jboss.kernel.plugins.dependency.QualifierKey;
 
 /**
@@ -40,7 +41,7 @@
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision: 1.1 $
  */
-public class ContextualInjectionDependencyItem extends AbstractDependencyItem
+public class ContextualInjectionDependencyItem extends AbstractDependencyItem implements ClearableDependencyItem
 {
    private LookupType type;
    
@@ -121,4 +122,14 @@
    {
       CLASS, KEY
    }
+   
+   /**
+    * Clear the class reference.
+    *  
+    * @param controller the controller
+    */
+   public void clear(Controller controller)
+   {
+      setIDependOn(null);
+   }
 }
\ No newline at end of file

Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java	2010-01-24 09:25:14 UTC (rev 99854)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java	2010-01-24 12:02:52 UTC (rev 99855)
@@ -270,12 +270,12 @@
       if (dependencyInfo != null)
       {
          // remove all dependency items that hold class ref
-         Set<DependencyItem> dependencys = dependencyInfo.getIDependOn(ClassContextDependencyItem.class);
-         dependencys.addAll(dependencyInfo.getIDependOn(CallbackDependencyItem.class));
+         Set<DependencyItem> dependencys = dependencyInfo.getIDependOn(ClearableDependencyItem.class);
+         dependencys.addAll(dependencyInfo.getIDependOn(ClearableDependencyItem.class));
          for (DependencyItem di : dependencys)
          {
             // can cast because of getIDepend method impl
-            ClassDependencyItem cdi = (ClassDependencyItem)di;
+            ClearableDependencyItem cdi = (ClearableDependencyItem)di;
             cdi.clear(getController());
          }
       }

Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassDependencyItem.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassDependencyItem.java	2010-01-24 09:25:14 UTC (rev 99854)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClassDependencyItem.java	2010-01-24 12:02:52 UTC (rev 99855)
@@ -31,7 +31,7 @@
  *
  * @author <a href="ales.justin at gmail.com">Ales Justin</a>
  */
-public abstract class ClassDependencyItem extends AbstractDependencyItem
+public abstract class ClassDependencyItem extends AbstractDependencyItem implements ClearableDependencyItem
 {
    public ClassDependencyItem(Object name, Class<?> demandClass, ControllerState whenRequired, ControllerState dependentState)
    {

Added: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClearableDependencyItem.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClearableDependencyItem.java	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ClearableDependencyItem.java	2010-01-24 12:02:52 UTC (rev 99855)
@@ -0,0 +1,34 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.kernel.plugins.dependency;
+
+import org.jboss.dependency.spi.Controller;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public interface ClearableDependencyItem
+{
+   void clear(Controller controller);
+}




More information about the jboss-cvs-commits mailing list