You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Driver.java 879B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import org.aspectj.testing.Tester;
  2. // PR#265 before advice not run when abstract aspect has "of" clause
  3. public class Driver {
  4. public static String result = "";
  5. public static void main(String[] args) { test(); }
  6. public static void test() {
  7. new Driver();
  8. Tester.checkEqual(result, "-before-init-after", "before and after advice run");
  9. }
  10. public Driver() {
  11. init();
  12. }
  13. public void init() {
  14. result += "-init";
  15. }
  16. }
  17. // when "of" clause is removed test passes
  18. abstract aspect AbstractAspect /*of eachobject(instanceof(Driver))*/ {
  19. pointcut init(Driver tc): call(* init(..)) && this(tc);
  20. after(Driver tc): init(tc) {
  21. Driver.result += "-after";
  22. }
  23. }
  24. aspect BeforeAspectA extends AbstractAspect {
  25. before(Driver tc): init(tc) {
  26. Driver.result += "-before";
  27. }
  28. }