From c0fcd53d3571d7f79af9ec7e50b09942e8c07818 Mon Sep 17 00:00:00 2001 From: widlam Date: Fri, 16 Jun 2023 14:49:56 +0200 Subject: [PATCH 1/7] Added dev server options Implemented basic structure for mock service --- Frontend/Dockerfile | 10 +++ Frontend/package.json | 2 +- .../src/components/mock/HeadersComponent.vue | 53 +++++++++++++ .../src/components/mock/HistoryComponent.vue | 0 .../src/components/mock/RestMockComponent.vue | 10 --- .../mock/RestMockMessageComponent.vue | 69 +++++++++++++++++ Frontend/src/router/index.ts | 10 +++ Frontend/src/views/RestMockView.vue | 12 ++- Frontend/vite.config.ts | 21 ++++++ docker-compose.dev.yml | 75 +++++++++++++++++++ docker-compose.yml | 4 +- readme.md | 3 + 12 files changed, 254 insertions(+), 15 deletions(-) create mode 100644 Frontend/src/components/mock/HeadersComponent.vue create mode 100644 Frontend/src/components/mock/HistoryComponent.vue delete mode 100644 Frontend/src/components/mock/RestMockComponent.vue create mode 100644 Frontend/src/components/mock/RestMockMessageComponent.vue create mode 100644 docker-compose.dev.yml diff --git a/Frontend/Dockerfile b/Frontend/Dockerfile index 0af9ce9..0b44b57 100644 --- a/Frontend/Dockerfile +++ b/Frontend/Dockerfile @@ -18,3 +18,13 @@ COPY ./nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 EXPOSE 443 + + +FROM node:latest as dev +WORKDIR /app +COPY package*.json ./ +RUN npm install +ENV HOST=0.0.0.0 +COPY . . +EXPOSE 8080 +CMD ["npm", "run", "dev"] diff --git a/Frontend/package.json b/Frontend/package.json index 37b53fe..dc3c3f1 100644 --- a/Frontend/package.json +++ b/Frontend/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "private": true, "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "run-p type-check build-only", "preview": "vite preview", "build-only": "vite build", diff --git a/Frontend/src/components/mock/HeadersComponent.vue b/Frontend/src/components/mock/HeadersComponent.vue new file mode 100644 index 0000000..a711a20 --- /dev/null +++ b/Frontend/src/components/mock/HeadersComponent.vue @@ -0,0 +1,53 @@ + + + \ No newline at end of file diff --git a/Frontend/src/components/mock/HistoryComponent.vue b/Frontend/src/components/mock/HistoryComponent.vue new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/src/components/mock/RestMockComponent.vue b/Frontend/src/components/mock/RestMockComponent.vue deleted file mode 100644 index 25212f2..0000000 --- a/Frontend/src/components/mock/RestMockComponent.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/Frontend/src/components/mock/RestMockMessageComponent.vue b/Frontend/src/components/mock/RestMockMessageComponent.vue new file mode 100644 index 0000000..8e7f1c4 --- /dev/null +++ b/Frontend/src/components/mock/RestMockMessageComponent.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/Frontend/src/router/index.ts b/Frontend/src/router/index.ts index b935285..76f64a8 100644 --- a/Frontend/src/router/index.ts +++ b/Frontend/src/router/index.ts @@ -34,6 +34,16 @@ const routes = [ name: 'xslt', component: () => xsltTool }, + { + path: '/xml/xpath', + name: 'xpath', + component: () => restMock + }, + { + path: '/rest/mock', + name: 'restmock', + component: () => restMock + } ] diff --git a/Frontend/src/views/RestMockView.vue b/Frontend/src/views/RestMockView.vue index df7008f..e85ee3b 100644 --- a/Frontend/src/views/RestMockView.vue +++ b/Frontend/src/views/RestMockView.vue @@ -1,14 +1,20 @@ diff --git a/Frontend/vite.config.ts b/Frontend/vite.config.ts index a096036..adf0c13 100644 --- a/Frontend/vite.config.ts +++ b/Frontend/vite.config.ts @@ -8,6 +8,27 @@ export default defineConfig({ plugins: [ vue(), ], + server:{ + port: 80, + host: '0.0.0.0', + proxy : { + '/java': { + target:'http://xmltools-backend:8081/', + rewrite: (path) => path.replace(/^\/java/, ''), + }, + '/libxml': { + target:'http://xmltools-libxml-backend/', + rewrite: (path) => path.replace(/^\/libxml/, ''), + }, + '/mock': { + target:'http://xmltools-mocked-services:8097/', + rewrite: (path) => path.replace(/^\/mock/, ''), + }, + '/api/mock': { + target: 'http://xmltools-mocked-services:8097/' + } + }, + }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..8aa4ac8 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,75 @@ +version: "3" + +services: + redis: + container_name: xmltools-redis + build: ./Redis + restart: "no" + + xmltools-frontend: + build: + context: ./Frontend + target: dev + container_name: xmltools-frontend + image: xmltools-frontend + ports: + - 80:80 + volumes: + - ./Frontend:/app + - /app/node_modules + xmltools-backend: + build: ./Backend/tools-services + container_name: xmltools-backend + image: xmltools-backend + ports: + - 8081:8081 + + xmltools-libxml-backend: + build: ./Backend-libXML + container_name: xmltools-libxml-backend + image: xmltools-libxml-backend + ports: + - 8082:80 + + xmltools-mocked-services: + build: + context: ./Backend/mocked-services + dockerfile: Dockerfile + container_name: xmltools-mocked-services + restart: "no" + ports: + - "8097:8097" + depends_on: + - redis + environment: + SPRING_PROFILES_ACTIVE: DEV + TZ: Europe/Warsaw + + swagger: + image: "swaggerapi/swagger-ui:latest" + container_name: xmltools-swagger + ports: + - "8000:8080" + environment: + - BASE_URL=/swagger + - SWAGGER_JSON=/Swagger/swagger.json + volumes: + - ./Swagger:/Swagger + + filebeat: + build: ./Filebeat + container_name: xmltools-filebeat + user: root + volumes: + - "./Filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" + - "/var/lib/docker/containers:/var/lib/docker/containers:ro" + - "/var/run/docker.sock:/var/run/docker.sock:ro" + environment: + - ENV_TYPE + command: + - "-e" + - "--strict.perms=false" + +networks: + default: + name: tools_network diff --git a/docker-compose.yml b/docker-compose.yml index 4345161..01f9948 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,9 @@ services: restart: "no" xmltools-frontend: - build: ./Frontend + build: + context: ./Frontend + target: production-stage container_name: xmltools-frontend image: xmltools-frontend ports: diff --git a/readme.md b/readme.md index e0e9ba1..2d61997 100644 --- a/readme.md +++ b/readme.md @@ -41,6 +41,9 @@ within created container. ## How to run +Dev server(with hot-reload frontend): docker-compose -f docker-compose.dev.yml up --build +Prod: docker-compose up --build + ### Localy In order to run application use ```aidl -- 2.51.0 From 3a3073d236975907a4716bf42fe7f86dee20dcce Mon Sep 17 00:00:00 2001 From: widlam Date: Mon, 19 Jun 2023 15:31:15 +0200 Subject: [PATCH 2/7] Implemented most of logic behind REST Mock Services Added dev.sh script to run r11-tools in dev-mode with hot-reload for frontend --- .../r11/tools/controller/MockController.java | 6 +-- .../src/components/mock/HeadersComponent.vue | 32 +++++++----- .../src/components/mock/HistoryComponent.vue | 49 +++++++++++++++++++ .../mock/MockedMessageToastComponent.vue | 36 ++++++++++++++ .../mock/RestMockMessageComponent.vue | 37 +++++++------- .../src/components/mock/SaveComponent.vue | 45 +++++++++++++++++ Frontend/src/router/index.ts | 5 -- Frontend/src/views/RestMockView.vue | 14 ++---- dev.sh | 1 + 9 files changed, 177 insertions(+), 48 deletions(-) create mode 100644 Frontend/src/components/mock/MockedMessageToastComponent.vue create mode 100644 Frontend/src/components/mock/SaveComponent.vue create mode 100755 dev.sh diff --git a/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java b/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java index a9af2c3..108815b 100644 --- a/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java +++ b/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java @@ -36,14 +36,12 @@ public class MockController { /** * Updates queried message with given set of data - * @param body {@link MockedMessageDto} json representation + * @param message {@link MockedMessageDto} json representation * @return confirmation and 200 OK */ @SneakyThrows @PutMapping - public ResponseEntity updateMessage(@RequestBody String body){ - ObjectMapper mapper = new ObjectMapper(); - MockedMessageDto message = mapper.readValue(body, MockedMessageDto.class); + public ResponseEntity updateMessage(@RequestBody MockedMessageDto message){ return klausService.setMockedResponse(message); } diff --git a/Frontend/src/components/mock/HeadersComponent.vue b/Frontend/src/components/mock/HeadersComponent.vue index a711a20..c31c3b7 100644 --- a/Frontend/src/components/mock/HeadersComponent.vue +++ b/Frontend/src/components/mock/HeadersComponent.vue @@ -1,34 +1,42 @@ - diff --git a/Frontend/src/components/mock/HistoryComponent.vue b/Frontend/src/components/mock/HistoryComponent.vue index e69de29..2fc769b 100644 --- a/Frontend/src/components/mock/HistoryComponent.vue +++ b/Frontend/src/components/mock/HistoryComponent.vue @@ -0,0 +1,49 @@ + + + + \ No newline at end of file diff --git a/Frontend/src/components/mock/MockedMessageToastComponent.vue b/Frontend/src/components/mock/MockedMessageToastComponent.vue new file mode 100644 index 0000000..c246fa7 --- /dev/null +++ b/Frontend/src/components/mock/MockedMessageToastComponent.vue @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/Frontend/src/components/mock/RestMockMessageComponent.vue b/Frontend/src/components/mock/RestMockMessageComponent.vue index 8e7f1c4..0590bf7 100644 --- a/Frontend/src/components/mock/RestMockMessageComponent.vue +++ b/Frontend/src/components/mock/RestMockMessageComponent.vue @@ -1,6 +1,7 @@ diff --git a/Frontend/src/components/mock/SaveComponent.vue b/Frontend/src/components/mock/SaveComponent.vue new file mode 100644 index 0000000..c1cc2ab --- /dev/null +++ b/Frontend/src/components/mock/SaveComponent.vue @@ -0,0 +1,45 @@ + + + \ No newline at end of file diff --git a/Frontend/src/router/index.ts b/Frontend/src/router/index.ts index 76f64a8..c614f20 100644 --- a/Frontend/src/router/index.ts +++ b/Frontend/src/router/index.ts @@ -34,11 +34,6 @@ const routes = [ name: 'xslt', component: () => xsltTool }, - { - path: '/xml/xpath', - name: 'xpath', - component: () => restMock - }, { path: '/rest/mock', name: 'restmock', diff --git a/Frontend/src/views/RestMockView.vue b/Frontend/src/views/RestMockView.vue index e85ee3b..65a7220 100644 --- a/Frontend/src/views/RestMockView.vue +++ b/Frontend/src/views/RestMockView.vue @@ -1,20 +1,14 @@ - diff --git a/dev.sh b/dev.sh new file mode 100755 index 0000000..0a22208 --- /dev/null +++ b/dev.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.dev.yml up --build \ No newline at end of file -- 2.51.0 From 5c2516797b485c750ed274c17f46417f089b7677 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Tue, 20 Jun 2023 12:18:21 +0200 Subject: [PATCH 3/7] Added styling and RWD --- .../src/components/mock/HeadersComponent.vue | 14 ++++----- .../src/components/mock/HistoryComponent.vue | 31 ++++++++++--------- .../mock/RestMockMessageComponent.vue | 10 +++--- Frontend/src/style.css | 4 +++ Frontend/src/views/RestMockView.vue | 4 ++- 5 files changed, 36 insertions(+), 27 deletions(-) diff --git a/Frontend/src/components/mock/HeadersComponent.vue b/Frontend/src/components/mock/HeadersComponent.vue index c31c3b7..c5dc457 100644 --- a/Frontend/src/components/mock/HeadersComponent.vue +++ b/Frontend/src/components/mock/HeadersComponent.vue @@ -20,7 +20,7 @@ function isHeaderEssential(headerName : string){ } function setEssentialHeaderStyle(headerName : string){ - return isHeaderEssential(headerName) ? "text-gray-400" : "text-red-400"; + return isHeaderEssential(headerName) ? "text-gray-400" : "tool-button text-red-400"; } function deleteHeader(index : string){ @@ -48,14 +48,14 @@ function addNewHeader(name : string, value : string){
- - - + + +
- - - + + +
\ No newline at end of file diff --git a/Frontend/src/components/mock/HistoryComponent.vue b/Frontend/src/components/mock/HistoryComponent.vue index 2fc769b..fed0035 100644 --- a/Frontend/src/components/mock/HistoryComponent.vue +++ b/Frontend/src/components/mock/HistoryComponent.vue @@ -31,19 +31,22 @@ function showBody(body : String){ \ No newline at end of file diff --git a/Frontend/src/components/mock/RestMockMessageComponent.vue b/Frontend/src/components/mock/RestMockMessageComponent.vue index 0590bf7..9428699 100644 --- a/Frontend/src/components/mock/RestMockMessageComponent.vue +++ b/Frontend/src/components/mock/RestMockMessageComponent.vue @@ -39,11 +39,11 @@ function putDataInFields(data: mockedMessageData){