# XML Tools Content of this project is a service hosting tools for xml documents including xslt transformer, xpath selector and xsd validator. ## About project Service is split into three microservices. 1. JavaSpark web application serving REST API for XSD, XML, XSLT tools 2. Spring application serving REST mock service 3. Nginx hosting static documents. Main page is hosted on port 8086. ## API Documentation API documentation is available on port 8000/swagger/ ## JavaSpark backend Backend is hosted by default on port 8081. Rest api documentation is contained in OpenApi document openapi.yml Rest API accepts xml documents, given querry and processor version to call requested xml engine to perform given operation and finally returns outcome in response body. ## Flask Python backend This is module providing support for processing XMLs using libxml library. It consumes same JSON as Java backend. ## Mocked services MockedServices is a tool that allows developer to create, in easy and simple way, http server mocked endpoints for integration tests ## Frontend All the static files are available by default on port 8086 and are located within folder. To preview given document user is required to post GET request to following path: ```aidl /tools/{document name} ``` Documents are hosted by docker container running on ngix image and to modify container content one must modify Dockerfile located in Frontend folder. Files published must be located in ngix directory 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 docker-compose up --build -d ``` Which will launch service on localhost. ### Remote To launch service on remote host, exchange ssh keys with destination server and declare docker context ex. DEV. Then use following command ```aidl docker-compose up --context DEV --build -d ```