diff --git a/build-install-all.sh b/build-install-all.sh new file mode 100755 index 0000000..dfaebf8 --- /dev/null +++ b/build-install-all.sh @@ -0,0 +1,13 @@ +#!/bin/bash +cd ./forward +./install-locally.sh +cd .. +cd ./helper +./install-locally.sh +cd .. +cd ./mirror +./install-locally.sh +cd .. +cd ./reverse +./install-locally.sh +cd .. \ No newline at end of file diff --git a/embedded/pom.xml b/embedded/pom.xml new file mode 100644 index 0000000..187fddf --- /dev/null +++ b/embedded/pom.xml @@ -0,0 +1,208 @@ + + + + 4.0.0 + + com.olexyn.misp.embedded + embedded + 0.1 + + embedded + + http://www.example.com + + + UTF-8 + 1.11 + 1.11 + + + + + + junit + junit + 4.11 + test + + + com.olexyn.min.http.server + min-http-server + 0.1 + compile + + + javax.servlet + javax.servlet-api + 4.0.1 + compile + + + com.olexyn.misp.helper + misp-helper + 0.1 + compile + + + commons-io + commons-io + 2.6 + compile + + + org.eclipse.jetty + jetty-server + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-webapp + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-servlets + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-servlet + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-util + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-http + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-io + 9.4.28.v20200408 + + + org.eclipse.jetty + jetty-client + 9.4.28.v20200408 + + + org.eclipse.jetty.websocket + websocket-server + 9.4.28.v20200408 + + + org.eclipse.jetty.websocket + websocket-client + 9.4.28.v20200408 + + + org.eclipse.jetty.websocket + websocket-servlet + 9.4.28.v20200408 + + + org.eclipse.jetty.websocket + websocket-api + 9.4.28.v20200408 + + + org.eclipse.jetty.aggregate + jetty-all + 9.4.28.v20200408 + pom + test + + + com.olexyn.misp.mirror + misp-mirror + 0.1 + compile + + + com.olexyn.misp.rev + misp-rev + 0.1 + compile + + + com.olexyn.misp.reverse + reverse + 0.1 + compile + + + com.olexyn.misp.fwd + misp-fwd + 0.1 + compile + + + com.olexyn.misp.forward + forward + 0.1 + compile + + + com.olexyn.misp.mirror + mirror + 0.1 + compile + + + org.json + json + 20190722 + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + diff --git a/embedded/src/main/java/com/olexyn/misp/embedded/Embedded.java b/embedded/src/main/java/com/olexyn/misp/embedded/Embedded.java new file mode 100644 index 0000000..d728ae6 --- /dev/null +++ b/embedded/src/main/java/com/olexyn/misp/embedded/Embedded.java @@ -0,0 +1,30 @@ +package com.olexyn.misp.embedded; + +import com.olexyn.min.http.server.MinJettyServer; +import com.olexyn.misp.forward.Forward; +import com.olexyn.misp.mirror.Mirror; + +/** + * Hello world! + */ +public class Embedded implements Runnable { + + + @Override + public void run() { + MinJettyServer server = new MinJettyServer(); + + server.PORT = 8090; + server.MAX_THREADS = 100; + server.MIN_THREADS = 10; + server.IDLE_TIMEOUT = 120; + + + server.addServletWithMapping("/mirror", Mirror.class); + server.addServletWithMapping("/app", Mirror.class); + server.addServletWithMapping("/forward", Forward.class); + + + server.start(); + } +} diff --git a/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java b/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java new file mode 100644 index 0000000..7e0b081 --- /dev/null +++ b/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java @@ -0,0 +1,19 @@ +package com.olexyn.misp.embedded; + +import com.olexyn.misp.reverse.ReverseApp; + +public class RunAll { + + public static void main(String... args) throws InterruptedException { + + + Thread serverT = new Thread(new Embedded()); + serverT.start(); + + Thread.sleep(2000); + + Thread reverseT = new Thread(new ReverseApp()); + reverseT.start(); + } + +} diff --git a/misp-fwd/README.md b/forward/README.md similarity index 100% rename from misp-fwd/README.md rename to forward/README.md diff --git a/misp-fwd/install-locally.sh b/forward/install-locally.sh similarity index 66% rename from misp-fwd/install-locally.sh rename to forward/install-locally.sh index 8282387..dac99ea 100755 --- a/misp-fwd/install-locally.sh +++ b/forward/install-locally.sh @@ -1,8 +1,8 @@ #!/bin/bash version="0.1" -file="target/misp-fwd-${version}.war" -groupId="com.olexyn.misp.fwd" -artifactId="misp-fwd" +file="target/forward-${version}.war" +groupId="com.olexyn.misp.forward" +artifactId="forward" diff --git a/test-proxy/pom.xml b/forward/pom.xml similarity index 68% rename from test-proxy/pom.xml rename to forward/pom.xml index 80b2939..f212905 100644 --- a/test-proxy/pom.xml +++ b/forward/pom.xml @@ -4,19 +4,19 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.olexyn.test.proxy - test-proxy + com.olexyn.misp.forward + forward 0.1 war - test-proxy Maven Webapp + forward Maven Webapp http://www.example.com UTF-8 - 1.11 - 1.11 + 11 + 11 @@ -27,60 +27,67 @@ test - javax.servlet - javax.servlet-api - 4.0.1 - provided + com.olexyn.misp.helper + misp-helper + 0.1 + compile - org.eclipse.jetty - jetty-servlet - 9.4.28.v20200408 - provided + commons-io + commons-io + 2.6 + compile - org.eclipse.jetty - jetty-util - 9.4.28.v20200408 + org.eclipse.jetty.orbit + javax.servlet + 3.0.0.v201112011016 + compile + + + org.json + json + 20190722 + compile org.eclipse.jetty - jetty-client + jetty-server 9.4.28.v20200408 - org.junit.jupiter - junit-jupiter - RELEASE - test + com.olexyn.min.http.server + min-http-server + 0.1 + compile - org.eclipse.jetty.toolchain - jetty-test-helper - test + org.eclipse.jetty + jetty-util + 9.4.28.v20200408 + - org.eclipse.jetty.toolchain - jetty-test-helper - 5.3 - test + org.eclipse.jetty + jetty-servlets + 9.4.28.v20200408 org.eclipse.jetty - jetty-http + jetty-servlet 9.4.28.v20200408 - test - org.eclipse.jetty - jetty-io + org.eclipse.jetty.websocket + websocket-server 9.4.28.v20200408 - test + + @@ -95,12 +102,6 @@ maven-compiler-plugin 3.8.0 - - - 11 - 11 - true - maven-surefire-plugin diff --git a/misp-fwd/src/main/java/com/olexyn/misp/fwd/FwdProxy.java b/forward/src/main/java/com/olexyn/misp/forward/Forward.java similarity index 98% rename from misp-fwd/src/main/java/com/olexyn/misp/fwd/FwdProxy.java rename to forward/src/main/java/com/olexyn/misp/forward/Forward.java index 07d0b01..d0eaafc 100644 --- a/misp-fwd/src/main/java/com/olexyn/misp/fwd/FwdProxy.java +++ b/forward/src/main/java/com/olexyn/misp/forward/Forward.java @@ -1,4 +1,4 @@ -package com.olexyn.misp.fwd; +package com.olexyn.misp.forward; import com.olexyn.misp.helper.JsonHelper; import com.olexyn.misp.helper.Ride; @@ -15,7 +15,7 @@ import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; -public class FwdProxy extends HttpServlet { +public class Forward extends HttpServlet { protected static final String MISP_CLIENT_URL = "http://localhost:9090/mispclient/core"; @@ -189,6 +189,10 @@ public class FwdProxy extends HttpServlet { * 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); @@ -199,7 +203,7 @@ public class FwdProxy extends HttpServlet { // ID is final/threadsafe while (!(booked.containsKey(ride.getID()))) { - + Thread.sleep(50); } synchronized (booked) { @@ -213,5 +217,6 @@ public class FwdProxy extends HttpServlet { writer.write(ride.json()); writer.flush(); writer.close(); + } } \ No newline at end of file diff --git a/misp-fwd/src/main/webapp/WEB-INF/web.xml b/forward/src/main/webapp/WEB-INF/web.xml similarity index 90% rename from misp-fwd/src/main/webapp/WEB-INF/web.xml rename to forward/src/main/webapp/WEB-INF/web.xml index 26f5142..a7953d1 100644 --- a/misp-fwd/src/main/webapp/WEB-INF/web.xml +++ b/forward/src/main/webapp/WEB-INF/web.xml @@ -11,7 +11,7 @@ misp-fwd - com.olexyn.misp.fwd.FwdProxy + com.olexyn.misp.forward.Forward diff --git a/misp-fwd/src/main/webapp/images/io42630.png b/forward/src/main/webapp/images/io42630.png similarity index 100% rename from misp-fwd/src/main/webapp/images/io42630.png rename to forward/src/main/webapp/images/io42630.png diff --git a/misp-fwd/src/main/webapp/index.jsp b/forward/src/main/webapp/index.jsp similarity index 100% rename from misp-fwd/src/main/webapp/index.jsp rename to forward/src/main/webapp/index.jsp diff --git a/misp-helper/install-locally.sh b/helper/install-locally.sh similarity index 100% rename from misp-helper/install-locally.sh rename to helper/install-locally.sh diff --git a/misp-helper/pom.xml b/helper/pom.xml similarity index 91% rename from misp-helper/pom.xml rename to helper/pom.xml index a23a86e..933767b 100644 --- a/misp-helper/pom.xml +++ b/helper/pom.xml @@ -5,18 +5,18 @@ 4.0.0 com.olexyn.misp.helper - misp-helper + helper 0.1 - misp-helper - A simple misp-helper. + helper + A simple helper. http://www.example.com UTF-8 - 1.11 - 1.11 + 11 + 11 diff --git a/misp-helper/src/main/java/com/olexyn/misp/helper/JsonHelper.java b/helper/src/main/java/com/olexyn/misp/helper/JsonHelper.java similarity index 100% rename from misp-helper/src/main/java/com/olexyn/misp/helper/JsonHelper.java rename to helper/src/main/java/com/olexyn/misp/helper/JsonHelper.java diff --git a/misp-helper/src/main/java/com/olexyn/misp/helper/Ride.java b/helper/src/main/java/com/olexyn/misp/helper/Ride.java similarity index 100% rename from misp-helper/src/main/java/com/olexyn/misp/helper/Ride.java rename to helper/src/main/java/com/olexyn/misp/helper/Ride.java diff --git a/misp-helper/src/main/java/com/olexyn/misp/helper/WebPrint.java b/helper/src/main/java/com/olexyn/misp/helper/WebPrint.java similarity index 100% rename from misp-helper/src/main/java/com/olexyn/misp/helper/WebPrint.java rename to helper/src/main/java/com/olexyn/misp/helper/WebPrint.java diff --git a/misp-helper/src/site/site.xml b/helper/src/site/site.xml similarity index 100% rename from misp-helper/src/site/site.xml rename to helper/src/site/site.xml diff --git a/misp-mirror/README.md b/mirror/README.md similarity index 100% rename from misp-mirror/README.md rename to mirror/README.md diff --git a/misp-mirror/install-locally.sh b/mirror/install-locally.sh similarity index 100% rename from misp-mirror/install-locally.sh rename to mirror/install-locally.sh diff --git a/misp-mirror/pom.xml b/mirror/pom.xml similarity index 93% rename from misp-mirror/pom.xml rename to mirror/pom.xml index 4f9c0ad..2a4004a 100644 --- a/misp-mirror/pom.xml +++ b/mirror/pom.xml @@ -5,18 +5,18 @@ 4.0.0 com.olexyn.misp.mirror - misp-mirror + mirror 0.1 war - misp-mirror Maven Webapp + mirror Maven Webapp http://www.example.com UTF-8 - 1.11 - 1.11 + 11 + 11 diff --git a/misp-mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java b/mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java similarity index 100% rename from misp-mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java rename to mirror/src/main/java/com/olexyn/misp/mirror/Mirror.java diff --git a/misp-mirror/src/main/webapp/WEB-INF/web.xml b/mirror/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from misp-mirror/src/main/webapp/WEB-INF/web.xml rename to mirror/src/main/webapp/WEB-INF/web.xml diff --git a/misp-mirror/src/main/webapp/images/io42630.png b/mirror/src/main/webapp/images/io42630.png similarity index 100% rename from misp-mirror/src/main/webapp/images/io42630.png rename to mirror/src/main/webapp/images/io42630.png diff --git a/misp-mirror/src/main/webapp/index.jsp b/mirror/src/main/webapp/index.jsp similarity index 100% rename from misp-mirror/src/main/webapp/index.jsp rename to mirror/src/main/webapp/index.jsp diff --git a/misp-rev/install-locally.sh b/misp-rev/install-locally.sh deleted file mode 100755 index 9504c27..0000000 --- a/misp-rev/install-locally.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -version="0.1" -file="target/misp-rev-${version}.war" -groupId="com.olexyn.misp.rev" -artifactId="misp-rev" - - - -mvn package -mvn install:install-file -Dfile=${file} -DgroupId=${groupId} -DartifactId=${artifactId} -Dversion=${version} -Dpackaging=war -DgeneratePom=true diff --git a/misp-rev/pom.xml b/misp-rev/pom.xml deleted file mode 100644 index eff9fc0..0000000 --- a/misp-rev/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.olexyn.misp.rev - misp-rev - 0.1 - war - - misp-rev Maven Webapp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - junit - junit - 4.11 - test - - - com.olexyn.misp.helper - misp-helper - 0.1 - compile - - - commons-io - commons-io - 2.6 - compile - - - org.eclipse.jetty.orbit - javax.servlet - 3.0.0.v201112011016 - compile - - - org.json - json - 20190722 - compile - - - - - - - - maven-clean-plugin - 3.1.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.8.0 - - - maven-surefire-plugin - 2.22.1 - - - maven-war-plugin - 3.2.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/misp-rev/src/main/java/com/olexyn/misp/rev/ConnectionHelper.java b/misp-rev/src/main/java/com/olexyn/misp/rev/ConnectionHelper.java deleted file mode 100644 index f66d3f8..0000000 --- a/misp-rev/src/main/java/com/olexyn/misp/rev/ConnectionHelper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.olexyn.misp.rev; - -import com.olexyn.misp.helper.Ride; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import org.json.JSONObject; - -public class ConnectionHelper { - - - -} diff --git a/misp-rev/src/main/java/com/olexyn/misp/rev/Main.java b/misp-rev/src/main/java/com/olexyn/misp/rev/Main.java deleted file mode 100644 index 22843e6..0000000 --- a/misp-rev/src/main/java/com/olexyn/misp/rev/Main.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.olexyn.misp.rev; - -public class Main { - - - - public static void main(String... args){ - new RevProxy(); - } - - -} diff --git a/misp-rev/src/main/webapp/WEB-INF/web.xml b/misp-rev/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index a99e628..0000000 --- a/misp-rev/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - misp-rev - - - misp-rev - com.olexyn.misp.rev.RevProxy - - - - misp-rev - /core - - - diff --git a/misp-rev/src/main/webapp/images/io42630.png b/misp-rev/src/main/webapp/images/io42630.png deleted file mode 100644 index 01d99bf..0000000 Binary files a/misp-rev/src/main/webapp/images/io42630.png and /dev/null differ diff --git a/misp-rev/src/main/webapp/index.jsp b/misp-rev/src/main/webapp/index.jsp deleted file mode 100644 index d53407d..0000000 --- a/misp-rev/src/main/webapp/index.jsp +++ /dev/null @@ -1,20 +0,0 @@ - - -misp-rev - - - - - - - - - - -
- -
-

