[jboss-cvs] JBossAS SVN: r59377 - in projects/aop/trunk/aop/src/main/org/jboss/aop: . proxy/container util

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 5 13:23:21 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-01-05 13:23:16 -0500 (Fri, 05 Jan 2007)
New Revision: 59377

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/util/ClassInfoMethodHashing.java
Log:
Fixes to get aop/mc integration working following new metadata crossover

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -611,9 +611,9 @@
     * FIXME why does this have java.lang.Object signature?
     * @param metadata the metadata
     */
-   public void setMetadata(/*MetaData*/ Object metadata)
+   public void setMetadata(MetaData metadata)
    {
-      this.metadata = (MetaData) metadata;
+      this.metadata = metadata;
    }
 
    public String getName()

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -21,10 +21,8 @@
 */ 
 package org.jboss.aop.proxy.container;
 
-import java.lang.reflect.Constructor;
-
 import org.jboss.aop.metadata.SimpleMetaData;
-//import org.jboss.repository.spi.MetaDataContext;
+import org.jboss.metadata.spi.MetaData;
 
 /**
  * 
@@ -35,9 +33,8 @@
 {
    private Class proxiedClass;
    private Object target;
-   //FIXME convert back to MetaDataContext once the mc 2.0 has been released 
-   //private MetaData metaDataContext;
-   private Object metaDataContext;
+   private MetaData metaData;
+   private boolean metaDataHasInstanceLevelData;
    private Class[] interfaces;
    private AOPProxyFactoryMixin[] mixins; 
    private boolean objectAsSuperClass;
@@ -54,21 +51,24 @@
          Object target, 
          Class[] interfaces,
          AOPProxyFactoryMixin[] mixins,
-         Object context, 
+         MetaData metaData, 
+         boolean metaDataHasInstanceLevelData,
          boolean objectAsSuperClass,
          SimpleMetaData simpleMetaData,
          ContainerCache containerCache,
          Class[] ctorSignature,
          Object[] ctorArguments)
    {
+      this.proxiedClass = proxiedClass;
+      this.target = target;
       this.interfaces = interfaces;
-      this.metaDataContext = context;
+      this.mixins = mixins;
+      this.metaData = metaData;
+      this.metaDataHasInstanceLevelData = metaDataHasInstanceLevelData;
       this.objectAsSuperClass = objectAsSuperClass;
-      this.proxiedClass = proxiedClass;
-      this.target = target;
       this.simpleMetaData = simpleMetaData;
       this.containerCache = containerCache;
-      setCtor(ctorSignature, ctorArguments);
+      setCtor(ctorSignature, ctorArguments);      
    }
 
    public Class[] getInterfaces()
@@ -81,14 +81,14 @@
       this.interfaces = interfaces;
    }
 
-   public Object getMetaDataContext()
+   public MetaData getMetaData()
    {
-      return metaDataContext;
+      return metaData;
    }
 
-   public void setMetaDataContext(Object metaDataContext)
+   public void setMetaData(MetaData metaData)
    {
-      this.metaDataContext = metaDataContext;
+      this.metaData = metaData;
    }
 
    public boolean isObjectAsSuperClass()
@@ -156,6 +156,16 @@
       return ctor;
    }
 
+   public boolean getMetaDataHasInstanceLevelData()
+   {
+      return metaDataHasInstanceLevelData;
+   }
+
+   public void setMetaDataHasInstanceLevelData(boolean metaDataHasInstanceLevelData)
+   {
+      this.metaDataHasInstanceLevelData = metaDataHasInstanceLevelData;
+   }
+
    public void setCtor(Class[] ctorSignature, Object[] ctorArguments)
    {
       boolean haveSig = (ctorSignature != null && ctorSignature.length > 0);

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -30,6 +30,7 @@
 import org.jboss.aop.introduction.InterfaceIntroduction;
 import org.jboss.aop.metadata.SimpleMetaData;
 //import org.jboss.repository.spi.MetaDataContext;
+import org.jboss.metadata.spi.MetaData;
 
 /**
  * 
@@ -51,30 +52,41 @@
    Class[] interfaces;
    AOPProxyFactoryMixin[] mixins;
 
-   //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-   //MetaDataContext metaDataContext;
-   Object metaDataContext;
+   MetaData metaData;
+   boolean metaDataHasInstanceLevelData;
    SimpleMetaData simpleMetaData;
 
-   private ContainerCache(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, /*MetaDataContext*/ Object metaDataContext, SimpleMetaData simpleMetaData)
+   private ContainerCache(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaData, boolean metaDataHasInstanceLevelData, SimpleMetaData simpleMetaData)
    {
       this.manager = manager;
       this.interfaces = interfaces;
       this.mixins = mixins;
-      this.metaDataContext = metaDataContext;
+      this.metaData = metaData;
       this.simpleMetaData = simpleMetaData;
-      key = new ContainerProxyCacheKey(proxiedClass, interfaces, mixins, metaDataContext);
+      this.metaDataHasInstanceLevelData = metaDataHasInstanceLevelData;
+      key = new ContainerProxyCacheKey(proxiedClass, interfaces, mixins, metaData);
    }
    
