diff options
Diffstat (limited to 'docs/development/devtools/devtools.rst')
-rw-r--r-- | docs/development/devtools/devtools.rst | 93 |
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 + } + ] + } |