diff --git a/forward/pom.xml b/forward/pom.xml
index f212905..d42c285 100644
--- a/forward/pom.xml
+++ b/forward/pom.xml
@@ -28,7 +28,7 @@
com.olexyn.misp.helper
- misp-helper
+ helper
0.1
compile
diff --git a/forward/src/main/java/com/olexyn/misp/forward/Forward.java b/forward/src/main/java/com/olexyn/misp/forward/Forward.java
index d0eaafc..5c95439 100644
--- a/forward/src/main/java/com/olexyn/misp/forward/Forward.java
+++ b/forward/src/main/java/com/olexyn/misp/forward/Forward.java
@@ -53,6 +53,7 @@ public class Forward extends HttpServlet {
});
handleGetRideRequestDataThread.setName("handleGetRideRequestDataThread");
handleGetRideRequestDataThread.start();
+ try {handleGetRideRequestDataThread.join(); } catch (InterruptedException ignored) { }
} else {
Thread handleGetRequestThread = new Thread(() -> {
@@ -62,6 +63,7 @@ public class Forward extends HttpServlet {
});
handleGetRequestThread.setName("handleGetRequestThread");
handleGetRequestThread.start();
+ try {handleGetRequestThread.join(); } catch (InterruptedException ignored) { }
}
}
@@ -78,26 +80,25 @@ public class Forward extends HttpServlet {
final Ride ride;
-
//final ServletInputStream in = request.getInputStream();
- final String parsedRequest = null; //new String(in.readAllBytes());
- byte[] foo =null;
- try{
+ final String parsedRequest = null; //new String(in.readAllBytes());
+ byte[] foo = null;
+ try {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(byteOut);
objOut.writeObject(request);
- int br =0;
+ int br = 0;
foo = byteOut.toByteArray();
objOut.close();
byteOut.close();
- br=1;
+ br = 1;
- }catch (IOException e){
- int br =0;
+ } catch (IOException e) {
+ int br = 0;
}
- int br =0;
-
-
+ int br = 0;
+
+
synchronized (available) {
while (available.size() < 1) {
@@ -181,6 +182,7 @@ public class Forward extends HttpServlet {
});
handlePostRideThread.setName("handlePostRideThread");
handlePostRideThread.start();
+ try {handlePostRideThread.join(); } catch (InterruptedException ignored) { }
}
@@ -191,8 +193,6 @@ public class Forward extends HttpServlet {
protected void handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException {
-
-
String jsonPayload = IOUtils.toString(request.getReader());
final Ride ride = new Ride(jsonPayload);
@@ -203,7 +203,7 @@ public class Forward extends HttpServlet {
// ID is final/threadsafe
while (!(booked.containsKey(ride.getID()))) {
- Thread.sleep(50);
+ Thread.sleep(500);
}
synchronized (booked) {
diff --git a/helper/install-locally.sh b/helper/install-locally.sh
index 0fe410e..bd0a074 100755
--- a/helper/install-locally.sh
+++ b/helper/install-locally.sh
@@ -1,8 +1,8 @@
#!/bin/bash
version="0.1"
-file="target/misp-helper-${version}.jar"
+file="target/helper-${version}.jar"
groupId="com.olexyn.misp.helper"
-artifactId="misp-helper"
+artifactId="helper"
diff --git a/helper/src/main/java/com/olexyn/misp/helper/WebPrint.java b/helper/src/main/java/com/olexyn/misp/helper/WebPrint.java
index c6616a2..820be86 100644
--- a/helper/src/main/java/com/olexyn/misp/helper/WebPrint.java
+++ b/helper/src/main/java/com/olexyn/misp/helper/WebPrint.java
@@ -1,6 +1,9 @@
package com.olexyn.misp.helper;
+import org.json.JSONObject;
+
import java.util.List;
+import java.util.Map;
public class WebPrint {
@@ -30,31 +33,37 @@ public class WebPrint {
StringBuilder sb = new StringBuilder();
sb.append("
");
+
+
+
+ JSONObject obj = new JSONObject(list.get(0));
+ Map map = obj.toMap();
+
+
+
+
sb.append("");
- sb.append("");
- sb.append("URL");
- sb.append(" | ");
- sb.append("");
- sb.append("Method");
- sb.append(" | ");
- sb.append("");
- sb.append("Query");
- sb.append(" | ");
+ for (Map.Entry entry : map.entrySet()){
+ sb.append("");
+ sb.append( entry.getKey());
+ sb.append(" | ");
+ }
sb.append("
");
+
for (String entry : list) {
- String[] split = entry.split(SPLIT);
+
+ JSONObject line = new JSONObject(entry);
+ Map map2 = line.toMap();
+
sb.append("");
- sb.append("");
- sb.append(split[0]);
- sb.append(" | ");
- sb.append("");
- sb.append(split[1]);
- sb.append(" | ");
- sb.append("");
- sb.append(split[2]);
- sb.append(" | ");
+ for (Map.Entry entry2 : map2.entrySet()){
+ sb.append("");
+ sb.append(entry2.getValue().toString());
+ sb.append(" | ");
+ }
sb.append("
");
+
}
return sb.toString();
diff --git a/mirror/pom.xml b/mirror/pom.xml
index 2a4004a..31b3368 100644
--- a/mirror/pom.xml
+++ b/mirror/pom.xml
@@ -28,7 +28,7 @@
com.olexyn.misp.helper
- misp-helper
+ helper
0.1
compile
diff --git a/mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java b/mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java
index a5ce338..467563e 100644
--- a/mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java
+++ b/mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java
@@ -3,6 +3,7 @@ package com.olexyn.misp.mirror;
import com.olexyn.misp.helper.Ride;
import com.olexyn.misp.helper.WebPrint;
import org.apache.commons.io.IOUtils;
+import org.json.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -17,7 +18,7 @@ import java.util.Map;
public class Mirror extends HttpServlet {
- protected static final String MISP_CLIENT_URL = "http://localhost:9090/mispclient/core";
+
private final List list = new ArrayList<>();
@@ -26,13 +27,16 @@ public class Mirror extends HttpServlet {
private void addRequest(HttpServletRequest request){
synchronized (list) {
- StringBuffer sb = new StringBuffer();
- sb.append(request.getRequestURL().toString());
- sb.append(WebPrint.SPLIT);
- sb.append(request.getMethod());
- sb.append(WebPrint.SPLIT);
- sb.append(request.getQueryString());
- list.add(sb.toString());
+ JSONObject obj = new JSONObject();
+ obj.put("RequestURL", request.getRequestURL());
+ obj.put("RemoteAddr" , request.getRemoteAddr());
+ obj.put("Method", request.getMethod());
+ obj.put("Param", request.getParameterMap().toString());
+ obj.put("QueryString", request.getQueryString());
+ obj.put("ContextPath",request.getContextPath());
+
+
+ list.add(obj.toString());
}
}
// #######
diff --git a/reverse/pom.xml b/reverse/pom.xml
index 538df90..c4abace 100644
--- a/reverse/pom.xml
+++ b/reverse/pom.xml
@@ -27,7 +27,7 @@
com.olexyn.misp.helper
- misp-helper
+ helper
0.1
compile
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java
index 04fdfb7..9f64eb7 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java
@@ -18,7 +18,8 @@ class GetRequestRunnable implements Runnable {
synchronized (reverse.booked) {
if (reverse.booked.size() > 0) {
final Ride ride = reverse.booked.entrySet().iterator().next().getValue();
- try { reverse.sendGetRequest(ride); } catch (IOException ignored) {}
+ Thread t = new Thread(() -> { try { reverse.sendGetRequest(ride); } catch (IOException ignored) { } });
+ t.start();
}
}
}
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java
index be0cdb0..8c90c15 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java
@@ -18,7 +18,8 @@ class GetRideRequestDataRunnable implements Runnable {
synchronized (reverse.loaded) {
if (reverse.loaded.size() > 0) {
final Ride ride = reverse.loaded.entrySet().iterator().next().getValue();
- try { reverse.sendGetRideRequestData(ride); } catch (IOException ignored) {}
+ Thread t = new Thread(() -> { try { reverse.sendGetRideRequestData(ride); } catch (IOException ignored) { } });
+ t.start();
}
}
}
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java
index 256f46a..8c33bd0 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java
@@ -14,9 +14,12 @@ class PostRideRunnable implements Runnable {
public void run() {
while (true) {
synchronized (reverse.available) {
- if (reverse.available.size() < reverse.AVAILABLE_RIDES_OVERHEAD_TRIGGER) {
- for (int i = 0; i < reverse.AVAILABLE_RIDES_OVERHEAD; i++) {
- try {reverse.sendPostRide();} catch (IOException ignored) {}
+ if (Reverse.AVAILABLE_RIDES < Reverse.AVAILABLE_RIDES_OVERHEAD_TRIGGER) {
+
+ for (int i = Reverse.AVAILABLE_RIDES; i < Reverse.AVAILABLE_RIDES_OVERHEAD; i++) {
+ Reverse.AVAILABLE_RIDES++;
+ Thread t = new Thread(() -> { try { reverse.sendPostRide(); } catch (IOException ignored) { } });
+ t.start();
}
}
}
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
index 32178f2..d85aeeb 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
@@ -15,16 +15,17 @@ import java.util.Map;
public class Reverse {
- public String FORWARD_URL = "http://localhost:8090/bridge";
+ public String FORWARD_URL = "http://localhost:8090/forward";
public String APP_URL = "http://localhost:8090/app";
- public int AVAILABLE_RIDES_OVERHEAD_TRIGGER = 1;
- public int AVAILABLE_RIDES_OVERHEAD = 2;
+ public static int AVAILABLE_RIDES_OVERHEAD_TRIGGER = 1;
+ public static int AVAILABLE_RIDES_OVERHEAD = 2;
+ public static int AVAILABLE_RIDES = 0;
- public final Map available = new HashMap<>();
- public final Map booked = new HashMap<>();
- public final Map loaded = new HashMap<>();
+ final Map available = new HashMap<>();
+ final Map booked = new HashMap<>();
+ final Map loaded = new HashMap<>();
public void start() {
@@ -46,13 +47,23 @@ public class Reverse {
final Ride ride = new Ride();
- synchronized (available) { available.put(ride.getID(), ride); }
+ synchronized (available) {
+
+ available.put(ride.getID(), ride);
+
+ }
final String result = send("POST", FORWARD_URL, ride.json());
synchronized (available) {
+ AVAILABLE_RIDES--;
available.remove(ride.getID());
- ride.setRequest(new Ride(result).getRequest());
+
+
+
+ String _parsed = new Ride(result).getRequest();
+ String request = _parsed==null ? "" : _parsed;
+ ride.setRequest(request);
}
synchronized (booked) { booked.put(ride.getID(), ride); }
@@ -72,14 +83,19 @@ public class Reverse {
void sendGetRideRequestData(Ride ride) throws IOException {
+ synchronized (loaded) {loaded.remove(ride.getID()); }
+
send("GET", FORWARD_URL, ride.json());
- synchronized (loaded) {loaded.remove(ride.getID()); }
+
}
- private static String send(String method, String urlString, String body) throws IOException {
+ private String send(String method, String urlString, String body) throws IOException {
+ if (method.equals("GET")){
+ int br =0;
+ }
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(method);
@@ -104,7 +120,6 @@ public class Reverse {
}
-
}
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java b/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java
index 3c60553..ccb37df 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java
@@ -22,8 +22,8 @@ public class ReverseApp implements Runnable {
reverse.FORWARD_URL = "http://localhost:8090/forward";
reverse.APP_URL = "http://localhost:8090/app";
- reverse.AVAILABLE_RIDES_OVERHEAD_TRIGGER = 1;
- reverse.AVAILABLE_RIDES_OVERHEAD = 2;
+ Reverse.AVAILABLE_RIDES_OVERHEAD_TRIGGER = 1;
+ Reverse.AVAILABLE_RIDES_OVERHEAD = 2;
reverse.start();
}