package org.hotswap.agent.command.impl;
import org.hotswap.agent.command.Command;
import org.hotswap.agent.logging.AgentLogger;
/**
* Execute a command in a separate thread.
*
* @author Jiri Bubnik
*/
public class CommandExecutor extends Thread {
private static AgentLogger LOGGER = AgentLogger.getLogger(CommandExecutor.class);
final Command command;
public CommandExecutor(Command command) {
this.command = command;
setDaemon(true);
}
@Override
public void run() {
try {
LOGGER.trace("Executing command {}", command);
command.executeCommand();
} finally {
finished();
}
}
/**
* Method template to register finish event
*/
public void finished() {
}
}