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

fix: make using java's ServiceLoader optional #2293

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

makeevrserg
Copy link

@makeevrserg makeevrserg commented Nov 1, 2024

Description

Summary of the change: Make using ServiceLoader for DatabaseConnectionAutoRegistrationnot optional

Detailed description:

  • What: connectionInstanceImpl doesn't need to be created using java ServiceLoader.
  • Why: In some cases with different loaders it may throw exception even if existing interface implementation is present. Also this may improve stability as reflection will not be required during connection.
  • How: The connectionInstanceImpl is now lazy-loaded so even if ServiceLoader doesn't have required service, code block will not crash. Every connect method have now connectionAutoRegistration as a parameter instead of previous private-service-loaded
  • This also relevant to older issues on github, which is marked as closed, but still could be reproduced located below
  • This also may be a small step in migration to KMP if it's planned.

Type of Change

Please mark the relevant options with an "X":

  • Bug fix
  • New feature
  • Documentation update

Updates/remove existing public API methods:

  • Is breaking change

Affected databases:

  • MariaDB
  • Mysql5
  • Mysql8
  • Oracle
  • Postgres
  • SqlServer
  • H2
  • SQLite

Checklist

  • Unit tests are in place
  • The build is green (including the Detekt check)
  • All public methods affected by my PR has up to date API docs
  • Documentation for my change is up to date

Related Issues

@makeevrserg makeevrserg changed the title fix class loader fix: make using java's ServiceLoader optional Nov 1, 2024
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