misp-rev

-
- - diff --git a/mispmock/README.md b/mispmock/README.md deleted file mode 100644 index 742e46c..0000000 --- a/mispmock/README.md +++ /dev/null @@ -1,16 +0,0 @@ -#### About -* Mockup for easy debugging. - * Mock *requests* and *responses*. - * Teleport them between *actors*. -* There are 4 actors which are mocked: - * `AppMock` : the App hosted on *localhost*. - * `ClientMock` : the *mispclient* Servlet. - * `BridgeMock` : the *mispbridge* Servlet. - * `UserMock` : the user agent accessing the *mispbridge* from the internet. -* `MockSet` knows all 4 actors, all the 4 actors know `MockSet`. - * Thus all 4 actors know each other. - -
- -##### Threads in Mock - ![](threads-in-mock.png) \ No newline at end of file diff --git a/mispmock/src/com/olexyn/misp/mock/AdapterMock.java b/mispmock/src/com/olexyn/misp/mock/AdapterMock.java deleted file mode 100644 index f8cfe9b..0000000 --- a/mispmock/src/com/olexyn/misp/mock/AdapterMock.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.olexyn.misp.mock; - -import com.olexyn.misp.helper.Ride; -import com.olexyn.misp.mock.exchange.ExchangeMock; -import com.olexyn.misp.adapter.Adapter; - -import javax.servlet.ServletException; -import java.io.IOException; - - -/** - * Wraps a ClientServlet so it can be debugged easily, i.e. without running Tomcat. - */ -public class AdapterMock extends Adapter { - - private MockSet mockSet; - - - public AdapterMock(MockSet mockSet) { - super(); - mockSet.adapterMock = this; - this.mockSet = mockSet; - } - - /** - * Send POST (Ride). - * Parse response. - */ - @Override - protected Ride doSendPostRide(Ride ride) throws IOException, InterruptedException, ServletException { - - // Mock Exchange - final ExchangeMock exchange = new ExchangeMock(); - exchange.request.setMethod("POST"); - exchange.request.setContentType("application/json"); - exchange.request.setContent(ride.json().getBytes()); - - synchronized (exchange) { - // Mock POST (Ride) - exchange.notify(); - mockSet.bridgeMock.doPost(exchange.request, exchange.response); - exchange.wait(); - exchange.notify(); - } - - // handle OK (Ride)(Request) - return new Ride(exchange.response.getContentAsString()); - } - - - /** - * Send GET (Request) to App. - * Parse response. - */ - @Override - protected String doSendGetRequest(String request) throws IOException { - - // Mock Exchange - final ExchangeMock exchange = new ExchangeMock(); - - exchange.request.setMethod("GET"); - exchange.request.setContent(request.getBytes()); - - synchronized (exchange) { - // Mock GET (Request) - exchange.notify(); - mockSet.appMock.doGet(exchange.request, exchange.response); - - // handle OK (Data) - exchange.notify(); - } - - return exchange.response.getContentAsString(); - } - - - /** - * Send GET (Ride)(Request)(Data). - * Parse response. - */ - @Override - protected void doSendGetRideRequest(Ride ride) throws IOException, InterruptedException { - - // Mock Exchange - final ExchangeMock exchange = new ExchangeMock(); - exchange.request.setMethod("GET"); - exchange.request.setContentType("application/json"); - exchange.request.setContent(ride.json().getBytes()); - - synchronized (exchange) { - // Mock GET (Ride)(Request)(Data) - exchange.notify(); - mockSet.bridgeMock.doGet(exchange.request, exchange.response); - exchange.wait(); - exchange.notify(); - } - } - -} \ No newline at end of file diff --git a/mispmock/src/com/olexyn/misp/mock/AdapterRunnable.java b/mispmock/src/com/olexyn/misp/mock/AdapterRunnable.java deleted file mode 100644 index 7cf08fa..0000000 --- a/mispmock/src/com/olexyn/misp/mock/AdapterRunnable.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.olexyn.misp.mock; - -/** - * Pass the MockSet. - * Provide a Runnable. - */ -public class AdapterRunnable implements Runnable { - - private MockSet mockSet; - - public AdapterRunnable(MockSet mockSet){ - super(); - this.mockSet = mockSet; - } - - @Override - public void run() { - new AdapterMock(mockSet); - } -} diff --git a/mispmock/src/com/olexyn/misp/mock/BridgeMock.java b/mispmock/src/com/olexyn/misp/mock/BridgeMock.java deleted file mode 100644 index 4948a5c..0000000 --- a/mispmock/src/com/olexyn/misp/mock/BridgeMock.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.olexyn.misp.mock; - - -import com.olexyn.misp.mock.exchange.ExchangeMock; -import com.olexyn.misp.mock.exchange.RequestMock; -import com.olexyn.misp.bridge.BridgeServlet; - - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -public class BridgeMock extends BridgeServlet { - - public BridgeMock(MockSet mockSet) { - super(); - mockSet.bridgeMock = this; - } - - - /** - * 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 - */ - @Override - protected void handleGetRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { - - final ExchangeMock exchange; - - synchronized (exchange = ((RequestMock) request).exchange) { - - super.handleGetRequest(request,response); - - exchange.notify(); - } - } - - - /** - * 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 ExchangeMock exchange; - - synchronized (exchange = ((RequestMock) request).exchange) { - - super.handleGetRideRequestData(request,response); - - exchange.notify(); - } - } - - - /** - * handle POST (Ride) - * - wait for Ride to be booked - * - send OK to Client - */ - @Override - protected void handlePostRide(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException { - - final ExchangeMock exchange; - - synchronized (exchange = ((RequestMock) request).exchange) { - - super.handlePostRide(request,response); - - exchange.notify(); - } - } -} diff --git a/mispmock/src/com/olexyn/misp/mock/BridgeRunnable.java b/mispmock/src/com/olexyn/misp/mock/BridgeRunnable.java deleted file mode 100644 index 8874863..0000000 --- a/mispmock/src/com/olexyn/misp/mock/BridgeRunnable.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.olexyn.misp.mock; - -/** - * Pass the MockSet. - * Provide a Runnable. - */ -public class BridgeRunnable implements Runnable { - - MockSet mockSet; - - public BridgeRunnable(MockSet mockSet){ - super(); - this.mockSet = mockSet; - } - - @Override - public void run() { - new BridgeMock(mockSet); - } - -} diff --git a/mispmock/src/com/olexyn/misp/mock/Main.java b/mispmock/src/com/olexyn/misp/mock/Main.java deleted file mode 100644 index 5274457..0000000 --- a/mispmock/src/com/olexyn/misp/mock/Main.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.olexyn.misp.mock; - -import com.olexyn.misp.mock.actor.AppMock; -import com.olexyn.misp.mock.actor.UserMock; - -public class Main { - - - - - - public static void main(String... args){ - - MockSet mockSet = new MockSet(); - - Runnable publicRunnable = new UserMock(mockSet); - Runnable bridgeRunable = new BridgeRunnable(mockSet); - Runnable adapterRunnable = new AdapterRunnable(mockSet); - //Runnable clientRunnable = new ClientRunnable(mockSet); - Runnable appRunnable = new AppMock(mockSet); - - Thread userThread = new Thread(publicRunnable); - Thread bridgeThread = new Thread(bridgeRunable); - Thread adapterThread = new Thread(adapterRunnable); - //Thread clientThread = new Thread(clientRunnable); - Thread appThread = new Thread(appRunnable); - - userThread.setName("userThread"); - userThread.start(); - bridgeThread.setName("bridgeThread"); - bridgeThread.start(); - adapterThread.setName("adapterThread"); - adapterThread.start(); - //clientThread.setName("clientThread"); - //clientThread.start(); - appThread.setName("appThread"); - appThread.start(); - } -} - - - diff --git a/mispmock/src/com/olexyn/misp/mock/MockSet.java b/mispmock/src/com/olexyn/misp/mock/MockSet.java deleted file mode 100644 index 533a1ec..0000000 --- a/mispmock/src/com/olexyn/misp/mock/MockSet.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.olexyn.misp.mock; - -import com.olexyn.misp.mock.actor.AppMock; -import com.olexyn.misp.mock.actor.UserMock; - -public class MockSet { - public UserMock userMock; - public BridgeMock bridgeMock; - public AdapterMock adapterMock; - public AppMock appMock; -} \ No newline at end of file diff --git a/mispmock/src/com/olexyn/misp/mock/actor/ActorRunnable.java b/mispmock/src/com/olexyn/misp/mock/actor/ActorRunnable.java deleted file mode 100644 index 115db66..0000000 --- a/mispmock/src/com/olexyn/misp/mock/actor/ActorRunnable.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.olexyn.misp.mock.actor; - -import com.olexyn.misp.mock.MockSet; -import com.olexyn.misp.mock.exchange.ExchangeMock; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - - - -/** - * Generic Runnable. - * Serves as basis for Actors that are not Servlets. - */ -public abstract class ActorRunnable implements Runnable { - - - List exchanges = new ArrayList<>(); - - protected MockSet mockSet; - - - - public ActorRunnable(MockSet mockSet){ - this.mockSet = mockSet; - - } - - - - - @Override - public void run() { - // - } - - - public void processExchange(ExchangeMock exchange) throws IOException, ServletException { - - - if (exchange.request.getMethod().equalsIgnoreCase("GET")) { - doGet(exchange.request, exchange.response); - } else if (exchange.request.getMethod().equalsIgnoreCase("POST")) { - doPost(exchange.request, exchange.response); - } - } - - - public abstract void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException; - - public abstract void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException; - -} diff --git a/mispmock/src/com/olexyn/misp/mock/actor/AppMock.java b/mispmock/src/com/olexyn/misp/mock/actor/AppMock.java deleted file mode 100644 index b3463ea..0000000 --- a/mispmock/src/com/olexyn/misp/mock/actor/AppMock.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.olexyn.misp.mock.actor; - - - -import com.olexyn.misp.mock.MockSet; -import com.olexyn.misp.mock.exchange.ExchangeMock; -import com.olexyn.misp.mock.exchange.RequestMock; -import org.apache.commons.io.IOUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; - -public class AppMock extends ActorRunnable { - - public AppMock(MockSet mockSet) { - super(mockSet); - mockSet.appMock = this; - } - - - @Override - public void run() { - while (true) { - - - } - } - - @Override - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - - RequestMock mockRequest = (RequestMock) request; - ExchangeMock exchange = mockRequest.exchange; - - synchronized (exchange) { - String parsedRequest = IOUtils.toString(request.getReader()); - - String dataString = "DATA-" + parsedRequest; - - exchange.response.setStatus(200); - PrintWriter writer = exchange.response.getWriter(); - writer.write(dataString); - writer.flush(); - writer.close(); - - exchange.notify(); - } - } - - @Override - public void doPost(HttpServletRequest request, HttpServletResponse response) { - - } -} diff --git a/mispmock/src/com/olexyn/misp/mock/actor/UserMock.java b/mispmock/src/com/olexyn/misp/mock/actor/UserMock.java deleted file mode 100644 index cb384c1..0000000 --- a/mispmock/src/com/olexyn/misp/mock/actor/UserMock.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.olexyn.misp.mock.actor; - -import com.olexyn.misp.mock.MockSet; -import com.olexyn.misp.mock.exchange.ExchangeMock; - - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - - - - -public class UserMock extends ActorRunnable { - - - - final String longRequest; - - int requestCount = 0; - - public UserMock(MockSet mockSet){ - super(mockSet); - mockSet.userMock = this; - - - StringBuilder sb = new StringBuilder(); - for (int i=0;i<100;i++){ - sb.append("foo"); - } - longRequest = sb.toString(); - - - } - - @Override - public void run() { - while (true){ - try { - sendGetRequest(); - } catch (IOException | InterruptedException e) { - e.printStackTrace(); - } - - } - } - - @Override - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - - } - - @Override - public void doPost(HttpServletRequest request, HttpServletResponse response) { - - } - - - - /** - * # send GET (Request) - * Generated by Loop - */ - void sendGetRequest() throws IOException, InterruptedException { - - // Mock Exchange - ExchangeMock exchange = new ExchangeMock(); - - exchange.request.setMethod("GET"); - //exchange.request.setContentType("application/json"); - - //String requestBody = longRequest+"-"+(++requestCount); - String requestBody = "REQUEST-"+(++requestCount); - String jsonString = "{\"request\":\""+requestBody+ "\"}"; - jsonString = "asdfasdfa"; - exchange.request.setContent(jsonString.getBytes()); - - synchronized (exchange){ - // Mock GET (Request) - exchange.notify(); - mockSet.bridgeMock.doGet(exchange.request,exchange.response); - exchange.wait(); - - // handle OK (Data) - String data = exchange.response.getContentAsString(); - System.out.println(data + " of "+requestBody); - exchange.notify(); - } - } - -} diff --git a/mispmock/src/com/olexyn/misp/mock/exchange/ExchangeMock.java b/mispmock/src/com/olexyn/misp/mock/exchange/ExchangeMock.java deleted file mode 100644 index 1e0c0e3..0000000 --- a/mispmock/src/com/olexyn/misp/mock/exchange/ExchangeMock.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.olexyn.misp.mock.exchange; - - -import java.util.ArrayList; -import java.util.List; - -/** - * How "exchange" mocks an exchange:
- *
- * An "exchange" corresponds to request & reply pair.
- * - i.e. a GET & OK pair.
- * Steps:
- * 1. new Exchange()
- * 2. set properties of .request
- * 3. "send" request by using exchange.notify(); recipient.doGet();
- * 4. recipient does someting with request
- * - - recipient sets proerties of .response
- * - - recipient sends reply using exchange.notify();
- * 5. "receive" response by using exchange.wait(); - */ -public class ExchangeMock { - - public static List exchangeList = new ArrayList<>(); - - - private static int next_id=0; - public int id; - - public RequestMock request =new RequestMock(this); - public ResponseMock response = new ResponseMock(this); - - public ExchangeMock(){ - id = next_id++; - exchangeList.add(this); - } - - - - - - - - - -} - - - - - diff --git a/mispmock/src/com/olexyn/misp/mock/exchange/RequestMock.java b/mispmock/src/com/olexyn/misp/mock/exchange/RequestMock.java deleted file mode 100644 index 0665303..0000000 --- a/mispmock/src/com/olexyn/misp/mock/exchange/RequestMock.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.olexyn.misp.mock.exchange; - -import org.springframework.mock.web.MockHttpServletRequest; - -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.Part; -import java.io.IOException; -import java.util.Collection; - -/** - * - Contains reference to ExchangeMock - * - Rest is dummy code. - */ -public class RequestMock extends MockHttpServletRequest implements HttpServletRequest { - - public final ExchangeMock exchange; - - public RequestMock(ExchangeMock exchange){ - super(); - this.exchange = exchange; - } - - @Override - public boolean authenticate(HttpServletResponse httpServletResponse) throws IOException, ServletException { - return false; - } - - @Override - public void login(String s, String s1) throws ServletException { - - } - - @Override - public void logout() throws ServletException { - - } - - @Override - public Collection getParts() throws IOException, ServletException { - return null; - } - - @Override - public Part getPart(String s) throws IOException, ServletException { - return null; - } - - @Override - public ServletContext getServletContext() { - return null; - } - - @Override - public AsyncContext startAsync() throws IllegalStateException { - return null; - } - - @Override - public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException { - return null; - } - - @Override - public boolean isAsyncStarted() { - return false; - } - - @Override - public boolean isAsyncSupported() { - return false; - } - - @Override - public AsyncContext getAsyncContext() { - return null; - } - - @Override - public DispatcherType getDispatcherType() { - return null; - } -} \ No newline at end of file diff --git a/mispmock/src/com/olexyn/misp/mock/exchange/ResponseMock.java b/mispmock/src/com/olexyn/misp/mock/exchange/ResponseMock.java deleted file mode 100644 index fb7ff89..0000000 --- a/mispmock/src/com/olexyn/misp/mock/exchange/ResponseMock.java +++ /dev/null @@ -1,209 +0,0 @@ -package com.olexyn.misp.mock.exchange; - - -import org.springframework.mock.web.MockHttpServletResponse; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.util.List; -import java.util.Locale; -import java.util.Set; - -/** - * - Contains reference to ExchangeMock - * - Rest is dummy code. - */ -public class ResponseMock extends MockHttpServletResponse implements HttpServletResponse { - - public ExchangeMock exchange; - - public ResponseMock(ExchangeMock exchange){ - super(); - this.exchange = exchange; - } - - - @Override - public void addCookie(Cookie cookie) { - - } - - @Override - public boolean containsHeader(String s) { - return false; - } - - @Override - public String encodeURL(String s) { - return null; - } - - @Override - public String encodeRedirectURL(String s) { - return null; - } - - @Override - public String encodeUrl(String s) { - return null; - } - - @Override - public String encodeRedirectUrl(String s) { - return null; - } - - @Override - public void sendError(int i, String s) throws IOException { - - } - - @Override - public void sendError(int i) throws IOException { - - } - - @Override - public void sendRedirect(String s) throws IOException { - - } - - @Override - public void setDateHeader(String s, long l) { - - } - - @Override - public void addDateHeader(String s, long l) { - - } - - @Override - public void setHeader(String s, String s1) { - - } - - @Override - public void addHeader(String s, String s1) { - - } - - @Override - public void setIntHeader(String s, int i) { - - } - - @Override - public void addIntHeader(String s, int i) { - - } - - @Override - public void setStatus(int i) { - - } - - @Override - public void setStatus(int i, String s) { - - } - - @Override - public int getStatus() { - return 0; - } - - @Override - public String getHeader(String s) { - return null; - } - - @Override - public List getHeaders(String s) { - return null; - } - - @Override - public Set getHeaderNames() { - return null; - } - - @Override - public String getCharacterEncoding() { - return null; - } - - @Override - public String getContentType() { - return null; - } - - @Override - public ServletOutputStream getOutputStream() { - return null; - } - - @Override - public PrintWriter getWriter() throws UnsupportedEncodingException { - return super.getWriter(); - } - - @Override - public void setCharacterEncoding(String s) { - - } - - @Override - public void setContentLength(int i) { - - } - - @Override - public void setContentType(String s) { - - } - - @Override - public void setBufferSize(int i) { - - } - - @Override - public int getBufferSize() { - return 0; - } - - @Override - public void flushBuffer() { - - } - - @Override - public void resetBuffer() { - - } - - @Override - public boolean isCommitted() { - return false; - } - - @Override - public void reset() { - - } - - @Override - public void setLocale(Locale locale) { - - } - - @Override - public Locale getLocale() { - return null; - } -} diff --git a/overview.png b/overview.png index 69bfa46..56871ee 100644 Binary files a/overview.png and b/overview.png differ diff --git a/overview.uxf b/overview.uxf index b6101a3..878b565 100644 --- a/overview.uxf +++ b/overview.uxf @@ -4,8 +4,8 @@ UMLClass - 1030 - 630 + 1210 + 480 90 30 @@ -16,8 +16,8 @@ lt=- UMLClass - 630 - 630 + 810 + 480 120 70 @@ -29,8 +29,8 @@ modem UMLClass - 800 - 630 + 980 + 480 100 30 @@ -42,8 +42,8 @@ layer=-1 UMLClass - 1030 - 670 + 1210 + 520 90 30 @@ -54,12 +54,12 @@ bg=#90CAF9 UMLClass - 800 - 670 + 980 + 520 100 30 - misp.fwd + forward bg=#B39DDB layer=-1 @@ -67,8 +67,8 @@ layer=-1 Relation - 550 - 720 + 730 + 570 280 50 @@ -80,8 +80,8 @@ Generated by Loop Relation - 880 - 760 + 1060 + 610 200 40 @@ -93,12 +93,12 @@ fg=#1E88E5 UMLClass - 470 - 670 + 650 + 520 100 30 - misp.rev + reverse bg=#B39DDB layer=-1 @@ -106,8 +106,8 @@ layer=-1 Relation - 550 - 870 + 730 + 720 280 50 @@ -119,8 +119,8 @@ GET (Ride)(Request) Relation - 880 - 890 + 1060 + 740 200 40 @@ -132,8 +132,8 @@ fg=#1E88E5 Relation - 550 - 930 + 730 + 780 280 40 @@ -144,8 +144,8 @@ OK (Ride) UMLClass - 270 - 670 + 450 + 520 80 30 @@ -156,8 +156,8 @@ bg=#90CAF9 Relation - 310 - 800 + 490 + 650 190 40 @@ -169,8 +169,8 @@ fg=#1E88E5 Relation - 310 - 850 + 490 + 700 190 40 @@ -182,8 +182,8 @@ fg=#1E88E5 Relation - 550 - 780 + 730 + 630 280 40 @@ -194,8 +194,8 @@ OK (Ride)(Request) UMLClass - 270 - 630 + 450 + 480 300 30 @@ -206,8 +206,8 @@ lt=- UMLClass - 240 - 600 + 420 + 450 910 400 @@ -219,8 +219,8 @@ layer=-10 UMLClass - 810 - 740 + 990 + 590 80 40 @@ -233,8 +233,8 @@ transparency=0 UMLClass - 480 - 740 + 660 + 590 80 60 @@ -247,8 +247,8 @@ transparency=0 UMLClass - 810 - 780 + 990 + 630 80 110 @@ -262,8 +262,8 @@ layer=1 UMLClass - 480 - 800 + 660 + 650 80 70 @@ -276,8 +276,8 @@ transparency=0 UMLClass - 480 - 870 + 660 + 720 80 80 @@ -290,8 +290,8 @@ transparency=0 UMLClass - 810 - 890 + 990 + 740 80 60 @@ -304,8 +304,8 @@ transparency=0 Relation - 1060 - 690 + 1240 + 540 30 310 @@ -316,8 +316,8 @@ fg=#1E88E5 Relation - 300 - 690 + 480 + 540 30 310 @@ -328,8 +328,8 @@ fg=#1E88E5 UMLClass - 1060 - 780 + 1240 + 630 20 130 @@ -342,8 +342,8 @@ layer=4 UMLClass - 300 - 820 + 480 + 670 20 50 @@ -356,8 +356,8 @@ layer=4 Relation - 840 - 690 + 1020 + 540 30 310 @@ -369,8 +369,8 @@ layer=-4 Relation - 510 - 690 + 690 + 540 30 310 diff --git a/reverse/install-locally.sh b/reverse/install-locally.sh new file mode 100755 index 0000000..ccf9951 --- /dev/null +++ b/reverse/install-locally.sh @@ -0,0 +1,11 @@ +#!/bin/bash +version="0.1" +artifactId="reverse" +file="target/${artifactId}-${version}.jar" +groupId="com.olexyn.misp.reverse" + + + + +mvn package +mvn install:install-file -Dfile=${file} -DgroupId=${groupId} -DartifactId=${artifactId} -Dversion=${version} -Dpackaging=jar -DgeneratePom=true diff --git a/misp-fwd/pom.xml b/reverse/pom.xml similarity index 61% rename from misp-fwd/pom.xml rename to reverse/pom.xml index 1611c74..538df90 100644 --- a/misp-fwd/pom.xml +++ b/reverse/pom.xml @@ -4,18 +4,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.olexyn.misp.fwd - misp-fwd + com.olexyn.misp.reverse + reverse 0.1 - war - misp-fwd Maven Webapp + reverse http://www.example.com UTF-8 - + 11 + 11 @@ -25,42 +25,28 @@ 4.11 test - - com.olexyn.misp.helper - misp-helper - 0.1 - compile - - - commons-io - commons-io - 2.6 - compile - - - org.eclipse.jetty.orbit - javax.servlet - 3.0.0.v201112011016 - compile - + + com.olexyn.misp.helper + misp-helper + 0.1 + compile + org.json json 20190722 - compile - - + maven-clean-plugin 3.1.0 - + maven-resources-plugin 3.0.2 @@ -68,20 +54,14 @@ maven-compiler-plugin 3.8.0 - - - 11 - 11 - true - maven-surefire-plugin 2.22.1 - maven-war-plugin - 3.2.2 + maven-jar-plugin + 3.0.2 maven-install-plugin @@ -91,6 +71,15 @@ maven-deploy-plugin 2.8.2 + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java new file mode 100644 index 0000000..04fdfb7 --- /dev/null +++ b/reverse/src/main/java/com/olexyn/misp/reverse/GetRequestRunnable.java @@ -0,0 +1,26 @@ +package com.olexyn.misp.reverse; + +import com.olexyn.misp.helper.Ride; + +import java.io.IOException; + +class GetRequestRunnable implements Runnable { + + final private Reverse reverse; + + public GetRequestRunnable(Reverse reverse) { + this.reverse = reverse; + } + + @Override + public void run() { + while (true) { + synchronized (reverse.booked) { + if (reverse.booked.size() > 0) { + final Ride ride = reverse.booked.entrySet().iterator().next().getValue(); + try { reverse.sendGetRequest(ride); } catch (IOException ignored) {} + } + } + } + } +} diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java new file mode 100644 index 0000000..be0cdb0 --- /dev/null +++ b/reverse/src/main/java/com/olexyn/misp/reverse/GetRideRequestDataRunnable.java @@ -0,0 +1,26 @@ +package com.olexyn.misp.reverse; + +import com.olexyn.misp.helper.Ride; + +import java.io.IOException; + +class GetRideRequestDataRunnable implements Runnable { + + final private Reverse reverse; + + public GetRideRequestDataRunnable(Reverse reverse) { + this.reverse = reverse; + } + + @Override + public void run() { + while (true) { + synchronized (reverse.loaded) { + if (reverse.loaded.size() > 0) { + final Ride ride = reverse.loaded.entrySet().iterator().next().getValue(); + try { reverse.sendGetRideRequestData(ride); } catch (IOException ignored) {} + } + } + } + } +} diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java b/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java new file mode 100644 index 0000000..256f46a --- /dev/null +++ b/reverse/src/main/java/com/olexyn/misp/reverse/PostRideRunnable.java @@ -0,0 +1,25 @@ +package com.olexyn.misp.reverse; + +import java.io.IOException; + +class PostRideRunnable implements Runnable { + + final private Reverse reverse; + + public PostRideRunnable(Reverse reverse) { + this.reverse = reverse; + } + + @Override + 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) {} + } + } + } + } + } +} diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/README.md b/reverse/src/main/java/com/olexyn/misp/reverse/README.md new file mode 100644 index 0000000..43d0100 --- /dev/null +++ b/reverse/src/main/java/com/olexyn/misp/reverse/README.md @@ -0,0 +1,3 @@ +* Run from `ReverseApp` : + * as `main()` + * or as `Runnable` from somewhere else. \ No newline at end of file diff --git a/misp-rev/src/main/java/com/olexyn/misp/rev/RevProxy.java b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java similarity index 52% rename from misp-rev/src/main/java/com/olexyn/misp/rev/RevProxy.java rename to reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java index c171c00..32178f2 100644 --- a/misp-rev/src/main/java/com/olexyn/misp/rev/RevProxy.java +++ b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java @@ -1,4 +1,4 @@ -package com.olexyn.misp.rev; +package com.olexyn.misp.reverse; import com.olexyn.misp.helper.Ride; @@ -13,13 +13,13 @@ import java.util.HashMap; import java.util.Map; -public class RevProxy { +public class Reverse { - protected static final String MISP_BRIDGE_URL = "http://localhost:9090/mispbridge/core"; - protected static final String APP_URL = "http://localhost:9090/mirror/core"; + public String FORWARD_URL = "http://localhost:8090/bridge"; + public String APP_URL = "http://localhost:8090/app"; - public static final int AVAILABLE_RIDES_OVERHEAD_TRIGGER = 4; - public static final int AVAILABLE_RIDES_OVERHEAD = 8; + public int AVAILABLE_RIDES_OVERHEAD_TRIGGER = 1; + public int AVAILABLE_RIDES_OVERHEAD = 2; public final Map available = new HashMap<>(); @@ -27,8 +27,7 @@ public class RevProxy { public final Map loaded = new HashMap<>(); - public RevProxy() { - + public void start() { Thread postRideThread = new Thread(new PostRideRunnable(this)); postRideThread.setName("postRideThread"); postRideThread.start(); @@ -49,7 +48,7 @@ public class RevProxy { synchronized (available) { available.put(ride.getID(), ride); } - final String result = send("POST", MISP_BRIDGE_URL, ride.json()); + final String result = send("POST", FORWARD_URL, ride.json()); synchronized (available) { available.remove(ride.getID()); @@ -73,7 +72,7 @@ public class RevProxy { void sendGetRideRequestData(Ride ride) throws IOException { - send("GET", MISP_BRIDGE_URL, ride.json()); + send("GET", FORWARD_URL, ride.json()); synchronized (loaded) {loaded.remove(ride.getID()); } } @@ -87,10 +86,15 @@ public class RevProxy { connection.setDoOutput(true); DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); - outputStream.writeBytes(body); + + if (body != null) { + outputStream.writeBytes(body); + } + outputStream.flush(); outputStream.close(); + int i = connection.getResponseCode(); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String out; StringBuilder sb = new StringBuilder(); @@ -100,70 +104,7 @@ public class RevProxy { } -} - - -class PostRideRunnable implements Runnable { - - final private RevProxy adapter; - - public PostRideRunnable(RevProxy adapter) { - this.adapter = adapter; - } - - @Override - public void run() { - while (true) { - synchronized (adapter.available) { - if (adapter.available.size() < RevProxy.AVAILABLE_RIDES_OVERHEAD_TRIGGER) { - for (int i = 0; i < RevProxy.AVAILABLE_RIDES_OVERHEAD; i++) { - try {adapter.sendPostRide();} catch (IOException ignored) {} - } - } - } - } - } -} - - -class GetRequestRunnable implements Runnable { - - final private RevProxy adapter; - public GetRequestRunnable(RevProxy adapter) { - this.adapter = adapter; - } - - @Override - public void run() { - while (true) { - synchronized (adapter.booked) { - if (adapter.booked.size() > 0) { - final Ride ride = adapter.booked.entrySet().iterator().next().getValue(); - try { adapter.sendGetRequest(ride); } catch (IOException ignored) {} - } - } - } - } } -class GetRideRequestDataRunnable implements Runnable { - - final private RevProxy adapter; - - public GetRideRequestDataRunnable(RevProxy adapter) { - this.adapter = adapter; - } - @Override - public void run() { - while (true) { - synchronized (adapter.loaded) { - if (adapter.loaded.size() > 0) { - final Ride ride = adapter.loaded.entrySet().iterator().next().getValue(); - try { adapter.sendGetRideRequestData(ride); } catch (IOException ignored) {} - } - } - } - } -} \ No newline at end of file diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java b/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java new file mode 100644 index 0000000..3c60553 --- /dev/null +++ b/reverse/src/main/java/com/olexyn/misp/reverse/ReverseApp.java @@ -0,0 +1,30 @@ +package com.olexyn.misp.reverse; + +public class ReverseApp implements Runnable { + + + public static void main(String... args) { + new ReverseApp().doRun(); + } + + + @Override + public void run() { + + doRun(); + + } + + + private void doRun() { + Reverse reverse = new Reverse(); + + 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.start(); + } +} diff --git a/test-proxy/currentconfig.xml b/test-proxy/currentconfig.xml deleted file mode 100644 index a956c02..0000000 --- a/test-proxy/currentconfig.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-proxy/install-locally.sh b/test-proxy/install-locally.sh deleted file mode 100755 index aeb5dc0..0000000 --- a/test-proxy/install-locally.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -version="0.1" -file="target/test-proxy-${version}.war" -groupId="com.olexyn.test.proxy" -artifactId="test-proxy" - - - -mvn package -mvn install:install-file -Dfile=${file} -DgroupId=${groupId} -DartifactId=${artifactId} -Dversion=${version} -Dpackaging=war -DgeneratePom=true diff --git a/test-proxy/someconfig.xml b/test-proxy/someconfig.xml deleted file mode 100644 index ab71816..0000000 --- a/test-proxy/someconfig.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - org.eclipse.jetty.servlets.ProxyServlet$Transparent - /proxy/* - - maxThreads - - - - - - maxConnections - - - - - - idleTimeout - - - - - - timeout - - - - - - ProxyTo - http://localhost:8080/misp-mirror - - - Prefix - /proxy - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test-proxy/src/main/webapp/WEB-INF/web.xml b/test-proxy/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index dcc0494..0000000 --- a/test-proxy/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - misp-proxy - - - test-proxy - com.olexyn.test.proxy.ProxyServlet - - - - test-proxy - /core - - - diff --git a/test-proxy/src/main/webapp/index.jsp b/test-proxy/src/main/webapp/index.jsp deleted file mode 100644 index 1ed1b19..0000000 --- a/test-proxy/src/main/webapp/index.jsp +++ /dev/null @@ -1,20 +0,0 @@ - - -test-proxy - - - - - - - - - - -
- -
-

test-proxy

-
- - diff --git a/mispmock/threads-in-mock.png b/threads-in-mock.png similarity index 100% rename from mispmock/threads-in-mock.png rename to threads-in-mock.png diff --git a/mispmock/threads-in-mock.uxf b/threads-in-mock.uxf similarity index 100% rename from mispmock/threads-in-mock.uxf rename to threads-in-mock.uxf