From 35b3d5cc5d69a91f9b1c8eba68f92af193d87eac Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 11:58:20 +0200 Subject: [PATCH 01/12] Added proxy for java, python and mock backend --- Frontend/nginx.conf | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Frontend/nginx.conf b/Frontend/nginx.conf index e52fbb2..b90e94d 100644 --- a/Frontend/nginx.conf +++ b/Frontend/nginx.conf @@ -12,8 +12,34 @@ server { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"; } + location /java/ { + proxy_pass http://xmltools-backend:8081/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + } + + location /libxml/ { + proxy_pass http://xmltools-libxml-backend:8082/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + } + + location /mock/ { + proxy_pass http://xmltools-mocked-services:8097/api/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + } + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; -- 2.51.0 From 2a48624e95c89ecaa3b014778d3a41f8c0329885 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 11:59:56 +0200 Subject: [PATCH 02/12] Changed main port from 8086 to 80 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c9e1120..eea1c0c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: container_name: xmltools-frontend image: xmltools-frontend ports: - - 8086:80 + - 80:80 xmltools-backend: build: ./Backend/tools-services -- 2.51.0 From e8b84ef1e8d81a83eed97ba514f7165bd76ba35a Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 12:00:13 +0200 Subject: [PATCH 03/12] Moved XML tools to new address --- Frontend/assets/scripts/tools/scripts.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Frontend/assets/scripts/tools/scripts.js b/Frontend/assets/scripts/tools/scripts.js index 3532208..07c8684 100644 --- a/Frontend/assets/scripts/tools/scripts.js +++ b/Frontend/assets/scripts/tools/scripts.js @@ -76,7 +76,7 @@ function clearDataField() { */ function fillDefaultXML(element) { if (element.classList.contains("active")) { - const serverAddress = window.location.protocol + "//" + window.location.hostname + ":8086"; + const serverAddress = window.location.protocol + "//" + window.location.hostname; clearDefaultContent(document.getElementById("xmlArea"), "Insert XML here"); fetch(serverAddress + "/assets/samples/sampleXml.xml") .then(response => response.text()) @@ -100,7 +100,7 @@ function fillDefaultXML(element) { * @returns {void} */ function fillDefaultXSD(){ - const serverAddress = window.location.protocol + "//" + window.location.hostname + ":8086"; + const serverAddress = window.location.protocol + "//" + window.location.hostname; fetch(serverAddress + "/assets/samples/sampleXSD.xsd") .then( response => response.text() ) .then( (XSDSchema) => { @@ -126,7 +126,7 @@ function fillDefaultXSD(){ * @returns {void} */ function fillDefaultXSLT() { - const serverAddress = window.location.protocol + "//" + window.location.hostname + ":8086"; + const serverAddress = window.location.protocol + "//" + window.location.hostname; fetch(serverAddress + "/assets/samples/XSLTTemplate.xslt") .then( response => response.text() ) .then( (XSTLTemplate) => { @@ -277,9 +277,9 @@ function performRequest(endpoint, checkXML, checkTransform) { var xmlData = document.getElementById(sourceId).innerText.trim(); var transformData = document.getElementById(transformId).innerText.trim(); - var port = 8081; + var backend = "java"; if (getProcessor() == "libxml") { - port = 8082; + backend = "libxml"; } var empty = false; @@ -293,7 +293,7 @@ function performRequest(endpoint, checkXML, checkTransform) { empty = true; } if (!empty) { - restRequest(port, endpoint, xmlData, transformData).then(function (result) { + restRequest(backend, endpoint, xmlData, transformData).then(function (result) { document.getElementById("resultArea").innerText = result.result; highlightSyntax("resultArea"); document.getElementById("procinfo").innerText = ' Computed using ' + result.processor; @@ -380,10 +380,9 @@ function performFormatRequest(endpoint, checkXML, sourceId, targetId) { * @param {any} transformData data used to transform given XML * @returns {Promise} */ -async function restRequest(port, endpoint, xmlData, transformData) { - const escapeChar = "specialEscapeChar"; +async function restRequest(backend, endpoint, xmlData, transformData) { - const addr = window.location.protocol + "//" + window.location.hostname + ":" + port + "/" + endpoint; + const addr = window.location.protocol + "//" + window.location.hostname + "/" + backend + "/" + endpoint; if (defaultStrings.includes(xmlData)) { xmlData = ""; -- 2.51.0 From 5887c92a2af0f4878c090bf3a275763689402970 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 12:04:32 +0200 Subject: [PATCH 04/12] Adjusted Mock Services to new address --- Frontend/assets/scripts/tools/mock/datatransfer.js | 2 +- Frontend/nginx.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Frontend/assets/scripts/tools/mock/datatransfer.js b/Frontend/assets/scripts/tools/mock/datatransfer.js index 34945a2..f1f0811 100644 --- a/Frontend/assets/scripts/tools/mock/datatransfer.js +++ b/Frontend/assets/scripts/tools/mock/datatransfer.js @@ -4,7 +4,7 @@ var json = {}; var jsonIndex = 0; var lastId = 1; var htable_row = 0; -var host = window.location.protocol + "//" + window.location.hostname + ":8097"; +var host = window.location.protocol + "//" + window.location.hostname + "/mock"; var dataModified = false; const addMessageName = 'addMessage'; const loadMessageName = 'changeMessage'; diff --git a/Frontend/nginx.conf b/Frontend/nginx.conf index b90e94d..8ce7f3a 100644 --- a/Frontend/nginx.conf +++ b/Frontend/nginx.conf @@ -29,7 +29,7 @@ server { } location /mock/ { - proxy_pass http://xmltools-mocked-services:8097/api/; + proxy_pass http://xmltools-mocked-services:8097/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; -- 2.51.0 From 8bf707abd2af56ecb534a824fd1f901a9d752297 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 12:16:17 +0200 Subject: [PATCH 05/12] Configured tools for new libxml backend address --- Backend-libXML/main.py | 10 +++++----- Frontend/assets/scripts/tools/scripts.js | 6 +++--- Frontend/nginx.conf | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Backend-libXML/main.py b/Backend-libXML/main.py index 4445cab..e4fefe5 100644 --- a/Backend-libXML/main.py +++ b/Backend-libXML/main.py @@ -9,11 +9,11 @@ import Parser app = Flask(__name__) CORS(app) -cors = CORS(app, resource={ - r"/*":{ - "origins":"*" - } -}) +# cors = CORS(app, resource={ +# r"/*":{ +# "origins":"*" +# } +# }) def process_xml(request: request, type: str) -> str: """Function to process diff --git a/Frontend/assets/scripts/tools/scripts.js b/Frontend/assets/scripts/tools/scripts.js index 07c8684..729ee8e 100644 --- a/Frontend/assets/scripts/tools/scripts.js +++ b/Frontend/assets/scripts/tools/scripts.js @@ -333,7 +333,7 @@ function performFormatRequest(endpoint, checkXML, sourceId, targetId) { const sourceElement = document.getElementById(sourceId); const targetElement = document.getElementById(targetId); const infoElement = document.getElementById("formatinfo"); - const port = 8082; + const backend = "libxml"; var xmlData = sourceElement.innerText.trim(); var empty = false; @@ -344,7 +344,7 @@ function performFormatRequest(endpoint, checkXML, sourceId, targetId) { } if (!empty) { - restRequest(port, endpoint, xmlData, "").then(function (result) { + restRequest(backend, endpoint, xmlData, "").then(function (result) { if (result.status == "OK") { targetElement.innerText = result.result.trim(); highlightSyntax(targetElement.id); @@ -374,7 +374,7 @@ function performFormatRequest(endpoint, checkXML, sourceId, targetId) { * @function * @name restRequest * @kind function -* @param {any} port of target service +* @param {any} backend target backend * @param {any} endpoint of target service * @param {any} xmlData XML that will be sent * @param {any} transformData data used to transform given XML diff --git a/Frontend/nginx.conf b/Frontend/nginx.conf index 8ce7f3a..0639769 100644 --- a/Frontend/nginx.conf +++ b/Frontend/nginx.conf @@ -21,7 +21,7 @@ server { } location /libxml/ { - proxy_pass http://xmltools-libxml-backend:8082/; + proxy_pass http://xmltools-libxml-backend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; -- 2.51.0 From 5aa56f735dca9a0ad03fe8314020422aeccc9428 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 13:40:53 +0200 Subject: [PATCH 06/12] Removed unused headers --- Frontend/nginx.conf | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Frontend/nginx.conf b/Frontend/nginx.conf index 0639769..8611449 100644 --- a/Frontend/nginx.conf +++ b/Frontend/nginx.conf @@ -14,26 +14,14 @@ server { location /java/ { proxy_pass http://xmltools-backend:8081/; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Host $server_name; } location /libxml/ { proxy_pass http://xmltools-libxml-backend/; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Host $server_name; } location /mock/ { proxy_pass http://xmltools-mocked-services:8097/; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Host $server_name; } #error_page 404 /404.html; -- 2.51.0 From d7b4c8d90426497208b6e56601fc60e53d836d74 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 22 May 2023 13:41:32 +0200 Subject: [PATCH 07/12] Changed 'default XML' to 'default JSON' in JSON Formatter --- Frontend/tools/jsonFormatter.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Frontend/tools/jsonFormatter.html b/Frontend/tools/jsonFormatter.html index 8081f02..59eee48 100644 --- a/Frontend/tools/jsonFormatter.html +++ b/Frontend/tools/jsonFormatter.html @@ -31,7 +31,7 @@ + onclick="insertDefaultJson()">Insert default JSON
-- 
2.51.0


From b301008c3fb92e8541b5c8083091305a7ab1af81 Mon Sep 17 00:00:00 2001
From: Adam Bem 
Date: Mon, 22 May 2023 13:47:22 +0200
Subject: [PATCH 08/12] Prepared mock for new addresses

---
 Frontend/assets/scripts/tools/mock/uianimation.js | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Frontend/assets/scripts/tools/mock/uianimation.js b/Frontend/assets/scripts/tools/mock/uianimation.js
index 7340b83..44dd8e4 100644
--- a/Frontend/assets/scripts/tools/mock/uianimation.js
+++ b/Frontend/assets/scripts/tools/mock/uianimation.js
@@ -78,7 +78,9 @@ function showHeadersHistory(element){
 }
 
 async function formatJSON(json) {
-    const address = window.location.protocol + "//" + window.location.hostname + ":" + 8081 + "/json/formatting";
+    const backend = "java";
+    const address = window.location.protocol + "//" + window.location.hostname + "/" + backend + "/json/formatting";
+    console.log("formatJSON");
 
     var init = {
         body: json,
@@ -98,7 +100,9 @@ async function formatJSON(json) {
 }
 
 async function formatXML(xml) {
-    const address = window.location.protocol + "//" + window.location.hostname + ":" + 8082 + "/prettify";
+    const backend = "libxml";
+    const address = window.location.protocol + "//" + window.location.hostname + "/" + backend + "/prettify";
+    console.log("formatXML");
     var data = {
         data: xml,
         process: "",
-- 
2.51.0


From b496b7bbc6f89df96c1af78dd09c92bcd1c51112 Mon Sep 17 00:00:00 2001
From: Adam Bem 
Date: Mon, 22 May 2023 13:47:53 +0200
Subject: [PATCH 09/12] Fixed bug with content-type of request

---
 Frontend/assets/scripts/tools/mock/uianimation.js | 2 --
 Frontend/nginx.conf                               | 4 ++++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Frontend/assets/scripts/tools/mock/uianimation.js b/Frontend/assets/scripts/tools/mock/uianimation.js
index 44dd8e4..753377b 100644
--- a/Frontend/assets/scripts/tools/mock/uianimation.js
+++ b/Frontend/assets/scripts/tools/mock/uianimation.js
@@ -80,7 +80,6 @@ function showHeadersHistory(element){
 async function formatJSON(json) {
     const backend = "java";
     const address = window.location.protocol + "//" + window.location.hostname + "/" + backend + "/json/formatting";
-    console.log("formatJSON");
 
     var init = {
         body: json,
@@ -102,7 +101,6 @@ async function formatJSON(json) {
 async function formatXML(xml) {
     const backend = "libxml";
     const address = window.location.protocol + "//" + window.location.hostname + "/" + backend + "/prettify";
-    console.log("formatXML");
     var data = {
         data: xml,
         process: "",
diff --git a/Frontend/nginx.conf b/Frontend/nginx.conf
index 8611449..74e93e6 100644
--- a/Frontend/nginx.conf
+++ b/Frontend/nginx.conf
@@ -14,14 +14,18 @@ server {
 
     location /java/ {
         proxy_pass http://xmltools-backend:8081/;
+        proxy_set_header Host $host;
     }
 
     location /libxml/ {
         proxy_pass http://xmltools-libxml-backend/;
+        proxy_set_header Host $host;
     }
 
     location /mock/ {
         proxy_pass http://xmltools-mocked-services:8097/;
+        proxy_set_header Host $host;
+        proxy_set_header Content-Type $http_content_type;
     }
 
     #error_page  404              /404.html;
-- 
2.51.0


From d3ed7d4611d542496bf4c34076498e30096db3e4 Mon Sep 17 00:00:00 2001
From: Adam Bem 
Date: Mon, 22 May 2023 13:53:20 +0200
Subject: [PATCH 10/12] Updated samples

---
 Samples/minimize/minimize.curl | 2 +-
 Samples/prettify/prettify.curl | 2 +-
 Samples/xpath/non-ns.curl      | 4 ++--
 Samples/xpath/ns.curl          | 4 ++--
 Samples/xsd/xsd.curl           | 4 ++--
 Samples/xslt/xslt.curl         | 4 ++--
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Samples/minimize/minimize.curl b/Samples/minimize/minimize.curl
index 3a74ae5..3a94a93 100644
--- a/Samples/minimize/minimize.curl
+++ b/Samples/minimize/minimize.curl
@@ -1,3 +1,3 @@
-url = "http://localhost:5000/minimize"
+url = "http://localhost/libxml/minimize"
 data = "@minimize.json"
 request = POST
diff --git a/Samples/prettify/prettify.curl b/Samples/prettify/prettify.curl
index a10aa88..fc3ab49 100644
--- a/Samples/prettify/prettify.curl
+++ b/Samples/prettify/prettify.curl
@@ -1,3 +1,3 @@
-url = "http://localhost:5000/prettify"
+url = "http://localhost:5000/libxml/prettify"
 data = "@prettify.json"
 request = POST
diff --git a/Samples/xpath/non-ns.curl b/Samples/xpath/non-ns.curl
index b54c5b6..e6af844 100644
--- a/Samples/xpath/non-ns.curl
+++ b/Samples/xpath/non-ns.curl
@@ -1,4 +1,4 @@
-#url = "localhost:8081/xpath"
-url = "localhost:5000/xpath"
+url = "localhost/java/xpath"
+#url = "localhost/libxml/xpath"
 request = "POST"
 data = "@data.json"
diff --git a/Samples/xpath/ns.curl b/Samples/xpath/ns.curl
index 46c6341..c55e0fe 100644
--- a/Samples/xpath/ns.curl
+++ b/Samples/xpath/ns.curl
@@ -1,4 +1,4 @@
-#url = "localhost:8081/xpath"
-url = "localhost:5000/xpath"
+url = "localhost/java/xpath"
+#url = "localhost/libxml/xpath"
 request = "POST"
 data = "@dataNS.json"
diff --git a/Samples/xsd/xsd.curl b/Samples/xsd/xsd.curl
index 922856c..8de3bdd 100644
--- a/Samples/xsd/xsd.curl
+++ b/Samples/xsd/xsd.curl
@@ -1,4 +1,4 @@
-#url = "http://localhost:8081/xsd"
-url = "http://localhost:5000/xsd"
+url = "localhost/java/xsd"
+#url = "localhost/libxml/xsd"
 data = "@xsd.json"
 request = POST
diff --git a/Samples/xslt/xslt.curl b/Samples/xslt/xslt.curl
index 712c82c..22adc0f 100644
--- a/Samples/xslt/xslt.curl
+++ b/Samples/xslt/xslt.curl
@@ -1,4 +1,4 @@
-#url = "http://localhost:8081/xslt"
-url = "http://localhost:5000/xslt"
+url = "localhost/java/xslt"
+#url = "localhost/libxml/xslt"
 data = "@xslt.json"
 request = POST
-- 
2.51.0


From f857d0161ad73ace5577d8a3617b7f2895384eea Mon Sep 17 00:00:00 2001
From: Adam Bem 
Date: Mon, 22 May 2023 13:57:29 +0200
Subject: [PATCH 11/12] Added additional MIME types for XML

---
 Frontend/assets/scripts/tools/mock/uianimation.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Frontend/assets/scripts/tools/mock/uianimation.js b/Frontend/assets/scripts/tools/mock/uianimation.js
index 753377b..e782705 100644
--- a/Frontend/assets/scripts/tools/mock/uianimation.js
+++ b/Frontend/assets/scripts/tools/mock/uianimation.js
@@ -142,7 +142,9 @@ function showRequestBody(element){
             });
             break;
         }
-        case "application/xml":{
+        case "application/xml":
+        case "text/xml":
+        case "application/xml+xhtml": {
             formatXML(historyRequestBody).then(function(result) {
                 if (result.status == "OK") {
                     popupContent.innerText = result.result;
-- 
2.51.0


From a5935f55c2317036b065e212bc2e91c5e6fc2ce0 Mon Sep 17 00:00:00 2001
From: Adam Bem 
Date: Mon, 22 May 2023 14:00:03 +0200
Subject: [PATCH 12/12] Revert previous commit

---
 Frontend/assets/scripts/tools/mock/uianimation.js | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Frontend/assets/scripts/tools/mock/uianimation.js b/Frontend/assets/scripts/tools/mock/uianimation.js
index e782705..66b6625 100644
--- a/Frontend/assets/scripts/tools/mock/uianimation.js
+++ b/Frontend/assets/scripts/tools/mock/uianimation.js
@@ -142,9 +142,7 @@ function showRequestBody(element){
             });
             break;
         }
-        case "application/xml":
-        case "text/xml":
-        case "application/xml+xhtml": {
+        case "application/xml": {
             formatXML(historyRequestBody).then(function(result) {
                 if (result.status == "OK") {
                     popupContent.innerText = result.result;
-- 
2.51.0