~ mockspeed 0.

pull/1/head
Ivan Olexyn 5 years ago
parent 8829264c57
commit ee08b92cd9

@ -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 MISP_BRIDGE_URL = "http://localhost:9090/mispbridge/core";
protected static final String APP_URL = "http://localhost:9090"; 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) { if (availableRides< ClientServlet.AVAILABLE_RIDES_OVERHEAD) {
try {clientServlet.sendPostRide(new Ride());} catch (IOException | ServletException | InterruptedException e) { e.printStackTrace(); } 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(); }
} }
} }
} }

@ -1,5 +1,6 @@
package actor; package actor;
import core.Main;
import core.MockSet; import core.MockSet;
import exchange.ExchangeMock; import exchange.ExchangeMock;
import exchange.RequestMock; import exchange.RequestMock;
@ -23,7 +24,7 @@ public class AppMock extends ActorRunnable {
public void run() { public void run() {
while (true) { while (true) {
try { try {
Thread.sleep(100); Thread.sleep(Main.MOCK_SPEED);
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();

@ -7,10 +7,7 @@ import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import core.ConnectionHelper; import core.*;
import core.MockSet;
import core.Ride;
import core.State;
import exchange.ExchangeMock; import exchange.ExchangeMock;
public class UserMock extends ActorRunnable { public class UserMock extends ActorRunnable {
@ -26,7 +23,7 @@ public class UserMock extends ActorRunnable {
public void run() { public void run() {
while (true){ while (true){
try { try {
Thread.sleep(1000); Thread.sleep(Main.MOCK_SPEED);
sendGetRequest(); sendGetRequest();
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
e.printStackTrace(); e.printStackTrace();

@ -4,32 +4,17 @@ import exchange.ExchangeMock;
import exchange.RequestMock; import exchange.RequestMock;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.mock.web.MockHttpServletRequest;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Map;
public class BridgeMock extends BridgeServlet { public class BridgeMock extends BridgeServlet {
private MockSet mockSet;
public BridgeMock(MockSet mockSet) { public BridgeMock(MockSet mockSet) {
super(); super();
mockSet.bridgeMock = this; 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) { synchronized (exchange) {
String parsedRequest = IOUtils.toString(request.getReader()); String parsedRequest = IOUtils.toString(request.getReader());
JSONObject obj = new JSONObject(parsedRequest) ; JSONObject obj = new JSONObject(parsedRequest);
parsedRequest = obj.getString("request"); 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) { synchronized (ride) {
ride.setRequest(parsedRequest); ride.setRequest(parsedRequest);
ride.setState(State.BOOKED); ride.setState(State.BOOKED);
while (ride.getState() != State.LOADED) {
while (ride.getState()!=State.LOADED) {
ride.notify(); ride.notify();
Thread.sleep(100); Thread.sleep(Main.MOCK_SPEED);
ride.wait(); ride.wait();
} }
rideMap.remove(ride.getID()); rideMap.remove(ride.getID());
exchange.response.setStatus(200); exchange.response.setStatus(200);
@ -78,19 +66,12 @@ public class BridgeMock extends BridgeServlet {
writer.close(); writer.close();
ride.notify(); ride.notify();
} }
exchange.notify(); exchange.notify();
} }
} }
/** /**
* handle GET (Ride)(Data) * handle GET (Ride)(Data)
* if Ride in ForwardedRequest * if Ride in ForwardedRequest
@ -104,6 +85,7 @@ public class BridgeMock extends BridgeServlet {
* add Ride to EOL * add Ride to EOL
*/ */
protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException {
RequestMock mockRequest = (RequestMock) request; RequestMock mockRequest = (RequestMock) request;
ExchangeMock exchange = mockRequest.exchange; ExchangeMock exchange = mockRequest.exchange;
@ -116,39 +98,16 @@ public class BridgeMock extends BridgeServlet {
thisRide.setData(parsedRide.getData()); thisRide.setData(parsedRide.getData());
thisRide.setState(State.LOADED); thisRide.setState(State.LOADED);
exchange.response.setStatus(200); exchange.response.setStatus(200);
PrintWriter writer = response.getWriter(); PrintWriter writer = response.getWriter();
writer.write(thisRide.json()); writer.write(thisRide.json());
writer.flush(); writer.flush();
writer.close(); writer.close();
thisRide.notify(); thisRide.notify();
} }
exchange.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()); String jsonPayload = IOUtils.toString(request.getReader());
Ride ride = new Ride(jsonPayload); Ride ride = new Ride(jsonPayload);
synchronized (ride) { synchronized (ride) {
rideMap.put(ride.getID(), ride.setState(State.AVAILABLE)); rideMap.put(ride.getID(), ride.setState(State.AVAILABLE));
while (ride.getState() == State.AVAILABLE) { while (ride.getState() == State.AVAILABLE) {
ride.notify(); ride.notify();
Thread.sleep(100); Thread.sleep(Main.MOCK_SPEED);
ride.wait(); ride.wait();
} }
exchange.response.setStatus(200); exchange.response.setStatus(200);
PrintWriter writer = response.getWriter(); PrintWriter writer = response.getWriter();
//writer.print(ride.json());
writer.write(ride.json()); writer.write(ride.json());
writer.flush(); writer.flush();
writer.close(); writer.close();
@ -188,9 +143,5 @@ public class BridgeMock extends BridgeServlet {
} }
exchange.notify(); exchange.notify();
} }
} }
} }

@ -1,7 +1,5 @@
package core; package core;
import core.BridgeMock;
/** /**
* Pass the MockSet. * Pass the MockSet.
* Provide a Runnable. * Provide a Runnable.

@ -1,12 +1,10 @@
package core; package core;
import exchange.ExchangeMock; import exchange.ExchangeMock;
import org.json.JSONObject;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection;
/** /**
* Wraps a ClientServlet so it can be debugged easily, i.e. without running Tomcat. * 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; private MockSet mockSet;
public ClientMock(MockSet mockSet){
public ClientMock(MockSet mockSet) {
super(); super();
mockSet.clientMock = this; mockSet.clientMock = this;
this.mockSet = mockSet; this.mockSet = mockSet;
} }
@Override @Override
void sendPostRide(Ride ride) throws IOException, ServletException, InterruptedException { void sendPostRide(Ride ride) throws IOException, ServletException, InterruptedException {
rideMap.put(ride.getID(), ride.setState(State.AVAILABLE)); rideMap.put(ride.getID(), ride.setState(State.AVAILABLE));
// Mock Exchange // Mock Exchange
ExchangeMock exchange = new ExchangeMock(); ExchangeMock exchange = new ExchangeMock();
@ -34,10 +33,10 @@ public class ClientMock extends ClientServlet {
exchange.request.setContentType("application/json"); exchange.request.setContentType("application/json");
exchange.request.setContent(ride.json().getBytes()); exchange.request.setContent(ride.json().getBytes());
synchronized (exchange){ synchronized (exchange) {
// Mock POST (Ride) // Mock POST (Ride)
exchange.notify(); exchange.notify();
mockSet.bridgeMock.doPost(exchange.request,exchange.response); mockSet.bridgeMock.doPost(exchange.request, exchange.response);
exchange.wait(); exchange.wait();
// handle OK (Ride)(Request) // handle OK (Ride)(Request)
@ -48,8 +47,6 @@ public class ClientMock extends ClientServlet {
} }
ride.setState(State.BOOKED); ride.setState(State.BOOKED);
sendGetRequest(ride); sendGetRequest(ride);
} }
@ -66,10 +63,10 @@ public class ClientMock extends ClientServlet {
exchange.request.setContentType("application/json"); exchange.request.setContentType("application/json");
exchange.request.setContent(ride.json().getBytes()); exchange.request.setContent(ride.json().getBytes());
synchronized (exchange){ synchronized (exchange) {
// Mock GET (Request) // Mock GET (Request)
exchange.notify(); exchange.notify();
mockSet.appMock.doGet(exchange.request,exchange.response); mockSet.appMock.doGet(exchange.request, exchange.response);
//exchange.wait(); //exchange.wait();
// handle OK (Data) // handle OK (Data)
@ -79,7 +76,6 @@ public class ClientMock extends ClientServlet {
} }
ride.setState(State.LOADED); ride.setState(State.LOADED);
sendGetRideRequestData(ride); sendGetRideRequestData(ride);
} }
@ -96,10 +92,10 @@ public class ClientMock extends ClientServlet {
exchange.request.setContentType("application/json"); exchange.request.setContentType("application/json");
exchange.request.setContent(ride.json().getBytes()); exchange.request.setContent(ride.json().getBytes());
synchronized (exchange){ synchronized (exchange) {
// Mock GET (Ride)(Request)(Data) // Mock GET (Ride)(Request)(Data)
exchange.notify(); exchange.notify();
mockSet.bridgeMock.doGet(exchange.request,exchange.response); mockSet.bridgeMock.doGet(exchange.request, exchange.response);
exchange.wait(); exchange.wait();
// handle OK (Ride) // handle OK (Ride)

@ -1,7 +1,5 @@
package core; package core;
import core.ClientMock;
/** /**
* Pass the MockSet. * Pass the MockSet.
* Provide a Runnable. * Provide a Runnable.

@ -2,13 +2,10 @@ package core;
import actor.AppMock; import actor.AppMock;
import actor.UserMock; import actor.UserMock;
import core.BridgeRunnable;
import core.ClientRunnable;
import core.MockSet;
public class Main { public class Main {
final public static int MOCK_SPEED = 0;
@ -34,8 +31,6 @@ public class Main {
clientThread.start(); clientThread.start();
appThread.setName("appThread"); appThread.setName("appThread");
appThread.start(); appThread.start();
int br =0;
} }
} }

@ -2,8 +2,6 @@ package core;
import actor.AppMock; import actor.AppMock;
import actor.UserMock; import actor.UserMock;
import core.BridgeMock;
import core.ClientMock;
public class MockSet { public class MockSet {
public UserMock userMock; public UserMock userMock;

Loading…
Cancel
Save