Skip to content

[BUG] Custom serializer with custom ioRegistry isn't MessageSerializer because of shadow #186

Description

@makselivanov

Describe the bug

Steps to Reproduce

  • Is the JDBC Driver being used in a BI tool?
1. I use 1.1.0 version of driver
2. I use SQL variant (I think it is problem for every language)
3. I connect to Janusgraph server, so I need `ioRegistry` be `JanusGraphIoRegistry`
4. I use gremlin version 3.5.3 in Janusgraph, so I change files in driver, so its compile with this version of gremlin (I also change some import because of it).  
5. 
openjdk version "1.8.0_342"
OpenJDK Runtime Environment (build 1.8.0_342-8u342-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)

Link to stackoverflow with example code

Problematic code is locate in GremlinConnectionProperties.java (used in GremlinQueryExecutor.java), when driver checks serializer is Object. Because JanusGraphIoRegistry isn't located in shadow, i need import org.apache.tinkerpop.gremlin.driver.MessageSerializer in my script. But because of it, instanceof return false, when we check for MessageSerializer, beсause MessageSerializer in driver is located in shadow.org.apache.tinkerpop.gremlin.driver.MessageSerializer

Expected behavior

I want to be able to add custom serializers with custom ioRegistry

Screenshots

Environment

  • OS: Ubuntu 20.04

Additional Context

I suggest remove in root build.gradle line with relocate 'org.apache.tinkerpop', 'shadow.org.apache.tinkerpop', so that you can easily add custom serializers

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions