--- /dev/null
+interface IGuard<P> {}
+
+interface Guard<P> extends IGuard<P> {}
+
+class GuardImpl implements Guard<String> {}
+
+public class C<T> {
+
+ private boolean m1(Class<? extends IGuard<T>> guardClz) throws Exception { return false;}
+ private boolean m2(Class<? extends IGuard<T>>[] guardClz) throws Exception { return false;}
+
+ public static void main(String []argv) throws Exception {
+ GuardImpl g = new GuardImpl();
+ C<String> newC = new C<String>();
+ newC.m1(g.getClass());
+ newC.m2(new Class[]{g.getClass()});
+ }
+
+}
\ No newline at end of file
--- /dev/null
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class AspectClass{
+
+ @Pointcut("call(@Incoming * *(..))")
+ public void incomingMessage() {
+ }
+
+
+ @Pointcut("call(@Activity * *(..))")
+ public void incomingMessage() {
+ }
+
+}
\ No newline at end of file
--- /dev/null
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Goo {}
+
+
+public class Boo {
+ public static void main(String []argv) {
+ new Boo().m(); // advises here
+ }
+
+ @Goo
+ public void m() {
+ System.err.println("");
+ }
+}
+
+aspect X {
+ before(): call(* *(..)) && !@withincode(Goo) {
+ }
+}
\ No newline at end of file