Open techcobweb opened 1 year ago
The best way to fix this issue is to re-structure all of the managers so that the 'api' 'spi' and 'implementation' are all in separate OSGi bundles, and let OSGi enforce that the the dependencies all run from impl->spi->api. Then OSGi would police our recommendations about what package name things should be inside. However, this is never going to happen, as it would be too disruptive. If we were doing this, then the above mistake couldn't have been made.
I prototyped a fix for Colour. It worked OK. Partly because I could create a new API class called Color (USA spelling) to disambiguate the two.
When I came to Highlight, the code gets more messy, disambiguation requires fully qualified package names to be injected into the code ... less readable.
The Network exception cascades into soooo many areas that fixing it is not an option.
My current thought is to leave this story, and fix at some point later (between v1.0 and v2.0 of Galasa). Where we can handle the breaking change more easily perhaps.
Current customers are top priority, so putting up with a bit of a messy interface here in favour of not breaking their test cases.
Background
macro4 have noted that if you use an ITerminal and some methods on that interface, you are forced to import 'spi' classes...
dev.galasa.zos3270.ITerminal
exposes:So you have little choice but import those if you want to use ITerminal.
Those classes need to be migrated into the 'api' package if the api exposes them.
This would be a breaking changed if implemented, so need to tread carefully on when this change is made to minimise the disruption.
Chat https://galasa.slack.com/archives/C013FE51SAD/p1683814876054829
Julian Levens
Mike Cobbett
Julian Levens
Mike Cobbett
Julian Levens
(He mentioned 2 others, which aren't important for this issue)
Mike Cobbett
Julian Levens
Mike Cobbett
Mike Cobbett