package packagevisibility; import org.aspectj.testing.Tester; import packagevisibility.testPackage.*; public class PackagesAndAdvice { public static void main(String[] args) { test(); } public static void test() { packagevisibility.testPackage.Class1 c1 = new packagevisibility.testPackage.Class1(); Tester.checkEqual(c1.doIt("-1"), "-1-advised-advised1-1-class1", "publically visible"); Tester.checkEqual(c1.doItToClass2("-2"), "-2-advised-advised1-2-class2", "package visible"); } } aspect A { static String message = "-advised"; String around(String s): call(String doIt(String)) && args(s) { String result = s + message; result += A1.message; return result + proceed(s); } } class A1 { static String message = "-advised1"; }