diff --git a/copy-restart.sh b/copy-restart.sh index 2899fd3..f016978 100755 --- a/copy-restart.sh +++ b/copy-restart.sh @@ -1,5 +1,10 @@ #!/bin/bash -cp ./mispbridge.war /home/user/app/tomcat/webapps -cp ./mispclient.war /home/user/app/tomcat/webapps + +cwd=$(pwd) + +cp "${cwd}/mirror/war/mirror.war" /home/user/app/tomcat/webapps +cp "${cwd}/mispbridge/war/mispbridge.war" /home/user/app/tomcat/webapps +cp "${cwd}/mispclient/war/mispclient.war" /home/user/app/tomcat/webapps + /home/user/app/tomcat/bin/shutdown.sh /home/user/app/tomcat/bin/startup.sh \ No newline at end of file diff --git a/make-war.sh b/make-war.sh index a22da13..5a56c17 100755 --- a/make-war.sh +++ b/make-war.sh @@ -2,20 +2,34 @@ cwd=$(pwd) -cp -r ./production/mispbridge/core/ mispbridge-war-wrapper/WEB-INF/classes +mispbridge_out='/out/production/mispbridge/com/olexyn/misp/bridge' +mispbridge_wrapper='/mispbridge/war/wrapper'; +# copy compiled code into the wrapper. +cp -r "${cwd}${mispbridge_out}" "${cwd}${mispbridge_wrapper}/WEB-INF/classes" +# compress .war +cd "${cwd}${mispbridge_wrapper}" || exit +jar -cvf ../mispbridge.war * +mispclient_out='/out/production/mispclient/com/olexyn/misp/client' +mispclient_wrapper='/mispclient/war/wrapper'; -cd warbridge +# copy compiled code into the wrapper. +cp -r "${cwd}${mispclient_out}" "${cwd}${mispclient_wrapper}/WEB-INF/classes" +# compress .war +cd "${cwd}${mispclient_wrapper}" || exit +jar -cvf ../mispclient.war * -jar -cvf ../mispbridge.war * -cd $cwd +mirror_out='/out/production/mirror/com/olexyn/mirror' +mirror_wrapper='/mirror/war/wrapper'; -cp -r ./production/mispclient/core/ mispclient-war-wrapper/WEB-INF/classes +# copy compiled code into the wrapper. +cp -r "${cwd}${mirror_out}" "${cwd}${mirror_wrapper}/WEB-INF/classes" -cd warclient -jar -cvf ../mispclient.war * \ No newline at end of file +# compress .war +cd "${cwd}${mirror_wrapper}" || exit +jar -cvf ../mirror.war * \ No newline at end of file diff --git a/mirror/README.md b/mirror/README.md new file mode 100644 index 0000000..37f6e99 --- /dev/null +++ b/mirror/README.md @@ -0,0 +1,5 @@ +#### About +The `mirror` servlet. Prints the list of request it received. +* `./src` the code. +* `./war/wrapper` supplements needed for `.war`. +* `./war/.war` copy this to `tomcat/webapps`. \ No newline at end of file diff --git a/mirror/mirror.iml b/mirror/mirror.iml index cd83e41..e0e7627 100644 --- a/mirror/mirror.iml +++ b/mirror/mirror.iml @@ -9,5 +9,9 @@ + + + + \ No newline at end of file diff --git a/mirror/src/com/olexyn/mirror/Mirror.java b/mirror/src/com/olexyn/mirror/Mirror.java new file mode 100644 index 0000000..11a2323 --- /dev/null +++ b/mirror/src/com/olexyn/mirror/Mirror.java @@ -0,0 +1,200 @@ +package com.olexyn.mirror; + +import com.olexyn.misp.helper.Ride; +import org.apache.commons.io.IOUtils; +import org.json.JSONException; +import org.json.JSONObject; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +public class Mirror extends HttpServlet { + + protected static final String MISP_CLIENT_URL = "http://localhost:9090/mispclient/core"; + + public final Map available = new HashMap<>(); + public final Map booked = new HashMap<>(); + public final Map loaded = new HashMap<>(); + + // ####### + // + // ####### + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + + + + + String payload = IOUtils.toString(request.getReader()); + + JSONObject obj = new JSONObject(); + try { + obj = new JSONObject(payload); + }catch (JSONException jsonE){ + int br = 0; + Thread handleGetUserRequestThread = new Thread(() -> { + try { + handleGetRequest(request, response); + } catch (IOException | InterruptedException e) {e.printStackTrace(); } + }); + handleGetUserRequestThread.setName("handleGetUserRequestThread"); + handleGetUserRequestThread.start(); + } + + Ride ridePayload = new Ride(payload); + boolean hasID = ridePayload.getID() != null; + boolean hasRequest = ridePayload.getRequest() != null; + boolean hasData = ridePayload.getData() != null; + + + + + if (hasID && hasRequest && hasData) { + Thread handleGetRideRequestDataThread = new Thread(() -> { + try { + handleGetRideRequestData(request, response); + } catch (IOException | InterruptedException e) { e.printStackTrace(); } + }); + handleGetRideRequestDataThread.setName("handleGetRideRequestDataThread"); + handleGetRideRequestDataThread.start(); + } + + + } + + + /** + * handle GET (Link) + * remove Ride from AvailableRides + * add Ride to ReservedRides + * send OK (Ride) to mispclient + * send OK (Ride) to public + */ + protected void handleGetRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + final Ride ride; + String parsedRequest = IOUtils.toString(request.getReader()); + + + synchronized (available) { + + while (available.size() < 1) { + available.notify(); + available.wait(); + } + // ride exists only locally, thus safe + ride = available.entrySet().iterator().next().getValue(); + // ride exists only in "available", access through which is sync, thus safe + available.remove(ride.getID()); + // needed because POST (Ride) wait()s + available.notify(); + } + + synchronized (booked) { + // ride exists only locally, thus safe + booked.put(ride.getID(), ride); + // ride exists only in "booked", access through which is sync, thus safe + ride.setRequest(parsedRequest); + // POST (Ride) wait()s + booked.notify(); + } + + synchronized (loaded) { + + while (!loaded.containsKey(ride.getID())) { + loaded.notify(); + loaded.wait(); + } + + + // CARE this is tricky + // what if ride exists in another map, e.g. "available' + // in that case illegal access is possible + // be carefull to removing ride from all other references, when adding it to "loaded". + ride.setData(loaded.remove(ride.getID()).getData()); + } + + response.setStatus(200); + final PrintWriter writer = response.getWriter(); + writer.write(ride.getData()); + writer.flush(); + writer.close(); } + + + /** + * handle GET (Ride)(Data) + * if Ride in ForwardedRequest + * remove Ride from ForwardedRequest + * add Ride to NewData + * send OK (Ride)(Data) + * remove Ride from NewData + * add Ride to ForwardedData + * send OK (EOL) + * remove Ride from ForwardedData + * add Ride to EOL + */ + protected void handleGetRideRequestData(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + final String jsonPayload = IOUtils.toString(request.getReader()); + final Ride ride = new Ride(jsonPayload); + + synchronized (booked) { + booked.remove(ride.getID()); + } + + synchronized (loaded) { + loaded.put(ride.getID(), ride); + loaded.notify(); + } + } + + // ####### + // + // ####### + + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + Thread handlePostRideThread = new Thread(() -> { + try {handlePostRide(request, response); } catch (IOException | InterruptedException e) { e.printStackTrace(); } + }); + handlePostRideThread.setName("handlePostRideThread"); + handlePostRideThread.start(); + } + + + /** + * handle POST (Ride) + * add Ride to AvailableRides + */ + protected void handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { + String jsonPayload = IOUtils.toString(request.getReader()); + final Ride ride = new Ride(jsonPayload); + + synchronized (available) { + available.put(ride.getID(), ride); + available.notify(); + } + + // ID is final/threadsafe + while(!(booked.containsKey(ride.getID()))){ + + } + + synchronized (booked) { + //booked.notify(); + //booked.wait(); + ride.setRequest(booked.get(ride.getID()).getRequest()); + } + + response.setStatus(200); + PrintWriter writer = response.getWriter(); + writer.write(ride.json()); + writer.flush(); + writer.close(); + } +} \ No newline at end of file diff --git a/mirror/war/mirror.war b/mirror/war/mirror.war new file mode 100644 index 0000000..9ab0347 Binary files /dev/null and b/mirror/war/mirror.war differ diff --git a/mirror-war-wrapper/META-INF/MANIFEST.MF b/mirror/war/wrapper/META-INF/MANIFEST.MF similarity index 100% rename from mirror-war-wrapper/META-INF/MANIFEST.MF rename to mirror/war/wrapper/META-INF/MANIFEST.MF diff --git a/mirror-war-wrapper/META-INF/war-tracker b/mirror/war/wrapper/META-INF/war-tracker similarity index 100% rename from mirror-war-wrapper/META-INF/war-tracker rename to mirror/war/wrapper/META-INF/war-tracker diff --git a/mirror-war-wrapper/WEB-INF/classes/core/BridgeServlet.class b/mirror/war/wrapper/WEB-INF/classes/core/BridgeServlet.class similarity index 100% rename from mirror-war-wrapper/WEB-INF/classes/core/BridgeServlet.class rename to mirror/war/wrapper/WEB-INF/classes/core/BridgeServlet.class diff --git a/mirror-war-wrapper/WEB-INF/classes/core/Debug.class b/mirror/war/wrapper/WEB-INF/classes/core/Debug.class similarity index 100% rename from mirror-war-wrapper/WEB-INF/classes/core/Debug.class rename to mirror/war/wrapper/WEB-INF/classes/core/Debug.class diff --git a/mirror-war-wrapper/WEB-INF/classes/core/Ride.class b/mirror/war/wrapper/WEB-INF/classes/core/Ride.class similarity index 100% rename from mirror-war-wrapper/WEB-INF/classes/core/Ride.class rename to mirror/war/wrapper/WEB-INF/classes/core/Ride.class diff --git a/mirror/war/wrapper/WEB-INF/classes/mirror/Mirror.class b/mirror/war/wrapper/WEB-INF/classes/mirror/Mirror.class new file mode 100644 index 0000000..7b3a619 Binary files /dev/null and b/mirror/war/wrapper/WEB-INF/classes/mirror/Mirror.class differ diff --git a/mirror-war-wrapper/WEB-INF/lib/commons-io.jar b/mirror/war/wrapper/WEB-INF/lib/commons-io.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/commons-io.jar rename to mirror/war/wrapper/WEB-INF/lib/commons-io.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar b/mirror/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar rename to mirror/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar b/mirror/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar rename to mirror/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/json-20190722.jar b/mirror/war/wrapper/WEB-INF/lib/json-20190722.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/json-20190722.jar rename to mirror/war/wrapper/WEB-INF/lib/json-20190722.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/junit-3.8.1.jar b/mirror/war/wrapper/WEB-INF/lib/junit-3.8.1.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/junit-3.8.1.jar rename to mirror/war/wrapper/WEB-INF/lib/junit-3.8.1.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/spring-1.2.6.jar b/mirror/war/wrapper/WEB-INF/lib/spring-1.2.6.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/spring-1.2.6.jar rename to mirror/war/wrapper/WEB-INF/lib/spring-1.2.6.jar diff --git a/mirror-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar b/mirror/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar similarity index 100% rename from mirror-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar rename to mirror/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar diff --git a/mirror-war-wrapper/WEB-INF/web.xml b/mirror/war/wrapper/WEB-INF/web.xml similarity index 100% rename from mirror-war-wrapper/WEB-INF/web.xml rename to mirror/war/wrapper/WEB-INF/web.xml diff --git a/mirror-war-wrapper/hello.jsp b/mirror/war/wrapper/hello.jsp similarity index 100% rename from mirror-war-wrapper/hello.jsp rename to mirror/war/wrapper/hello.jsp diff --git a/mirror-war-wrapper/images/tomcat.gif b/mirror/war/wrapper/images/tomcat.gif similarity index 100% rename from mirror-war-wrapper/images/tomcat.gif rename to mirror/war/wrapper/images/tomcat.gif diff --git a/mirror-war-wrapper/index.html b/mirror/war/wrapper/index.html similarity index 100% rename from mirror-war-wrapper/index.html rename to mirror/war/wrapper/index.html diff --git a/misp.properties b/misp.properties deleted file mode 100644 index 05ab24f..0000000 --- a/misp.properties +++ /dev/null @@ -1,4 +0,0 @@ -path.variable.kotlin_bundled=/home/user/app/intellij-idea/plugins/Kotlin/kotlinc -path.variable.maven_repository=/home/user/.m2/repository -jdk.home.11=/usr/lib/jvm/java-11-openjdk-amd64 -javac2.instrumentation.includeJavaRuntime=false \ No newline at end of file diff --git a/misp.xml b/misp.xml deleted file mode 100644 index 58d1903..0000000 --- a/misp.xml +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mispbridge/README.md b/mispbridge/README.md index e1bcf76..da391f5 100644 --- a/mispbridge/README.md +++ b/mispbridge/README.md @@ -1,4 +1,5 @@ #### About The `mispbridge` servlet. -* `./mispbridge` copy/link this to `tomcat/webapps`. -* `./src` the source code. \ No newline at end of file +* `./src` the code. +* `./war/wrapper` supplements needed for `.war`. +* `./war/.war` copy this to `tomcat/webapps`. \ No newline at end of file diff --git a/mispbridge.war b/mispbridge/war/mispbridge.war similarity index 99% rename from mispbridge.war rename to mispbridge/war/mispbridge.war index 3902aa4..999a26d 100644 Binary files a/mispbridge.war and b/mispbridge/war/mispbridge.war differ diff --git a/mispbridge-war-wrapper/META-INF/MANIFEST.MF b/mispbridge/war/wrapper/META-INF/MANIFEST.MF similarity index 100% rename from mispbridge-war-wrapper/META-INF/MANIFEST.MF rename to mispbridge/war/wrapper/META-INF/MANIFEST.MF diff --git a/mispbridge-war-wrapper/META-INF/war-tracker b/mispbridge/war/wrapper/META-INF/war-tracker similarity index 100% rename from mispbridge-war-wrapper/META-INF/war-tracker rename to mispbridge/war/wrapper/META-INF/war-tracker diff --git a/mispbridge/war/wrapper/WEB-INF/classes/bridge/BridgeServlet.class b/mispbridge/war/wrapper/WEB-INF/classes/bridge/BridgeServlet.class new file mode 100644 index 0000000..9770e71 Binary files /dev/null and b/mispbridge/war/wrapper/WEB-INF/classes/bridge/BridgeServlet.class differ diff --git a/mispbridge/war/wrapper/WEB-INF/classes/bridge/Debug.class b/mispbridge/war/wrapper/WEB-INF/classes/bridge/Debug.class new file mode 100644 index 0000000..3558fc4 Binary files /dev/null and b/mispbridge/war/wrapper/WEB-INF/classes/bridge/Debug.class differ diff --git a/mispbridge-war-wrapper/WEB-INF/classes/core/BridgeServlet.class b/mispbridge/war/wrapper/WEB-INF/classes/core/BridgeServlet.class similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/classes/core/BridgeServlet.class rename to mispbridge/war/wrapper/WEB-INF/classes/core/BridgeServlet.class diff --git a/mispbridge-war-wrapper/WEB-INF/classes/core/Debug.class b/mispbridge/war/wrapper/WEB-INF/classes/core/Debug.class similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/classes/core/Debug.class rename to mispbridge/war/wrapper/WEB-INF/classes/core/Debug.class diff --git a/mispbridge-war-wrapper/WEB-INF/classes/core/Ride.class b/mispbridge/war/wrapper/WEB-INF/classes/core/Ride.class similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/classes/core/Ride.class rename to mispbridge/war/wrapper/WEB-INF/classes/core/Ride.class diff --git a/mispbridge-war-wrapper/WEB-INF/lib/commons-io.jar b/mispbridge/war/wrapper/WEB-INF/lib/commons-io.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/commons-io.jar rename to mispbridge/war/wrapper/WEB-INF/lib/commons-io.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar b/mispbridge/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar rename to mispbridge/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar b/mispbridge/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar rename to mispbridge/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/json-20190722.jar b/mispbridge/war/wrapper/WEB-INF/lib/json-20190722.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/json-20190722.jar rename to mispbridge/war/wrapper/WEB-INF/lib/json-20190722.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/junit-3.8.1.jar b/mispbridge/war/wrapper/WEB-INF/lib/junit-3.8.1.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/junit-3.8.1.jar rename to mispbridge/war/wrapper/WEB-INF/lib/junit-3.8.1.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/spring-1.2.6.jar b/mispbridge/war/wrapper/WEB-INF/lib/spring-1.2.6.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/spring-1.2.6.jar rename to mispbridge/war/wrapper/WEB-INF/lib/spring-1.2.6.jar diff --git a/mispbridge-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar b/mispbridge/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar rename to mispbridge/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar diff --git a/mispbridge-war-wrapper/WEB-INF/web.xml b/mispbridge/war/wrapper/WEB-INF/web.xml similarity index 100% rename from mispbridge-war-wrapper/WEB-INF/web.xml rename to mispbridge/war/wrapper/WEB-INF/web.xml diff --git a/mispbridge-war-wrapper/hello.jsp b/mispbridge/war/wrapper/hello.jsp similarity index 100% rename from mispbridge-war-wrapper/hello.jsp rename to mispbridge/war/wrapper/hello.jsp diff --git a/mispbridge-war-wrapper/images/tomcat.gif b/mispbridge/war/wrapper/images/tomcat.gif similarity index 100% rename from mispbridge-war-wrapper/images/tomcat.gif rename to mispbridge/war/wrapper/images/tomcat.gif diff --git a/mispbridge-war-wrapper/index.html b/mispbridge/war/wrapper/index.html similarity index 100% rename from mispbridge-war-wrapper/index.html rename to mispbridge/war/wrapper/index.html diff --git a/mispclient/README.md b/mispclient/README.md index 939b812..c185fdd 100644 --- a/mispclient/README.md +++ b/mispclient/README.md @@ -1,4 +1,5 @@ #### About The `mispclient` servlet. -* `./mispclient` copy/link this to `tomcat/webapps`. -* `./src` the source code. \ No newline at end of file +* `./src` the code. +* `./war/wrapper` supplements needed for `.war`. +* `./war/.war` copy this to `tomcat/webapps`. \ No newline at end of file diff --git a/mispclient.war b/mispclient/war/mispclient.war similarity index 99% rename from mispclient.war rename to mispclient/war/mispclient.war index dfa8c09..3a4fcd2 100644 Binary files a/mispclient.war and b/mispclient/war/mispclient.war differ diff --git a/mispclient-war-wrapper/META-INF/MANIFEST.MF b/mispclient/war/wrapper/META-INF/MANIFEST.MF similarity index 100% rename from mispclient-war-wrapper/META-INF/MANIFEST.MF rename to mispclient/war/wrapper/META-INF/MANIFEST.MF diff --git a/mispclient-war-wrapper/META-INF/war-tracker b/mispclient/war/wrapper/META-INF/war-tracker similarity index 100% rename from mispclient-war-wrapper/META-INF/war-tracker rename to mispclient/war/wrapper/META-INF/war-tracker diff --git a/mispclient-war-wrapper/WEB-INF/classes/META-INF/mispclient.kotlin_module b/mispclient/war/wrapper/WEB-INF/classes/META-INF/mispclient.kotlin_module similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/META-INF/mispclient.kotlin_module rename to mispclient/war/wrapper/WEB-INF/classes/META-INF/mispclient.kotlin_module diff --git a/mispclient/war/wrapper/WEB-INF/classes/client/ClientServlet.class b/mispclient/war/wrapper/WEB-INF/classes/client/ClientServlet.class new file mode 100644 index 0000000..ed0541d Binary files /dev/null and b/mispclient/war/wrapper/WEB-INF/classes/client/ClientServlet.class differ diff --git a/mispclient/war/wrapper/WEB-INF/classes/client/ConnectionHelper.class b/mispclient/war/wrapper/WEB-INF/classes/client/ConnectionHelper.class new file mode 100644 index 0000000..b9c4609 Binary files /dev/null and b/mispclient/war/wrapper/WEB-INF/classes/client/ConnectionHelper.class differ diff --git a/mispclient/war/wrapper/WEB-INF/classes/client/Debug.class b/mispclient/war/wrapper/WEB-INF/classes/client/Debug.class new file mode 100644 index 0000000..cd6e141 Binary files /dev/null and b/mispclient/war/wrapper/WEB-INF/classes/client/Debug.class differ diff --git a/mispclient/war/wrapper/WEB-INF/classes/client/PostRideRunnable.class b/mispclient/war/wrapper/WEB-INF/classes/client/PostRideRunnable.class new file mode 100644 index 0000000..754d52b Binary files /dev/null and b/mispclient/war/wrapper/WEB-INF/classes/client/PostRideRunnable.class differ diff --git a/mispclient-war-wrapper/WEB-INF/classes/core/ClientServlet.class b/mispclient/war/wrapper/WEB-INF/classes/core/ClientServlet.class similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/core/ClientServlet.class rename to mispclient/war/wrapper/WEB-INF/classes/core/ClientServlet.class diff --git a/mispclient-war-wrapper/WEB-INF/classes/core/ConnectionHelper.class b/mispclient/war/wrapper/WEB-INF/classes/core/ConnectionHelper.class similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/core/ConnectionHelper.class rename to mispclient/war/wrapper/WEB-INF/classes/core/ConnectionHelper.class diff --git a/mispclient-war-wrapper/WEB-INF/classes/core/Debug.class b/mispclient/war/wrapper/WEB-INF/classes/core/Debug.class similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/core/Debug.class rename to mispclient/war/wrapper/WEB-INF/classes/core/Debug.class diff --git a/mispclient-war-wrapper/WEB-INF/classes/core/PostRideRunnable.class b/mispclient/war/wrapper/WEB-INF/classes/core/PostRideRunnable.class similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/core/PostRideRunnable.class rename to mispclient/war/wrapper/WEB-INF/classes/core/PostRideRunnable.class diff --git a/mispclient-war-wrapper/WEB-INF/classes/core/Ride.class b/mispclient/war/wrapper/WEB-INF/classes/core/Ride.class similarity index 100% rename from mispclient-war-wrapper/WEB-INF/classes/core/Ride.class rename to mispclient/war/wrapper/WEB-INF/classes/core/Ride.class diff --git a/mispclient-war-wrapper/WEB-INF/lib/commons-io.jar b/mispclient/war/wrapper/WEB-INF/lib/commons-io.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/commons-io.jar rename to mispclient/war/wrapper/WEB-INF/lib/commons-io.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar b/mispclient/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/commons-logging-1.0.4.jar rename to mispclient/war/wrapper/WEB-INF/lib/commons-logging-1.0.4.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar b/mispclient/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar rename to mispclient/war/wrapper/WEB-INF/lib/javax.servlet-3.0.0.v201112011016.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/json-20190722.jar b/mispclient/war/wrapper/WEB-INF/lib/json-20190722.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/json-20190722.jar rename to mispclient/war/wrapper/WEB-INF/lib/json-20190722.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/junit-3.8.1.jar b/mispclient/war/wrapper/WEB-INF/lib/junit-3.8.1.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/junit-3.8.1.jar rename to mispclient/war/wrapper/WEB-INF/lib/junit-3.8.1.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/spring-1.2.6.jar b/mispclient/war/wrapper/WEB-INF/lib/spring-1.2.6.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/spring-1.2.6.jar rename to mispclient/war/wrapper/WEB-INF/lib/spring-1.2.6.jar diff --git a/mispclient-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar b/mispclient/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar similarity index 100% rename from mispclient-war-wrapper/WEB-INF/lib/spring-mock-1.2.6.jar rename to mispclient/war/wrapper/WEB-INF/lib/spring-mock-1.2.6.jar diff --git a/mispclient-war-wrapper/WEB-INF/web.xml b/mispclient/war/wrapper/WEB-INF/web.xml similarity index 100% rename from mispclient-war-wrapper/WEB-INF/web.xml rename to mispclient/war/wrapper/WEB-INF/web.xml diff --git a/mispclient-war-wrapper/hello.jsp b/mispclient/war/wrapper/hello.jsp similarity index 100% rename from mispclient-war-wrapper/hello.jsp rename to mispclient/war/wrapper/hello.jsp diff --git a/mispclient-war-wrapper/images/tomcat.gif b/mispclient/war/wrapper/images/tomcat.gif similarity index 100% rename from mispclient-war-wrapper/images/tomcat.gif rename to mispclient/war/wrapper/images/tomcat.gif diff --git a/mispclient-war-wrapper/index.html b/mispclient/war/wrapper/index.html similarity index 100% rename from mispclient-war-wrapper/index.html rename to mispclient/war/wrapper/index.html diff --git a/production/misphelper/META-INF/misphelper.kotlin_module b/production/misphelper/META-INF/misphelper.kotlin_module deleted file mode 100644 index a49347a..0000000 Binary files a/production/misphelper/META-INF/misphelper.kotlin_module and /dev/null differ