[ 
https://issues.apache.org/jira/browse/TINKERPOP-1582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726844#comment-15726844
 ] 

Branden Moore commented on TINKERPOP-1582:
------------------------------------------

We have some extensions to Gremlin, in terms of new steps and predicates.  My 
attempts to use python-gremlin have led to significant challenges so far.   
We've developed a mechanism to allow our new steps to be encoded in the 
bytecode easily enough.   Our predicates need to get encoded into the bytecode 
in some form as well.  My current approach has been to have them encode 
identically to the P object, but with a 'type' of g:MyP, rather than 'g:P'.   I 
can register an IORegistry with the serializers in the yaml file, and I can see 
(with the debugger) them being registered.  The TypeResolver ends up with an 
entry for g:MyP.   However, the deserialization changes at some point (when the 
bytecode is being deserialized), and the top-level defined deserializers appear 
to no longer be in use; before we get to deserializing the g:MyP object, the 
TypeResolver in play does not have entries for the g:MyP type, so errors are 
thrown.

I may well be off in my assessment that it is the static ObjectMapper that is 
being used at that time, but it is definitely not the deserializers specified 
and configured in the YAML.

> TraversalOpProcessor does not support custom serializers
> --------------------------------------------------------
>
>                 Key: TINKERPOP-1582
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1582
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.2.3
>            Reporter: Branden Moore
>
> The TraversalOpProcessor has its own ObjectMapper static instance, which 
> cannot be configured via the gremlin-server's YAML file.  Within the YAML 
> file, a user can configure serializers with custom IORegistries, to support 
> serialization of custom types.   However, the TraversalOpProcessor creates 
> its own ObjectMapper, for bytecode deserialization, which does not read 
> configuration information from from the YAML file.
> This prevents deserialization of custom bytecode, such as references to a 
> custom Predicate class.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to