From 19f94da5b3b71d18d1ac0f05b180109a754ca3e8 Mon Sep 17 00:00:00 2001 From: Eric Debeau Date: Mon, 4 Jun 2018 06:11:34 +0000 Subject: Clean the doc Remove R1 Change-Id: I5c42db81464f358cdac683c6fa143eb4412f0ac5 Issue-ID: EXTAPI-95 Signed-off-by: Eric Debeau --- docs/architecture/NBI_Developer_Guide.rst | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 docs/architecture/NBI_Developer_Guide.rst (limited to 'docs/architecture/NBI_Developer_Guide.rst') diff --git a/docs/architecture/NBI_Developer_Guide.rst b/docs/architecture/NBI_Developer_Guide.rst new file mode 100644 index 0000000..1a421f6 --- /dev/null +++ b/docs/architecture/NBI_Developer_Guide.rst @@ -0,0 +1,93 @@ +.. This work is licensed under +.. a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2018 ORANGE + + +===================== +NBI - Developer Guide +===================== +************ +Introduction +************ + +NBI is a Java 8 web application built over Spring Framework. +Using Spring Boot 1.5.10 dependencies, it runs as a standalone +application with an embedded Tomcat server. + +************ +Dependencies +************ +This project use various framework which are managed with Maven +dependency management tool (see *pom.xml* file at root level) : + +- Swagger annotations +- `Spring Framework `_ +- `JOLT `_ to perform JsonToJson transformation +- `FasterXML/Jackson `_ to perform JSON parsing +- `Wiremock `_ to perform testing over HTTP mocked response + + +************* +Configuration +************* +A configuration file, *src/main/resources/application-localhost.properties* +list all the component interface that can be configured depending on +the environment were the application is deployed. +By default, the application runs with an embedded both MongoDB and MariaDB +local instance. +This file also list configurations of all the REST interface maid from NBI +to other ONAP component such as SDC, AA&I and SO. + +*********** +Source tree +*********** +This application provides ServiceOrder, ServiceCatalag and ServiceInventory +as main functional resources and HealthCheck. Each resource is implemented +independently in a package corresponding to its name. + +*commons , configuration, and exceptions* are shared technical classes that +provided for all the application. + + +*********************************** +Running and testing the application +*********************************** + +**Locally** + +Ensure that you have a MongoDB and MariaDB instance running and properly +configured in *application.properties* file. +Run *Application.java* class in your favorite IDE + +Or through a terminal, ensure that your maven installation is works and +run *mvn spring-boot:run* command to start the application. + + +**Docker** + +Requirements: `Docker engine `_ and +`docker-compose `_. + +To start the application: + + 1. Generate the application .jar file: `$ mvn clean package` + 2. Configure the **.env** file + 3. Start the *MariaDB* and *MongoDB* services: + `$ docker-compose up -d mongo mariadb` + 4. Build and start the *NBI* service: `$ docker-compose up --build -d nbi` + +You can view the log output of the application with the following command: + +`$ docker-compose logs -f nbi` + +**Testing** +When the application is running, you can access the API at +:samp:`http://yourhostname:8080/nbi/api/v1` and fill the URL with the name +of the resources you asking for (/serviceSpecification, /service, +/serviceOrder or /status) +You can run a test by using `VisualStudio RestClient plugin `_ +See the *restclient* package at root level to find *.vscode/settings.json* +configuration file and */json/* package with samples requests that can be run. +You can also trigger these endpoints with any RESTful client or automation +framework. -- cgit 1.2.3-korg