[jboss-cvs] JBossAS SVN: r84638 - in projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop: plugins and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 23 11:17:45 EST 2009


Author: kabir.khan at jboss.com
Date: 2009-02-23 11:17:45 -0500 (Mon, 23 Feb 2009)
New Revision: 84638

Modified:
   projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java
   projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java
   projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultManager.java
   projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Manager.java
Log:
Move interceptor stacks to new Manager

Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java	2009-02-23 16:10:47 UTC (rev 84637)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java	2009-02-23 16:17:45 UTC (rev 84638)
@@ -143,7 +143,7 @@
    //protected volatile LinkedHashMap<String, Typedef> typedefs = UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP;
 //   protected volatile HashMap<String, InterceptorFactory> interceptorFactories = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
    //protected volatile HashMap<String,ClassMetaDataLoader> classMetaDataLoaders = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
-   protected volatile HashMap<String, AdviceStack> interceptorStacks = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
+   //protected volatile HashMap<String, AdviceStack> interceptorStacks = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
    protected volatile HashMap<String, DeclareDef> declares = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
    //protected volatile ConcurrentHashMap<String, DynamicCFlowDefinition> dynamicCFlows = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
    protected volatile ConcurrentHashMap<String, AspectDefinition> aspectDefinitions = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
@@ -902,38 +902,23 @@
       return sortedPrecedenceDefEntries;
    }
 
-   /**
-    * Add a referencable InterceptorStack( &lt;stack&gt; )
-    */
+
+   @Deprecated
    public void addAdviceStack(AdviceStack stack)
    {
-      initInerceptorStacksMap();
-      synchronized (interceptorStacks)
-      {
-         interceptorStacks.put(stack.getName(), stack);
-      }
+      manager.addAdviceStack(stack);
    }
 
-   /**
-    * Remove a referencable InterceptorStack( &lt;stack&gt; )
-    */
+   @Deprecated
    public void removeInterceptorStack(String name)
    {
-      synchronized (interceptorStacks)
-      {
-         interceptorStacks.remove(name);
-      }
+      manager.removeAdviceStack(name);
    }
 
-   /**
-    * Find an interceptor stack referenced by name ( &lt;stack&gt; )
-    */
+   @Deprecated
    public AdviceStack getAdviceStack(String name)
    {
-      synchronized (interceptorStacks)
-      {
-         return interceptorStacks.get(name);
-      }
+      return manager.getAdviceStack(name);
    }
 
 
@@ -1681,7 +1666,7 @@
 
    public Map<String, AdviceStack> getInterceptorStacks()
    {
-      return interceptorStacks;
+      return manager.getAdviceStacks();
    }
 
    @Deprecated
@@ -1960,21 +1945,6 @@
       }
    }
 
