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.