opentracing-contrib / opentracing-contrib/java-jdbc
Not compatible with native image since version 0.2.5
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 86
- Forks
- 53
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 18
Description
Since version 0.2.5, the library uses a dynamic proxy (via WrapperProxy) on top of the JDBC connection.
Dynamic proxy didn't work OOTB on GraalVM native image, they need to be configured explicitly.
However, to configure native image dynamic proxy capability, we must configure the list of interface of the proxy, in the right order ! WrapperProxy generates a list of interfaces in no order, so we must register all possible combinations which can be huge, see the following experiment with an underlying Postgres driver: https://gist.github.com/luneo7/453ea0bd0d51a48c6c4377237e8ad831
Imagine native support where we want to support multiple database drivers, this becomes challenging.
Be also aware that with such configuration time to build the native image incrase a lot.
I don't know if it' easily feasable to switch back to not using any proxy, or if at least the WrapperProxy can be updated to generate a list of interfaces in a reproducible manner so we don't have to configure all possible combinations.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting WrapperProxy and how it wraps JDBC connections, then review the linked native-image proxy experiment for the Postgres driver. Determine whether the proxy can be removed or its interface list made reproducible; done means native-image configuration no longer requires every interface-order combination across supported drivers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, postgres
- Domain
- build-system, database
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100