Did not try that one yet. I will try, thanks for the advice ;)

2010/1/4 Andy Clement <[email protected]>

> Hi Wim,
>
> Did you get an answer to this?  Have you tried this, which gets the
> instance and then accesses the flags through it.
>
>    pointcut indexingMethod(JMXStorageService instance):execution(*
> StorageServiceImpl.Indexer.doIndexing())  && this(instance) ;
>
>    void around(JMXStorageService instance):indexingMethod(instance){
>       instance.m_indexingStarted = true;
>        long startTime = System.currentTimeMillis();
>        proceed(instance);
>        instance.m_indexingDurationInMs = System.currentTimeMillis() -
> startTime;
>        instance.m_indexingDone = true;
>    }
>
>
> Andy
>
> 2009/12/22 Wim Deblauwe <[email protected]>:
> > Hi,
> >
> > I want to add some profiling to a (Spring) service I have. So far, I have
> > this:
> >
> > public aspect StorageServiceJmx
> > {
> >     declare parents : StorageServiceImpl implements JMXStorageService;
> >
> >     declare @type : StorageServiceImpl : @ManagedResource(objectName =
> > "com.traficon.tmsng.server.common.storage:name=storageService");
> >
> >     public interface JMXStorageService extends StorageService
> >     {
> >         boolean isIndexingStarted();
> >
> >         boolean isIndexingDone();
> >
> >         long getIndexingDurationInMs();
> >     }
> >
> >     private boolean JMXStorageService.m_indexingStarted = false;
> >     private boolean JMXStorageService.m_indexingDone = false;
> >     private long JMXStorageService.m_indexingDurationInMs = -1;
> >
> >
> >     @ManagedAttribute
> >     public boolean JMXStorageService.isIndexingStarted()
> >     {
> >         return m_indexingStarted;
> >     }
> >
> >     @ManagedAttribute
> >     public boolean JMXStorageService.isIndexingDone()
> >     {
> >         return m_indexingDone;
> >     }
> >
> >     @ManagedAttribute
> >     public long JMXStorageService.getIndexingDurationInMs()
> >     {
> >         return m_indexingDurationInMs;
> >     }
> >
> >     pointcut indexingMethod():execution(*
> > StorageServiceImpl.Indexer.doIndexing());
> >
> >     void around():indexingMethod(){
> >         m_indexingStarted = true;
> >         long startTime = System.currentTimeMillis();
> >         proceed();
> >         m_indexingDurationInMs = System.currentTimeMillis() - startTime;
> >         m_indexingDone = true;
> >     }
> >
> > }
> >
> > I have a class called 'StorageServiceImpl' that I want to make JMX
> enabled.
> > Then I also add 3 methods and 3 fields via ITD. The problem is now in the
> > around advice. The pointcut refers to a private method in a private inner
> > class of StorageServiceImpl. In my around advice, I want to update the
> > private fields I have introduced.
> >
> > How do I get a reference to the JMXStorageService in the around advice so
> I
> > can set the fields?
> >
> > regards,
> >
> > Wim
> >
> > _______________________________________________
> > aspectj-users mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to