Get the RunnerĀ here
Category Archives: Fitnesse
Fitnesse Runner
SVN Fitnesse Integration
TODO
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SVNCMSystem { private static final String RECENT_CHANGES_FILES = "RecentChanges"; private static final String ERROR_LOGS_FILES = "ErrorLogs"; private static final String PROPERTIES_FILES = ".xml"; private static final String TXT_FILES = ".txt"; private static final String ZIP_FILES = ".zip"; private static final String DIRECTORY_SEPARATOR = "/"; public static synchronized void cmUpdate(String file, String payload) throws IOException, InterruptedException { if (isNotIgnorable(file)) { Process addProcess = Runtime.getRuntime().exec("svn add " + file); processOutput(addProcess); Process commitProcess = Runtime.getRuntime().exec("svn commit -m 'Commiting' " + file); processOutput(commitProcess); } } public static synchronized void cmEdit(String file, String payload) throws IOException, InterruptedException { if (isNotIgnorable(file)) { Process addProcess = Runtime.getRuntime().exec("svn add " + file); String status = processOutput(addProcess); if (isParentNotFoundError(status, file)) { file = getParent(file); cmEdit(file, payload); } Process commitProcess = Runtime.getRuntime().exec("svn commit -m 'Commiting' " + file); processOutput(commitProcess); } } public static synchronized void cmPreDelete(String file, String payload) throws IOException, InterruptedException { Process updateProcess = Runtime.getRuntime().exec("svn update " + getParent(file)); processOutput(updateProcess); } public static synchronized void cmDelete(String file, String payload) throws IOException, InterruptedException { Process deleteProcess = Runtime.getRuntime().exec("svn delete --force " + file); processOutput(deleteProcess); Process commitProcess = Runtime.getRuntime().exec("svn commit -m 'Deleting' " + getParent(file)); processOutput(commitProcess); } public static boolean isNotIgnorable(String file) { return !(file.contains(RECENT_CHANGES_FILES) || file.contains(ERROR_LOGS_FILES) || file.contains(ZIP_FILES)); } private static synchronized String processOutput(Process process) throws IOException, InterruptedException { InputStreamReader errorProcessStreamReader = new InputStreamReader(process.getErrorStream()); BufferedReader errprProcessBufferReader = new BufferedReader((errorProcessStreamReader)); String errorProcessLineString; while ((errorProcessLineString = errprProcessBufferReader.readLine()) != null) { return errorProcessLineString; } return ""; } private static String getParent(String file) { return file.substring(0, file.lastIndexOf(DIRECTORY_SEPARATOR)); } public static boolean isParentNotFoundError(String status, String file) { return ((!status.isEmpty()) && (isContainsFiles(file))); } private static boolean isContainsFiles(String file) { return ((file.contains(TXT_FILES)) || (file.contains(PROPERTIES_FILES)) || (file.contains(ZIP_FILES))); } }