From c7e7ec1d06326d980a33e2c7ac3ba0183906142b Mon Sep 17 00:00:00 2001 From: Ivan Olexyn Date: Sun, 19 Apr 2020 00:51:44 +0200 Subject: [PATCH] - consequences of simplification. --- mispbridge/src/BridgeServlet.java | 54 ++++------------------------- mispmock/src/BridgeMock.java | 56 +++++++++++++++++-------------- 2 files changed, 37 insertions(+), 73 deletions(-) diff --git a/mispbridge/src/BridgeServlet.java b/mispbridge/src/BridgeServlet.java index 98a6e12..4935830 100644 --- a/mispbridge/src/BridgeServlet.java +++ b/mispbridge/src/BridgeServlet.java @@ -13,12 +13,8 @@ public class BridgeServlet extends HttpServlet { protected static final String MISP_CLIENT_URL = "http://localhost:9090/mispclient/core"; public List availableRides = new ArrayList<>(); - public List reservedRides = new ArrayList<>(); public List deliveredRides = new ArrayList<>(); - protected List newRequests = new ArrayList<>(); - protected List forwardedRequests = new ArrayList<>(); - protected List newData = new ArrayList<>(); - protected List forwardedData = new ArrayList<>(); + protected List deliveredData = new ArrayList<>(); // ####### // @@ -32,8 +28,8 @@ public class BridgeServlet extends HttpServlet { if (jsonPayload.contains("LINK")) { Thread handleGetLinkThread = new Thread(() -> { try { - handleGetLink(request, response); - } catch (IOException e) { + handleGetRequest(request, response); + } catch (IOException | InterruptedException e) { e.printStackTrace(); } }); @@ -43,14 +39,6 @@ public class BridgeServlet extends HttpServlet { boolean hasReqeust = ridePayload.getRequest() != null; boolean hasData = ridePayload.getData() != null; - if (!hasReqeust && !hasData) { - Thread handleGetRideThread = new Thread(() -> handleGetRide(request, response)); - handleGetRideThread.start(); - } - if (hasReqeust && !hasData) { - Thread handleGetRideRequestThread = new Thread(() -> handleGetRideRequest(request, response)); - handleGetRideRequestThread.start(); - } if (hasReqeust && hasData) { Thread handleGetRideRequestDataThread = new Thread(() -> handleGetRideRequestData(request, response)); handleGetRideRequestDataThread.start(); @@ -66,36 +54,8 @@ public class BridgeServlet extends HttpServlet { * send OK (Ride) to mispclient * send OK (Ride) to public */ - protected Ride handleGetLink(HttpServletRequest request, HttpServletResponse response) throws IOException { + protected void handleGetRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { // # send OK (Ride) to public - return new Ride(); - } - - - /** - * handle GET (Ride) - * if Ride in ReservedRides, - * remove Ride from ReservedRides - * add Ride to Deliveredrides - */ - protected Ride handleGetRide(HttpServletRequest request, HttpServletResponse response) { - // # send OK (Ride)(Request) - return new Ride(); - } - - - /** - * handle GET (Ride)(Request) - * if Ride in DeliveredRides - * remove Ride from DeliveredRides - * add Ride to NewRequest - * send OK (Ride)(Request) - * remove Ride from NewRequest - * add Ride to ForwardedRequest - */ - protected Ride handleGetRideRequest(HttpServletRequest request, HttpServletResponse response) { - // # send OK (Ride)(Request)(Data) - return new Ride(); } @@ -111,9 +71,8 @@ public class BridgeServlet extends HttpServlet { * remove Ride from ForwardedData * add Ride to EOL */ - protected Ride handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) { + protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) { // # send OK (EOL) - return new Ride(); } // ####### @@ -134,8 +93,7 @@ public class BridgeServlet extends HttpServlet { * handle POST (Ride) * add Ride to AvailableRides */ - protected Ride handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + protected void handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { // # send OK (Ride) to mispclient - return new Ride(); } } \ No newline at end of file diff --git a/mispmock/src/BridgeMock.java b/mispmock/src/BridgeMock.java index 80ba5e2..b4ca146 100644 --- a/mispmock/src/BridgeMock.java +++ b/mispmock/src/BridgeMock.java @@ -1,19 +1,18 @@ import org.apache.commons.io.IOUtils; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; public class BridgeMock extends BridgeServlet { private MockSet mockSet; - public BridgeMock(MockSet mockSet){ + public BridgeMock(MockSet mockSet) { super(); - mockSet.bridgeMock=this; + mockSet.bridgeMock = this; this.mockSet = mockSet; } @@ -23,26 +22,35 @@ public class BridgeMock extends BridgeServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - super.doGet(request,response); + super.doGet(request, response); } /** - * handle GET (Link) - * remove Ride from AvailableRides - * add Ride to ReservedRides - * send OK (Ride) to mispclient - * send OK (Ride) to public + * handle GET (Request)
+ * - wait for availableRides to have an entry
+ * - move move Ride to deliveredRides
+ * - wait for Ride to have Data
+ * - respond to the original request with Data */ - protected Ride handleGetLink(HttpServletRequest request, HttpServletResponse response) throws IOException { - Ride ride = null; - if(availableRides.size()>0){ - ride = availableRides.remove(0); - reservedRides.add(ride); + @Override + protected void handleGetRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + + while (!(availableRides.size() > 0)) { Thread.sleep(100); } + + Ride ride = availableRides.remove(0); + deliveredRides.add(ride); + while (ride.getData() == null) { + ride.notify(); + ride.wait(); } - // # send OK (Ride) to public - return null; + + + PrintWriter writer = response.getWriter(); + writer.print(ride.getData()); + + } @@ -52,9 +60,9 @@ public class BridgeMock extends BridgeServlet { * remove Ride from ReservedRides * add Ride to Deliveredrides */ - protected Ride handleGetRide(HttpServletRequest request, HttpServletResponse response) { + protected void handleGetRide(HttpServletRequest request, HttpServletResponse response) { // # send OK (Ride)(Request) - return new Ride(); + new Ride(); } @@ -85,9 +93,9 @@ public class BridgeMock extends BridgeServlet { * remove Ride from ForwardedData * add Ride to EOL */ - protected Ride handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) { + protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) { // # send OK (EOL) - return new Ride(); + new Ride(); } // ####### @@ -96,7 +104,7 @@ public class BridgeMock extends BridgeServlet { @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - super.doPost(request,response); + super.doPost(request, response); } @@ -105,7 +113,7 @@ public class BridgeMock extends BridgeServlet { * add Ride to AvailableRides */ @Override - protected Ride handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + protected void handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { // WIP wait till GET (LINK) arrives. String jsonPayload = IOUtils.toString(request.getReader()); Ride ride = new Ride(jsonPayload); @@ -117,9 +125,7 @@ public class BridgeMock extends BridgeServlet { availableRides.get(i).wait(); // # send OK (Ride) to mispclient - return null; } - }