All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.usergrid.persistence.cassandra.util.TraceTagAspect Maven / Gradle / Ivy

There is a newer version: 0.0.27.1
Show newest version
package org.usergrid.persistence.cassandra.util;

import org.aspectj.lang.ProceedingJoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Resource;

/**
 * Use Aspects to apply a trace
 *
 * @author zznate
 */
public class TraceTagAspect {
    private static final Logger logger = LoggerFactory.getLogger(TraceTagAspect.class);

    @Resource
    private TraceTagManager traceTagManager;

    public Object applyTrace(ProceedingJoinPoint pjp) throws Throwable {
        String tagName = pjp.toLongString();
        logger.debug("Applyng trace on {}", tagName);
        TimedOpTag timedOpTag = traceTagManager.timerInstance();
        boolean success = true;
        try {
            return pjp.proceed();
        } catch (Exception e) {
            success = false;
            throw e;
        } finally {
            timedOpTag.stopAndApply(tagName,success);
            traceTagManager.addTimer(timedOpTag);
            logger.debug("TimedOpTag added in Aspect on {}", tagName);
        }

    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy