diff options
author | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
commit | 144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch) | |
tree | b12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/NewSiteAdvice.java | |
parent | fafae443719b26159ab2d7dac1c9b46b5e00b671 (diff) | |
download | aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip |
initial version
Diffstat (limited to 'tests/new/NewSiteAdvice.java')
-rw-r--r-- | tests/new/NewSiteAdvice.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/new/NewSiteAdvice.java b/tests/new/NewSiteAdvice.java new file mode 100644 index 000000000..1534c2454 --- /dev/null +++ b/tests/new/NewSiteAdvice.java @@ -0,0 +1,50 @@ +import org.aspectj.testing.Tester; + +import java.rmi.*; +import java.rmi.server.UnicastRemoteObject; + +public class NewSiteAdvice { + + public static void main(String[] args) { test(); } + + NewSiteAdvice() throws RemoteException { } + + /* here's another comment */ + public static void test() { + Tester.checkEqual(new NewSiteAdvice().go(), "ran", "rmi exception intercepted"); + Tester.check(new Integer(42) == A.cached42, "caching new 42"); + Tester.check("around NewSiteAdvice"); + } + + /** this is the way to make things go **/ + String go() { + return "ran"; // and an eol commment + } +} +aspect A { + pointcut makeNewSiteAdvice(): + within(NewSiteAdvice) && call(NewSiteAdvice.new()); + + declare soft: RemoteException: makeNewSiteAdvice(); + + NewSiteAdvice around(): makeNewSiteAdvice() { + NewSiteAdvice result = null; + try { + result = proceed(); + } catch (RemoteException e){ + } + + Tester.note("around NewSiteAdvice"); + return result; + } + + Integer around(int i): + args(i) && call(Integer.new(int)) && !within(A) { + if (i == 42) return cached42; + return proceed(i); + } + + + static Integer cached42 = new Integer(42); +} + |