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