Skip to content
This repository was archived by the owner on Dec 18, 2020. It is now read-only.

Meeting Minutes

William Gardiner edited this page Oct 14, 2019 · 10 revisions

18 January 2019

Full Team with Client

Problem Space

  • Java server with many endpoints
  • Distributed system
  • Frontend developers need documentation

Suggested Solution

  • 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

Suggested Tasks

  • 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

Additional Tools and Details

  • 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)

Targets

  • 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)

Potential Solutions

  • 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

Vision

The problem is documentation gets stale quickly; how can we minimize that problem?

Roles

  • Project lead - Alexander (familiar with existing system and client)

Process

  • 2 week sprints
  • Client meetings midway through and at end of sprint

Follow-Up

  • Weekly meetings on Friday at 14:30 with client

19 January 2019

Full Team

Tasks

  • 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)

Division

  • A: Alexander
  • B: William
  • C: Danny

25 January 2019

Full Team with Client

Result of AB Testing

Decided to use custom annotations because OSGi changes radically between versions.

Result of Research

  • 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

Standard

  • 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) )

Possible Features

  • Fail Build if annotation validation fails

Targets

  • Have a simple annotation parser capable of reading the proposed standard by next week.

26 January 2019

Alexander and William

Tasks

  • 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

Division

  • A: Alexander
  • B: William
  • C: Danny

1 February 2019

Full Team and client

Open Issue Solutions

  • JSON Schema reader: Schema2POJO library suggested
  • Making project open soon, so update README file
  • POJO to YAML: look for library

Next Issues

  • Add CI
  • Add OWASP vunerability detection (level 8)
  • Documentation and Architecture

Testings standards & architecture

  • Minimum 2 tests: 1 passing, 1 failing per function

Build Strategy

  • Build Plugin/Application project
    • Check for JavaDocs
    • Run Unit Tests
  • Build Sample/Test project
  • Assert YAML exists and is correct

Tasks:

  • 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

Division

  • C: Alexander
  • B: William
  • A: Danny

2 February 2019

Full Team

Tasks:

  • A: Update wiki
  • B: see previous meeting minutes
  • C: see previous meeting minutes

Division

  • 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.

8 February 2019

Full Team

Tasks:

  • 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

Division

  • A: Alexander
  • B: William
  • C: Danny

no meeting following week due to work being done on existing tickets

no meeting during reading week

11 September 2019

Full Team with Client

Tasks

Create webpage - Danny Add response bodies the annotation - William & Alex

25 September 2019

Full Team with Client

Review

Webpage mostly done Response bodies partially done, still require some maven work Several new tasks identified to simplify response bodies

Tasks

Finish webpage - Danny Finish Response bodies - Alex Start Simplifying response bodies - William

9 October 2019

Full Team

Review

Webpage finished Response bodies still having issues with maven

Tasks

Finish Response bodies - Alex Continue with improvements - William & Danny

Clone this wiki locally