[jboss-cvs] JBossAS SVN: r84610 - in projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop: metadata and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 23 07:46:35 EST 2009


Author: kabir.khan at jboss.com
Date: 2009-02-23 07:46:35 -0500 (Mon, 23 Feb 2009)
New Revision: 84610

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/metadata/ClassMetaDataLoader.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 ClassMetaDataLoader  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 12:45:42 UTC (rev 84609)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/AspectManager.java	2009-02-23 12:46:35 UTC (rev 84610)
@@ -66,7 +66,6 @@
 import org.jboss.aop.introduction.InterfaceIntroduction;
 import org.jboss.aop.metadata.ClassMetaDataBinding;
 import org.jboss.aop.metadata.ClassMetaDataLoader;
-import org.jboss.aop.metadata.SimpleClassMetaDataLoader;
 import org.jboss.aop.microcontainer.lifecycle.LifecycleCallbackBinding;
 import org.jboss.aop.microcontainer.lifecycle.LifecycleManager;
 import org.jboss.aop.pointcut.CFlowStack;
@@ -142,7 +141,7 @@
    protected final ClassifiedBindingAndPointcutCollection bindingCollection;
    //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,ClassMetaDataLoader> classMetaDataLoaders = 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;
@@ -360,39 +359,23 @@
       return new ClassifiedBindingAndPointcutCollection();
    }
    
-   /**
-    * Every &lt;class-metadata&gt; tag corresponds to
-    * a ClassMetaDataLoader.  The ClassMetaDataLoader knows how to take
-    * arbitrary XML and apply it to SimpleMetaData.
-    * <p/>
-    * Given a group, return the loader for that group
-    */
+   @Deprecated
    public ClassMetaDataLoader findClassMetaDataLoader(String group)
    {
-      ClassMetaDataLoader loader = classMetaDataLoaders.get(group);
-      if (loader == null) loader = SimpleClassMetaDataLoader.singleton;
-      return loader;
+      return manager.findClassMetaDataLoader(group);
    }
 
-   /**
-    * Every &lt;class-metadata&gt; tag corresponds to
-    * a ClassMetaDataLoader.  The ClassMetaDataLoader knows how to take
-    * arbitrary XML and apply it to SimpleMetaData.
-    * <p/>
-    * Add a loader for a given group
-    */
+
+   @Deprecated
    public void addClassMetaDataLoader(String group, ClassMetaDataLoader loader)
    {
-      initClassMetaDataLoadersMap();
-      classMetaDataLoaders.put(group, loader);
+      manager.addClassMetaDataLoader(group, loader);
    }
 
-   /**
-    * Remove a loader for a given group
-    */
+   @Deprecated 
    public void removeClassMetaDataLoader(String group)
    {
-      classMetaDataLoaders.remove(group);
+      manager.removeClassMetaDataLoader(group);
    }
 
    public Map<Class<?>, WeakReference<Advisor>> getAdvisors()
@@ -1752,9 +1735,10 @@
       return interceptorStacks;
    }
 
+   @Deprecated
    public Map<String, ClassMetaDataLoader> getClassMetaDataLoaders()
    {
-      return classMetaDataLoaders;
+      return manager.getClassMetaDataLoaders();
    }
 
    public Map<String, CFlowStack> getCflowStacks()
@@ -2065,20 +2049,6 @@
       }
    }
 
