JBoss Community

Cannot intercept a method

created by bbarin in JBoss AOP - View the full discussion

Hi

 

I've developed a simple aspect to measure the performance of my application, but althogh the deployment of the aspect in JBoss looks correct, the method that's aimed is not intercepted. I used the following approach:

 

- I have a performance.jar which contains the following aspect:

 

 

package com.agfa.ogpc.performance.aspects;
 
import com.agfa.ogpc.performance.dao.NeoDatisMessageProcessingDAO;
import com.agfa.ogpc.performance.dao.PerformanceDAO;
import org.jboss.aop.joinpoint.MethodInvocation;
 
import com.agfa.ogpc.performance.model.TimeElapsed;
 
public class MessageProcessingAspect {
 
    public Object intercept(final MethodInvocation invocation) throws Throwable {
        long startTime = System.currentTimeMillis();
        try {
            return invocation.invokeNext();
        } finally {
            long endTime = System.currentTimeMillis();
                        store(new TimeElapsed(startTime,endTime));
        }
    }
 
        private void store(final TimeElapsed timeElapsed) {
            PerformanceDAO<TimeElapsed> dao = new NeoDatisMessageProcessingDAO();
            dao.persist(timeElapsed);
        }
}

 

- I also have several .ears which are part of my application

- I deployed a file named performance-aop.xml in the deploy folder, that looks like:

<?xml version="1.0" encoding="UTF-8"?>
<aop>
<aspect class="com.agfa.ogpc.performance.aspects.MessageProcessingAspect"/>
<bind pointcut="execution(* com.agfa.hap.bpe.components.db.BasicStatelessDBComponent->*(..))">
    <around aspect="com.agfa.ogpc.performance.aspects.MessageProcessingAspect" name="intercept" />
</bind>    
</aop>

 

The application is deployed correctly and the -aop.xml is wellformed, but the application is not intercepted and I'm sure the method is being called (I debugged the code).

 

Then I have changed the syntax to intercept any method:

 

<?xml version="1.0" encoding="UTF-8"?>
<aop>
<aspect class="com.agfa.ogpc.performance.aspects.MessageProcessingAspect"/>
<bind pointcut="execution(* *->*(..))">
    <around aspect="com.agfa.ogpc.performance.aspects.MessageProcessingAspect" name="intercept" />
</bind>    
</aop>

 

But even after this change the aspect is not being called. I also tried to change the performance.jar to performance.aop and include a jboss-aop.xml within the META-INF folder, but without any success.

 

So, I ran out of options for the moment.... So, anyone has any idea how to solve it?

 

Thanks,

 

Bruno

Reply to this message by going to Community

Start a new discussion in JBoss AOP at Community