[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Aspect.aspectOf() behaviour
|
yes it still apply
for such a thing I think you need a facade aspect with your own map
instance(target and/or this) -> aspect instance
Alex
On 10/17/05, AVERY, Neil, FM <Neil.AVERY@xxxxxxxx> wrote:
>
> (Sorry Alex - this was sent to the wrong mailing list) - does the same still
> apply?
> We are using the latest stable aspectJ build (20051015)
> -Neil
>
> -----Original Message-----
> From: AVERY, Neil, FM
> Sent: 17 October 2005 14:24
> To: 'user@xxxxxxxxxxxxxxxxxxxxxxxx'
> Subject: Aspect.aspectOf() behaviour
>
>
> All,
> If I apply a 'perTarget' Aspect to a object and call
> Aspects.aspectOf(SimpleAroundAspect.class, testClass) then I get an
> exception, NoAspectBound...(see below)
>
> However, if a prior invocation has occured then Aspects.aspectOf(..) will
> return the Aspect that was bound....
>
> Ideally I would like to get access to an aspect bound to the object instance
> regardless of whether or not it has been invoked. Is it possible to
> determine/control the behaviour as its the kind of thing that will affect
> component lifecycle when interacting with aspects...?
>
> Cheers Neil.
>
> TEST:
> public void testDifferendAspectInstanceGetsApplied()
> throws Exception {
>
> TestClass testClass = new TestClass();
> >>>// testClass.doStuff();
>
> Object aspect1 = Aspects.aspectOf(SimpleAroundAspect.class, testClass);
> }
> }
> THROWS:
> org.aspectj.lang.NoAspectBoundException: Exception while
> initializing org.stuff.SimpleAroundAspect:
> java.lang.reflect.InvocationTargetException
> at org.aspectj.lang.Aspects.aspectOf(Aspects.java:66)
> at
> org.stuff.aspectof.SimpleAspectTest.testDifferendAspectInstanceGetsApplied(SimpleAspectTest.java:27)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at
> junit.framework.TestResult$1.protect(TestResult.java:106)
> at
> junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.aspectj.lang.Aspects.aspectOf(Aspects.java:63)
> ... 14 more
> Caused by: org.aspectj.lang.NoAspectBoundException
> at
> org.stuff.SimpleAroundAspect.aspectOf(SimpleAroundAspect.java:1)
> ... 19 more
>
> ASPECT:
> package org.stuff;
>
> import org.aspectj.lang.ProceedingJoinPoint;
> import org.aspectj.lang.annotation.*;
>
> @Aspect("pertarget(call(* org.stuff.TestClass.*(..)))")
> public class SimpleAroundAspect {
> public static int callCount = 0;
>
> @Around("call(* org.stuff.TestClass.*(..))")
> public Object invoke(ProceedingJoinPoint thisJoinPoint) throws Throwable {
>
> System.err.println("called onto SimpleAroundAspect count:" +
> callCount++);
> return thisJoinPoint.proceed();
> };
> }
>
>
>
>
>
>
> ***********************************************************************************
> The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered
> Office: 36 St Andrew Square, Edinburgh EH2 2YB.
> Authorised and regulated by the Financial Services Authority
>
> This e-mail message is confidential and for use by the
> addressee only. If the message is received by anyone other
> than the addressee, please return the message to the sender
> by replying to it and then delete the message from your
> computer. Internet e-mails are not necessarily secure. The
> Royal Bank of Scotland plc does not accept responsibility for
> changes made to this message after it was sent.
>
> Whilst all reasonable care has been taken to avoid the
> transmission of viruses, it is the responsibility of the recipient to
> ensure that the onward transmission, opening or use of this
> message and any attachments will not adversely affect its
> systems or data. No responsibility is accepted by The Royal
> Bank of Scotland plc in this regard and the recipient should carry
> out such virus and other checks as it considers appropriate.
> Visit our websites at:
> http://www.rbs.co.uk/CBFM
> http://www.rbsmarkets.com
> ********************************************************************************
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
>