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

ASF GitHub Bot commented on FLINK-6983:
---------------------------------------

Github user kl0u commented on the issue:

    https://github.com/apache/flink/pull/4172
  
    Hi @wuchong . I am not an expert in Janino and how it works but I do not 
think you need Janino's classloader at any point. Using the `open()` of the 
`CEPOperator` you just need to compile the code of the `IterativeCondition` 
whenever we have a `IterativeConditionWrapper`. In the code snippet you sent 
before, line 30 should change to take the user classloader from the runtime 
context. If I remember correctly it is 
`getRuntimeContext().getUserClassLoader()`. 
    
    This will allow Janino to do its magic using the user classloader. After 
compiling the class, you can set the `newCondition` field of the 
`StateTransitions` to an object of the compiled class. 
    
    After this, whenever you have a checkpoint or whenever you 
serialize/deserialize the condition, given that this will be a regular 
IterativeCondition, Flink will know how to do it.
    
    I am also including @twalthr and @fhueske on this to comment, as they have 
more experience with this. In addition, if you have a prototype that does all 
this but fails at some step with an error, you can send a link and we can try 
to check it out.


> Do not serialize States with NFA
> --------------------------------
>
>                 Key: FLINK-6983
>                 URL: https://issues.apache.org/jira/browse/FLINK-6983
>             Project: Flink
>          Issue Type: Improvement
>          Components: CEP
>            Reporter: Dawid Wysakowicz
>            Assignee: Dian Fu
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to