Most of my projects use Maven to build and coordinate dependencies and run unit and build integration tests. I’ve found it a real pain that I could not generate my swagger docs as part of the build.
I have found a really easy way. In Jenkins, I have a downstream job that runs specific maven goals. The WebSphere Liberty maven goals are documented WebSphere Liberty Maven Documentation. Please note my downstream job is an experimental downstream project; I am a bit concerned about edge cases where the process dies.
The commands of the downstream job are:
mvn dependency:copy-dependencies liberty:install-apps liberty:test-start-server
The commands execute three key elements:
Dummy Server.xml – attached at the bottom
Execution for Goal for pre-integration-test
Execution must follow the copy-dependencies so the war file is copied on in
You can check your server is up and running:
tail -f target/liberty/wlp/usr/servers/defaultServer/logs/messages.log
Download the Swagger (YAML)
curl http://localhost:9080/swagger/api/swagger.yaml -o myswagger.yaml
Recently, I have done a good amount of JAX-RS development, and I needed to kept hitting an issue with forms parameter validation errors on my query params. The errors kept driving me nuts, until I read the documentation and found – jersey.config.servlet.form.queryParams.disabled . I also learned the java property is available for those with code based configuration. ServletProperties.QUERY_PARAMS_AS_FORM_PARAMS_DISABLED
If true then query parameters will not be treated as form parameters (e.g. injectable using @FormParam) in case a Form request is processed by server.
Git Lab Merge Request Templates are a fairly exciting way for me to help drive consistency in the projects I am participating in – internal, external and personal. I created a new folder in .gitlab/issue_templates/and added a file Merge_Request.md ( based on Pull Request). For GitHub (not GitLab) switch the folder to .github.
When you go to raise a Merge Request, you can select a template using the template query parameter on GitHub https://github.com/prb112/examples/compare/readme-update?expand=1&template=Merge_Request.md
You can see the example at Pull Request 4. Developers can select the check boxes and indicate if they are compliant with the minimum to commit.
GitLab is slightly different, and that you select the template from a drop down. I actually prefer this approach which makes it easier to select.
Good luck, go forth and be consistent with Pull Requests and Merge Requests.