Repository navigation
Meeting Minutes
Full Team with Client
- Java server with many endpoints
- Distributed system
- Frontend developers need documentation
- Swagger may be a solution to this
- Need a way to easily create Swagger files
- A custom Maven plugin would be ideal
- Add plugin to pom
- Swagger file (YAML) gets generated
- Determine what is the minimum data that needs to be collected (already have a suggested list)
- Determine what is the minimum annotation/fields needed to collect this data
- Determine what data can be collected from existing code/annotations
- Maven archetype for plugins
- Figure out which lifecycle to generate Swagger on
- Can configurations be used to simplify annotations?
- Swagger documentation tools: Swagger-UI (paid), Pretty-Swagger (free)
- End of Term: minimum viable product (a set of usable annotations for the client's existing codebase)
- End of week: Simple research/AB testing for potential solutions (listed below)
- Specific: Minimal new annotations, most data collected from existing OSGI annotations
- General: A set of new annotations capable of collecting all data regardless of code implementation or frameworks used
The problem is documentation gets stale quickly; how can we minimize that problem?
- Project lead - Alexander (familiar with existing system and client)
- 2 week sprints
- Client meetings midway through and at end of sprint
- Weekly meetings on Friday at 14:30 with client
Full Team
- A: Develop unit tests showing capability of gathering data from existing annotations (specific solution)
- B: Develop unit tests showing capability of gathering data from new annotations (general solution)
- C: Perform further research on Maven plugins (and Swagger, time permitting)
- A: Alexander
- B: William
- C: Danny
Full Team with Client
Decided to use custom annotations because OSGi changes radically between versions.
- ASM - Java bytecode library may be a useful tool if reflections is insufficient
- Danny has better understanding of Maven plugins, needs to be written down
- Annotation Standard is in development
- Working model: @SwaggerGen( url = "url" method = "POST/GET/PUT/DELETE" headers = {"key=description"} queryParam = {"key=description"} body = "json.scheme" (alt. Body.class) responses = {int} responseBody = "json.scheme" (alt. Body.class) )
- Fail Build if annotation validation fails
- Have a simple annotation parser capable of reading the proposed standard by next week.
Alexander and William
- A: Perform further research on maven plugins with regards to annotations
- B: Develop the annotation parser mentioned in January 25th meeting.
- C: Develop schema parser to extract properties & types
- A: Alexander
- B: William
- C: Danny
Full Team and client
- JSON Schema reader: Schema2POJO library suggested
- Making project open soon, so update README file
- POJO to YAML: look for library
- Add CI
- Add OWASP vunerability detection (level 8)
- Documentation and Architecture
- Minimum 2 tests: 1 passing, 1 failing per function
- Build Plugin/Application project
- Check for JavaDocs
- Run Unit Tests
- Build Sample/Test project
- Assert YAML exists and is correct
- A: Generating request body from the JSON schema (using JsonSchema2Pojo library). This will be integrated within Williams code
- B: Modify his java project to be a maven project and create pull request
- C: Finish groundwork in relation to maven plugin, and set up Travis on Williams code
- C: Alexander
- B: William
- A: Danny
Full Team
- A: Update wiki
- B: see previous meeting minutes
- C: see previous meeting minutes
- A: Alexander
- B: William
- C: Danny
Note: after that date, meetings were being directly ticketed onto our Waffle board. Here's a recap of the missing minutes.
Full Team
- A: Using Jackson & Java POJO to generate object representing body of expected request coming to the endpoint
- B: Integrate Swagger Path object generator within Maven plugin
- C: Additional repo setup & cleanup
- A: Alexander
- B: William
- C: Danny
no meeting following week due to work being done on existing tickets
no meeting during reading week
Full Team with Client
Create webpage - Danny Add response bodies the annotation - William & Alex
Full Team with Client
Webpage mostly done Response bodies partially done, still require some maven work Several new tasks identified to simplify response bodies
Finish webpage - Danny Finish Response bodies - Alex Start Simplifying response bodies - William
Full Team
Webpage finished Response bodies still having issues with maven
Finish Response bodies - Alex Continue with improvements - William & Danny