Add interface pin, split IConfiguration to be non-breaking by DaveTryon · Pull Request #919 · microsoft/sbom-tool (original) (raw)

This PR started by adding the InterfaceConcretionTests class, which includes concrete versions of all of the interfaces that I was able to identify as being exposed in the 3.0.1 version of the API. Ideally, these should also cover the data types that are in the API interface, but that's for another PR. These interface versions were based on the commit that shipped in release 3.0.1, then added to the current bits in main--the PinnedIConfiguration class broke, which is what flagged the fact that we had accidentally broken the IConfiguration class in #773, which added the LicenseInformationTimeoutInSeconds property to the IConfiguration interface.

The proposed fix is to move the new LicenseInformationTimeoutInSeconds property into the IConfiguration2 interface, which derives from IConfiguration. It then makes the InputConfiguration class derive from IConfiguration2 and updates the usages of LicenseInformationTimeoutInSeconds so that we get there via the IConfiguration2 interface.