-
-
Notifications
You must be signed in to change notification settings - Fork 982
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
Modularized Keychain Access #1393
Conversation
…I controller classes
[ci skip]
@swiesend @purejava I think you should be aware of this change: To get rid of the reflection involved constructing the Linux keychain objects while not running into errors on macOS/Windows with the jars being unavailable, we've externalized such platform-specific code. So if you want to update the Linux keychain integrations, head over to the integrations-linux repo. |
Yes, thanks for the hint. |
Sounds like a proper engineering idea. Thanks for the update. |
This is the first step towards a more modular project in regards of integrations with third party services.
Instead of directly adding implementations to this project, we will rather use an interface defined in
integrations-api
, which can get implemented by various libs (including third party ones).Those implementations can then be loaded using a ServiceLoader, which will yield 0..n objects (depending on the available libs during runtime):
cryptomator/main/commons/src/main/java/org/cryptomator/common/keychain/KeychainModule.java
Lines 18 to 31 in b382e43
This PR removes the keychain maven module and adds
integrations-api
as a compile-time dependency. Libraries implementingintegrations-api
will only be present at runtime (to be included with the installers, if applicable).Furthermore this PR removes system-specific dependencies. These should be part of system-specific service implementations (and as such transitive dependencies will be re-added when packaging installers).