Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API fixes #828

Merged
merged 6 commits into from
Jun 26, 2024
Merged

API fixes #828

merged 6 commits into from
Jun 26, 2024

Conversation

Avery-Dunn
Copy link
Collaborator

@Avery-Dunn Avery-Dunn commented Jun 18, 2024

Public and confidential applications have a number of configurable options that are not relevant for managed identity applications, so as part of some refactoring (#715) a new parent abstract class was made to contain only configs that applied to all application types.

Doing so meant moving several public APIs in a builder class up to the new parent class's builder, and this caused a breaking change in 1.15.0 that was not caught during beta testing: as described in #806, if you used msal4j 1.15.0 and a dependency compiled with a pre-1.15.0 version, then your project would compile fine but you would hit a NoSuchMethodError at runtime if the dependency referenced one of the moved APIs.

This PR restores the APIs to the original abstract class to be compatible with pre-1.15.0 versions, and leaves the newer APIs as-is to be compatible with those using 1.15.0. Although this creates a bit of duplicate code, it was the simplest way to ensure compatibility with all versions.

Additionally, this PR adds a default method for a new API that was introduced into an interface in 1.15.0, and adds the revapi plugin in order catch these sorts of breaking API changes going forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants