opentracing-contrib / opentracing-contrib/java-jdbc

Not compatible with native image since version 0.2.5

Open
#116 1 comment 2 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.