diff --git a/Bench4Q-Master/src/main/java/org/bench4q/master/api/ScriptController.java b/Bench4Q-Master/src/main/java/org/bench4q/master/api/ScriptController.java index 843a4ed4..8dbdcf04 100644 --- a/Bench4Q-Master/src/main/java/org/bench4q/master/api/ScriptController.java +++ b/Bench4Q-Master/src/main/java/org/bench4q/master/api/ScriptController.java @@ -67,6 +67,33 @@ public class ScriptController extends BaseController { this.portPoolService = portPoolService; } +// @RequestMapping(value = "/startScriptRecordServer", method = { +// RequestMethod.GET, RequestMethod.POST }) +// @ResponseBody +// public OperateScriptServerResponseModel startScriptRecordServer() +// throws UnknownHostException { +// if (!this.checkScope(UserService.NORAML_AUTHENTICATION)) { +// return buildReponseModel(false, +// "has no power for recording script!!!", "", -1, null, null, +// null); +// } +// Port port = new Port(); +// synchronized (PORT_LOCK) { +// port = this.getPortPoolService().getAPortNotInUse(); +// if (port == null) { +// return buildReponseModel(false, "port is in use!", "", -1, +// null, null, null); +// } +// } +// UUID uuid = UUID.randomUUID(); +// this.getScriptCapturer().startRecord(port.getPort(), +// buildScriptSavePath(), uuid.toString()); +// +// return buildReponseModel(true, "", this.getScriptCapturer() +// .getIpHttpCaptureServerAdress(), port.getPort(), null, null, +// uuid.toString()); +// } + @RequestMapping(value = "/startScriptRecordServer", method = { RequestMethod.GET, RequestMethod.POST }) @ResponseBody @@ -86,14 +113,31 @@ public class ScriptController extends BaseController { } } UUID uuid = UUID.randomUUID(); - this.getScriptCapturer().startRecord(port.getPort(), + this.getScriptCapturer().startRecordServer(port.getPort(), buildScriptSavePath(), uuid.toString()); return buildReponseModel(true, "", this.getScriptCapturer() .getIpHttpCaptureServerAdress(), port.getPort(), null, null, uuid.toString()); } + + @RequestMapping(value = "/startScriptRecording", method = { + RequestMethod.POST, RequestMethod.GET }) + @ResponseBody + public OperateScriptServerResponseModel startScriptRecording( + @RequestParam int port, @RequestParam String fileNameUUID) { + if (!checkScope(UserService.NORAML_AUTHENTICATION)) { + return buildReponseModel(false, + "has no power for stopScriptCapture!!!", "", -1, null, + null, null); + } + this.getScriptCapturer().startRecording(port); + + return buildReponseModel(true, "RecordServer stop", "", port, null, + null, fileNameUUID); + } + private String buildScriptSavePath() { String dirString = "Scripts" + System.getProperty("file.separator") + this.getPrincipal().getUserName() diff --git a/Bench4Q-Recorder/src/main/java/org/bench4q/recorder/ScriptCapturer.java b/Bench4Q-Recorder/src/main/java/org/bench4q/recorder/ScriptCapturer.java index 8e12a3c2..32ea3184 100644 --- a/Bench4Q-Recorder/src/main/java/org/bench4q/recorder/ScriptCapturer.java +++ b/Bench4Q-Recorder/src/main/java/org/bench4q/recorder/ScriptCapturer.java @@ -64,7 +64,30 @@ public class ScriptCapturer { e1.printStackTrace(); } } - + public void startRecordServer(int port, String fileDir, String fileName){ + try { + HttpCapture httpCapture = buildACapture(port, fileDir, fileName); + httpCapture.startProxyServer(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (UserException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + public void startRecording(int port){ + try { + HttpCapture httpCapture = this.getHttpCaptureMap().get(new Integer(port)); + httpCapture.startRecording(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (UserException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } private HttpCapture buildACapture(int port, String filePath, String fileName) { HttpCapture httpCapture = new HttpCapture(filePath, fileName, port, HTTPCATUREGENERATOR_STRING, new JTextArea()); diff --git a/Bench4Q-Web/src/main/java/org/bench4q/web/api/ScriptController.java b/Bench4Q-Web/src/main/java/org/bench4q/web/api/ScriptController.java index 9431acaf..e05ad197 100644 --- a/Bench4Q-Web/src/main/java/org/bench4q/web/api/ScriptController.java +++ b/Bench4Q-Web/src/main/java/org/bench4q/web/api/ScriptController.java @@ -277,7 +277,17 @@ public class ScriptController extends BaseController { } } - + @RequestMapping("startRecording") + @ResponseBody + public Map startRecording( + @ModelAttribute("accessToken") String accessToken, + @RequestParam String port, @RequestParam String scriptRecordUUID) { + return processScriptResponse( + new HashMap(), + this.getScriptMessager().startRecording(accessToken, + port, scriptRecordUUID)); + } + @RequestMapping("stopRecordServer") @ResponseBody public Map stopRecordServer( diff --git a/Bench4Q-Web/src/main/java/org/bench4q/web/masterMessager/ScriptMessager.java b/Bench4Q-Web/src/main/java/org/bench4q/web/masterMessager/ScriptMessager.java index da83a5db..0633bdf7 100644 --- a/Bench4Q-Web/src/main/java/org/bench4q/web/masterMessager/ScriptMessager.java +++ b/Bench4Q-Web/src/main/java/org/bench4q/web/masterMessager/ScriptMessager.java @@ -27,6 +27,16 @@ public class ScriptMessager extends MasterMessager { } + public OperateScriptServerResponseModel startRecording( + String accessToken, String port, String fileNameUUID) { + String url = this.getBaseUrl() + "/startRecording"; + Map params = new HashMap(); + params.put("port", port); + params.put("fileNameUUID", fileNameUUID); + return this.getOperateScriptServerResponseModelByPost(url, params, + accessToken); + } + public OperateScriptServerResponseModel stopScriptRecordServer( String accessToken, String port, String fileNameUUID) { String url = this.getBaseUrl() + "/stopScriptRecordServer";