Newer
Older
Kostis Trantzas
committed
OpenSlice backend services are mainly implemented with Java 17 or above and Spring boot.
Kostis Trantzas
committed
OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at docker-compose.yaml file).
Kostis Trantzas
committed
```bash
wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh
Kostis Trantzas
committed
sudo ./deploy.sh develop #[or replace develop with other branch name]
Kostis Trantzas
committed
You may follow the [installation process](https://osl.etsi.org/documentation/develop/deployment/), as described at "develop" tagged documentation.
Kostis Trantzas
committed
To work on a specific subsystem e.g. org.etsi.osl.tmf.api, you must:
Kostis Trantzas
committed
1a - Deploy only the core necessary subsystems through:
```bash
sudo docker compose --profile dev down;sudo docker compose --profile dev up -d --build
```
> Note **--profile dev** that will only deploy the core dependency subsystems, instead of the whole OpenSlice.
Kostis Trantzas
committed
1b - Or alternatively, commend out the respective container from the docker-compose.yaml file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps.
Kostis Trantzas
committed
2 - Clone the respective repository, e.g. https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop
Kostis Trantzas
committed
3 - Code :)
Kostis Trantzas
committed
## General requirements
Kostis Trantzas
committed
- Docker should be installed in your development environment
- Run the core subsystems (see above sections)
Kostis Trantzas
committed
## Slack
Kostis Trantzas
committed
Feel free to join OpenSlice [Slack](https://openslice.slack.com) for any development oriented questions
Kostis Trantzas
committed
## Examples on developing on specific subsystems
Kostis Trantzas
committed
### VNF/NSD Catalog Management and NSD Deployment API service
Kostis Trantzas
committed
Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop
Kostis Trantzas
committed
Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.
Kostis Trantzas
committed
Make sure that the core subsystems are up and running.
Kostis Trantzas
committed
Execute it with
```bash
mvn spring-boot:run
```
Kostis Trantzas
committed
For verification, Swagger API of the service is at `http://localhost:13000/osapi/swagger-ui/index.html`.
Kostis Trantzas
committed
There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.
Kostis Trantzas
committed
### VNF/NSD Catalog Management and NSD Deployment WEB UI service
Kostis Trantzas
committed
The Web UI is written in AngularJS.
Kostis Trantzas
committed
Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop
Kostis Trantzas
committed
By default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to `http://localhost:13000/osapi/testweb/index.html/`
Kostis Trantzas
committed
Check this nice article on how we develop and release versions.
https://nvie.com/posts/a-successful-git-branching-model/
Kostis Trantzas
committed
We develop in the develop branch and follow a issue driven development model.
Kostis Trantzas
committed
Check also our wishlist of new features. You can add your own.
Kostis Trantzas
committed
See [Wishlist](./wishlist.md).