lti-demo is predominantly builder based ...

api->actionbuilder->build->response

there is another approach which is message-response
pattern and this lti tool demo project does that.

api->messagebuilder->dispatch->response

gremlin b24b0acbc5 Merge branch 'feature/picker' of gremlin/lti-demo-cmr into develop %!s(int64=3) %!d(string=hai) anos
src 7c9fb323d1 Now have full deep-link flow %!s(int64=3) %!d(string=hai) anos
.gitignore a3a59d43e2 Initial Command+Message->dispatcher->response implementation %!s(int64=3) %!d(string=hai) anos
README.md 3594e13e10 Initial commit %!s(int64=3) %!d(string=hai) anos
pom.xml 7c9fb323d1 Now have full deep-link flow %!s(int64=3) %!d(string=hai) anos

README.md

lti-demo-cmr

lti-demo is predominantly builder based ...

api->actionbuilder->build->response

there is another approach which is message-response pattern and this lti tool demo project does that.

api->messagebuilder->dispatch->response