aboutsummaryrefslogtreecommitdiffstats
path: root/tests/new/NewSiteAdvice.java
diff options
context:
space:
mode:
authorwisberg <wisberg>2002-12-16 18:51:06 +0000
committerwisberg <wisberg>2002-12-16 18:51:06 +0000
commit144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch)
treeb12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/NewSiteAdvice.java
parentfafae443719b26159ab2d7dac1c9b46b5e00b671 (diff)
downloadaspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz
aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip
initial version
Diffstat (limited to 'tests/new/NewSiteAdvice.java')
-rw-r--r--tests/new/NewSiteAdvice.java50
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);
+}
+