~ 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);
} }
@ -51,24 +36,27 @@ public class BridgeMock extends BridgeServlet {
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();
@ -48,8 +47,6 @@ public class ClientMock extends ClientServlet {
} }
ride.setState(State.BOOKED); ride.setState(State.BOOKED);
sendGetRequest(ride); sendGetRequest(ride);
} }
@ -79,7 +76,6 @@ public class ClientMock extends ClientServlet {
} }
ride.setState(State.LOADED); ride.setState(State.LOADED);
sendGetRideRequestData(ride); sendGetRideRequestData(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