[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