On Fri, Jan 18, 2019 at 2:37 PM Mike Jumper <[email protected]> wrote:
> On Thu, Jan 17, 2019, 13:02 Nick Couchman <[email protected] wrote: > > > On Fri, Jan 11, 2019 at 9:56 PM Mike Jumper <[email protected]> wrote: > > > > > > > > Another option might be to provide some sort of API compatibility layer > > > within the webapp, allowing the extensions of prior releases to > continue > > to > > > function. If compatibility doesn't break as a result of API changes, > > > there's no need for a full major version bump, and downstream migration > > for > > > future releases is much easier. > > > > > > > > I'm open to this, as well. How much effort do we think would be involved > > in introducing something like this? > > > > A compat layer would be pretty tricky. > > If we can somehow modify the API changes such that things are inherently > compatible, then fairly easy. Maybe something can be done with default > methods now that we're Java 8+? > So, for a change like this (to the Connectable interface): https://github.com/apache/guacamole-client/commit/dfd43327618bd625bac7ce4fd35f9ccfe729ec6e#diff-1d2cb5f9d0009ea051d8a6211b20aaea ....something like this: https://github.com/necouchman/guacamole-client/commit/d53a6c3be576526ace6acf0432cab2480785a0ae ?? I assume if we wanted to do this for 2.0.0 (or 1.1.0, etc.) we'd need to go back and look at everything that's been changed in guacamole-ext and basically add these default methods for any methods where we changed the parameters being passed in? Is it just for Interfaces, or would it also be Abstract Classes within the guacamole-ext component? On another note, I have started looking at the changes required to support FreeRDP 2.0. I know you asked for help on this a while back, with no takers. It might take me 10x as long as someone else to figure it out, but it's clear from some recent traffic on the list that it's going to be pretty important that we support FreeRDP 2.0 going forward. So, time to tackle it :-). Unfortunately just an hour or so into it and I already want to run my head through a brick wall. Speaking of API compatibility, these changes are not insignificant... -Nick
