|
|
@ -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();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|