From ee08b92cd955f7d68ed52739436df183175ae752 Mon Sep 17 00:00:00 2001 From: Ivan Olexyn Date: Mon, 20 Apr 2020 02:07:26 +0200 Subject: [PATCH] ~ mockspeed 0. --- mispclient/src/core/ClientServlet.java | 4 +- mispmock/src/actor/AppMock.java | 3 +- mispmock/src/actor/UserMock.java | 7 +-- mispmock/src/core/BridgeMock.java | 73 +++++--------------------- mispmock/src/core/BridgeRunnable.java | 2 - mispmock/src/core/ClientMock.java | 24 ++++----- mispmock/src/core/ClientRunnable.java | 2 - mispmock/src/core/Main.java | 7 +-- mispmock/src/core/MockSet.java | 2 - 9 files changed, 29 insertions(+), 95 deletions(-) diff --git a/mispclient/src/core/ClientServlet.java b/mispclient/src/core/ClientServlet.java index 1966ad6..902367c 100644 --- a/mispclient/src/core/ClientServlet.java +++ b/mispclient/src/core/ClientServlet.java @@ -16,7 +16,7 @@ public class ClientServlet extends HttpServlet { protected static final String MISP_BRIDGE_URL = "http://localhost:9090/mispbridge/core"; protected static final String APP_URL = "http://localhost:9090"; - public static final int AVAILABLE_RIDES_OVERHEAD = 1; + public static final int AVAILABLE_RIDES_OVERHEAD = 512; @@ -138,7 +138,7 @@ class PostRideRunnable implements Runnable { if (availableRides< ClientServlet.AVAILABLE_RIDES_OVERHEAD) { try {clientServlet.sendPostRide(new Ride());} catch (IOException | ServletException | InterruptedException e) { e.printStackTrace(); } } - try {Thread.sleep(500);} catch (InterruptedException e) { e.printStackTrace(); } + try {Thread.sleep(100);} catch (InterruptedException e) { e.printStackTrace(); } } } } diff --git a/mispmock/src/actor/AppMock.java b/mispmock/src/actor/AppMock.java index 59aabaa..243b6c8 100644 --- a/mispmock/src/actor/AppMock.java +++ b/mispmock/src/actor/AppMock.java @@ -1,5 +1,6 @@ package actor; +import core.Main; import core.MockSet; import exchange.ExchangeMock; import exchange.RequestMock; @@ -23,7 +24,7 @@ public class AppMock extends ActorRunnable { public void run() { while (true) { try { - Thread.sleep(100); + Thread.sleep(Main.MOCK_SPEED); } catch (InterruptedException e) { e.printStackTrace(); diff --git a/mispmock/src/actor/UserMock.java b/mispmock/src/actor/UserMock.java index f5e80c0..41677cf 100644 --- a/mispmock/src/actor/UserMock.java +++ b/mispmock/src/actor/UserMock.java @@ -7,10 +7,7 @@ import java.io.DataOutputStream; import java.io.IOException; import java.net.HttpURLConnection; -import core.ConnectionHelper; -import core.MockSet; -import core.Ride; -import core.State; +import core.*; import exchange.ExchangeMock; public class UserMock extends ActorRunnable { @@ -26,7 +23,7 @@ public class UserMock extends ActorRunnable { public void run() { while (true){ try { - Thread.sleep(1000); + Thread.sleep(Main.MOCK_SPEED); sendGetRequest(); } catch (IOException | InterruptedException e) { e.printStackTrace(); diff --git a/mispmock/src/core/BridgeMock.java b/mispmock/src/core/BridgeMock.java index c8c1659..a9cf1af 100644 --- a/mispmock/src/core/BridgeMock.java +++ b/mispmock/src/core/BridgeMock.java @@ -4,32 +4,17 @@ import exchange.ExchangeMock; import exchange.RequestMock; import org.apache.commons.io.IOUtils; import org.json.JSONObject; -import org.springframework.mock.web.MockHttpServletRequest; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; -import java.util.Map; public class BridgeMock extends BridgeServlet { - private MockSet mockSet; - public BridgeMock(MockSet mockSet) { super(); mockSet.bridgeMock = this; - this.mockSet = mockSet; - } - - // ####### - // - // ####### - - @Override - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - super.doGet(request, response); } @@ -48,27 +33,30 @@ public class BridgeMock extends BridgeServlet { synchronized (exchange) { String parsedRequest = IOUtils.toString(request.getReader()); - JSONObject obj = new JSONObject(parsedRequest) ; + JSONObject obj = new JSONObject(parsedRequest); parsedRequest = obj.getString("request"); + while (mapHelper.containsLess(1, State.AVAILABLE)) { Thread.sleep(Main.MOCK_SPEED); } - while (mapHelper.containsLess(1, State.AVAILABLE)) { Thread.sleep(100); } + Ride ride = null; + for (int i = 0; ride ==null; i++){ + ride = mapHelper.pickAvailable(); + if (i!=0){ + Thread.sleep(Main.MOCK_SPEED);} + } - Ride ride = mapHelper.pickAvailable(); synchronized (ride) { ride.setRequest(parsedRequest); ride.setState(State.BOOKED); - - while (ride.getState()!=State.LOADED) { + while (ride.getState() != State.LOADED) { ride.notify(); - Thread.sleep(100); + Thread.sleep(Main.MOCK_SPEED); ride.wait(); } - rideMap.remove(ride.getID()); exchange.response.setStatus(200); @@ -78,19 +66,12 @@ public class BridgeMock extends BridgeServlet { writer.close(); ride.notify(); - } exchange.notify(); } } - - - - - - /** * handle GET (Ride)(Data) * if Ride in ForwardedRequest @@ -104,6 +85,7 @@ public class BridgeMock extends BridgeServlet { * add Ride to EOL */ protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + RequestMock mockRequest = (RequestMock) request; ExchangeMock exchange = mockRequest.exchange; @@ -116,39 +98,16 @@ public class BridgeMock extends BridgeServlet { thisRide.setData(parsedRide.getData()); thisRide.setState(State.LOADED); - - exchange.response.setStatus(200); PrintWriter writer = response.getWriter(); writer.write(thisRide.json()); writer.flush(); writer.close(); - - thisRide.notify(); - } exchange.notify(); - } - - } - - // ####### - // - // ####### - - @Override - public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - super.doPost(request, response); - - // RequestMock mockRequest = (RequestMock) request; - // ExchangeMock exchange = mockRequest.exchange; - // synchronized (exchange) { - // super.doPost(request, response); - // } - } @@ -167,20 +126,16 @@ public class BridgeMock extends BridgeServlet { String jsonPayload = IOUtils.toString(request.getReader()); Ride ride = new Ride(jsonPayload); - synchronized (ride) { rideMap.put(ride.getID(), ride.setState(State.AVAILABLE)); while (ride.getState() == State.AVAILABLE) { ride.notify(); - Thread.sleep(100); + Thread.sleep(Main.MOCK_SPEED); ride.wait(); } - - exchange.response.setStatus(200); PrintWriter writer = response.getWriter(); - //writer.print(ride.json()); writer.write(ride.json()); writer.flush(); writer.close(); @@ -188,9 +143,5 @@ public class BridgeMock extends BridgeServlet { } exchange.notify(); } - - } - - } diff --git a/mispmock/src/core/BridgeRunnable.java b/mispmock/src/core/BridgeRunnable.java index 630f13b..b740775 100644 --- a/mispmock/src/core/BridgeRunnable.java +++ b/mispmock/src/core/BridgeRunnable.java @@ -1,7 +1,5 @@ package core; -import core.BridgeMock; - /** * Pass the MockSet. * Provide a Runnable. diff --git a/mispmock/src/core/ClientMock.java b/mispmock/src/core/ClientMock.java index 8290033..a69fbc4 100644 --- a/mispmock/src/core/ClientMock.java +++ b/mispmock/src/core/ClientMock.java @@ -1,12 +1,10 @@ package core; import exchange.ExchangeMock; -import org.json.JSONObject; import javax.servlet.ServletException; -import java.io.DataOutputStream; import java.io.IOException; -import java.net.HttpURLConnection; + /** * Wraps a ClientServlet so it can be debugged easily, i.e. without running Tomcat. @@ -15,18 +13,19 @@ public class ClientMock extends ClientServlet { private MockSet mockSet; - public ClientMock(MockSet mockSet){ + + public ClientMock(MockSet mockSet) { super(); mockSet.clientMock = this; this.mockSet = mockSet; } + @Override void sendPostRide(Ride ride) throws IOException, ServletException, InterruptedException { rideMap.put(ride.getID(), ride.setState(State.AVAILABLE)); - // Mock Exchange ExchangeMock exchange = new ExchangeMock(); @@ -34,10 +33,10 @@ public class ClientMock extends ClientServlet { exchange.request.setContentType("application/json"); exchange.request.setContent(ride.json().getBytes()); - synchronized (exchange){ + synchronized (exchange) { // Mock POST (Ride) exchange.notify(); - mockSet.bridgeMock.doPost(exchange.request,exchange.response); + mockSet.bridgeMock.doPost(exchange.request, exchange.response); exchange.wait(); // handle OK (Ride)(Request) @@ -48,8 +47,6 @@ public class ClientMock extends ClientServlet { } ride.setState(State.BOOKED); sendGetRequest(ride); - - } @@ -66,10 +63,10 @@ public class ClientMock extends ClientServlet { exchange.request.setContentType("application/json"); exchange.request.setContent(ride.json().getBytes()); - synchronized (exchange){ + synchronized (exchange) { // Mock GET (Request) exchange.notify(); - mockSet.appMock.doGet(exchange.request,exchange.response); + mockSet.appMock.doGet(exchange.request, exchange.response); //exchange.wait(); // handle OK (Data) @@ -79,7 +76,6 @@ public class ClientMock extends ClientServlet { } ride.setState(State.LOADED); sendGetRideRequestData(ride); - } @@ -96,10 +92,10 @@ public class ClientMock extends ClientServlet { exchange.request.setContentType("application/json"); exchange.request.setContent(ride.json().getBytes()); - synchronized (exchange){ + synchronized (exchange) { // Mock GET (Ride)(Request)(Data) exchange.notify(); - mockSet.bridgeMock.doGet(exchange.request,exchange.response); + mockSet.bridgeMock.doGet(exchange.request, exchange.response); exchange.wait(); // handle OK (Ride) diff --git a/mispmock/src/core/ClientRunnable.java b/mispmock/src/core/ClientRunnable.java index 56c7446..f2c199e 100644 --- a/mispmock/src/core/ClientRunnable.java +++ b/mispmock/src/core/ClientRunnable.java @@ -1,7 +1,5 @@ package core; -import core.ClientMock; - /** * Pass the MockSet. * Provide a Runnable. diff --git a/mispmock/src/core/Main.java b/mispmock/src/core/Main.java index 41a55bf..592baa4 100644 --- a/mispmock/src/core/Main.java +++ b/mispmock/src/core/Main.java @@ -2,13 +2,10 @@ package core; import actor.AppMock; import actor.UserMock; -import core.BridgeRunnable; -import core.ClientRunnable; -import core.MockSet; public class Main { - + final public static int MOCK_SPEED = 0; @@ -34,8 +31,6 @@ public class Main { clientThread.start(); appThread.setName("appThread"); appThread.start(); - - int br =0; } } diff --git a/mispmock/src/core/MockSet.java b/mispmock/src/core/MockSet.java index ea804b0..56d898b 100644 --- a/mispmock/src/core/MockSet.java +++ b/mispmock/src/core/MockSet.java @@ -2,8 +2,6 @@ package core; import actor.AppMock; import actor.UserMock; -import core.BridgeMock; -import core.ClientMock; public class MockSet { public UserMock userMock;