ExternalCallInterceptorAspect.java

package com.tradecloud.annotations;

import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class ExternalCallInterceptorAspect {

    private static Logger log = Logger.getLogger(ExternalCallInterceptorAspect.class);

    @Around(value = "@annotation(ExternalCallInterceptor)")
    public Object logInComingAndOutComingMessage(ProceedingJoinPoint joinPoint) {
        log.debug("Before method execution");
        try {
            log.debug("Method arguments: " + joinPoint.getArgs());
            final Object returnValue = joinPoint.proceed();
            log.debug("After method execution " + returnValue.toString());
            return returnValue;
        } catch (Throwable e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            log.debug("After method interceptor");
        }
        return null;

    }

}