apache / apache/arrow-java

Offer an un-shaded version of the Flight SQL JDBC driver

Abierto
#161 3 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
94
Forks
152
Merge medio
3 d 16 h
PR fusionados (30 d)
11

Descripción

### Describe the enhancement requested

The Arrow Flight SQL JDBC driver shades and relocates all of its Maven dependencies into the driver JAR. While this is probably good and desired for folks who need to download the JAR and install it into whatever tool they're using to connect to something, it can cause an issue for those who are embedding the driver within their own service.

As an example, we're using [OpenTelemetry's Java auto instrumentation agent](https://opentelemetry.io/docs/instrumentation/java/automatic/). This agent modifies bytecode as it's loaded to include OpenTelemetry instrumentation for distributed tracing. It has built in support for gRPC clients and servers. Unfortunately, because the Arrow Flight SQL JDBC driver shades and relocates the gRPC libraries, they no longer utilize the same package name as what the Java agent expects. Subsequently, OpenTelemetry does not instrument the client calls and can not perform context propagation from the client to the server.

Would it be possible to publish both a shaded+relocated version of the driver and an un-shaded version of the driver?

The Maven Shade plugin supports building and publishing both artifacts via the [shadedArtifactAttached](https://maven.apache.org/plugins/maven-shade-plugin/examples/attached-artifact.html) configuration option. The JDBC driver has this option explicitly disabled for some reason.

### Component(s)

Java

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Inspecciona la configuración de Maven Shade para el controlador JDBC de Flight SQL, comenzando por la configuración que deshabilita shadedArtifactAttached. Comprueba cómo se compila y publica actualmente el artefacto del controlador JDBC y, después, verifica que se produzcan tanto artefactos sombreados/relocados como no sombreados sin romper el empaquetado existente del controlador.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
grpc, java
Área
build-system
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.