[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jboss-cvs-commits
Subject:    [jboss-cvs] jboss-aop/src/main/org/jboss/aop Advisable.java AspectManager.java AspectXmlLoader.java
From:       Bill Burke <patriot1burke () users ! sourceforge ! net>
Date:       2003-05-31 5:48:24
[Download RAW message or body]

  User: patriot1burke
  Date: 03/05/30 22:48:24

  Modified:    src/main/org/jboss/aop Advisable.java AspectManager.java
                        AspectXmlLoader.java InterceptorPointcut.java
                        IntroductionPointcut.java
  Removed:     src/main/org/jboss/aop MetaDataInterceptorPointcut.java
  Log:
  added metadata pointcuts for introductions.
  
  Revision  Changes    Path
  1.11      +3 -1      jboss-aop/src/main/org/jboss/aop/Advisable.java
  
  Index: Advisable.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/Advisable.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Advisable.java	29 May 2003 15:30:21 -0000	1.10
  +++ Advisable.java	31 May 2003 05:48:23 -0000	1.11
  @@ -16,7 +16,7 @@
    * Registered with AspectManager, this class is used to mark a class or classes as \
                advisable
    *
    * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
  - * @version $Revision: 1.10 $
  + * @version $Revision: 1.11 $
    *
    * @see AspectManager
    */
  @@ -74,6 +74,8 @@
       
      public boolean matches(String classname)
      {
  +      if (classExpr == null) return false;
  +      if (classname == null) return false;
         Matcher m = classExpr.matcher(classname);
         return m.matches();
      }
  
  
  
  1.39      +8 -36     jboss-aop/src/main/org/jboss/aop/AspectManager.java
  
  Index: AspectManager.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/AspectManager.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- AspectManager.java	29 May 2003 15:30:21 -0000	1.38
  +++ AspectManager.java	31 May 2003 05:48:23 -0000	1.39
  @@ -39,7 +39,7 @@
    * to do that.
    *
    * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
  - * @version $Revision: 1.38 $
  + * @version $Revision: 1.39 $
    */
   public class AspectManager
      implements Translator
  @@ -468,18 +468,14 @@
               {
                  continue;
               }
  -            if (pointcut instanceof MetaDataInterceptorPointcut)
  +            if (pointcut instanceof InterceptorPointcut)
               {
  -               MetaDataInterceptorPointcut meta = \
                (MetaDataInterceptorPointcut)pointcut;
  -               if (advisor.getMetaDataGroups().contains(meta.getGroup()))
  +               InterceptorPointcut interceptor = (InterceptorPointcut)pointcut;
  +               if (interceptor.matches(advisor, classname))
                  {
  -                  meta.addAdvisor(advisor);
  +                  interceptor.addAdvisor(advisor);
                  }
               }
  -            else if (pointcut.matches(classname))
  -            {
  -               pointcut.addAdvisor(advisor);
  -            }
            }
         }
      }
  @@ -492,7 +488,7 @@
            while (it.hasNext())
            {
               IntroductionPointcut pointcut = (IntroductionPointcut)it.next();
  -            if (pointcut.matches(classname))
  +            if (pointcut.matches(advisor, classname))
               {
                  pointcut.addAdvisor(advisor);
               }
  @@ -554,31 +550,7 @@
            while (it.hasNext())
            {
               Advisor advisor = (Advisor)it.next();
  -            if (pointcut.matches(advisor.getName()))
  -            {
  -               pointcut.addAdvisor(advisor);
  -            }
  -         }
  -      }
  -      synchronized(pointcuts)
  -      {
  -         pointcuts.put(pointcut.getName(), pointcut);
  -      }
  -   }
  -
  -   /**
  -    * Add an interceptor pointcut with a given name
  -    */
  -   public synchronized void \
                addMetaDataInterceptorPointcut(MetaDataInterceptorPointcut pointcut)
  -   {
  -      removeInterceptorPointcut(pointcut.getName());
  -      synchronized (advisors)
  -      {
  -         Iterator it = advisors.values().iterator();
  -         while (it.hasNext())
  -         {
  -            Advisor advisor = (Advisor)it.next();
  -            if (advisor.getMetaDataGroups().contains(pointcut.getGroup()))
  +            if (pointcut.matches(advisor, advisor.getName()))
               {
                  pointcut.addAdvisor(advisor);
               }
  @@ -807,7 +779,7 @@
            while (it.hasNext())
            {
               Advisor advisor = (Advisor)it.next();
  -            if (pointcut.matches(advisor.getName()))
  +            if (pointcut.matches(advisor, advisor.getName()))
               {
                  pointcut.addAdvisor(advisor);
               }
  
  
  
  1.25      +22 -22    jboss-aop/src/main/org/jboss/aop/AspectXmlLoader.java
  
  Index: AspectXmlLoader.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/AspectXmlLoader.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- AspectXmlLoader.java	29 May 2003 15:30:21 -0000	1.24
  +++ AspectXmlLoader.java	31 May 2003 05:48:23 -0000	1.25
  @@ -40,7 +40,7 @@
   /**
    *
    * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
  - * @version $Revision: 1.24 $
  + * @version $Revision: 1.25 $
    */
   public class AspectXmlLoader
   {
  @@ -191,11 +191,6 @@
            throw new RuntimeException("Neither a group or class attribute is defined \
to this <interceptor-pointcut>");  }
   
  -      if (group != null && classExpr != null)
  -      {
  -         throw new RuntimeException("Cannot use both a group and class attribute \
                to define an <interceptor-pointcut>");
  -      }
  -      
         String fieldFilter = pointcut.getAttribute("fieldFilter");
         String name = getName(pointcut, "pointcut: " + classExpr);
         if (fieldFilter == null) fieldFilter = "";
  @@ -206,19 +201,11 @@
   
   
         String[] intrs = (String[])interceptors.toArray(new \
                String[interceptors.size()]);
  -      if (classExpr != null)
  -      {
  -         InterceptorPointcut pcut = new InterceptorPointcut(name, classExpr, \
                intrs,
  -                                                            \
                InterceptorFilter.parseString(fieldFilter),
  -                                                            \
                InterceptorFilter.parseString(methodFilter),
  -                                                            \
                InterceptorFilter.parseString(constructorFilter));
  -         AspectManager.instance().addInterceptorPointcut(pcut);
  -      }
  -      else
  -      {
  -         MetaDataInterceptorPointcut pcut = new MetaDataInterceptorPointcut(name, \
                group, intrs);
  -         AspectManager.instance().addMetaDataInterceptorPointcut(pcut);
  -      }
  +      InterceptorPointcut pcut = new InterceptorPointcut(name, classExpr, group, \
intrs,  +                                                         \
InterceptorFilter.parseString(fieldFilter),  +                                        \
InterceptorFilter.parseString(methodFilter),  +                                       \
InterceptorFilter.parseString(constructorFilter));  +      \
AspectManager.instance().addInterceptorPointcut(pcut);  }
   
      public static void undeployInterceptorStack(Element element) throws Exception
  @@ -354,7 +341,7 @@
         String name = getName(pointcut, "container-pointcut: " + container);
   
         String[] intrs = (String[])interceptors.toArray(new \
                String[interceptors.size()]);
  -      InterceptorPointcut pcut = new InterceptorPointcut(name, container, intrs, \
0, 0, 0);  +      InterceptorPointcut pcut = new InterceptorPointcut(name, container, \
null, intrs, 0, 0, 0);  AspectManager.instance().addContainerPointcut(pcut);
      }
   
  @@ -372,9 +359,22 @@
      }
      public static void deployIntroductionPointcut(Element pointcut) throws \
Exception  {
  -      String classExpr = pointcut.getAttribute("class");
         String name = getName(pointcut, "introduction-pointcut");
  +      String classExpr = pointcut.getAttribute("class");
  +      if (classExpr != null && classExpr.trim().equals(""))
  +      {
  +         classExpr = null;
  +      }
  +      String group = pointcut.getAttribute("group");
  +      if (group != null && group.trim().equals(""))
  +      {
  +         group = null;
  +      }
   
  +      if (group == null && classExpr == null)
  +      {
  +         throw new RuntimeException("Neither a group or class attribute is defined \
to this <introduction-pointcut>");  +      }
         String intfs = XmlHelper.getOptionalChildContent(pointcut, "interfaces");
         String[] ifaces = null;
         if (intfs != null)
  @@ -389,7 +389,7 @@
            ifaces = (String[])interfaces.toArray(new String[interfaces.size()]);
         }
   
  -      IntroductionPointcut pcut = new IntroductionPointcut(name, classExpr, \
ifaces);  +      IntroductionPointcut pcut = new IntroductionPointcut(name, \
classExpr, group, ifaces);  Iterator it = XmlHelper.getChildrenByTagName(pointcut, \
"mixin");  while (it.hasNext())
         {
  
  
  
  1.13      +18 -2     jboss-aop/src/main/org/jboss/aop/InterceptorPointcut.java
  
  Index: InterceptorPointcut.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/InterceptorPointcut.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- InterceptorPointcut.java	29 May 2003 15:30:22 -0000	1.12
  +++ InterceptorPointcut.java	31 May 2003 05:48:23 -0000	1.13
  @@ -17,7 +17,7 @@
    * Registered with AspectManager.
    *
    * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    *
    * @see AspectManager
    *
  @@ -25,6 +25,7 @@
   public class InterceptorPointcut extends Advisable
   {
      protected String name;
  +   protected String group;
      protected ArrayList advisors = new ArrayList();
      // NOTE!!
      // Keep references as strings so that
  @@ -43,15 +44,17 @@
       *
       * @see InterceptorFilter
       */
  -   public InterceptorPointcut(String name, String expr, String[] factories, 
  +   public InterceptorPointcut(String name, String expr, String group, String[] \
                factories, 
                                 int fieldFilter, int methodFilter, int \
constructorFilter)  {
         super(expr, fieldFilter, methodFilter, constructorFilter);
         this.name = name;
  +      this.group = group;
         interceptorFactories = factories;
      }
   
      public String getName() { return name; }
  +   public String getGroup() { return group; }
      public String[] getInterceptorFactories() { return interceptorFactories; }
   
      public void addAdvisor(Advisor advisor)
  @@ -82,6 +85,19 @@
      public int hashCode()
      {
         return name.hashCode();
  +   }
  +
  +   public boolean matches(Advisor advisor, String classname)
  +   {
  +      if (expr != null)
  +      {
  +         if (!matches(classname)) return false;
  +      }
  +      if (group != null)
  +      {
  +         if (!advisor.getMetaDataGroups().contains(group)) return false;
  +      }
  +      return true;
      }
   
   }
  
  
  
  1.8       +17 -2     jboss-aop/src/main/org/jboss/aop/IntroductionPointcut.java
  
  Index: IntroductionPointcut.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/IntroductionPointcut.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- IntroductionPointcut.java	26 May 2003 04:22:31 -0000	1.7
  +++ IntroductionPointcut.java	31 May 2003 05:48:23 -0000	1.8
  @@ -15,7 +15,7 @@
    *
    *
    * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    *
    */
   public class IntroductionPointcut extends Advisable
  @@ -39,18 +39,21 @@
      }
   
      protected String name;
  +   protected String group;
      protected ArrayList advisors = new ArrayList();
      protected String[] interfaces;
      protected ArrayList mixins = new ArrayList();
   
  -   public IntroductionPointcut(String name, String expr, String[] interfaces)
  +   public IntroductionPointcut(String name, String expr, String group, String[] \
interfaces)  {
         super(expr, 0, 0, 0);
         this.name = name;
  +      this.group = group;
         this.interfaces = interfaces;
      }
   
      public String getName() { return name; }
  +   public String getGroup() { return group; }
      public String[] getInterfaces() { return interfaces; }
      public ArrayList getMixins() { return mixins; }
   
  @@ -85,4 +88,16 @@
         return name.hashCode();
      }
      
  +   public boolean matches(Advisor advisor, String classname)
  +   {
  +      if (expr != null)
  +      {
  +         if (!matches(classname)) return false;
  +      }
  +      if (group != null)
  +      {
  +         if (!advisor.getMetaDataGroups().contains(group)) return false;
  +      }
  +      return true;
  +   }
   }
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
jboss-cvs-commits mailing list
jboss-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-cvs-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic