[jboss-cvs] JBossAS SVN: r96597 - in projects/kernel/trunk: dependency/src/main/java/org/jboss/dependency/spi and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 19 16:20:10 EST 2009
Author: alesj
Date: 2009-11-19 16:20:09 -0500 (Thu, 19 Nov 2009)
New Revision: 96597
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/AbstractControllerContext.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AttributeCallbackItem.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/SingleCallbackItem.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/CollectionCallbackItem.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
Log:
[JBKERNEL-61]; apply more ungetTarget.
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-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -1720,7 +1720,7 @@
Set<CallbackItem<?>> existingCallbacks = new HashSet<CallbackItem<?>>();
existingCallbacks.addAll(getCallbacks(context.getName(), isInstallPhase));
// match by classes
- Collection<Class<?>> classes = getClassesImplemented(context.getTarget());
+ Collection<Class<?>> classes = getClassesImplemented(context);
if (classes != null && classes.isEmpty() == false)
{
for (Class<?> clazz : classes)
@@ -1816,9 +1816,28 @@
/**
* Get implemented classes.
*
- * @param target target value / bean
+ * @param context the context
* @return collection of implementing classes by target
*/
+ protected Collection<Class<?>> getClassesImplemented(ControllerContext context)
+ {
+ Object target = context.getTarget();
+ try
+ {
+ return getClassesImplemented(target);
+ }
+ finally
+ {
+ context.ungetTarget();
+ }
+ }
+
+ /**
+ * Get implemented classes.
+ *
+ * @param target the target
+ * @return collection of implementing classes by target
+ */
protected Collection<Class<?>> getClassesImplemented(Object target)
{
if (target == null)
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-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -311,7 +311,7 @@
public Object ungetTarget()
{
- return null;
+ return target;
}
/**
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AttributeCallbackItem.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AttributeCallbackItem.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AttributeCallbackItem.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -50,6 +50,7 @@
protected void changeCallback(ControllerContext context, boolean isInstallPhase) throws Throwable
{
- execute(context.getTarget());
+ Object target = isInstallPhase ? context.getTarget() : context.ungetTarget();
+ execute(target);
}
}
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/SingleCallbackItem.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/SingleCallbackItem.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/SingleCallbackItem.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -59,7 +59,7 @@
protected void changeCallback(ControllerContext context, boolean isInstallPhase) throws Throwable
{
- Object target = context.getTarget();
+ Object target = isInstallPhase ? context.getTarget() : context.ungetTarget();
if (target != null)
{
if (signature == null)
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -69,17 +69,26 @@
/**
* Get the target of the context. This will normally be the bean instance, available after
* the context reaches the {@link ControllerState#INSTANTIATED} state.
- *
+ *
+ * Note: invoke this only with matching ungetTarget!
+ *
* @return the target
*/
Object getTarget();
/**
* Unget context's target.
+ *
* Some component models track target/service usage,
* hence we need an explicit unget call to release our usage.
*
- * @return mostly null, unless some other value should be used and unconfigure
+ * We still need to return the right target,
+ * but it should be the job of the framework not to
+ * allow "abuse" of this released target.
+ *
+ * e.g. uncallback would re-use the target to do proper cleanup
+ *
+ * @return the target, but with release invoked
*/
Object ungetTarget();
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -213,7 +213,10 @@
ControllerContext context = controller.getContext(dependency, state);
if (context != null)
- return context.ungetTarget();
+ {
+ context.ungetTarget();
+ return null;
+ }
}
return super.ungetValue(valueContext);
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -321,7 +321,10 @@
state = ControllerState.INSTALLED;
ControllerContext lookup = getControllerContext(getUnderlyingValue(), state);
if (lookup != null)
- return lookup.ungetTarget();
+ {
+ lookup.ungetTarget();
+ return null;
+ }
}
return super.ungetValue(info, cl);
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -208,7 +208,10 @@
{
ControllerContext lookup = getControllerContext(info.getType(), ControllerState.INSTALLED);
if (lookup != null)
- return lookup.ungetTarget();
+ {
+ lookup.ungetTarget();
+ return null;
+ }
}
return super.ungetValue(info, cl);
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -71,7 +71,7 @@
Controller controller = context.getController();
ControllerContext context = controller.getContext(getUnderlyingValue(), ControllerState.INSTANTIATED);
if (context != null)
- return context.ungetTarget();
+ context.ungetTarget();
return super.ungetValue(info, cl);
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/CollectionCallbackItem.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/CollectionCallbackItem.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/CollectionCallbackItem.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -138,6 +138,6 @@
*/
protected void removeUninstallingContext(T holder, ControllerContext context)
{
- holder.remove(context.getTarget());
+ holder.remove(context.ungetTarget());
}
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java 2009-11-19 21:05:06 UTC (rev 96596)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java 2009-11-19 21:20:09 UTC (rev 96597)
@@ -94,7 +94,7 @@
public Object ungetTarget()
{
- return null;
+ return target;
}
// @todo SORT THIS OUT, i.e. dependency that doesn't go through controller
More information about the jboss-cvs-commits
mailing list