[jboss-cvs] JBossAS SVN: r59621 - in projects/microcontainer/trunk: kernel/src/main/org/jboss/beans/metadata/plugins and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jan 14 10:17:49 EST 2007


Author: alesj
Date: 2007-01-14 10:17:33 -0500 (Sun, 14 Jan 2007)
New Revision: 59621

Modified:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DispatchContext.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/registry/KernelRegistryEntry.java
Log:
additional DispatchContext re-write

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DispatchContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DispatchContext.java	2007-01-14 11:35:14 UTC (rev 59620)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/DispatchContext.java	2007-01-14 15:17:33 UTC (rev 59621)
@@ -30,7 +30,7 @@
  *
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public interface DispatchContext
+public interface DispatchContext extends ControllerContext
 {
    /**
     * Getter property / attribute
@@ -71,10 +71,4 @@
     */
    ClassLoader getClassLoader() throws Throwable;
 
-   /**
-    * Get context's target, if available.
-    * @return target
-    */
-   Object getTarget();
-
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java	2007-01-14 11:35:14 UTC (rev 59620)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java	2007-01-14 15:17:33 UTC (rev 59621)
@@ -21,14 +21,12 @@
 */
 package org.jboss.beans.metadata.plugins;
 
-import org.jboss.beans.info.spi.BeanInfo;
 import org.jboss.beans.metadata.spi.MetaDataVisitor;
 import org.jboss.dependency.plugins.AbstractDependencyItem;
 import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyItem;
-import org.jboss.joinpoint.spi.TargettedJoinpoint;
-import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.dependency.spi.DispatchContext;
 import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.reflect.spi.TypeInfo;
@@ -146,13 +144,10 @@
       if (context == null)
          throw new Error("Should not be here - dependency failed! " + this);
       Object result = context.getTarget();
-      if (result != null && property != null)
+      if (property != null && context instanceof DispatchContext)
       {
-         KernelConfigurator configurator = controller.getKernel().getConfigurator();
-         BeanInfo beanInfo = configurator.getBeanInfo(result.getClass());
-         TargettedJoinpoint joinpoint = configurator.getPropertyGetterJoinPoint(beanInfo, property);
-         joinpoint.setTarget(result);
-         result = joinpoint.dispatch();
+         DispatchContext dc = (DispatchContext) context;
+         result = dc.get(property);
       }
       return info != null ? info.convertValue(result) : result;
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java	2007-01-14 11:35:14 UTC (rev 59620)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java	2007-01-14 15:17:33 UTC (rev 59621)
@@ -222,6 +222,11 @@
    {
       return execute(new JoinPointCreator()
       {
+         public boolean isSecure()
+         {
+            return false;
+         }
+
          public TargettedJoinpoint createJoinpoint(ClassLoader cl, KernelConfigurator configurator) throws Throwable
          {
             return configurator.getPropertyGetterJoinPoint(getBeanInfo(), name);
@@ -275,7 +280,15 @@
       final ClassLoader cl = getClassLoader();
       TargettedJoinpoint joinpoint = creator.createJoinpoint(cl, configurator);
       joinpoint.setTarget(getTarget());
-      return KernelControllerContextAction.dispatchJoinPoint(this, joinpoint);
+      // do we need this? - only GenericBeanFactoryPropertydependencyTC is failing
+      if (creator.isSecure())
+      {
+         return KernelControllerContextAction.dispatchJoinPoint(this, joinpoint);
+      }
+      else
+      {
+         return joinpoint.dispatch();
+      }
    }
 
    protected abstract class AbstractMetaDataVistor implements MetaDataVisitor, PrivilegedAction<Object>
@@ -477,9 +490,14 @@
       }
    }
 
-   private interface JoinPointCreator
+   private abstract class JoinPointCreator
    {
-      TargettedJoinpoint createJoinpoint(ClassLoader cl, KernelConfigurator configurator) throws Throwable;
+      public boolean isSecure()
+      {
+         return true;
+      }
+
+      protected abstract TargettedJoinpoint createJoinpoint(ClassLoader cl, KernelConfigurator configurator) throws Throwable;
    }
 
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/registry/KernelRegistryEntry.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/registry/KernelRegistryEntry.java	2007-01-14 11:35:14 UTC (rev 59620)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/registry/KernelRegistryEntry.java	2007-01-14 15:17:33 UTC (rev 59621)
@@ -46,10 +46,4 @@
     */
    void setName(Object name);
    
-   /**
-    * Get any target
-    * 
-    * @return the target
-    */
-   Object getTarget();
 }




More information about the jboss-cvs-commits mailing list