-   public static ContainerCache initialise(AspectManager manager, Class proxiedClass, /*MetaDataContext*/ Object metaDataContext)
+   public static ContainerCache initialise(AspectManager manager, Class proxiedClass, MetaData metaData, boolean metaDataHasInstanceLevelData)
    {
-      return initialise(manager, proxiedClass, null, null, metaDataContext, null);
+      return initialise(manager, proxiedClass, null, null, metaData, metaDataHasInstanceLevelData, null);
    }
+
+   public static ContainerCache initialise(AspectManager manager, AOPProxyFactoryParameters params)
+   {
+      return initialise(
+            manager,
+            params.getProxiedClass(),
+            params.getInterfaces(),
+            params.getMixins(),
+            params.getMetaData(),
+            params.getMetaDataHasInstanceLevelData(),
+            params.getSimpleMetaData());
+   }
    
-   //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-   public static ContainerCache initialise(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, /*MetaDataContext*/ Object metaDataContext, SimpleMetaData simpleMetaData)
+   private static ContainerCache initialise(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaData, boolean metaDataHasInstanceLevelData, SimpleMetaData simpleMetaData)
    {
-      ContainerCache factory = new ContainerCache(manager, proxiedClass, interfaces, mixins, metaDataContext, simpleMetaData);
+      ContainerCache factory = new ContainerCache(manager, proxiedClass, interfaces, mixins, metaData, metaDataHasInstanceLevelData, simpleMetaData);
       synchronized (mapLock)
       {
          factory.initClassContainer();
@@ -115,7 +127,7 @@
    
    public boolean requiresInstanceAdvisor()
    {
-      return hasInterfaceIntroductions() || hasMixins() || metaDataContext != null || simpleMetaData != null;
+      return hasInterfaceIntroductions() || hasMixins() || (metaData!= null && metaDataHasInstanceLevelData) || simpleMetaData != null;
    }
    
    public boolean isAdvised()
@@ -248,7 +260,7 @@
             introduction = getInterfaceIntroduction();
          }
 
-         instanceContainer = InstanceProxyContainer.createInstanceProxyContainer(classAdvisor, introduction, metaDataContext);
+         instanceContainer = InstanceProxyContainer.createInstanceProxyContainer(classAdvisor, introduction, metaData);
       }
    }
 }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -26,6 +26,8 @@
 import java.util.Arrays;
 import java.util.Comparator;
 
+import org.jboss.metadata.spi.MetaData;
+
 //import org.jboss.repository.spi.MetaDataContext;
 
 /**
@@ -42,9 +44,7 @@
    private WeakReference clazzRef;
    private WeakReference[] addedInterfaces = EMTPY_WR_ARRAY;
    
-   //FIXME convert back to MetaDataContext once the mc 2.0 has been released 
-   //private MetaDataContext metaDataContext;
-   private Object metaDataContext;
+   private MetaData metaData;
    
    private AOPProxyFactoryMixin[] addedMixins = EMPTY_MIXIN_ARRAY;
    private int hashcode = 0;
@@ -54,17 +54,16 @@
       this.clazzRef = new WeakReference(clazz); 
    }
    
-   //public ContainerProxyCacheKey(Class clazz, Class[] addedInterfaces, MetaDataContext metaDataContext)
-   public ContainerProxyCacheKey(Class clazz, Class[] addedInterfaces, Object metaDataContext)
+   public ContainerProxyCacheKey(Class clazz, Class[] addedInterfaces, MetaData metaData)
    {
       this(clazz); 
       this.addedInterfaces = ContainerCacheUtil.getSortedWeakReferenceForInterfaces(addedInterfaces);
-      this.metaDataContext = metaDataContext; 
+      this.metaData = metaData; 
    }
 
-   public ContainerProxyCacheKey(Class clazz, Class[] addedInterfaces, AOPProxyFactoryMixin[] addedMixins, Object metaDataContext)
+   public ContainerProxyCacheKey(Class clazz, Class[] addedInterfaces, AOPProxyFactoryMixin[] addedMixins, MetaData metaData)
    {
-      this(clazz, addedInterfaces, metaDataContext);
+      this(clazz, addedInterfaces, metaData);
       
       if (addedMixins != null)
       {
@@ -141,9 +140,9 @@
          
          hashcode = sb.toString().hashCode(); 
          
-         if (metaDataContext != null)
+         if (metaData != null)
          {
-            hashcode += metaDataContext.hashCode();
+            hashcode += metaData.hashCode();
          }
       }
       
@@ -177,12 +176,12 @@
    
    private boolean compareMetadataContext(ContainerProxyCacheKey other)
    {
-      if (this.metaDataContext == null && other.metaDataContext == null)
+      if (this.metaData == null && other.metaData == null)
       {
       }
-      else if ((this.metaDataContext != null && other.metaDataContext != null))
+      else if ((this.metaData != null && other.metaData != null))
       {
-         if (!this.metaDataContext.equals(other.metaDataContext))
+         if (!this.metaData.equals(other.metaData))
          {
             return false;
          }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -38,23 +38,6 @@
 {
    public Object createAdvisedProxy(AOPProxyFactoryParameters params)
    {
-//      return createAdvisedProxy(
-//            params.isObjectAsSuperClass(), 
-//            params.getProxiedClass(), 
-//            params.getInterfaces(), 
-//            params.getMixins(),
-//            params.getSimpleMetaData(), 
-//            params.getTarget(),
-//            params.getMetaDataContext(),
-//            params.getContainerCache(),
-//            params.getCtor(),
-//            params.getCtorArguments());
-//   }
-//   
-//   //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-//   private Object createAdvisedProxy(boolean objectAsSuper, Class proxiedClass, Class[] interfaces, 
-//         AOPProxyFactoryMixin[] mixins, SimpleMetaData simpleMetaData, Object target, /*MetaDataContext*/Object metaDataContext, ContainerCache containerCache, Constructor ctor, Object[] ctorArguments)
-//   {
       if (params.getTarget() != null)
       {
          if (params.getProxiedClass() != null)
@@ -74,13 +57,9 @@
          params.setProxiedClass(Object.class);
       }
       
-//      return getProxy(objectAsSuper, manager, proxiedClass, interfaces, mixins, simpleMetaData, target, metaDataContext, containerCache, ctor, ctorArguments);
       return getProxy(params);
    }
 
-   //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-//   private Object getProxy(boolean objectAsSuper, AspectManager manager, Class proxiedClass,  
-//         Class[] interfaces, AOPProxyFactoryMixin[] mixins, SimpleMetaData simpleMetaData, Object target, /*MetaDataContext*/ Object metaDataContext, ContainerCache containerCache, Constructor ctor, Object[] ctorArguments)
    private Object getProxy(AOPProxyFactoryParameters params)
    {
       try
@@ -89,7 +68,7 @@
          
          boolean isAdvised = Advised.class.isAssignableFrom(params.getProxiedClass());
          
-         if (params.getTarget() instanceof Untransformable || (isAdvised && params.getInterfaces() == null && params.getMixins() == null && params.getMetaDataContext() == null && params.getSimpleMetaData() == null))
+         if (params.getTarget() instanceof Untransformable || (isAdvised && params.getInterfaces() == null && params.getMixins() == null && (params.getMetaData() == null || !params.getMetaDataHasInstanceLevelData()) && params.getSimpleMetaData() == null))
          {
             return params.getTarget();
          }
@@ -100,13 +79,7 @@
             if (params.getContainerCache() == null)
             {
                params.setContainerCache(
-                     ContainerCache.initialise(
-                     AspectManager.instance(), 
-                     params.getProxiedClass(), 
-                     params.getInterfaces(), 
-                     params.getMixins(), 
-                     params.getMetaDataContext(), 
-                     params.getSimpleMetaData()));
+                     ContainerCache.initialise(AspectManager.instance(), params));
             }
             
             if (!params.getContainerCache().hasAspects() && !params.getContainerCache().requiresInstanceAdvisor())

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/InstanceProxyContainer.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -33,6 +33,7 @@
 import org.jboss.aop.joinpoint.Joinpoint;
 import org.jboss.aop.metadata.SimpleMetaData;
 //import org.jboss.repository.spi.MetaDataContext;
+import org.jboss.metadata.spi.MetaData;
 
 /**
  * The InstanceAdvisor returned by ClassProxyContainer
@@ -45,7 +46,7 @@
    Advisor classAdvisor;
    InstanceAdvisorDelegate delegate;
    
-   public InstanceProxyContainer(String name, ProxyAdvisorDomain instanceDomain, Advisor classAdvisor, /*MetaData*/ Object metaData)
+   public InstanceProxyContainer(String name, ProxyAdvisorDomain instanceDomain, Advisor classAdvisor, MetaData metaData)
    {
       super(name, instanceDomain);
       this.classAdvisor = classAdvisor;
@@ -56,7 +57,7 @@
       initialise(classAdvisor.getClazz());
    }
 
-   public static InstanceProxyContainer createInstanceProxyContainer(Advisor classAdvisor, InterfaceIntroduction introduction, /*MetaDataContext*/ Object metaDataContext)
+   public static InstanceProxyContainer createInstanceProxyContainer(Advisor classAdvisor, InterfaceIntroduction introduction, MetaData metaData)
    {
       String name = Domain.getDomainName(classAdvisor.getClazz(), true);
       ProxyAdvisorDomain domain = new ProxyAdvisorDomain(classAdvisor.getManager(), name, classAdvisor.getClazz(), true);
@@ -65,7 +66,7 @@
          domain.addInterfaceIntroduction(introduction);
       }
 
-      InstanceProxyContainer ia = new InstanceProxyContainer(classAdvisor.getName(), domain, classAdvisor, metaDataContext);
+      InstanceProxyContainer ia = new InstanceProxyContainer(classAdvisor.getName(), domain, classAdvisor, metaData);
       
       return ia;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/util/ClassInfoMethodHashing.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/util/ClassInfoMethodHashing.java	2007-01-05 17:34:51 UTC (rev 59376)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/util/ClassInfoMethodHashing.java	2007-01-05 18:23:16 UTC (rev 59377)
@@ -103,7 +103,7 @@
    static String getTypeString(TypeInfo cl)
       throws Exception
    {
-      if (cl instanceof PrimitiveInfo)
+      if (cl.getClass().equals(PrimitiveInfo.class))
       {
          if (cl.equals(PrimitiveInfo.BYTE))
          {




More information about the jboss-cvs-commits mailing list