diff --git a/Testing/Tests/Challenge_Five.json b/Testing/Tests/Challenge_Five.json deleted file mode 100644 index dbd3cd5..0000000 --- a/Testing/Tests/Challenge_Five.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Find the n'th prime number.", - "description": "Given n as input, return the n'th prime.\n\nExample:\nGiven args[0] = \"10\" return 23.", - "filename": "Challenge_Five", - "tests": [ - { - "arguments": [ - "10" - ], - "expectedReturn": 23 - }, - { - "arguments": [ - "1000" - ], - "expectedReturn": 7907 - }, - { - "arguments": [ - "25000" - ], - "expectedReturn": 287107 - }, - { - "arguments": [ - "1" - ], - "expectedReturn": 2 - } - ], - "initialCode" : { - "java" : "public class Program {\n\tpublic Object run(String[] args) {\n\t\t//Type your code here...\n\t\treturn -1;\n\t}\n}", - "javascript" : "function program(args) {\n\treturn -1;\n}" - } -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index fa1e1c6..b425cc8 100644 --- a/build.gradle +++ b/build.gradle @@ -42,4 +42,5 @@ dependencies { compile("org.webjars:jquery:3.1.0") compile("org.webjars:requirejs:2.3.1") compile("com.google.code.gson:gson:2.5") + compile group: 'com.mashape.unirest', name: 'unirest-java', version: '1.3.1' } diff --git a/src/main/java/com/htg/Application.java b/src/main/java/com/htg/Application.java index 50f53ff..6202b3b 100644 --- a/src/main/java/com/htg/Application.java +++ b/src/main/java/com/htg/Application.java @@ -3,14 +3,33 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.io.IOException; +import java.util.logging.FileHandler; +import java.util.logging.Logger; +import java.util.logging.SimpleFormatter; + @SpringBootApplication public class Application { - public static String urlToRunner = "http://localhost:4567"; - + //public static String urlToRunner = "http://localhost:4567"; + public static String urlToRunner = "http://192.168.0.105:4567"; + public static Logger logger = Logger.getLogger("Logger"); + private static FileHandler fileHandler; public static void main(String[] args) { + try { + + fileHandler = new FileHandler("Server.log"); + logger.addHandler(fileHandler); + SimpleFormatter formatter = new SimpleFormatter(); + fileHandler.setFormatter(formatter); + logger.info("com.htg.runner.Application started!"); + + } catch (IOException e) { + e.printStackTrace(); + } + if (args.length > 0) urlToRunner = args[0]; SpringApplication.run(Application.class, args); } diff --git a/src/main/java/com/htg/Challenge.java b/src/main/java/com/htg/Challenge.java index f2a6c22..9605689 100644 --- a/src/main/java/com/htg/Challenge.java +++ b/src/main/java/com/htg/Challenge.java @@ -55,30 +55,5 @@ public void setExternalName(String externalName) { - public static void main(String[] args) { - int n = 25000; - int count = 0; - int current = 1; - - while (count != n) { - current++; - if (isPrime(current)) { - count++; - System.out.println(current); - } - } - - System.out.println(current); - } - private static boolean isPrime(int x) { - for (int i = 2; i < x / 2; i++) { - if (x % i == 0 && i != x) { - return false; - } - } - - return true; - } - } diff --git a/src/main/java/com/htg/ChallengeReader.java b/src/main/java/com/htg/ChallengeReader.java index b9d4dcc..6f6f68c 100644 --- a/src/main/java/com/htg/ChallengeReader.java +++ b/src/main/java/com/htg/ChallengeReader.java @@ -11,7 +11,6 @@ public ChallengeReader() {} public ChallengeDescription getChallengeDescriptionFromPath(String path) throws IOException { StringBuilder stringBuilder = new StringBuilder(); - System.out.println(path); Files.lines(FileSystems.getDefault().getPath(path)).forEachOrdered(stringBuilder::append); Gson gson = new Gson(); String jsonFile = stringBuilder.toString(); diff --git a/src/main/java/com/htg/GameController.java b/src/main/java/com/htg/GameController.java index e36835d..0d01ee7 100644 --- a/src/main/java/com/htg/GameController.java +++ b/src/main/java/com/htg/GameController.java @@ -17,8 +17,7 @@ public class GameController { @SendToUser("/queue/game") public GameResponse gameResponse(GameRequest gameRequest, SimpMessageHeaderAccessor simpMessageHeaderAccessor) throws Exception { String sessionID = simpMessageHeaderAccessor.getSessionAttributes().get("sessionID").toString(); - - System.out.println(state.getCurrentChallengeDescription().getName()); + Application.logger.info(sessionID + " requested new game."); return new GameResponse(state.getCurrentChallengeDescription()); } diff --git a/src/main/java/com/htg/LoginController.java b/src/main/java/com/htg/LoginController.java index 2480683..ff60f6c 100644 --- a/src/main/java/com/htg/LoginController.java +++ b/src/main/java/com/htg/LoginController.java @@ -34,6 +34,7 @@ public LoginResponse login(LoginRequest message, SimpMessageHeaderAccessor simpM String sessionID = simpMessageHeaderAccessor.getSessionAttributes().get("sessionID").toString(); User user = new User(message.getUsername()); if (serverState.addUser(sessionID, user)) { + Application.logger.info(user.getName() + " sucessfully logged in!"); return new LoginResponse("success", user.getName(), user.getScore(), serverState.getLeaderboard()); } else { return new LoginResponse("exists", user.getName(), user.getScore(), serverState.getLeaderboard()); diff --git a/src/main/java/com/htg/PMController.java b/src/main/java/com/htg/PMController.java index 5845f3a..7c14bf6 100644 --- a/src/main/java/com/htg/PMController.java +++ b/src/main/java/com/htg/PMController.java @@ -5,6 +5,7 @@ import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; +import org.apache.http.conn.HttpHostConnectException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; @@ -32,12 +33,21 @@ public PMResponse codeCheck(PMRequest pmRequest, SimpMessageHeaderAccessor simpM String sessionID = simpMessageHeaderAccessor.getSessionAttributes().get("sessionID").toString(); String challengeID = state.getCurrentChallengeDescription().getFilename(); - if (sessionID == null) return new PMResponse("You need to be logged in!!!"); + if (sessionID == null || state.getUser(sessionID) == null) { + Application.logger.info("Someone submitted code without being logged in!"); + return new PMResponse("You need to be logged in!!! Please refresh the page."); + } String code = pmRequest.getCode(); String challenge = state.getCurrentChallengeDescription().getFilename(); - String resultFromCall = callRunManager(code, sessionID, challenge); + String resultFromCall = ""; + try { + resultFromCall = callRunManager(code, sessionID, challenge); + } catch (Exception e) { + Application.logger.severe("Error connecting to code runner. Service down?"); + return new PMResponse("Error connecting to the code runner. Please try again!"); + } // Check if all tests are completed try { @@ -82,12 +92,12 @@ public PMResponse codeCheck(PMRequest pmRequest, SimpMessageHeaderAccessor simpM } - private String callRunManager(String code, String sessionID, String challenge) throws UnirestException { + private String callRunManager(String code, String sessionID, String challenge) throws Exception { RunRequest runRequest = new RunRequest(sessionID, code, challenge); String url = Application.urlToRunner; - HttpResponse jsonResponse = Unirest.post(url) + HttpResponse jsonResponse = Unirest.post(url) .header("accept", "application/json") .body(new Gson().toJson(runRequest)).asString(); @@ -120,7 +130,7 @@ private String createOutputString(RunnerResult runnerResult) { public void announceWin(String winnerUsername) { - System.out.println("Announcing new winner"); + Application.logger.info(winnerUsername + " won the current game."); simpMessagingTemplate.convertAndSend("/topic/news", new NewsResponse("win", winnerUsername, state.getLeaderboard())); } diff --git a/src/main/java/com/htg/SubscribeEventListener.java b/src/main/java/com/htg/SubscribeEventListener.java index f1ceca4..f055217 100644 --- a/src/main/java/com/htg/SubscribeEventListener.java +++ b/src/main/java/com/htg/SubscribeEventListener.java @@ -17,7 +17,6 @@ public void onApplicationEvent(ApplicationEvent event) { if (event instanceof SessionSubscribeEvent) { SessionSubscribeEvent sessionSubscribeEvent = (SessionSubscribeEvent) event; StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(sessionSubscribeEvent.getMessage()); - System.out.println("Socket request from: " + headerAccessor.getSessionAttributes().get("sessionID")); } } } \ No newline at end of file