From ee21a568a39a8747e6e1ed79efe11fcc74ec44b4 Mon Sep 17 00:00:00 2001 From: Conor Flynn Date: Tue, 18 Oct 2022 15:24:44 -0400 Subject: [PATCH] Stable updated environment --- .../Internal Manual/Packet Spreadsheet.xlsx | Bin 19481 -> 19498 bytes .../src/main/java/org/core/engine/Engine.java | 2 +- .../org/out/consumers/SocketConsumer.java | 82 ++++-------------- .../java/org/out/handler/OutputConsumer.java | 6 +- .../src/main/java/org/properties/Config.java | 66 ++++++++++---- .../TemplateExternalConnection.java | 12 ++- .../handler/ExternalStreamConnection.java | 12 +-- .../handler/ExternalStreamManager.java | 2 +- .../connections/TemplateLocalConnection.java | 4 +- .../local/handler/LocalStreamHandler.java | 4 +- .../local/handler/LocalStreamManager.java | 3 +- .../test/lsh/mongodb/TestMongoDatabase.java | 51 +++++------ .../src/test/java/test/protocols/TestSRC.java | 25 +++--- .../src/main/java/org/properties/Config.java | 1 + .../java/org/rest/application/Endpoint.java | 43 +++------ .../org/rest/application/RestApplication.java | 10 ++- .../socket/SocketConnectionTest.java | 15 ++-- 17 files changed, 156 insertions(+), 182 deletions(-) diff --git a/Data Engine/Documents/Internal Manual/Packet Spreadsheet.xlsx b/Data Engine/Documents/Internal Manual/Packet Spreadsheet.xlsx index 7220a67c4412ddc9197fd2cac3a74e4c507949fb..c9026799aa69538e0f6d9cd3c2a6a49842cbbadb 100644 GIT binary patch delta 6667 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 delta 6678 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 diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java index 42decc2f..d5315ff0 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java @@ -22,7 +22,7 @@ public Response processSTRT(Packet packet) { // start local stream handler processes: String lsh_type = Config.getProperty("stream", "local.stream.type"); if(!lsh_type.equals("null")) { - Response lsh_response = send("LSH", "INIT", "local_source", lsh_type); + Response lsh_response = send("LSH", "INIT", "source", lsh_type); if(lsh_response.code() != 200) return lsh_response; } diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/consumers/SocketConsumer.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/consumers/SocketConsumer.java index b085611e..59ea4084 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/consumers/SocketConsumer.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/consumers/SocketConsumer.java @@ -4,6 +4,7 @@ import java.io.DataOutputStream; import java.io.IOException; import java.net.SocketException; +import java.util.Arrays; import org.framework.router.Response; import org.json.JSONObject; @@ -46,75 +47,30 @@ public void run() { // listen for data packets from rest socket while(true) { - String[] data = ((String)in.readUTF()).split(Config.getProperty("app", "general.transfer.delim")); - String tag, sub_tag, sub_data, data_str; - - if(data.length == 3) { - tag = data[0]; - sub_tag = data[1]; - data_str = data[2]; - - Response response = send(tag, sub_tag, data_str); - out.writeUTF(new JSONObject() - .put("response", "200") - .put("code", response.code()) - .put("message", response.message()) - .put("data", response.data()) - .toString()); - - } else if(data.length == 4) { - tag = data[0]; - sub_tag = data[1]; - sub_data = data[2]; - data_str = data[3]; - - Response response = send(tag, sub_tag, data_str, sub_data); - out.writeUTF(new JSONObject() - .put("response", "200") - .put("code", response.code()) - .put("message", response.message()) - .put("data", response.data()) - .toString()); - - } else { + String[] input = ((String)in.readUTF()).split(Config.getProperty("app", "general.transfer.delim")); + + // validate length is greater than 2 + if(input.length <= 2) { out.writeUTF(new JSONObject() .put("response", "502") - .put("message", "Communication between REST API and SocketConsumer is not consistent. Differing input lengths.") + .put("message", "Packet processed from REST API does not contain a TAG or SUB_TAG. Review REST API endpoint code.") .toString()); } + // extract non-essential data + String[] data = Arrays.copyOfRange(input, 2, input.length); + + String tag = input[0]; + String sub_tag = input[1]; -// int protocol_index = 0, data_index = 0; -// if(data.length == 2) { -// protocol_index = 0; -// data_index = 1; -// } -// -// else if(data.length == 3) { -// protocol_index = 1; -// data_index = 2; -// } -// -// else { -// System.err.println("Invalid data format for SocketConsumer. Terminating."); -// System.exit(1); -// } -// -// String[] protocol = ProtocolDirectory.getProtocol(data[protocol_index]); -// if(protocol == null) { -// out.writeUTF(new JSONObject() -// .put("response", "403") -// .put("message", "Protocol does not exist. Please reference documentation.") -// .toString()); -// } else { -// Response response = send(protocol[0], protocol[1], data[data_index], data[0]); -// out.writeUTF(new JSONObject() -// .put("response", "200") -// .put("code", response.code()) -// .put("message", response.message()) -// .put("data", response.data()) -// .toString()); -// } + // execute valid response to engine + Response response = send(tag, sub_tag, data); + out.writeUTF(new JSONObject() + .put("response", "200") + .put("code", response.code()) + .put("message", response.message()) + .put("data", response.data()) + .toString()); } } catch(SocketException e) { System.err.println("Rest Application has unexpectedly closed."); diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/handler/OutputConsumer.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/handler/OutputConsumer.java index a3e89d25..12fb4274 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/handler/OutputConsumer.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/out/handler/OutputConsumer.java @@ -11,14 +11,10 @@ public OutputConsumer(OutputManager manager) { this.manager = manager; } - protected final Response send(String tag, String sub_tag, String data) { + protected final Response send(String tag, String sub_tag, String... data) { return manager.send(tag, sub_tag, data); } - protected final Response send(String tag, String sub_tag, String data, String sub_data) { - return manager.send(tag, sub_tag, data, sub_data); - } - protected abstract boolean init(); protected abstract boolean listen(); protected abstract boolean kill(); diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java index 6d51c933..c3d199fa 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java @@ -1,7 +1,5 @@ package org.properties; -import java.io.File; -import java.io.FileInputStream; import java.util.HashMap; import java.util.Properties; @@ -10,23 +8,57 @@ public class Config { private static final HashMap properties; static { +// properties = new HashMap(); +// +// String[] files = new File("src/main/resources/config").list(); +// +// for(String file : files) { +// if(file.lastIndexOf(".properties") == file.length() - 11) { +// String name = file.substring(0, file.length() - 11); +// properties.put(name, new Properties()); +// +// try (FileInputStream in = new FileInputStream("src/main/resources/config/" + file)) { +// properties.get(name).load(in); +// } catch(Exception e) { +// e.printStackTrace(); +// System.exit(1); +// } +// } +// } + properties = new HashMap(); - String[] files = new File("src/main/resources/config").list(); - - for(String file : files) { - if(file.lastIndexOf(".properties") == file.length() - 11) { - String name = file.substring(0, file.length() - 11); - properties.put(name, new Properties()); - - try (FileInputStream in = new FileInputStream("src/main/resources/config/" + file)) { - properties.get(name).load(in); - } catch(Exception e) { - e.printStackTrace(); - System.exit(1); - } - } - } + Properties app_properties = new Properties(); + app_properties.put("general.internal.delim", ":::"); + app_properties.put("general.data.delim", ","); + app_properties.put("general.collection.delim", "="); + app_properties.put("general.transfer.delim", "&&&"); + app_properties.put("general.data.dateformat", "yyyy-MM-dd"); + app_properties.put("general.logging.packets", "true"); + app_properties.put("general.logging.responses", "true"); + properties.put("app", app_properties); + + Properties stream_properties = new Properties(); + stream_properties.put("general.consumer.types", "socket_consumer"); + stream_properties.put("general.producer.types", "socket_producer"); + stream_properties.put("rest.socket.address", "localhost"); + stream_properties.put("rest.socket.port", "61100"); + stream_properties.put("rest.socket.key", "rest-key-reserved"); + stream_properties.put("output.socket.address", "localhost"); + stream_properties.put("output.socket.port", "61200"); + stream_properties.put("local.stream.type", "mongo_db"); + stream_properties.put("mongodb.properties.uri", "mongodb://localhost:27017"); + stream_properties.put("mongodb.database.state", "main-state-db"); + stream_properties.put("mongodb.database.main", "main-db"); + stream_properties.put("mongodb.auth.collection", "auth-collection"); + stream_properties.put("mongodb.query.delim", ","); + stream_properties.put("polygon.request.delim", "-"); + properties.put("stream", stream_properties); + + Properties testing_properties = new Properties(); + testing_properties.put("lsh.authorized", "true"); + testing_properties.put("lsh.ready", "true"); + properties.put("testing", testing_properties); } public static final Properties getProperties(String name) { diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/TemplateExternalConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/TemplateExternalConnection.java index 0fae45f0..b42e47c4 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/TemplateExternalConnection.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/connections/TemplateExternalConnection.java @@ -82,14 +82,18 @@ public boolean containsSubscriptionType(String type) { @Override public boolean containsRequestType(String type) { - // TODO Auto-generated method stub - return false; + return type.equals("valid"); } @Override public Object[] request(HashMap request) { - // TODO Auto-generated method stub - return null; + if(request.get("key").equals("valid")) { + this.processRequest("valid", "col1", "data1"); + this.processRequest("valid", "col2", "data2"); + return new Object[] {true, ""}; + } + + return new Object[] {false, ""}; } @Override diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java index 34c596ea..c934d673 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java @@ -35,16 +35,16 @@ public void processSubscription(String subscription, String data) { manager.processSubscription(hash, subscription, data); } + public void processRequest(String request, String data) { + this.processRequest(request, null, data); + } + public void processRequest(String request, String date, String data) { if(date != null) - manager.processRequest(hash, - getUUID() + Config.getProperty("app", "general.collection.delim") + request + Config.getProperty("app", "general.collection.delim") + date, - data); + manager.processRequest(getUUID() + Config.getProperty("app", "general.collection.delim") + request + Config.getProperty("app", "general.collection.delim") + date, data); else - manager.processRequest(hash, - getUUID() + Config.getProperty("app", "general.collection.delim") + request, - data); + manager.processRequest(getUUID() + Config.getProperty("app", "general.collection.delim") + request, data); } public final String getHash() { diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java index 681a0a4d..e6766035 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java @@ -392,7 +392,7 @@ protected void processSubscription(String hash, String subscription, String data * @param request Request which the data was received by. * @param data Data sent by the given subscription. */ - protected void processRequest(String hash, String request, String data) { + protected void processRequest(String request, String data) { Response lsh_response = handler.send("LSH", "PUSH", "request", request, "data", data); if(lsh_response.code() != 200) Logger.warn(lsh_response); diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/connections/TemplateLocalConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/connections/TemplateLocalConnection.java index a5d11c33..c15004ab 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/connections/TemplateLocalConnection.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/connected/connections/TemplateLocalConnection.java @@ -72,7 +72,9 @@ else if(query[0].equals("corrupted")) public Set get(String... query) { if(query[0].equals("irregular")) return null; - return new HashSet(); + HashSet out = new HashSet(); + out.add("123"); + return out; } public boolean push(String data, String collection) { diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java index 18983fcb..49f41cab 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamHandler.java @@ -89,9 +89,9 @@ public Response processRQST(Packet packet) { String request; String delim = Config.getProperty("app", "general.collection.delim"); if(packet.containsKey("date")) { - request = packet.getData("uuid" + delim + packet.getData("request") + delim + packet.getData("date")); + request = "uuid" + delim + packet.getData("request") + delim + packet.getData("date"); } else { - request = packet.getData("uuid" + delim + packet.getData("request")); + request = "uuid" + delim + packet.getData("request"); } if(query == null) diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamManager.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamManager.java index cba72e7b..0455a849 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamManager.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/local/handler/LocalStreamManager.java @@ -8,6 +8,7 @@ public class LocalStreamManager { + @SuppressWarnings("unused") private final LocalStreamHandler handler; private final HashMap> templates; private LocalStreamConnection stream; @@ -56,7 +57,7 @@ protected boolean setStream(String type) { e.printStackTrace(); System.exit(1); } - + return stream.init(); } diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/lsh/mongodb/TestMongoDatabase.java b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/lsh/mongodb/TestMongoDatabase.java index b1fdece3..fb122be2 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/lsh/mongodb/TestMongoDatabase.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/lsh/mongodb/TestMongoDatabase.java @@ -46,24 +46,24 @@ public void TestSCAN() { Core core = new Core(); // test contains_collection - assertEquals(200, core.send("LSH", "SCAN", "contains_collection, test-mongo-database").code()); - assertEquals("true", core.send("LSH", "SCAN", "contains_collection, test-mongo-database").data()); - assertEquals("false", core.send("LSH", "SCAN", "contains_collection, dne").data()); - assertEquals(445, core.send("LSH", "SCAN", "contains_collection, test-mongo-database, invalid").code()); + assertEquals(200, core.send("LSH", "SCAN", "query", "contains_collection, test-mongo-database").code()); + assertEquals("true", core.send("LSH", "SCAN", "query", "contains_collection, test-mongo-database").data()); + assertEquals("false", core.send("LSH", "SCAN", "query", "contains_collection, dne").data()); + assertEquals(445, core.send("LSH", "SCAN", "query", "contains_collection, test-mongo-database, invalid").code()); // test contains_type - assertEquals(200, core.send("LSH", "SCAN", "contains_type, test-mongo-database, element1").code()); - assertEquals("true", core.send("LSH", "SCAN", "contains_type, test-mongo-database, element1").data()); - assertEquals("false", core.send("LSH", "SCAN", "contains_type, test-mongo-database, dne").data()); - assertEquals(445, core.send("LSH", "SCAN", "contains_type, test-mongo-database, element1, invalid").code()); + assertEquals(200, core.send("LSH", "SCAN", "query", "contains_type, test-mongo-database, element1").code()); + assertEquals("true", core.send("LSH", "SCAN", "query", "contains_type, test-mongo-database, element1").data()); + assertEquals("false", core.send("LSH", "SCAN", "query", "contains_type, test-mongo-database, dne").data()); + assertEquals(445, core.send("LSH", "SCAN", "query", "contains_type, test-mongo-database, element1, dne").code()); // test contains_item - assertEquals(200, core.send("LSH", "SCAN", "contains_item, test-mongo-database, element1, e1").code()); - assertEquals("true", core.send("LSH", "SCAN", "contains_item, test-mongo-database, element1, e1").data()); - assertEquals("false", core.send("LSH", "SCAN", "contains_item, test-mongo-database, element1, dne").data()); - assertEquals(445, core.send("LSH", "SCAN", "contains_item, test-mongo-database, element1, e1, invalid").code()); + assertEquals(200, core.send("LSH", "SCAN", "query", "contains_item, test-mongo-database, element1, e1").code()); + assertEquals("true", core.send("LSH", "SCAN", "query", "contains_item, test-mongo-database, element1, e1").data()); + assertEquals("false", core.send("LSH", "SCAN", "query", "contains_item, test-mongo-database, element1, dne").data()); + assertEquals(445, core.send("LSH", "SCAN", "query", "contains_item, test-mongo-database, element1, e1, invalid").code()); - assertEquals(500, core.send("LSH", "SCAN", "").code()); + assertEquals(500, core.send("LSH", "SCAN", "query", "").code()); } @Test @@ -72,15 +72,15 @@ public void TestRQST() { Core core = new Core(); // test get_all - assertEquals(200, core.send("LSH", "RQST", "get_all, test-mongo-database", "null").code()); - assertEquals(445, core.send("LSH", "RQST", "get_all, test-mongo-database, invalid", "null").code()); - assertEquals(446, core.send("LSH", "RQST", "get_all, dne", "null").code()); + assertEquals(200, core.send("LSH", "RQST", "uuid", "external_template", "request", "test-mongo-database", "query", "get_all, test-mongo-database", "destination", "null").code()); + assertEquals(445, core.send("LSH", "RQST", "uuid", "external_template", "request", "test-mongo-database", "query", "get_all, test-mongo-database, invalid", "destination", "null").code()); + assertEquals(446, core.send("LSH", "RQST", "uuid", "external_template", "request", "test-mongo-database", "query", "get_all, dne", "destination", "null").code()); // test get_item - assertEquals(200, core.send("LSH", "RQST", "get_item, test-mongo-database, element1, e1", "null").code()); - assertEquals(446, core.send("LSH", "RQST", "get_item, test-mongo-database, element1, e2", "null").code()); + assertEquals(200, core.send("LSH", "RQST", "uuid", "external_template", "request", "test-mongo-database", "query", "get_item, test-mongo-database, element1, e1", "destination", "null").code()); + assertEquals(446, core.send("LSH", "RQST", "uuid", "external_template", "request", "test-mongo-database", "query", "get_item, test-mongo-database, element1, e2", "destination", "null").code()); - assertEquals(500, core.send("LSH", "RQST", "").code()); + assertEquals(500, core.send("LSH", "RQST", "uuid", "").code()); } @Test @@ -88,9 +88,10 @@ public void TestRQSTDated() { Config.setProperty("stream", "mongodb.database.main", "testing"); Core core = new Core(); - assertEquals(200, core.send("SRC", "INIT", "external_template:::key").code()); + assertEquals(200, core.send("SRC", "INIT", "source", "external_template", "key", "key").code()); - assertEquals(200, core.send("SRC", "RQST", "key:::10-09-2022:::15-09-2022:::template-external-request:::get_all, template-external-request", "null").code()); + assertEquals(200, core.send("SRC", "RQST", "key", "key", "request", "test-mongo-database", "query", "get_all, test-mongo-database", "destination", "null", + "start_date", "2020-09-01", "end_date", "2020-09-05").code()); } @Test @@ -98,10 +99,10 @@ public void TestPUSH() { Config.setProperty("stream", "mongodb.database.main", "testing"); Core core = new Core(); - assertEquals(200, core.send("LSH", "PUSH", "element1, e1:::test-mongo-database").code()); - assertEquals(200, core.send("LSH", "PUSH", "element1, e1, element2, e2:::test-mongo-database").code()); - assertEquals(449, core.send("LSH", "PUSH", "element1, e1, invalid:::test-mongo-database").code()); + assertEquals(200, core.send("LSH", "PUSH", "data", "element1, e1", "collection", "test-mongo-database").code()); + assertEquals(200, core.send("LSH", "PUSH", "data", "element1, e2", "collection", "test-mongo-database").code()); + assertEquals(449, core.send("LSH", "PUSH", "data", "element1, e2, invalid", "collection", "test-mongo-database").code()); - assertEquals(500, core.send("LSH", "PUSH", "invalid").code()); + assertEquals(500, core.send("LSH", "PUSH", "data", "").code()); } } diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/protocols/TestSRC.java b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/protocols/TestSRC.java index 5bae1cab..26495c31 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/protocols/TestSRC.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/protocols/TestSRC.java @@ -16,7 +16,7 @@ public class TestSRC { LogManager.getRootLogger().setLevel(Level.OFF); Config.setProperty("stream", "general.consumer.types", "null"); Config.setProperty("stream", "general.producer.types", "null"); - Config.setProperty("stream", "local.stream.type", "null"); + Config.setProperty("stream", "local.stream.type", "local_template"); } @Test @@ -141,17 +141,18 @@ public void TestRQST() { Core core = new Core(); assertEquals(200, core.send("SRC", "INIT", "source", "external_template", "key", "key").code()); - assertEquals(200, core.send("SRC", "INIT", "external_template", "key", "not_ready").code()); - - assertEquals(200, core.send("SRC", "RQST", "key, correct", "destination").code()); - assertEquals(200, core.send("SRC", "RQST", "key, correct", "destination").code()); - assertEquals(421, core.send("SRC", "RQST", "does_not_exist, correct", "destination").code()); - assertEquals(423, core.send("SRC", "RQST", "not_ready, correct", "destination").code()); - assertEquals(428, core.send("SRC", "RQST", "key, does_not_exist", "destination").code()); - assertEquals(429, core.send("SRC", "RQST", "key, irregular", "destination").code()); - assertEquals(500, core.send("SRC", "RQST", "", "destination").code()); - assertEquals(500, core.send("SRC", "RQST", "key", "destination").code()); - assertEquals(500, core.send("SRC", "RQST", "key, correct", "").code()); + assertEquals(200, core.send("SRC", "RQST", "key", "key", "request", "correct", "query", "valid", "destination", "null").code()); + assertEquals(200, core.send("SRC", "RQST", "key", "key", "request", "correct", "query", "valid", "destination", "null", + "start_date", "2020-01-01", "end_date", "2020-02-01").code()); + + assertEquals(421, core.send("SRC", "RQST", "key", "does_not_exist", "request", "correct", "query", "valid", "destination", "null").code()); + Config.setProperty("testing", "lsh.ready", "false"); + assertEquals(447, core.send("SRC", "RQST", "key", "key", "request", "correct", "query", "valid", "destination", "null").code()); + Config.setProperty("testing", "lsh.ready", "true"); + assertEquals(421, core.send("SRC", "RQST", "key", "dne", "request", "correct", "query", "valid", "destination", "null").code()); + assertEquals(447, core.send("SRC", "RQST", "key", "key", "request", "correct", "query", "irregular", "destination", "null").code()); + assertEquals(500, core.send("SRC", "RQST", "key", "key", "request", "correct", "query", "valid", "destination", "null", + "start_date", "2020-01-01").code()); } } \ No newline at end of file diff --git a/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java b/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java index 90708126..a8790e99 100644 --- a/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java +++ b/DeFi-Data-Engine/Rest Application/src/main/java/org/properties/Config.java @@ -36,6 +36,7 @@ public class Config { app_properties.put("general.transfer.delim", "&&&"); app_properties.put("general.data.dateformat", "yyyy-MM-dd"); app_properties.put("spring.server.port", "8080"); + app_properties.put("spring.server.address", "localhost"); app_properties.put("rest.socket.address", "localhost"); app_properties.put("rest.socket.port", "61100"); app_properties.put("rest.socket.key", "rest-key-reserved"); diff --git a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java index e512294e..f3171e1e 100644 --- a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java +++ b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/Endpoint.java @@ -37,75 +37,62 @@ public class Endpoint { @GetMapping(path="/defi/v1/rest/source_exists") public String getSourceExists(@RequestParam String source) { - return requestStatic("SRC", "EXSR", source); + return request("SRC", "EXSR", "source", source); } @GetMapping(path="/defi/v1/rest/stream_exists") public String getStreamExists(@RequestParam String key) { - return requestStatic("SRC", "EXST", key); + return request("SRC", "EXST", "key", key); } @GetMapping(path="/defi/v1/rest/initialize") public String getInitialize(@RequestParam String source, @RequestParam String auth_data) { - return requestStatic("SRC", "INIT", source, auth_data); + return request("SRC", "INIT", "source", source, "auth_data", auth_data); } @GetMapping(path="/defi/v1/rest/is_authorized") public String getIsAuthorized(@RequestParam String key) { - return requestStatic("SRC", "IATH", key); + return request("SRC", "IATH", "key", key); } @GetMapping(path="/defi/v1/rest/is_active") public String getIsActive(@RequestParam String key) { - return requestStatic("SRC", "IATV", key); + return request("SRC", "IATV", "key", key); } @GetMapping(path="/defi/v1/rest/execute") @Deprecated public String getExecute(@RequestParam String key) { - return requestStatic("SRC", "EXEC", key); + return request("SRC", "EXEC", "key", key); } @GetMapping(path="/defi/v1/rest/kill") @Deprecated public String getKill(@RequestParam String key) { - return requestStatic("SRC", "KILL", key); + return request("SRC", "KILL", "key", key); } @GetMapping(path="/defi/v1/rest/subscribe") @Deprecated public String getSubscription(@RequestParam String key, @RequestParam String subscription) { - return requestStatic("SRC", "SUBS", key, subscription); + return request("SRC", "SUBS", "key", key, "subscription", subscription); } @GetMapping(path="/defi/v1/rest/request") public String getRequest(@RequestParam String destination, @RequestParam String key, @RequestParam String request, @RequestParam String query) { - return request("SRC", "RQST", destination, key, request, query); + return request("SRC", "RQST", "destination", destination, "key", key, "request", request, "query", query); } @GetMapping(path="/defi/v1/rest/request_dated") public String getRequest(@RequestParam String destination, @RequestParam String key, @RequestParam String request, @RequestParam String query, @RequestParam String start_date, @RequestParam String end_date) { - return request("SRC", "RQST", destination, key, start_date, end_date, request, query); + return request("SRC", "RQST", "destination", destination, "key", key, "start_date", start_date, "end_date", end_date, "request", request, "query", query); } - private final String requestStatic(String tag, String sub_tag, String... data) { - return request(tag, sub_tag, "", data); - } - - private final String request(String tag, String sub_tag, String destination, String... data) { + private final String request(String tag, String sub_tag, String... data) { try { String delim = Config.getProperty("app", "general.transfer.delim"); - if(destination.contains(delim)) - return new JSONObject() - .put("response", "406") - .put("message", String.format("Parameters cannot contain the character sequence <%s>. Please request with a different character.", delim)) - .toString(); - - if(data.length == 0) - throw new IOException("Data length 0, fatal error occured"); StringBuilder formatted_data = new StringBuilder(); - String internal_delim = Config.getProperty("app", "general.internal.delim"); for(int i = 0; i < data.length; i++) { if(data[i].contains(delim)) return new JSONObject() @@ -114,15 +101,11 @@ private final String request(String tag, String sub_tag, String destination, Str .toString(); formatted_data.append(data[i]); if(i != data.length - 1) - formatted_data.append(internal_delim); + formatted_data.append(delim); } // static request - if(destination.equals("")) - out.writeUTF(String.format("%s%s%s%s%s", tag, delim, sub_tag, delim, formatted_data)); - // live request - else - out.writeUTF(String.format("%s%s%s%s%s%s%s", tag, delim, sub_tag, delim, destination, delim, formatted_data)); + out.writeUTF(String.format("%s%s%s%s%s", tag, delim, sub_tag, delim, formatted_data)); return in.readUTF(); } catch (IOException e) { e.printStackTrace(); diff --git a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/RestApplication.java b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/RestApplication.java index 19e0d62a..777f290f 100644 --- a/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/RestApplication.java +++ b/DeFi-Data-Engine/Rest Application/src/main/java/org/rest/application/RestApplication.java @@ -2,9 +2,9 @@ import java.io.IOException; import java.net.UnknownHostException; -import java.util.Collections; - +import java.util.HashMap; +import org.properties.Config; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -13,8 +13,10 @@ public class RestApplication { public static void main(String[] args) throws InterruptedException, UnknownHostException, IOException { SpringApplication app = new SpringApplication(RestApplication.class); - app.setDefaultProperties(Collections.singletonMap( - "server.port", "8080")); + HashMap properties = new HashMap(); + properties.put("server.port", Config.getProperty("app", "spring.server.port")); + properties.put("server.address", Config.getProperty("app", "spring.server.address")); + app.setDefaultProperties(properties); app.run(args); } } \ No newline at end of file diff --git a/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/SocketConnectionTest.java b/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/SocketConnectionTest.java index 4d447d4c..29df1025 100644 --- a/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/SocketConnectionTest.java +++ b/DeFi-Data-Engine/Testing Environment/src/test/connection/socket/SocketConnectionTest.java @@ -14,12 +14,13 @@ import org.json.JSONObject; public class SocketConnectionTest { - + public static void main(String[] args) throws UnknownHostException, IOException { - final Socket socket = SocketFactory.getDefault().createSocket("localhost", 61200); + final Socket socket = SocketFactory.getDefault().createSocket("defi-de.idea.rpi.edu", 61200); final DataInputStream in = new DataInputStream(socket.getInputStream()); String key = readLine(in); + System.out.println(key); Thread thread = new Thread() { public void run() { @@ -35,19 +36,13 @@ public void run() { }; thread.start(); - //TODO FIX INTEGRATION WITH REST API -// System.out.println("SOURCE_EXISTS RESPONSE: " + request("http://localhost:8080/defi/v1/rest/source_exists?source=polygon")); -// System.out.println("INIT RESPONSE: " + request("http://localhost:8080/defi/v1/rest/initialize?source=polygon&auth_data=key")); -// System.out.println("STREAM_EXISTS RESPONSE: " + request("http://localhost:8080/defi/v1/rest/stream_exists?key=key")); -// System.out.println("IS_AUTHORIZED RESPONSE: " + request("http://localhost:8080/defi/v1/rest/is_authorized?key=key")); - - String rqst = request("http://localhost:8080/defi/v1/rest/initialize?source=polygon&auth_data=vtTMMRtEywJ_owkHdqoRUmv9vf2hWkrV"); + String rqst = request("http://128.113.28.46:8080/defi/v1/rest/initialize?source=polygon&auth_data=vtTMMRtEywJ_owkHdqoRUmv9vf2hWkrV"); JSONObject init = new JSONObject(rqst); System.out.println(rqst); String hash = init.getString("data"); System.out.println("RESPONSE: " + request( - String.format("http://localhost:8080/defi/v1/rest/request_dated?destination=%s" + String.format("http://128.113.28.46:8080/defi/v1/rest/request_dated?destination=%s" + "&key=%s" + "&request=bar-AAPL-15m" + "&query=get_all,bar-AAPL-15m"