aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development/devtools/devtools.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/development/devtools/devtools.rst')
-rw-r--r--docs/development/devtools/devtools.rst93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/development/devtools/devtools.rst b/docs/development/devtools/devtools.rst
index 1e2fd49f..fac06ac6 100644
--- a/docs/development/devtools/devtools.rst
+++ b/docs/development/devtools/devtools.rst
@@ -283,3 +283,96 @@ familiar with the Policy Framework components and test any local changes.
xacml-s3p.rst
distribution-s3p.rst
+Generating Swagger Documentation
+********************************
+The `Policy Parent Integration POM <https://github.com/onap/policy-parent/blob/master/integration/pom.xml>`_ contains a *generateSwaggerDocs* profile. This
+profile can be activated on any module that has a Swagger endopint. When active, this profile creates a tarball in Nexus with the name
+*<project-artifactId>-swagger-docs.tar.gz*. The tarball contains the fillowing files:
+
+.. code-block:: bash
+
+ swagger/swagger.html
+ swagger/swagger.json
+ swagger/swagger.pdf
+
+The profile is activated when:
+
+1. The following property is defined at the top of the *pom.xml* file for a module
+
+ .. code-block:: bash
+
+ <!-- This property triggers generation of the Swagger documents -->
+ <swagger.generation.phase>post-integration-test</swagger.generation.phase>
+
+ See the `CLAMP runtime POM <https://github.com/onap/policy-clamp/blob/master/runtime/pom.xml>`_ for an example of the usage of this property.
+
+2. Unit tests are being executed in the build, in other wirds when the *skipTests* flag is *false*.
+
+You **must** create a unit test in your module that generates the following file:
+
+.. code-block:: bash
+
+ src/test/resources/swagger/swagger.json
+
+Typically, you do this by starting your REST endpoint in a unit test, issuing a REST call to get the Swagger API documentation. The test case below is an example
+of such a test case.
+
+.. code-block:: java
+
+ @Test
+ public void testSwaggerJson() throws Exception {
+ ResponseEntity<String> httpsEntity = getRestTemplate()
+ .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/api-doc", String.class);
+ assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(httpsEntity.getBody()).contains("swagger");
+ FileUtils.writeStringToFile(new File("target/swagger/swagger.json"), httpsEntity.getBody(),
+ Charset.defaultCharset());
+ }
+
+See `this unit test case <https://github.com/onap/policy-clamp/blob/master/runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java>`_
+for the full example.
+
+Running the DMaaP Simulator during Development
+**********************************************
+It is sometimes convenient to run the DMaaP simulator during development. You can run it from the command line using Maven or from within your IDE.
+
+Running on the Command Line
++++++++++++++++++++++++++++
+1. Check out the policy models repository
+2. Go to the *models-sim/policy-models-simulators* subdirectory in the policy-models repo
+3. Run the following Maven command:
+
+ .. code-block:: bash
+
+ mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/simParameters.json"
+
+Running in Eclipse
+++++++++++++++++++
+1. Check out the policy models repository
+2. Go to the *models-sim/policy-models-simulators* module in the policy-models repo
+3. Specify a run configuration using the class *org.onap.policy.models.simulators.Main* as the main class
+4. Specify an argument of *src/test/resources/simParameters.json* to the run configuration
+5. Run the configuration
+
+Specifying a local configuration file
++++++++++++++++++++++++++++++++++++++
+
+You may specify a local configuration file instead of *src/test/resources/simParameters.json* on the command line or as an arument in the run configuration in eclipse:
+
+.. code-block:: json
+
+ {
+ "dmaapProvider": {
+ "name": "DMaaP simulator",
+ "topicSweepSec": 900
+ },
+ "restServers": [
+ {
+ "name": "DMaaP simulator",
+ "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1",
+ "host": "localhost",
+ "port": 3904,
+ "https": false
+ }
+ ]
+ }