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

org.activiti.engine.test.profiler.TotalExecutionTimeCommandInterceptor Maven / Gradle / Ivy

package org.activiti.engine.test.profiler;

import org.activiti.engine.impl.interceptor.AbstractCommandInterceptor;
import org.activiti.engine.impl.interceptor.Command;
import org.activiti.engine.impl.interceptor.CommandConfig;

/**

 */
public class TotalExecutionTimeCommandInterceptor extends AbstractCommandInterceptor {

    protected ActivitiProfiler activitiProfiler;

    public TotalExecutionTimeCommandInterceptor() {
        this.activitiProfiler = ActivitiProfiler.getInstance();
    }

    public  T execute(CommandConfig config, Command command) {
        ProfileSession currentProfileSession = activitiProfiler.getCurrentProfileSession();

        if (currentProfileSession != null) {

            String className = command.getClass().getName();
            CommandExecutionResult commandExecutionResult = new CommandExecutionResult();
            currentProfileSession.setCurrentCommandExecution(commandExecutionResult);

            commandExecutionResult.setCommandFqn(className);

            long start = System.currentTimeMillis();
            T result = next.execute(config, command);
            long end = System.currentTimeMillis();
            long totalTime = end - start;
            commandExecutionResult.setTotalTimeInMs(totalTime);

            currentProfileSession.addCommandExecution(className, commandExecutionResult);
            currentProfileSession.clearCurrentCommandExecution();

            return result;

        } else {
            return next.execute(config, command);
        }

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy