package codeine.configuration; import java.io.File; import java.util.List; import org.apache.log4j.Logger; import codeine.model.Constants; import codeine.utils.FilesUtils; import codeine.utils.network.HttpUtils; public class PathHelper { private static final Logger log = Logger.getLogger(PathHelper.class); public String getMonitorsDir(String projectName) { return getProjectsDir() + File.separator + projectName + Constants.MONITORS_DIR; } public String getCommandsDir(String projectName) { return getProjectsDir() + File.separator + projectName + Constants.COMMANDS_DIR; } public String getAllCommandsInProjectOutputDir(String projectName) { return getProjectsDir() + File.separator + projectName + Constants.COMMANDS_OUTPUT_DIR; } public String getCommandOutputDir(String projectName, String command) { return getAllCommandsInProjectOutputDir(projectName) + File.separator + command; } public String getMonitorOutputDir(String projectName) { return getMonitorOutputDirAllProjects() + File.separator + projectName + Constants.MONITOR_OUTPUT_CONTEXT + Constants.NODE_PATH; } public String getCollectorOutputDir(String projectName) { return getMonitorOutputDirAllProjects() + File.separator + projectName + Constants.COLLECTOR_OUTPUT_CONTEXT + Constants.NODE_PATH; } public String getMonitorOutputDirAllProjects() { return getProjectsDir(); } public String getMonitorOutputDirWithNode(String projectName, String nodeName) { return getMonitorOutputDir(projectName) + File.separator + HttpUtils.specialEncode(nodeName); } public String getCollectorOutputDirWithNode(String projectName, String nodeName) { return getCollectorOutputDir(projectName) + File.separator + HttpUtils.specialEncode(nodeName); } public String getProjectsDir() { return Constants.getWorkarea() + Constants.PROJECT_PATH; } public static String getReadLogs() { return Constants.getHostWorkareaDir() + "/bin/readLogs"; } public static String getTarFile() { return Constants.getHostWorkareaDir() + "/tars/codeine.tar.gz"; } public String getPersistentDir() { return Constants.getPersistentDir(); } public String getVersionMappingFile() { return getPersistentDir() + File.separator + "VersionsMapping.json"; } public String getStatisticsFile() { return getPersistentDir() + File.separator + "statistics.data"; } public String getPidFile() { return Constants.getHostWorkareaDir() + File.separator + "codeine.peer.pid"; } public String getPortFile() { return Constants.getHostWorkareaDir() + File.separator + "codeine.peer.port"; } public String getVersionLabelFile(String projectName) { return getConfDir(projectName) + File.separator + "VersionLabel.json"; } public String getConfDir(String projectName) { return getProjectsDir() + File.separator + projectName; } public List<File> getMonitors(String project) { return getFilesForDir(getMonitorsDir(project)); } private List<File> getFilesForDir(String dir) { log.debug("Collecting monitors from " + dir); List<File> files = FilesUtils.listFiles(dir); if (files.isEmpty()) { log.debug("No files found to execute under " + dir); } else { log.debug("Found files: " + files); } return files; } public List<File> getCommandsOutput(String project) { return getFilesForDir(getAllCommandsInProjectOutputDir(project)); } public String getProjectDir(String projectName) { return getProjectsDir() + File.separator + projectName; } public String getCommandOutputInfoFile(String projectName, String command) { return getCommandOutputDir(projectName, command) + File.separator + Constants.JSON_COMMAND_FILE_NAME; } public String getCommandOutputFile(String projectName, String command) { return getCommandOutputDir(projectName, command) + File.separator + Constants.COMMAND_LOG_FILE; } }