[jboss-cvs] JBossAS SVN: r70849 - in projects/aop/trunk: aop/src/main/org/jboss/aop/array and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 13 18:55:26 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-03-13 18:55:26 -0400 (Thu, 13 Mar 2008)
New Revision: 70849

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructionInfo.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructorInfo.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/FieldInfo.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/JoinPointInfo.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/MethodInfo.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/array/ArrayElementInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Construction.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCall.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCallByConstructor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorJoinpoint.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodJoinpoint.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorExecution.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorJoinpoint.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldReadInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldWriteInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Invocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationBase.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationResponse.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCall.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCallByConstructor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorJoinpoint.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocation.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocationWrapper.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryMixin.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/ClassProxyContainer.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/ContainerCacheUtil.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/test/org/jboss/test/aop/annotationoverride/AnnotationOverrideTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/InstanceOfAnnotatedTester.java
   projects/aop/trunk/aspects/src/main/org/jboss/aspects/concurrent/MutexAspectFactory.java
Log:
Tidyup, add generics and get rid of warnings

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -343,8 +343,13 @@
       return annotations;
    }
 
-   public <T extends Annotation> T resolveAnnotation(Class<T> annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
+      return resolveTypedAnnotation(annotation);
+   }
+   
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
       if (metadata != null)
       {
          T value = metadata.getAnnotation(annotation);
@@ -411,13 +416,23 @@
       return false;
    }
 
-   public <T extends Annotation> T resolveAnnotation(Method m, Class<T> annotation)
+   public Object resolveAnnotation(Method m, Class<? extends Annotation> annotation)
    {
-      return resolveAnnotation(0, m, annotation);
+      return resolveTypedAnnotation(0, m, annotation);
    }
+   
+   public <T extends Annotation> T resolveTypedAnnotation(Method m, Class<T> annotation)
+   {
+      return resolveTypedAnnotation(0, m, annotation);
+   }
 
-   public <T extends Annotation> T resolveAnnotation(long hash, Method m, Class<T> annotation)
+   public Object resolveAnnotation(long hash, Method m, Class<? extends Annotation> annotation)
    {
+      return resolveTypedAnnotation(hash, m, annotation);
+   }
+   
+   public <T extends Annotation> T resolveTypedAnnotation(long hash, Method m, Class<T> annotation)
+   {
       if (metadata != null)
       {
          MethodSignature signature = new MethodSignature(m.getName(), m.getParameterTypes());
@@ -440,18 +455,34 @@
       return value;
    }
 
-   public <T extends Annotation> T resolveAnnotation(Method m, Class<T>[] annotationChoices)
+   public Object resolveAnnotation(Method m, Class<?>[] annotationChoices)
    {
+      for (Class<?> ann : annotationChoices)
+      {
+         Object val = resolveTypedAnnotation(m, (Class<? extends Annotation>)ann);
+         if (val != null) return val;
+      }
+      return null;
+   }
+
+   public <T extends Annotation> T resolveTypedAnnotation(Method m, Class<T>[] annotationChoices)
+   {
       for (Class<T> ann : annotationChoices)
       {
-         T val = resolveAnnotation(m, ann);
+         T val = resolveTypedAnnotation(m, ann);
          if (val != null) return val;
       }
       return null;
    }
 
-   public <T extends Annotation> T resolveAnnotation(Field f, Class<T> annotation)
+
+   public Object resolveAnnotation(Field f, Class<? extends Annotation> annotation)
    {
+      return resolveTypedAnnotation(f, annotation);
+   }
+   
+   public <T extends Annotation> T resolveTypedAnnotation(Field f, Class<T> annotation)
+   {
       T value = null;
       if (metadata != null)
       {
@@ -472,8 +503,13 @@
       return value;
    }
 
-   public <T extends Annotation> T resolveAnnotation(Constructor<?> c, Class<T> annotation)
+   public Object resolveAnnotation(Constructor<?> c, Class<? extends Annotation> annotation)
    {
+      return resolveTypedAnnotation(c, annotation);
+   }
+   
+   public <T extends Annotation> T resolveTypedAnnotation(Constructor<?> c, Class<T> annotation)
+   {
       T value = null;
       if (metadata != null)
       {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructionInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructionInfo.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructionInfo.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -116,7 +116,7 @@
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(constructor, annotation);
+         val = getAdvisor().resolveTypedAnnotation(constructor, annotation);
          if (val != null) return val;
       }
 

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructorInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructorInfo.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ConstructorInfo.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -127,7 +127,7 @@
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(constructor, annotation);
+         val = getAdvisor().resolveTypedAnnotation(constructor, annotation);
          if (val != null) return val;
       }
 

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/FieldInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/FieldInfo.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/FieldInfo.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -163,7 +163,7 @@
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(advisedField, annotation);
+         val = getAdvisor().resolveTypedAnnotation(advisedField, annotation);
          if (val != null) return val;
       }
 

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/JoinPointInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/JoinPointInfo.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/JoinPointInfo.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -190,7 +190,7 @@
       Advisor advisor = getAdvisor();
       if (advisor != null)
       {
-         return advisor.resolveAnnotation(annotation);
+         return advisor.resolveTypedAnnotation(annotation);
       }
       return null;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/MethodInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/MethodInfo.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/MethodInfo.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -134,7 +134,7 @@
       Advisor advisor = getAdvisor();
       if (advisor != null)
       {
-         return getAdvisor().resolveAnnotation(hash, advisedMethod, annotation);
+         return getAdvisor().resolveTypedAnnotation(hash, advisedMethod, annotation);
       }
       return null;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/array/ArrayElementInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/array/ArrayElementInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/array/ArrayElementInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -21,6 +21,7 @@
 */ 
 package org.jboss.aop.array;
 
+import java.lang.annotation.Annotation;
 import java.util.List;
 import java.util.Map;
 
@@ -103,30 +104,49 @@
    }
 
    @Override
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       throw new NotImplementedException();
    }
 
    @Override
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
       throw new NotImplementedException();
    }
 
    @Override
-   public Object resolveAnnotation(Class[] annotations)
+   public Object resolveAnnotation(Class<? extends Annotation>[] annotations)
    {
       throw new NotImplementedException();
    }
 
    @Override
-   public Object resolveClassAnnotation(Class annotation)
+   public Object resolveClassAnnotation(Class<? extends Annotation> annotation)
    {
       throw new NotImplementedException();
    }
 
    @Override
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
+      throw new NotImplementedException();
+   }
+
+   @Override
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T>[] annotations)
+   {
+      throw new NotImplementedException();
+   }
+
+   @Override
+   public <T extends Annotation> T resolveTypedClassAnnotation(Class<T> annotation)
+   {
+      throw new NotImplementedException();
+   }
+
+
+   @Override
    public Object resolveClassMetaData(Object key, Object attr)
    {
       throw new NotImplementedException();
@@ -145,7 +165,7 @@
    }
 
    @Override
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       throw new NotImplementedException();
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Construction.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Construction.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Construction.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -36,5 +36,5 @@
    /**
     * Gets the constructor being called
     */
-   Constructor getConstructor();
+   Constructor<?> getConstructor();
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -21,6 +21,7 @@
   */
 package org.jboss.aop.joinpoint;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 
 import org.jboss.aop.ConstructionInfo;
@@ -40,9 +41,9 @@
    private static final long serialVersionUID = -6040602776303875808L;
 
    protected Object[] arguments = null; // MARSHALLED
-   protected transient Constructor constructor = null;
+   protected transient Constructor<?> constructor = null;
 
-   public ConstructionInvocation(Interceptor[] interceptors, Constructor con, Object[] args)
+   public ConstructionInvocation(Interceptor[] interceptors, Constructor<?> con, Object[] args)
    {
       super(interceptors);
       this.constructor = con;
@@ -50,7 +51,7 @@
    }
 
 
-   public ConstructionInvocation(Interceptor[] interceptors, Constructor con)
+   public ConstructionInvocation(Interceptor[] interceptors, Constructor<?> con)
    {
       super(interceptors);
       this.constructor = con;
@@ -102,20 +103,24 @@
     * This method resolves an annotation based on the context of the invocation.
     *
     */
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
-      Object val = super.resolveAnnotation(annotation);
+      return resolveTypedAnnotation(annotation);
+   }
+
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
+      T val = super.resolveTypedAnnotation(annotation);
       if (val != null) return val;
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(constructor, annotation);
+         val = getAdvisor().resolveTypedAnnotation(constructor, annotation);
          if (val != null) return val;
       }
 
       return null;
    }
-
    /**
     * This method resolves metadata based on the context of the invocation.
     * It iterates through its list of MetaDataResolvers to find out the
@@ -221,12 +226,12 @@
       this.arguments = arguments;
    }
 
-   public Constructor getConstructor()
+   public Constructor<?> getConstructor()
    {
       return constructor;
    }
 
-   public void setConstructor(Constructor constructor)
+   public void setConstructor(Constructor<?> constructor)
    {
       this.constructor = constructor;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructionInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -99,22 +99,22 @@
       return invocation;
    }
 
-   public Constructor getConstructor()
+   public Constructor<?> getConstructor()
    {
       return wrapped.getConstructor();
    }
 
-   public void setConstructor(Constructor constructor)
-   {
-      wrapped.setConstructor(constructor);
-   }
+//   public void setConstructor(Constructor<?> constructor)
+//   {
+//      wrapped.setConstructor(constructor);
+//   }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCall.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCall.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCall.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -34,16 +34,16 @@
    /**
     * Gets the constructor being called
     */
-   Constructor getConstructor();
+   Constructor<?> getConstructor();
 
    /**
     * Gets the class making the call
     */
-   Class getCallingClass();
+   Class<?> getCallingClass();
 
    /**
     * Gets the class being called
     */
-   Class getCalledClass();
+   Class<?> getCalledClass();
 
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCallByConstructor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCallByConstructor.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCallByConstructor.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -34,6 +34,6 @@
    /**
     * Gets the calling constructor
     */
-   Constructor getCallingConstructor();
+   Constructor<?> getCallingConstructor();
 
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -43,8 +43,8 @@
    private static final long serialVersionUID = -1569257745454443521L;
 
    //info fields
-   protected Constructor calling;
-   protected Constructor constructor;
+   protected Constructor<?> calling;
+   protected Constructor<?> constructor;
    protected Method wrappingMethod;
    
    public ConstructorCalledByConstructorInvocation(ConByConInfo info, Object callingObject, Object[] args, Interceptor[] interceptors)
@@ -57,7 +57,7 @@
       this(info.getAdvisor(), info.getCallingConstructor(), info.getConstructor(), info.getWrappingMethod(), callingObject, null, interceptors);
    }
    
-   public ConstructorCalledByConstructorInvocation(Advisor advisor, Constructor calling, Constructor constructor, Method wrappingMethod, Object callingObject, Object[] args, Interceptor[] interceptors)
+   public ConstructorCalledByConstructorInvocation(Advisor advisor, Constructor<?> calling, Constructor<?> constructor, Method wrappingMethod, Object callingObject, Object[] args, Interceptor[] interceptors)
    {
       super(advisor, callingObject, interceptors);
       this.calling = calling;
@@ -75,7 +75,7 @@
     *
     * @return the constructor that is calling the called constructor
     */
-   public Constructor getCallingConstructor()
+   public Constructor<?> getCallingConstructor()
    {
       return calling;
    }
@@ -83,7 +83,7 @@
     *
     * @return the constructor call being executed by the calling method
     */
-   public Constructor getCalledConstructor() { return constructor; }
+   public Constructor<?> getCalledConstructor() { return constructor; }
 
    /**
     * Is the called constructor aspectized?  If so then there is a wrapping

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -93,12 +93,12 @@
       wrapped.setArguments(arguments);
    }
 
-   public Constructor getCallingConstructor()
+   public Constructor<?> getCallingConstructor()
    {
       return wrapped.getCallingConstructor();
    }
 
-   public Constructor getCalledConstructor()
+   public Constructor<?> getCalledConstructor()
    {
       return wrapped.getCalledConstructor();
    }
@@ -120,7 +120,7 @@
       return invocation;
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
@@ -130,7 +130,7 @@
       wrapped.addResponseAttachment(key, val);
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorJoinpoint.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorJoinpoint.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByConstructorJoinpoint.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -31,11 +31,11 @@
  */
 public class ConstructorCalledByConstructorJoinpoint implements Joinpoint
 {
-   private final Constructor calling;
-   private final Constructor called;
+   private final Constructor<?> calling;
+   private final Constructor<?> called;
    int hashCode;
 
-   public ConstructorCalledByConstructorJoinpoint(Constructor calling, Constructor called)
+   public ConstructorCalledByConstructorJoinpoint(Constructor<?> calling, Constructor<?> called)
    {
       this.calling = calling;
       this.called = called;
@@ -61,12 +61,12 @@
       return hashCode;
    }
 
-   public Constructor getCalling()
+   public Constructor<?> getCalling()
    {
       return calling;
    }
 
-   public Constructor getCalled()
+   public Constructor<?> getCalled()
    {
       return called;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -43,9 +43,9 @@
    private static final long serialVersionUID = -3269308917757322223L;
 
    //info fields
-   protected Class callingClass;
+   protected Class<?> callingClass;
    protected Method callingMethod;
-   protected Constructor constructor;
+   protected Constructor<?> constructor;
    protected Method wrappingMethod; 
    
    public ConstructorCalledByMethodInvocation(ConByMethodInfo info, Object callingObject, Object[] args, Interceptor[] interceptors)
@@ -58,8 +58,8 @@
       this(info.getAdvisor(), info.getCallingClass(), info.getCallingMethod(), info.getConstructor(), info.getWrappingMethod(), callingObject, null, interceptors);
    }
    
-   public ConstructorCalledByMethodInvocation(Advisor advisor, Class callingClass, 
-         Method callingMethod, Constructor constructor, Method wrappingMethod, Object callingObject, Object[] args, Interceptor[] interceptors)
+   public ConstructorCalledByMethodInvocation(Advisor advisor, Class<?> callingClass, 
+         Method callingMethod, Constructor<?> constructor, Method wrappingMethod, Object callingObject, Object[] args, Interceptor[] interceptors)
    {
       super(advisor, callingObject, interceptors);
       this.callingClass = callingClass;
@@ -78,7 +78,7 @@
    /**
     * @return The class that is making the call on the constructor
     */
-   public Class getCallingClass()
+   public Class<?> getCallingClass()
    {
       return callingClass;
    }
@@ -94,7 +94,7 @@
    /**
     * @return the constructor call being executed by the calling method
     */
-   public Constructor getCalledConstructor()
+   public Constructor<?> getCalledConstructor()
    {
       return constructor;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -75,7 +75,7 @@
       return wrapped.getInstanceResolver();
    }
 
-   public Class getCallingClass()
+   public Class<?> getCallingClass()
    {
       return wrapped.getCallingClass();
    }
@@ -85,7 +85,7 @@
       return wrapped.getCallingMethod();
    }
 
-   public Constructor getCalledConstructor()
+   public Constructor<?> getCalledConstructor()
    {
       return wrapped.getCalledConstructor();
    }
@@ -122,12 +122,12 @@
       wrapped.setTargetObject(targetObject);
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodJoinpoint.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodJoinpoint.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorCalledByMethodJoinpoint.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -33,10 +33,10 @@
 public class ConstructorCalledByMethodJoinpoint implements Joinpoint
 {
    private final Method calling;
-   private final Constructor called;
+   private final Constructor<?> called;
    int hashCode;
 
-   public ConstructorCalledByMethodJoinpoint(Method calling, Constructor called)
+   public ConstructorCalledByMethodJoinpoint(Method calling, Constructor<?> called)
    {
       this.calling = calling;
       this.called = called;
@@ -67,7 +67,7 @@
       return calling;
    }
 
-   public Constructor getCalled()
+   public Constructor<?> getCalled()
    {
       return called;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorExecution.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorExecution.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorExecution.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -35,6 +35,6 @@
    /**
     * Gets the constructor being called
     */
-   Constructor getConstructor();
+   Constructor<?> getConstructor();
 
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -24,6 +24,7 @@
 import org.jboss.aop.ConstructorInfo;
 import org.jboss.aop.advice.Interceptor;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 
@@ -40,7 +41,7 @@
    private static final long serialVersionUID = -7880020293056198584L;
 
    protected Object[] arguments = null; // MARSHALLED
-   protected transient Constructor constructor = null;
+   protected transient Constructor<?> constructor = null;
 
    public ConstructorInvocation(Interceptor[] interceptors)
    {
@@ -86,7 +87,7 @@
    {
       try
       {
-         Constructor con = getConstructor();
+         Constructor<?> con = getConstructor();
          Object[] args = getArguments();
          setTargetObject(con.newInstance(args));
          return getTargetObject();
@@ -115,14 +116,19 @@
     * This method resolves an annotation based on the context of the invocation.
     *
     */
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
-      Object val = super.resolveAnnotation(annotation);
+      return resolveTypedAnnotation(annotation);
+   }
+
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
+      T val = super.resolveTypedAnnotation(annotation);
       if (val != null) return val;
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(constructor, annotation);
+         val = getAdvisor().resolveTypedAnnotation(constructor, annotation);
          if (val != null) return val;
       }
 
@@ -227,12 +233,12 @@
       this.arguments = arguments;
    }
 
-   public Constructor getConstructor()
+   public Constructor<?> getConstructor()
    {
       return constructor;
    }
 
-   public void setConstructor(Constructor constructor)
+   public void setConstructor(Constructor<?> constructor)
    {
       this.constructor = constructor;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -99,22 +99,22 @@
       return invocation;
    }
 
-   public Constructor getConstructor()
+   public Constructor<?> getConstructor()
    {
       return wrapped.getConstructor();
    }
 
-   public void setConstructor(Constructor constructor)
+   public void setConstructor(Constructor<?> constructor)
    {
       wrapped.setConstructor(constructor);
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorJoinpoint.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorJoinpoint.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/ConstructorJoinpoint.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -31,10 +31,10 @@
  */
 public class ConstructorJoinpoint implements Joinpoint
 {
-   private final Constructor constructor;
+   private final Constructor<?> constructor;
    int hashCode;
 
-   public ConstructorJoinpoint(Constructor con)
+   public ConstructorJoinpoint(Constructor<?> con)
    {
       this.constructor = con;
    }
@@ -57,7 +57,7 @@
       return hashCode;
    }
 
-   public Constructor getConstructor()
+   public Constructor<?> getConstructor()
    {
       return constructor;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -24,6 +24,7 @@
 import org.jboss.aop.FieldInfo;
 import org.jboss.aop.advice.Interceptor;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 
 /**
@@ -63,19 +64,25 @@
     * This method resolves an annotation based on the context of the invocation.
     *
     */
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
-      Object val = super.resolveAnnotation(annotation);
+      return resolveTypedAnnotation(annotation);
+   }
+
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
+      T val = super.resolveTypedAnnotation(annotation);
       if (val != null) return val;
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(field, annotation);
+         val = getAdvisor().resolveTypedAnnotation(field, annotation);
          if (val != null) return val;
       }
 
       return null;
    }
+   
    /**
     * This method resolves metadata based on the context of the invocation.
     * It iterates through its list of MetaDataResolvers to find out the

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldReadInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldReadInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldReadInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -99,12 +99,12 @@
       return wrapped.getIndex();
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldWriteInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldWriteInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/FieldWriteInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -109,12 +109,12 @@
       return wrapped.getIndex();
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Invocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Invocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/Invocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -25,6 +25,7 @@
 import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.metadata.SimpleMetaData;
 
+import java.lang.annotation.Annotation;
 import java.util.Map;
 
 /**
@@ -35,9 +36,9 @@
  */
 public interface Invocation
 {
-   Map getResponseContextInfo();
+   Map<Object, Object> getResponseContextInfo();
 
-   void setResponseContextInfo(Map responseContextInfo);
+   void setResponseContextInfo(Map<Object, Object> responseContextInfo);
 
    void addResponseAttachment(Object key, Object val);
 
@@ -62,6 +63,7 @@
     */
    Object resolveClassMetaData(Object key, Object attr);
 
+   
    /**
     * Abstraction for resolving an annotation so that
     * it can be overriden from the Class
@@ -69,26 +71,53 @@
     * @param annotation
     * @return
     */
-   Object resolveClassAnnotation(Class annotation);
+   Object resolveClassAnnotation(Class<? extends Annotation> annotation);
 
    /**
     * Abstraction for resolving an annotation so that
+    * it can be overriden from the Class
+    *
+    * @param annotation
+    * @return
+    */
+   <T extends Annotation> T resolveTypedClassAnnotation(Class<T> annotation);
+
+   /**
+    * Abstraction for resolving an annotation so that
     * it can be overriden from the Method, Constructor, Field, etc.
     *
     * @param annotation
     * @return
     */
-   Object resolveAnnotation(Class annotation);
+   Object resolveAnnotation(Class<? extends Annotation> annotation);
    
    /**
     * Abstraction for resolving an annotation so that
     * it can be overriden from the Method, Constructor, Field, etc.
     *
+    * @param annotation
+    * @return
+    */
+   <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation);
+
+   /**
+    * Abstraction for resolving an annotation so that
+    * it can be overriden from the Method, Constructor, Field, etc.
+    *
     * @param annotations
     * @return
     */
-   Object resolveAnnotation(Class[] annotations);
+   Object resolveAnnotation(Class<? extends Annotation>[] annotations);
 
+   /**
+    * Abstraction for resolving an annotation so that
+    * it can be overriden from the Method, Constructor, Field, etc.
+    *
+    * @param annotations
+    * @return
+    */
+   <T extends Annotation> T resolveTypedAnnotation(Class<T>[] annotations);
+
     /**
     * Invoke on the next interceptor in the chain.  If this is already
     * the end of the chain, reflection will call the constructor, field, or

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationBase.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationBase.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationBase.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -28,6 +28,7 @@
 import org.jboss.aop.metadata.MetaDataResolver;
 import org.jboss.aop.metadata.SimpleMetaData;
 
+import java.lang.annotation.Annotation;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -48,26 +49,26 @@
    protected transient int currentInterceptor = 0;
    protected transient org.jboss.aop.advice.Interceptor[] interceptors = null;
    protected transient Advisor advisor = null;
-   protected transient Map responseContextInfo = null;
+   protected transient Map<Object, Object> responseContextInfo = null;
 
    protected transient Object targetObject = null;
 
    // todo need to refactor this as ClassProxyTemplate still needs this for remoting
    protected transient MetaDataResolver instanceResolver;
    
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return responseContextInfo;
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       this.responseContextInfo = responseContextInfo;
    }
 
    public void addResponseAttachment(Object key, Object val)
    {
-      if (responseContextInfo == null) responseContextInfo = new HashMap(1);
+      if (responseContextInfo == null) responseContextInfo = new HashMap<Object, Object>(1);
       responseContextInfo.put(key, val);
    }
 
@@ -200,24 +201,39 @@
    }
 
 
-   public Object resolveClassAnnotation(Class annotation)
+   public Object resolveClassAnnotation(Class<? extends Annotation> annotation)
    {
-      if (advisor != null) return advisor.resolveAnnotation(annotation);
-      return null;
+      return resolveTypedClassAnnotation(annotation);
    }
+   
+   public <T extends Annotation> T resolveTypedClassAnnotation(Class<T> annotation)
+   {
+      if (advisor != null) return advisor.resolveTypedAnnotation(annotation);
+      return null;      
+   }
 
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
       // todo need to add hooks for invocation and thread metadata.
       return null;
    }
    
-   public Object resolveAnnotation(Class[] annotations)
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
    {
+      return null;
+   }
+   
+   public Object resolveAnnotation(Class<? extends Annotation>[] annotations)
+   {
       // todo need to add hooks for invocation and thread metadata.
       return null;
    }
 
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T>[] annotations)
+   {
+      return null;
+   }
+   
    /**
     * This method resolves metadata based on the context of the invocation.
     * It iterates through its list of MetaDataResolvers to find out the

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationResponse.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationResponse.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/InvocationResponse.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -23,7 +23,6 @@
  
 import java.io.IOException;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -43,18 +42,18 @@
 
    private static final long serialVersionUID = 2974596986988236395L;
 
-   public Map getContextInfo()
+   public Map<Object, Object> getContextInfo()
    {
       return contextInfo;
    }
 
-   public void setContextInfo(Map contextInfo)
+   public void setContextInfo(Map<Object, Object> contextInfo)
    {
       this.contextInfo = contextInfo;
    }
 
    // The Map of methods used by this Invocation
-   protected Map contextInfo = null;
+   protected Map<Object, Object> contextInfo = null;
    protected Object response = null;
 
    // Constructors --------------------------------------------------
@@ -84,7 +83,7 @@
 
    public void addAttachment(Object key, Object val)
    {
-      if (contextInfo == null) contextInfo = new HashMap(1);
+      if (contextInfo == null) contextInfo = new HashMap<Object, Object>(1);
       contextInfo.put(key, val);
    }
 
@@ -106,10 +105,8 @@
       else
       {
          out.writeInt(contextInfo.size());
-         Iterator keys = contextInfo.keySet().iterator();
-         while (keys.hasNext())
+         for (Object currentKey : contextInfo.keySet())
          {
-            Object currentKey = keys.next();
             out.writeObject(currentKey);
             out.writeObject(contextInfo.get(currentKey));
          }
@@ -129,7 +126,7 @@
       }
       else
       {
-         contextInfo = new HashMap(size);
+         contextInfo = new HashMap<Object, Object>(size);
          for (int i = 0; i < size; i++)
          {
             Object key = in.readObject();

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCall.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCall.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCall.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -34,12 +34,12 @@
    /**
     * Gets the class containing the method/constructor making the call
     */
-   Class getCallingClass();
+   Class<?> getCallingClass();
 
    /**
     * Gets the class containing the method being called 
     */
-   Class getCalledClass();
+   Class<?> getCalledClass();
 
    /**
     * Gets the method being called

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCallByConstructor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCallByConstructor.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCallByConstructor.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -34,6 +34,6 @@
    /**
     * Gets the constructor making the call
     */
-   Constructor getCallingConstructor();
+   Constructor<?> getCallingConstructor();
 
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -43,7 +43,7 @@
    private static final long serialVersionUID = -1903092605231217830L;
    
    //info fields
-   protected Constructor calling;
+   protected Constructor<?> calling;
    protected Method method;
    
    public MethodCalledByConstructorInvocation(MethodByConInfo info, Object callingObject, Object target, Object[] args, Interceptor[] interceptors)
@@ -56,7 +56,7 @@
       this(info.getAdvisor(), info.getCallingConstructor(), info.getMethod(), callingObject, target, null, interceptors);
    }
    
-   public MethodCalledByConstructorInvocation(Advisor advisor, Constructor calling, Method method, Object callingObject, Object target, Object[] args, Interceptor[] interceptors)
+   public MethodCalledByConstructorInvocation(Advisor advisor, Constructor<?> calling, Method method, Object callingObject, Object target, Object[] args, Interceptor[] interceptors)
    {
       super(advisor, callingObject, interceptors);
       this.calling = calling;
@@ -162,7 +162,7 @@
     *
     * @return The constructor that is calling the method
     */
-   public Constructor getCalling()
+   public Constructor<?> getCalling()
    {
       return calling;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -92,7 +92,7 @@
       wrapped.setArguments(arguments);
    }
 
-   public Constructor getCalling()
+   public Constructor<?> getCalling()
    {
       return wrapped.getCalling();
    }
@@ -102,7 +102,7 @@
       return wrapped.getCalledMethod();
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
@@ -112,7 +112,7 @@
       wrapped.addResponseAttachment(key, val);
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorJoinpoint.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorJoinpoint.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByConstructorJoinpoint.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -32,11 +32,11 @@
  */
 public class MethodCalledByConstructorJoinpoint implements Joinpoint
 {
-   private final Constructor calling;
+   private final Constructor<?> calling;
    private final Method called;
    int hashCode;
 
-   public MethodCalledByConstructorJoinpoint(Constructor calling, Method called)
+   public MethodCalledByConstructorJoinpoint(Constructor<?> calling, Method called)
    {
       this.calling = calling;
       this.called = called;
@@ -62,7 +62,7 @@
       return hashCode;
    }
 
-   public Constructor getCalling()
+   public Constructor<?> getCalling()
    {
       return calling;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -42,7 +42,7 @@
    private static final long serialVersionUID = -156920151151728318L;
    
    //info fields
-   Class callingClass;
+   Class<?> callingClass;
    Method callingMethod;
    Method method;
    
@@ -56,7 +56,7 @@
       this(info.getAdvisor(), info.getCallingClass(), info.getCallingMethod(), info.getMethod(), callingObject, targetObject, null, interceptors);
    }
 
-   public MethodCalledByMethodInvocation(Advisor advisor, Class callingClass, 
+   public MethodCalledByMethodInvocation(Advisor advisor, Class<?> callingClass, 
          Method callingMethod, Method method, Object callingObject, Object targetObject, Object[] args, Interceptor[] interceptors)
    {
       super(advisor, callingObject, interceptors);
@@ -163,7 +163,7 @@
    /**
     * @return The class that is making the call on the method
     */
-   public Class getCallingClass()
+   public Class<?> getCallingClass()
    {
       return callingClass;
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodCalledByMethodInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -98,7 +98,7 @@
       wrapped.setArguments(arguments);
    }
 
-   public Class getCallingClass()
+   public Class<?> getCallingClass()
    {
       return wrapped.getCallingClass();
    }
@@ -108,12 +108,12 @@
       return wrapped.getCallingMethod();
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocation.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocation.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.lang.annotation.Annotation;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.rmi.MarshalledObject;
@@ -144,15 +145,15 @@
          if (target == null)
 
             throw new IllegalArgumentException("Null target for method " + method);
-         Class methodClass = method.getClass();
-         Class targetClass = target.getClass();
+         Class<?> methodClass = method.getClass();
+         Class<?> targetClass = target.getClass();
          if (methodClass.isAssignableFrom(targetClass) == false)
             throw new IllegalArgumentException("Wrong target. " + targetClass + " for " + method);
-         ArrayList expected = new ArrayList();
-         Class[] parameterTypes = method.getParameterTypes();
+         ArrayList<String> expected = new ArrayList<String>();
+         Class<?>[] parameterTypes = method.getParameterTypes();
          for (int i = 0; i < parameterTypes.length; ++i)
             expected.add(parameterTypes[i].getName());
-         ArrayList actual = new ArrayList();
+         ArrayList<String> actual = new ArrayList<String>();
          if (arguments != null)
          {
             for (int i = 0; i < arguments.length; ++i)
@@ -175,14 +176,19 @@
    /**
     * This method resolves an annotation based on the context of the invocation.
     */
-   public Object resolveAnnotation(Class annotation)
+   public Object resolveAnnotation(Class<? extends Annotation> annotation)
    {
-      Object val = super.resolveAnnotation(annotation);
+      return resolveTypedAnnotation(annotation);
+   }
+
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T> annotation)
+   {
+      T val = super.resolveTypedAnnotation(annotation);
       if (val != null) return val;
 
       if (getAdvisor() != null)
       {
-         val = getAdvisor().resolveAnnotation(getMethodHash(), getMethod(), annotation);
+         val = getAdvisor().resolveTypedAnnotation(getMethodHash(), getMethod(), annotation);
          if (val != null) return val;
       }
 
@@ -192,7 +198,7 @@
    /**
     * This method resolves an annotation based on the context of the invocation.
     */
-   public Object resolveAnnotation(Class[] annotations)
+   public Object resolveAnnotation(Class<? extends Annotation>[] annotations)
    {
       Object val = super.resolveAnnotation(annotations);
       if (val != null) return val;
@@ -202,10 +208,24 @@
          val = getAdvisor().resolveAnnotation(getMethod(), annotations);
          if (val != null) return val;
       }
+      
+      return null;
+   }
 
+   public <T extends Annotation> T resolveTypedAnnotation(Class<T>[] annotations)
+   {
+      T val = super.resolveTypedAnnotation(annotations);
+      if (val != null) return val;
+
+      if (getAdvisor() != null)
+      {
+         val = getAdvisor().resolveTypedAnnotation(getMethod(), annotations);
+         if (val != null) return val;
+      }
+
       return null;
    }
-
+   
    /**
     * This method resolves metadata based on the context of the invocation.
     * It iterates through its list of MetaDataResolvers to find out the

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocationWrapper.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocationWrapper.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/joinpoint/MethodInvocationWrapper.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -122,12 +122,12 @@
       return wrapped.getAdvisor();
    }
 
-   public Map getResponseContextInfo()
+   public Map<Object, Object> getResponseContextInfo()
    {
       return wrapped.getResponseContextInfo();
    }
 
-   public void setResponseContextInfo(Map responseContextInfo)
+   public void setResponseContextInfo(Map<Object, Object> responseContextInfo)
    {
       wrapped.setResponseContextInfo(responseContextInfo);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -57,39 +57,39 @@
 public class ClassProxyFactory
 {
    private static Object maplock = new Object();
-   private static WeakValueHashMap classnameMap = new WeakValueHashMap();
-   private static WeakHashMap proxyCache = new WeakHashMap();
+   private static WeakValueHashMap<String, Class<?>> classnameMap = new WeakValueHashMap<String, Class<?>>();
+   private static WeakHashMap<Class<?>, WeakReference<Class<?>>> proxyCache = new WeakHashMap<Class<?>, WeakReference<Class<?>>>();
    private static WeakHashMap methodMapCache = new WeakHashMap();
 
-   public static ClassProxy newInstance(Class clazz) throws Exception
+   public static ClassProxy newInstance(Class<?> clazz) throws Exception
    {
       return newInstance(clazz, null);
    }
 
-   public static ClassProxy newInstance(Class clazz, ProxyMixin[] mixins) throws Exception
+   public static ClassProxy newInstance(Class<?> clazz, ProxyMixin[] mixins) throws Exception
    {
       return newInstance(clazz, mixins, new ClassInstanceAdvisor());
    }
 
-   private static Class getProxyClass(Class clazz, ProxyMixin[] mixins)
+   private static Class<?> getProxyClass(Class<?> clazz, ProxyMixin[] mixins)
    throws Exception
    {
       // Don't make a proxy of a proxy !
       if (ClassProxy.class.isAssignableFrom(clazz)) clazz = clazz.getSuperclass();
 
-      Class proxyClass = null;
+      Class<?> proxyClass = null;
       synchronized (maplock)
       {
-         WeakReference ref = (WeakReference) proxyCache.get(clazz);
+         WeakReference<Class<?>> ref = proxyCache.get(clazz);
          if (ref != null)
          {
-            proxyClass = (Class)ref.get();
+            proxyClass = ref.get();
          }
          if (proxyClass == null)
          {
             proxyClass = generateProxy(clazz, mixins);
             classnameMap.put(clazz.getName(), proxyClass);
-            proxyCache.put(clazz, new WeakReference(proxyClass));
+            proxyCache.put(clazz, new WeakReference<Class<?>>(proxyClass));
             HashMap map = methodMap(clazz);
             methodMapCache.put(proxyClass, map);
          }
@@ -318,7 +318,7 @@
       return proxyClass;
    }
 
-   private static void populateMethodTables(HashMap advised, List ignoredHash, Class superclass)
+   private static void populateMethodTables(HashMap<Long, MethodPersistentReference> advised, List ignoredHash, Class superclass)
    throws Exception
    {
       if (superclass == null) return;
@@ -350,10 +350,10 @@
 
    }
 
-   public static HashMap methodMap(Class clazz)
+   public static HashMap<Long, MethodPersistentReference> methodMap(Class<?> clazz)
    throws Exception
    {
-      HashMap methods = new HashMap();
+      HashMap<Long, MethodPersistentReference> methods = new HashMap<Long, MethodPersistentReference>();
       List ignoredHash = new ArrayList();
       populateMethodTables(methods, ignoredHash, clazz);
       return methods;

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryMixin.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryMixin.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryMixin.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -27,18 +27,20 @@
 
 public class AOPProxyFactoryMixin implements Serializable
 {
+   private static final long serialVersionUID = 1L;
+   
    private String construction;
-   private WeakReference<Class> mixinClassRef;
-   private WeakReference<Class>[] interfaceClassRefs;
+   private WeakReference<Class<?>> mixinClassRef;
+   private WeakReference<Class<?>>[] interfaceClassRefs;
    private int hashcode;
 
-   public AOPProxyFactoryMixin(Class mixin, Class[] interfaces)
+   public AOPProxyFactoryMixin(Class<?> mixin, Class<?>[] interfaces)
    {
-      mixinClassRef = new WeakReference(mixin);
+      mixinClassRef = new WeakReference<Class<?>>(mixin);
       interfaceClassRefs = ContainerCacheUtil.getSortedWeakReferenceForInterfaces(interfaces);
    }
 
-   public AOPProxyFactoryMixin(Class mixin, Class[] interfaces, String parameters)
+   public AOPProxyFactoryMixin(Class<?> mixin, Class<?>[] interfaces, String parameters)
    {
       this(mixin, interfaces);
       StringBuffer construction = new StringBuffer(" new ");
@@ -64,11 +66,11 @@
    }
 
 
-   public Class[] getInterfaces()
+   public Class<?>[] getInterfaces()
    {
       if (interfaceClassRefs != null)
       {
-         Class[] interfaces = new Class[interfaceClassRefs.length];
+         Class<?>[] interfaces = new Class[interfaceClassRefs.length];
          for (int i = 0 ; i < interfaces.length ; i++)
          {
             interfaces[i] = interfaceClassRefs[i].get();
@@ -78,9 +80,9 @@
       return null;
    }
 
-   public Class getMixin()
+   public Class<?> getMixin()
    {
-      return (Class)mixinClassRef.get();
+      return mixinClassRef.get();
    }
 
    public boolean equals(Object obj)
@@ -117,7 +119,7 @@
       if (hashcode == 0)
       {
          
-         Class clazz = (Class)mixinClassRef.get();
+         Class<?> clazz = mixinClassRef.get();
          StringBuffer sb = new StringBuffer();
          
          if (clazz != null)
@@ -130,7 +132,7 @@
             for (int i = 0 ; i < interfaceClassRefs.length ; i++)
             {
                sb.append(";");
-               sb.append(((Class)interfaceClassRefs[i].get()).getName());
+               sb.append((interfaceClassRefs[i].get()).getName());
             }
          }
          hashcode = sb.toString().hashCode();
@@ -179,12 +181,12 @@
    private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
    {
       construction = (String)in.readObject();
-      mixinClassRef = new WeakReference<Class>((Class)in.readObject());
-      Class[] ifs = (Class[])in.readObject();
+      mixinClassRef = new WeakReference<Class<?>>((Class<?>)in.readObject());
+      Class<?>[] ifs = (Class[])in.readObject();
       interfaceClassRefs = new WeakReference[ifs.length];
       for (int i = 0 ; i < ifs.length ; i++)
       {
-         interfaceClassRefs[i] = new WeakReference<Class>(ifs[i]);
+         interfaceClassRefs[i] = new WeakReference<Class<?>>(ifs[i]);
       }
       hashcode = in.readInt();
    }

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	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -31,11 +31,11 @@
  */
 public class AOPProxyFactoryParameters
 {
-   private Class proxiedClass;
+   private Class<?> proxiedClass;
    private Object target;
    private MetaData metaData;
    private boolean metaDataHasInstanceLevelData;
-   private Class[] interfaces;
+   private Class<?>[] interfaces;
    private AOPProxyFactoryMixin[] mixins; 
    private boolean objectAsSuperClass;
    private SimpleMetaData simpleMetaData;
@@ -47,16 +47,16 @@
    }
 
    public AOPProxyFactoryParameters(
-         Class proxiedClass, 
+         Class<?> proxiedClass, 
          Object target, 
-         Class[] interfaces,
+         Class<?>[] interfaces,
          AOPProxyFactoryMixin[] mixins,
          MetaData metaData, 
          boolean metaDataHasInstanceLevelData,
          boolean objectAsSuperClass,
          SimpleMetaData simpleMetaData,
          ContainerCache containerCache,
-         Class[] ctorSignature,
+         Class<?>[] ctorSignature,
          Object[] ctorArguments)
    {
       this.proxiedClass = proxiedClass;
@@ -71,12 +71,12 @@
       setCtor(ctorSignature, ctorArguments);      
    }
 
-   public Class[] getInterfaces()
+   public Class<?>[] getInterfaces()
    {
       return interfaces;
    }
 
-   public void setInterfaces(Class[] interfaces)
+   public void setInterfaces(Class<?>[] interfaces)
    {
       this.interfaces = interfaces;
    }
@@ -101,12 +101,12 @@
       this.objectAsSuperClass = objectAsSuperClass;
    }
 
-   public Class getProxiedClass()
+   public Class<?> getProxiedClass()
    {
       return proxiedClass;
    }
 
-   public void setProxiedClass(Class proxiedClass)
+   public void setProxiedClass(Class<?> proxiedClass)
    {
       this.proxiedClass = proxiedClass;
    }
@@ -166,7 +166,7 @@
       this.metaDataHasInstanceLevelData = metaDataHasInstanceLevelData;
    }
 
-   public void setCtor(Class[] ctorSignature, Object[] ctorArguments)
+   public void setCtor(Class<?>[] ctorSignature, Object[] ctorArguments)
    {
       boolean haveSig = (ctorSignature != null && ctorSignature.length > 0);
       boolean haveArgs = (ctorArguments != null && ctorArguments.length > 0);
@@ -187,10 +187,10 @@
    
    public static class Ctor
    {
-      Class[] signature;
+      Class<?>[] signature;
       Object[] arguments;
       
-      public Ctor(Class[] signature, Object[] arguments)
+      public Ctor(Class<?>[] signature, Object[] arguments)
       {
          this.signature = signature;
          this.arguments = arguments;
@@ -201,7 +201,7 @@
          return arguments;
       }
 
-      public Class[] getSignature()
+      public Class<?>[] getSignature()
       {
          return signature;
       }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ClassProxyContainer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ClassProxyContainer.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ClassProxyContainer.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -25,7 +25,6 @@
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Iterator;
 import java.lang.reflect.Method;
 
 import org.jboss.aop.Advisor;
@@ -57,15 +56,15 @@
 
    protected void createConstructorTables()
    {
-      Class useClass = clazz;
+      Class<?> useClass = clazz;
       if (clazz.getName().startsWith(ContainerProxyFactory.PROXY_NAME_PREFIX) && clazz != null && clazz.getSuperclass() != null)
       {
          useClass = clazz.getSuperclass();
       }
       if (useClass != null)
       {
-         final Class theUseClass = useClass;
-         AccessController.doPrivileged(new PrivilegedAction()
+         final Class<?> theUseClass = useClass;
+         AccessController.doPrivileged(new PrivilegedAction<Object>()
          {
             public Object run()
             {
@@ -89,7 +88,7 @@
       {
          Method[] declaredMethods = clazz.getMethods();
 
-         Class superclass = clazz.getSuperclass();
+         Class<?> superclass = clazz.getSuperclass();
          for (int i = 0; i < declaredMethods.length; i++)
          {
             Method method = declaredMethods[i];
@@ -111,16 +110,15 @@
 
          for (int i = 0; i < interfaceIntroductions.size(); ++i)
          {
-            InterfaceIntroduction ii = (InterfaceIntroduction) interfaceIntroductions.get(i);
+            InterfaceIntroduction ii = interfaceIntroductions.get(i);
             String[] intf = ii.getInterfaces();
             addMethodsFromInterfaces(intf);
 
-            ArrayList mixins = ii.getMixins();
+            ArrayList<InterfaceIntroduction.Mixin> mixins = ii.getMixins();
             if (mixins.size() > 0)
             {
-               for (Iterator it = mixins.iterator() ; it.hasNext() ;)
+               for (InterfaceIntroduction.Mixin mixin : mixins)
                {
-                  InterfaceIntroduction.Mixin mixin = (InterfaceIntroduction.Mixin)it.next();
                   String[] mintf = mixin.getInterfaces();
                   addMethodsFromInterfaces(mintf);
                }
@@ -139,7 +137,7 @@
       for (int j = 0; intf != null && j < intf.length; ++j)
       {
          // FIXME ClassLoader - why should the class be visible from the context classloader?
-         Class iface = cl.loadClass(intf[j]);
+         Class<?> iface = cl.loadClass(intf[j]);
          Method[] ifaceMethods = iface.getMethods();
          for (int k = 0; k < ifaceMethods.length; k++)
          {
@@ -165,7 +163,7 @@
       return ia;
    }
 
-   public void initialise(Class proxiedClass)
+   public void initialise(Class<?> proxiedClass)
    {
       setClass(proxiedClass);
       ((ProxyAdvisorDomain)manager).attachAdvisor();

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	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -41,7 +41,7 @@
 {
    private static volatile int counter;
    public static final Object mapLock = new Object();
-   private static WeakHashMap<Class, HashMap<String, ClassProxyContainer>> containerCache = new WeakHashMap<Class, HashMap<String, ClassProxyContainer>>();
+   private static WeakHashMap<Class<?>, HashMap<String, ClassProxyContainer>> containerCache = new WeakHashMap<Class<?>, HashMap<String, ClassProxyContainer>>();
 
    private AspectManager manager;
    private ContainerProxyCacheKey key;
@@ -49,14 +49,14 @@
    private Advisor classAdvisor;
    private InstanceProxyContainer instanceContainer;
    boolean isClassProxyContainer;
-   Class[] interfaces;
+   Class<?>[] interfaces;
    AOPProxyFactoryMixin[] mixins;
 
    MetaData metaData;
    boolean metaDataHasInstanceLevelData;
    SimpleMetaData simpleMetaData;
 
-   private ContainerCache(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaData, boolean metaDataHasInstanceLevelData, SimpleMetaData simpleMetaData)
+   private ContainerCache(AspectManager manager, Class<?> proxiedClass, Class<?>[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaData, boolean metaDataHasInstanceLevelData, SimpleMetaData simpleMetaData)
    {
       this.manager = manager;
       this.interfaces = interfaces;
@@ -67,7 +67,7 @@
       key = new ContainerProxyCacheKey(manager.getManagerFQN(), proxiedClass, interfaces, mixins, metaData);
    }
 
-   public static ContainerCache initialise(AspectManager manager, Class proxiedClass, MetaData metaData, boolean metaDataHasInstanceLevelData)
+   public static ContainerCache initialise(AspectManager manager, Class<?> proxiedClass, MetaData metaData, boolean metaDataHasInstanceLevelData)
    {
       return initialise(manager, proxiedClass, null, null, metaData, metaDataHasInstanceLevelData, null);
    }
@@ -84,7 +84,7 @@
             params.getSimpleMetaData());
    }
 
-   private static ContainerCache initialise(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaData, boolean metaDataHasInstanceLevelData, 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, metaData, metaDataHasInstanceLevelData, simpleMetaData);
       synchronized (mapLock)
@@ -221,7 +221,7 @@
          return null;
       }
 
-      Class proxiedClass = classAdvisor.getClazz();
+      Class<?> proxiedClass = classAdvisor.getClazz();
       if (proxiedClass == null)
       {
          proxiedClass = Object.class;
@@ -241,8 +241,8 @@
    {
       for (int i = 0 ; i < mixins.length && mixins != null; i++)
       {
-         Class[] mixinInterfaces = mixins[i].getInterfaces();
-         Class mixinClass = mixins[i].getMixin();
+         Class<?>[] mixinInterfaces = mixins[i].getInterfaces();
+         Class<?> mixinClass = mixins[i].getMixin();
 
          if (mixinInterfaces == null)
          {
@@ -259,7 +259,7 @@
       }
    }
 
-   private String[] getClassNames(Class[] classes)
+   private String[] getClassNames(Class<?>[] classes)
    {
       if (classes == null)
       {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCacheUtil.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCacheUtil.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCacheUtil.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -37,28 +37,28 @@
     * Takes a Class[] containing interface classes, and returns an array of weak references to thos class
     * objects, sorted alphabetically by name.
     */
-   public static WeakReference<Class>[] getSortedWeakReferenceForInterfaces(Class[] ifaces)
+   public static WeakReference<Class<?>>[] getSortedWeakReferenceForInterfaces(Class<?>[] ifaces)
    {
       if (ifaces == null)
       {
          return null;
       }
       
-      WeakReference<Class>[] interfaces = new WeakReference[ifaces.length];
+      WeakReference<Class<?>>[] interfaces = new WeakReference[ifaces.length];
       
       for (int i = 0 ; i < ifaces.length ; i++)
       {
-         interfaces[i] = new WeakReference<Class>(ifaces[i]);
+         interfaces[i] = new WeakReference<Class<?>>(ifaces[i]);
       }
       
       Arrays.sort(interfaces, Alphabetical.singleton);
       return interfaces;
    }
 
-   public static boolean compareClassRefs(WeakReference<Class> my, WeakReference<Class> other)
+   public static boolean compareClassRefs(WeakReference<Class<?>> my, WeakReference<Class<?>> other)
    {
-      Class myClass = my.get();
-      Class otherClass = other.get(); 
+      Class<?> myClass = my.get();
+      Class<?> otherClass = other.get(); 
       
       if (myClass == null || otherClass == null)
       {
@@ -72,7 +72,7 @@
       return true;
    }
    
-   public static boolean compareInterfaceRefs(WeakReference<Class>[] my, WeakReference<Class>[] other)
+   public static boolean compareInterfaceRefs(WeakReference<Class<?>>[] my, WeakReference<Class<?>>[] other)
    {
       if ((my == null && other != null) ||
             (my == null && other != null))
@@ -89,8 +89,8 @@
          
          for (int i = 0 ; i < my.length ; i++)
          {
-            Class myIf = my[i].get();
-            Class otherIf = other[i].get();
+            Class<?> myIf = my[i].get();
+            Class<?> otherIf = other[i].get();
             
             if (!myIf.equals(otherIf))
             {
@@ -102,14 +102,14 @@
       return true;
    }
 
-   static class Alphabetical implements Comparator
+   static class Alphabetical implements Comparator<WeakReference<Class<?>>>
    {
       static Alphabetical singleton = new Alphabetical();
       
-      public int compare(Object o1, Object o2)
+      public int compare(WeakReference<Class<?>> o1, WeakReference<Class<?>> o2)
       {
-         String name1 = ((WeakReference<Class>)o1).get().getName();
-         String name2 = ((WeakReference<Class>)o2).get().getName();
+         String name1 = o1.get().getName();
+         String name2 = o2.get().getName();
          return (name1).compareTo(name2);
       }
    }

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	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -38,12 +38,12 @@
 public class ContainerProxyCacheKey implements Serializable
 {
    private static final long serialVersionUID = 8758283842273747310L;
-   private static final WeakReference<Class>[] EMTPY_WR_ARRAY = new WeakReference[0];
+   private static final WeakReference<Class<?>>[] EMTPY_WR_ARRAY = new WeakReference[0];
    private static final AOPProxyFactoryMixin[] EMPTY_MIXIN_ARRAY = new AOPProxyFactoryMixin[0];
    
    private String managerFqn;
-   private WeakReference<Class> clazzRef;
-   private WeakReference<Class>[] addedInterfaces = EMTPY_WR_ARRAY;
+   private WeakReference<Class<?>> clazzRef;
+   private WeakReference<Class<?>>[] addedInterfaces = EMTPY_WR_ARRAY;
    
    private MetaData metaData;
    /** In case we are serializing with an unserializable MetaData in the same JVM, give a chance to make sure that the metaData is the same */
@@ -53,25 +53,25 @@
    private int hashcode = 0;
    private GUID guid = MarshalledContainerProxy.GUID;
    
-   public ContainerProxyCacheKey(String managerFqn, Class clazz)
+   public ContainerProxyCacheKey(String managerFqn, Class<?> clazz)
    {
-      this.clazzRef = new WeakReference<Class>(clazz);
+      this.clazzRef = new WeakReference<Class<?>>(clazz);
       this.managerFqn = managerFqn;
    }
    
-   public ContainerProxyCacheKey(Class clazz)
+   public ContainerProxyCacheKey(Class<?> clazz)
    {
       this("/", clazz);
    }
    
-   public ContainerProxyCacheKey(String managerFqn, Class clazz, Class[] addedInterfaces, MetaData metaData)
+   public ContainerProxyCacheKey(String managerFqn, Class<?> clazz, Class<?>[] addedInterfaces, MetaData metaData)
    {
       this(managerFqn, clazz); 
       this.addedInterfaces = ContainerCacheUtil.getSortedWeakReferenceForInterfaces(addedInterfaces);
       this.metaData = metaData; 
    }
 
-   public ContainerProxyCacheKey(String managerFqn, Class clazz, Class[] addedInterfaces, AOPProxyFactoryMixin[] addedMixins, MetaData metaData)
+   public ContainerProxyCacheKey(String managerFqn, Class<?> clazz, Class<?>[] addedInterfaces, AOPProxyFactoryMixin[] addedMixins, MetaData metaData)
    {
       this(managerFqn, clazz, addedInterfaces, metaData);
       
@@ -82,7 +82,7 @@
       }
    }
 
-   public Class getClazz()
+   public Class<?> getClazz()
    {
       return clazzRef.get();
    }
@@ -144,7 +144,7 @@
       if (hashcode == 0)
       {
          
-         Class clazz = (Class)clazzRef.get();
+         Class<?> clazz = clazzRef.get();
          StringBuffer sb = new StringBuffer();
          sb.append(managerFqn);
          if (clazz != null)
@@ -157,7 +157,7 @@
             for (int i = 0 ; i < addedInterfaces.length ; i++)
             {
                sb.append(";");
-               sb.append(((Class)addedInterfaces[i].get()).getName());
+               sb.append((addedInterfaces[i].get()).getName());
             }
          }
          
@@ -175,7 +175,7 @@
    public String toString()
    {
       StringBuffer buf = new StringBuffer("ContainerProxyCache");
-      buf.append(((Class)clazzRef.get()).getName());
+      buf.append((clazzRef.get()).getName());
       buf.append(";interfaces=");
       if (addedInterfaces == null)
       {
@@ -279,7 +279,7 @@
        out.writeUTF(managerFqn);
        out.writeObject(guid);
        out.writeObject(clazzRef.get());
-       Class[] ifs = null;
+       Class<?>[] ifs = null;
        if (addedInterfaces != null)
        {
           ifs = new Class[addedInterfaces.length];
@@ -307,14 +307,14 @@
     {
        managerFqn = in.readUTF();
        guid = (GUID)in.readObject();
-       clazzRef = new WeakReference<Class>((Class)in.readObject());
-       Class[] ifs = (Class[])in.readObject();
+       clazzRef = new WeakReference<Class<?>>((Class<?>)in.readObject());
+       Class<?>[] ifs = (Class[])in.readObject();
        if (ifs != null)
        {
           addedInterfaces = new WeakReference[ifs.length];
           for (int i = 0 ; i < ifs.length ; i++)
           {
-             addedInterfaces[i] = new WeakReference<Class>(ifs[i]);
+             addedInterfaces[i] = new WeakReference<Class<?>>(ifs[i]);
           }
        }
        metaData = (MetaData)in.readObject();
@@ -323,14 +323,14 @@
        hashcode = in.readInt();
     }
    
-   static class MixinAlphabetical implements Comparator
+   static class MixinAlphabetical implements Comparator<AOPProxyFactoryMixin>
    {
       static MixinAlphabetical singleton = new MixinAlphabetical();
       
-      public int compare(Object o1, Object o2)
+      public int compare(AOPProxyFactoryMixin o1, AOPProxyFactoryMixin o2)
       {
-         String name1 = ((AOPProxyFactoryMixin)o1).getMixin().getName();
-         String name2 = ((AOPProxyFactoryMixin)o2).getMixin().getName();
+         String name1 = o1.getMixin().getName();
+         String name2 = o2.getMixin().getName();
          return (name1).compareTo(name2);
       }
    }

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	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -89,7 +89,7 @@
    {
       try
       {
-         Class proxyClass = null;
+         Class<?> proxyClass = null;
 
          boolean isAdvised = Advised.class.isAssignableFrom(params.getProxiedClass());
 
@@ -125,19 +125,19 @@
       }
    }
 
-   private Class generateProxy(AOPProxyFactoryParameters params) throws Exception
+   private Class<?> generateProxy(AOPProxyFactoryParameters params) throws Exception
    {
-      Class proxyClass = ContainerProxyFactory.getProxyClass(params.isObjectAsSuperClass(), params.getContainerCache().getKey(), params.getContainerCache().getAdvisor());
+      Class<?> proxyClass = ContainerProxyFactory.getProxyClass(params.isObjectAsSuperClass(), params.getContainerCache().getKey(), params.getContainerCache().getAdvisor());
 
       return proxyClass;
    }
 
-   private Object instantiateAndConfigureProxy(Class proxyClass, AOPProxyFactoryParameters params) throws Exception
+   private Object instantiateAndConfigureProxy(Class<?> proxyClass, AOPProxyFactoryParameters params) throws Exception
    {
       AspectManaged proxy;
       if (params.getCtor() != null)
       {
-         Constructor ctor = proxyClass.getConstructor(params.getCtor().getSignature());
+         Constructor<?> ctor = proxyClass.getConstructor(params.getCtor().getSignature());
          proxy = (AspectManaged)ctor.newInstance(params.getCtor().getArguments());
       }
       else

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotationoverride/AnnotationOverrideTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotationoverride/AnnotationOverrideTestCase.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotationoverride/AnnotationOverrideTestCase.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -51,7 +51,7 @@
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision: 1.1 $
  */
- at SuppressWarnings({"unused", "unchecked", "cast"})
+ at SuppressWarnings({"unused", "unchecked"})
 public class AnnotationOverrideTestCase extends AOPTestWithSetup
 {
    public AnnotationOverrideTestCase(String arg0)
@@ -83,14 +83,22 @@
       container.setClass(Proxied.class);
       container.initializeClassContainer();
       
-      Some some = (Some)container.resolveAnnotation(Some.class);
+      Some some = container.resolveTypedAnnotation(Some.class);
       assertNotNull(some);
-      Other other = (Other)container.resolveAnnotation(Other.class);
+      some = (Some)container.resolveAnnotation(Some.class);
+      assertNotNull(some);
+      Other other = container.resolveTypedAnnotation(Other.class);
       assertNull(other);
+      other = (Other)container.resolveAnnotation(Other.class);
+      assertNull(other);
       
       Method m = Proxied.class.getDeclaredMethod("method");
+      some = container.resolveTypedAnnotation(m, Some.class);
+      assertNull(some);
       some = (Some)container.resolveAnnotation(m, Some.class);
       assertNull(some);
+      other = container.resolveTypedAnnotation(m, Other.class);
+      assertNotNull(other);
       other = (Other)container.resolveAnnotation(m, Other.class);
       assertNotNull(other);
       assertEquals("method", other.value());
@@ -114,84 +122,132 @@
          setupMetaData(advisor, c, m, f, classAnnotations, ctorAnnotations, methodAnnotations, fieldAnnotations);
       }
       
-      Some some = (Some)advisor.resolveAnnotation(Some.class);
+      Some some = advisor.resolveTypedAnnotation(Some.class);
       assertNotNull(some);
-      Other other = (Other)advisor.resolveAnnotation(Other.class);
+      some = (Some)advisor.resolveAnnotation(Some.class);
+      assertNotNull(some);
+      Other other = advisor.resolveTypedAnnotation(Other.class);
       assertNull(other);
+      other = (Other)advisor.resolveAnnotation(Other.class);
+      assertNull(other);
       
-      SomeAnnotation someAnn = (SomeAnnotation)advisor.resolveAnnotation(SomeAnnotation.class);
+      SomeAnnotation someAnn = advisor.resolveTypedAnnotation(SomeAnnotation.class);
       assertNotNull(someAnn);
-      OtherAnnotation otherAnn = (OtherAnnotation)advisor.resolveAnnotation(OtherAnnotation.class);
+      someAnn = (SomeAnnotation)advisor.resolveAnnotation(SomeAnnotation.class);
+      assertNotNull(someAnn);
+      OtherAnnotation otherAnn = advisor.resolveTypedAnnotation(OtherAnnotation.class);
       assertNull(otherAnn);
+      otherAnn = (OtherAnnotation)advisor.resolveAnnotation(OtherAnnotation.class);
+      assertNull(otherAnn);
       
       if (useMetaData)
       {
-         SomeMD someMD = (SomeMD)advisor.resolveAnnotation(SomeMD.class);
+         SomeMD someMD = advisor.resolveTypedAnnotation(SomeMD.class);
          assertNotNull(someMD);
-         OtherMD otherMD = (OtherMD)advisor.resolveAnnotation(OtherMD.class);
+         someMD = (SomeMD)advisor.resolveAnnotation(SomeMD.class);
+         assertNotNull(someMD);
+         OtherMD otherMD = advisor.resolveTypedAnnotation(OtherMD.class);
          assertNull(otherMD);
+         otherMD = (OtherMD)advisor.resolveAnnotation(OtherMD.class);
+         assertNull(otherMD);
       }
       
+      some = advisor.resolveTypedAnnotation(m, Some.class);
+      assertNull(some);
       some = (Some)advisor.resolveAnnotation(m, Some.class);
       assertNull(some);
+      other = advisor.resolveTypedAnnotation(m, Other.class);
+      assertNotNull(other);
       other = (Other)advisor.resolveAnnotation(m, Other.class);
       assertNotNull(other);
       assertEquals("method", other.value());
       
+      someAnn = advisor.resolveTypedAnnotation(m, SomeAnnotation.class);
+      assertNull(some);
       someAnn = (SomeAnnotation)advisor.resolveAnnotation(m, SomeAnnotation.class);
       assertNull(some);
+      otherAnn = advisor.resolveTypedAnnotation(m, OtherAnnotation.class);
+      assertNotNull(otherAnn);
       otherAnn = (OtherAnnotation)advisor.resolveAnnotation(m, OtherAnnotation.class);
       assertNotNull(otherAnn);
       assertEquals("method", otherAnn.value());
       
       if (useMetaData)
       {
-         SomeMD someMD = (SomeMD)advisor.resolveAnnotation(m, SomeMD.class);
+         SomeMD someMD = advisor.resolveTypedAnnotation(m, SomeMD.class);
          assertNull(someMD);
-         OtherMD otherMD = (OtherMD)advisor.resolveAnnotation(m, OtherMD.class);
+         someMD = (SomeMD)advisor.resolveAnnotation(m, SomeMD.class);
+         assertNull(someMD);
+         OtherMD otherMD = advisor.resolveTypedAnnotation(m, OtherMD.class);
          assertNotNull(otherMD);
+         otherMD = (OtherMD)advisor.resolveAnnotation(m, OtherMD.class);
+         assertNotNull(otherMD);
          assertEquals("method", otherMD.value());
       }
       
+      some = advisor.resolveTypedAnnotation(f, Some.class);
+      assertNull(some);
       some = (Some)advisor.resolveAnnotation(f, Some.class);
       assertNull(some);
+      other = advisor.resolveTypedAnnotation(f, Other.class);
+      assertNotNull(other);
       other = (Other)advisor.resolveAnnotation(f, Other.class);
       assertNotNull(other);
       assertEquals("field", other.value());
       
+      someAnn = advisor.resolveTypedAnnotation(f, SomeAnnotation.class);
+      assertNull(some);
       someAnn = (SomeAnnotation)advisor.resolveAnnotation(f, SomeAnnotation.class);
       assertNull(some);
+      otherAnn = advisor.resolveTypedAnnotation(f, OtherAnnotation.class);
+      assertNotNull(other);
       otherAnn = (OtherAnnotation)advisor.resolveAnnotation(f, OtherAnnotation.class);
       assertNotNull(other);
       assertEquals("field", other.value());
       
       if (useMetaData)
       {
-         SomeMD someMD = (SomeMD)advisor.resolveAnnotation(f, SomeMD.class);
+         SomeMD someMD = advisor.resolveTypedAnnotation(f, SomeMD.class);
          assertNull(someMD);
-         OtherMD otherMD = (OtherMD)advisor.resolveAnnotation(f, OtherMD.class);
+         someMD = (SomeMD)advisor.resolveAnnotation(f, SomeMD.class);
+         assertNull(someMD);
+         OtherMD otherMD = advisor.resolveTypedAnnotation(f, OtherMD.class);
          assertNotNull(otherMD);
+         otherMD = (OtherMD)advisor.resolveAnnotation(f, OtherMD.class);
+         assertNotNull(otherMD);
          assertEquals("field", otherMD.value());
       }
       
+      some = advisor.resolveTypedAnnotation(c, Some.class);
+      assertNull(some);
       some = (Some)advisor.resolveAnnotation(c, Some.class);
       assertNull(some);
+      other = advisor.resolveTypedAnnotation(c, Other.class);
+      assertNotNull(other);
       other = (Other)advisor.resolveAnnotation(c, Other.class);
       assertNotNull(other);
       assertEquals("ctor", other.value());
 
+      someAnn = advisor.resolveTypedAnnotation(c, SomeAnnotation.class);
+      assertNull(some);
       someAnn = (SomeAnnotation)advisor.resolveAnnotation(c, SomeAnnotation.class);
       assertNull(some);
+      otherAnn = advisor.resolveTypedAnnotation(c, OtherAnnotation.class);
+      assertNotNull(other);
       otherAnn = (OtherAnnotation)advisor.resolveAnnotation(c, OtherAnnotation.class);
       assertNotNull(other);
       assertEquals("ctor", other.value());
       
       if (useMetaData)
       {
-         SomeMD someMD = (SomeMD)advisor.resolveAnnotation(c, SomeMD.class);
+         SomeMD someMD = advisor.resolveTypedAnnotation(c, SomeMD.class);
          assertNull(someMD);
-         OtherMD otherMD = (OtherMD)advisor.resolveAnnotation(c, OtherMD.class);
+         someMD = (SomeMD)advisor.resolveAnnotation(c, SomeMD.class);
+         assertNull(someMD);
+         OtherMD otherMD = advisor.resolveTypedAnnotation(c, OtherMD.class);
          assertNotNull(otherMD);
+         otherMD = (OtherMD)advisor.resolveAnnotation(c, OtherMD.class);
+         assertNotNull(otherMD);
          assertEquals("ctor", otherMD.value());
       }
       

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/InstanceOfAnnotatedTester.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/InstanceOfAnnotatedTester.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/InstanceOfAnnotatedTester.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -177,29 +177,29 @@
      Class introducedPOJO = IntroducedPOJO.class;
      ClassAdvisor advisor = AspectManager.instance().getAdvisor(introducedPOJO);
 
-     Introduced introduced = advisor.resolveAnnotation(Introduced.class);
+     Introduced introduced = advisor.resolveTypedAnnotation(Introduced.class);
      assertNotNull("Class did not have the @Introduced annotation", introduced);
      
      Constructor con = introducedPOJO.getConstructors()[0];
-     introduced = advisor.resolveAnnotation(con, Introduced.class);
+     introduced = advisor.resolveTypedAnnotation(con, Introduced.class);
      assertNotNull("Constructor did not have the @Introduced annotation", introduced);
-     Introduced2 introduced2 = advisor.resolveAnnotation(con, Introduced2.class);
+     Introduced2 introduced2 = advisor.resolveTypedAnnotation(con, Introduced2.class);
      assertNotNull("Constructor did not have the @Introduced2 annotation", introduced2);
-     Introduced3 introduced3 = advisor.resolveAnnotation(con, Introduced3.class);
+     Introduced3 introduced3 = advisor.resolveTypedAnnotation(con, Introduced3.class);
      assertNull("Constructor has the @Introduced3 annotation", introduced3);
      
      Field field = introducedPOJO.getField("field");
-     introduced = advisor.resolveAnnotation(field, Introduced.class);
+     introduced = advisor.resolveTypedAnnotation(field, Introduced.class);
      assertNotNull("Field did not have the @Introduced annotation", introduced);
-     introduced2 = advisor.resolveAnnotation(field, Introduced2.class);
+     introduced2 = advisor.resolveTypedAnnotation(field, Introduced2.class);
      assertNotNull("Field did not have the @Introduced2 annotation", introduced2);
      
      Method method = introducedPOJO.getMethod("someMethod", new Class[]{Type.class, Type.class});
-     introduced = advisor.resolveAnnotation(method, Introduced.class);
+     introduced = advisor.resolveTypedAnnotation(method, Introduced.class);
      assertNotNull("Method did not have the @Introduced annotation", introduced);
-     introduced2 = advisor.resolveAnnotation(method, Introduced2.class);
+     introduced2 = advisor.resolveTypedAnnotation(method, Introduced2.class);
      assertNotNull("Method did not have the @Introduced2 annotation", introduced2);
-     introduced3 = advisor.resolveAnnotation(method, Introduced3.class);
+     introduced3 = advisor.resolveTypedAnnotation(method, Introduced3.class);
      assertNull("Method has the @Introduced3 annotation", introduced3);
  }
  

Modified: projects/aop/trunk/aspects/src/main/org/jboss/aspects/concurrent/MutexAspectFactory.java
===================================================================
--- projects/aop/trunk/aspects/src/main/org/jboss/aspects/concurrent/MutexAspectFactory.java	2008-03-13 22:11:06 UTC (rev 70848)
+++ projects/aop/trunk/aspects/src/main/org/jboss/aspects/concurrent/MutexAspectFactory.java	2008-03-13 22:55:26 UTC (rev 70849)
@@ -52,7 +52,7 @@
    public Object createPerJoinpoint(Advisor advisor, Joinpoint jp)
    {
       MethodJoinpoint mj = (MethodJoinpoint)jp;
-      MutexLocked props = (MutexLocked)advisor.resolveAnnotation(mj.getMethod(), MutexLocked.class);
+      MutexLocked props = (MutexLocked)advisor.resolveTypedAnnotation(mj.getMethod(), MutexLocked.class);
       if (props.timeout() < 0)
       {
          return new MutexAspect.BlockingMutex();




More information about the jboss-cvs-commits mailing list