LTI 2.0 Removed from Sakai-20 master and nightly

LTI 2.0 has been removed from Sakai in anticipation of Sakai-20 (https://jira.sakaiproject.org/browse/SAK-41789)

It is up in master on github and the Sakai-20 nightly server.

It took most of one day (Last Thursday at LAMP Camp) and the rest was testing and making sure.

I removed over 20% of the LTI code in Sakai (>7000 lines removed).

I updated all the QA test plans and wrote some test plans, and wrote some “how to documentation”.

https://github.com/sakaiproject/sakai/tree/master/basiclti/basiclti-docs/resources/docs
https://github.com/sakaiproject/sakai/blob/master/basiclti/README.md

With help from Andrea I went through all the QA tests to make sure they were up-to-date and to my surprise everything worked in my testing. I did find and fix two small bugs that had crept into the remaining LTI 1.x code – so that was nice. These fixes are already in master this morning as well.

While it has worked great in my testing, I want everyone to be vigilant and test LTI in Sakai as much as you can. We will definitely do a solid QA of LTI as part of Sakai-20 but if something feels weird let me know.

For the Tsugi folks using Java tsugi-util library from the Tsugi distribution, I will wait a few weeks and then port these changes to tsugi-util master:

https://github.com/tsugiproject/tsugi-util

It is mostly deletions. The only real change is that the ContentItem class in tsugi-util went from the org.sakaiproject.lti2 package to the org.sakaiproject.basicltii package. It never belonged in the lti2 package – but I built it while I was building lti2 so I put it there.

Reflection

It is kind of bittersweet in that it took me three years of almost 100% of my Sakai effort to develop the LTI 2.0 spec and build the Sakai implementation and less than six hours to remove it. But it is always good to remove complex and unused code from production software.

One of these mornings with a good cup of coffee and a little time, I will write a blog post about the lessons we can learn from the failure of the LTI 2.0 spec – but for now we are moving on to focus on LTI Advantage – as it should be.