Gabble is a system integration tool that implements the Knowledge-Driven Architecture Composition approach. You can find more information about the tool and the approach here.
The application is a web app that is deployed via docker and docker compose.
Ensure that you have an up-to-date version of docker installed. Link.
NOTE: On some systems it could come to an issue when WSL 2 is not activated in the docker settings. Please try enabling it if you encounter error when starting the application.
The following installation instructions are for UNIX system. Windows installation follows accordingly.
- Clone the repository:
git clone https://github.com/mauriceackel/Gabble
- Navigate to the cloned folder:
cd Gabble
- Checkout the demo branch:
git checkout demo
NOTE: Technically you only need the contents of the folder /Docker App/ to run the demo. However, make sure you get the data from the demo branch of the repository!
- Inside the repository folder, navigate to the app folder:
cd Docker\ App
- Start the application with docker compose in daemon mode:
docker-compose up -d
NOTE: On the first start, this may take a while to download the docker containers. Consecutive executions will be faster.
After you have started the application and all containers are running, you can can open the application in your browser via: http://localhost:8080
.
If you are asked to login, you can either create a new account (this will all be local, no data is transmitted) or use the root account with credentials [email protected]
/ 1234
.
The demo build of the application already has some data prepopulated in the database but you can also add additional interfaces and create your own mappings between them.
- Inside the repository folder, navigate to the app folder:
cd Docker\ App
- Stop the application with docker compose:
docker-compose stop
- Inside the repository folder, navigate to the app folder:
cd Docker\ App
- If the app is running, stop the application with docker compose:
docker-compose stop
- Remove the docker compose app:
docker-compose rm
To use the generated OpenAPI code adapter, you basically need to execute the exact same steps as if you created the code with the official OpenAPI code generator.
- Unzip the downloaded folder
- Copy the whole folder to your project
- Navigate inside the folder and run
npm run provide
which will execute many of the manual steps automatically - Navigate back to your project folder
- Run
npm link <path_to_adapter_folder>
- Exchange the import of the original source-interface library with the adapter (i.e.
require('philips')
->require('philips-adapter')
)
NOTE: The name of the generated adapter library will always be the same as if the library was directly created with the OpenAPI code generator with an addition '-adapter' postfix. NOTE: You can change the created adapter code to your liking. However, you will need to build the adapter code again after you make any changes.
You can find the OpenAPI descriptions of the sample interfaces in the folder ./Docker\ App/demo/apis
.
You find a sample code project with a Philips API client call in the folder ./Docker\ App/demo/code-project
.
You can find mockoon environments to mock the Philips and Yeelight API in ./Docker\ App/demo/Mockoon\ Apis.json
.