Community
Participate
Working Groups
Very strange, reported on the list: I am using eclipse right now to do my aspectj coding, and I can't seem to create a concrete aspect in package x from an abstract aspect in package y. I always get the error: "inherited abstract pointcut bar.PrintAround.method() is not made concrete in foo.PrintAroundFoo" Here is a small example that exhibits this issue: package bar; public abstract aspect PrintAround { abstract pointcut method(); Object around(): method() { System.out.println("-before-"); Object r = proceed(); System.out.println("-after-"); return r; } } //--------------------------------------------------- package foo; public class Foo { public static void main (String[] args) { System.out.println("foo!"); } } //--------------------------------------------------- package foo; import bar.PrintAround; public aspect PrintAroundFoo extends PrintAround { pointcut method() : call (void Main(String[])); } //--------------------------------------------------- I worked around this issue before, but right now I'm trying to create a library of aspects, and it's a pain that I have to make the aspects always be part of the application namespace.
abstract pointcut must be public for this to work - we need a better message in this case
test and fix committed. Now get: error at pointcut method() : call (void Main(String[])); PrintAroundFoo.java:7:0::0 pointcut 'bar.PrintAround.method()' is not visible from type 'foo.PrintAroundFoo' - cannot override