-   protected void initInerceptorStacksMap()
-   {
-      if (interceptorStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
-      {
-         synchronized(lazyCollectionLock)
-         {
-            if (interceptorStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
-            {
-               interceptorStacks = new HashMap<String, AdviceStack>();
-            }
-         }
-      }
-   }
-
-
    protected void initDeclaresMap()
    {
       if (declares == UnmodifiableEmptyCollections.EMPTY_HASHMAP)

Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java	2009-02-23 16:10:47 UTC (rev 84637)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java	2009-02-23 16:17:45 UTC (rev 84638)
@@ -502,17 +502,17 @@
          {
             // when child first, parent bindings go in first so that they can be overridden by child.
             map.putAll(parent.getInterceptorStacks());
-            synchronized (interceptorStacks)
+            synchronized (super.getInterceptorStacks())
             {
-               map.putAll(interceptorStacks);
+               map.putAll(super.getInterceptorStacks());
             }
             return map;
          }
          else
          {
-            synchronized (interceptorStacks)
+            synchronized (super.getInterceptorStacks())
             {
-               map.putAll(interceptorStacks);
+               map.putAll(super.getInterceptorStacks());
             }
             map.putAll(parent.getInterceptorStacks());
             return map;

Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultManager.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultManager.java	2009-02-23 16:10:47 UTC (rev 84637)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultManager.java	2009-02-23 16:17:45 UTC (rev 84638)
@@ -29,6 +29,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.jboss.aop.advice.AdviceStack;
 import org.jboss.aop.advice.AspectDefinition;
 import org.jboss.aop.advice.DynamicCFlowDefinition;
 import org.jboss.aop.advice.InterceptorFactory;
@@ -76,9 +77,11 @@
    
    private volatile Map<String, ArrayBinding> arrayBindings = UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP;
    
-   private  LifecycleManager lifecycleManager = new LifecycleManager(this);
+   private LifecycleManager lifecycleManager = new LifecycleManager(this);
    
-   private volatile LinkedHashMap<String, AnnotationIntroduction> annotationIntroductions =UnmodifiableEmptyCollections. EMPTY_LINKED_HASHMAP;
+   private volatile Map<String, AnnotationIntroduction> annotationIntroductions =UnmodifiableEmptyCollections. EMPTY_LINKED_HASHMAP;
+   
+   private volatile Map<String, AdviceStack> adviceStacks = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
 
    protected DefaultManager(Configuration configuration)
    {
@@ -326,9 +329,6 @@
       return arrayReplacements;
    }
 
-   /**
-    * Register an annotation introduction
-    */
    public synchronized void addAnnotationIntroduction(AnnotationIntroduction introduction)
    {
       String name = introduction.getOriginalAnnotationExpr() + introduction.getOriginalExpression();
@@ -340,9 +340,6 @@
       }
    }
 
-   /**
-    * remove an annotation pointcut
-    */
    public void removeAnnotationIntroduction(AnnotationIntroduction introduction)
    {
       String name = introduction.getOriginalAnnotationExpr() + introduction.getOriginalExpression();
@@ -360,6 +357,27 @@
       }
    }
 
+   public void addAdviceStack(AdviceStack stack)
+   {
+      initInterceptorStacksMap();
+      adviceStacks.put(stack.getName(), stack);
+   }
+
+   public AdviceStack getAdviceStack(String name)
+   {
+      return adviceStacks.get(name);
+   }
+
+   public void removeAdviceStack(String name)
+   {
+      adviceStacks.remove(name);
+   }
+
+   public Map<String, AdviceStack> getAdviceStacks()
+   {
+      return adviceStacks;
+   }
+
    protected void initCFlowStacksMap()
    {
       if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
@@ -485,4 +503,19 @@
          }
       }
    }
+
+   protected void initInterceptorStacksMap()
+   {
+      if (adviceStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
+      {
+         synchronized(lazyCollectionLock)
+         {
+            if (adviceStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
+            {
+               adviceStacks = new HashMap<String, AdviceStack>();
+            }
+         }
+      }
+   }
+
 }

Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Manager.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Manager.java	2009-02-23 16:10:47 UTC (rev 84637)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Manager.java	2009-02-23 16:17:45 UTC (rev 84638)
@@ -24,6 +24,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.jboss.aop.advice.AdviceStack;
 import org.jboss.aop.advice.AspectDefinition;
 import org.jboss.aop.advice.DynamicCFlowDefinition;
 import org.jboss.aop.advice.InterceptorFactory;
@@ -295,7 +296,33 @@
     * @return All the annotation introduction
     */
    List<AnnotationIntroduction> getAnnotationIntroductions();
+   
+   /**
+    * Register an advice stack
+    * @param stack The advice stack
+    */
+   void addAdviceStack(AdviceStack stack);
 
+   /**
+    * Get an advice stack
+    * @param name The name of the advice stack
+    * @return The advice stack if found, or null if not found
+    */
+   AdviceStack getAdviceStack(String name);
+
+   /**
+    * Remove an advice stack
+    * @param name Name of the advice stack to remove
+    */
+   void removeAdviceStack(String name);
+
+   /**
+    * Gets all the advice stacks registered in this manager and its parents
+    * @return A map of advice stacks indexed by name
+    */
+   Map<String, AdviceStack> getAdviceStacks();
+
+
 //   InterceptionMarkers getInterceptionMarkers(ClassLoader loader);
 //
 //   Map<String, Pointcut> getPointcuts();




More information about the jboss-cvs-commits mailing list