-   protected void initClassMetaDataLoadersMap()
-   {
-      if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
-      {
-         synchronized(lazyCollectionLock)
-         {
-            if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
-            {
-               classMetaDataLoaders = new HashMap<String, ClassMetaDataLoader>();
-            }
-         }
-      }
-   }
-
    protected void initInerceptorStacksMap()
    {
       if (interceptorStacks == 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 12:45:42 UTC (rev 84609)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/Domain.java	2009-02-23 12:46:35 UTC (rev 84610)
@@ -531,17 +531,17 @@
          {
             // when child first, parent bindings go in first so that they can be overridden by child.
             map.putAll(parent.getClassMetaDataLoaders());
-            synchronized (classMetaDataLoaders)
+            synchronized (super.getClassMetaDataLoaders())
             {
-               map.putAll(classMetaDataLoaders);
+               map.putAll(super.getClassMetaDataLoaders());
             }
             return map;
          }
          else
          {
-            synchronized (classMetaDataLoaders)
+            synchronized (super.getClassMetaDataLoaders())
             {
-               map.putAll(classMetaDataLoaders);
+               map.putAll(super.getClassMetaDataLoaders());
             }
             map.putAll(parent.getClassMetaDataLoaders());
             return map;

Modified: projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/metadata/ClassMetaDataLoader.java
===================================================================
--- projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/metadata/ClassMetaDataLoader.java	2009-02-23 12:45:42 UTC (rev 84609)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/metadata/ClassMetaDataLoader.java	2009-02-23 12:46:35 UTC (rev 84610)
@@ -32,7 +32,7 @@
 import java.lang.reflect.Method;
 
 /**
- * <description>
+ * The ClassMetaDataLoader knows how to take arbitrary XML and apply it to SimpleMetaData.
  *
  * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
  * @version $Revision$

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 12:45:42 UTC (rev 84609)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/plugins/DefaultManager.java	2009-02-23 12:46:35 UTC (rev 84610)
@@ -30,6 +30,8 @@
 import org.jboss.aop.advice.DynamicCFlowDefinition;
 import org.jboss.aop.advice.InterceptorFactory;
 import org.jboss.aop.introduction.InterfaceIntroduction;
+import org.jboss.aop.metadata.ClassMetaDataLoader;
+import org.jboss.aop.metadata.SimpleClassMetaDataLoader;
 import org.jboss.aop.pointcut.CFlowStack;
 import org.jboss.aop.pointcut.DynamicCFlow;
 import org.jboss.aop.pointcut.Typedef;
@@ -58,6 +60,8 @@
    private volatile Map<String, InterceptorFactory> interceptorFactories = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
    
    private volatile LinkedHashMap<String, InterfaceIntroduction> interfaceIntroductions = UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP;
+   
+   protected volatile HashMap<String,ClassMetaDataLoader> classMetaDataLoaders = UnmodifiableEmptyCollections.EMPTY_HASHMAP;
 
    protected DefaultManager(Configuration configuration)
    {
@@ -196,6 +200,30 @@
       return interfaceIntroductions;
    }
 
+   public void addClassMetaDataLoader(String group, ClassMetaDataLoader loader)
+   {
+      initClassMetaDataLoadersMap();
+      classMetaDataLoaders.put(group, loader);
+   }
+
+   public ClassMetaDataLoader findClassMetaDataLoader(String group)
+   {
+      ClassMetaDataLoader loader = classMetaDataLoaders.get(group);
+      if (loader == null) loader = SimpleClassMetaDataLoader.singleton;
+      return loader;
+   }
+
+   public void removeClassMetaDataLoader(String group)
+   {
+      classMetaDataLoaders.remove(group);
+
+   }
+
+   public Map<String, ClassMetaDataLoader> getClassMetaDataLoaders()
+   {
+      return classMetaDataLoaders;
+   }
+
    protected void initCFlowStacksMap()
    {
       if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
@@ -265,4 +293,18 @@
          }
       }
    }
+
+   protected void initClassMetaDataLoadersMap()
+   {
+      if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
+      {
+         synchronized(lazyCollectionLock)
+         {
+            if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
+            {
+               classMetaDataLoaders = new HashMap<String, ClassMetaDataLoader>();
+            }
+         }
+      }
+   }
 }

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 12:45:42 UTC (rev 84609)
+++ projects/aop/branches/createspi/aop/src/main/java/org/jboss/aop/spi/Manager.java	2009-02-23 12:46:35 UTC (rev 84610)
@@ -26,6 +26,7 @@
 import org.jboss.aop.advice.DynamicCFlowDefinition;
 import org.jboss.aop.advice.InterceptorFactory;
 import org.jboss.aop.introduction.InterfaceIntroduction;
+import org.jboss.aop.metadata.ClassMetaDataLoader;
 import org.jboss.aop.pointcut.CFlowStack;
 import org.jboss.aop.pointcut.DynamicCFlow;
 import org.jboss.aop.pointcut.Typedef;
@@ -167,6 +168,35 @@
    Map<String, InterfaceIntroduction> getInterfaceIntroductions();
 
    
+   /**
+    * Add a metadata loader for a given group
+    * @param  group The name of the group
+    * @param loader The metadata loader
+    * 
+    */
+   void addClassMetaDataLoader(String group, ClassMetaDataLoader loader);
+
+   /**
+    * Get the metadata loader for a group
+    * @param group of the metadata group
+    * @return The metadata loader or null if it could not be found
+    */
+   ClassMetaDataLoader findClassMetaDataLoader(String group);
+
+   /**
+    * Remove a metadata loader for a given group
+    * @param group The name of the metadata group
+    * 
+    */
+   void removeClassMetaDataLoader(String group);
+
+   /**
+    * Get the metadata loaders in this manager and parents
+    * @return A map of metadata loaders indexed by name
+    */
+   Map<String, ClassMetaDataLoader> getClassMetaDataLoaders();
+
+
 //   InterceptionMarkers getInterceptionMarkers(ClassLoader loader);
 //
 //   Map<String, Pointcut> getPointcuts();




More information about the jboss-cvs-commits mailing list