Hi Giacomo,

you could use Janino [1] to directly compile the code string into a class
and execute it. The program does not need to be shipped to the cluster if
all user functions are contained in the jar.

Cheers, Fabian

[1] http://unkrig.de/w/Janino
On Sep 21, 2015 7:08 PM, "Giacomo Licari" <giacomo.lic...@gmail.com> wrote:

> Hi Robert,
> thanks for the reply.
> I receive a JSON from my client interface, which contains the dataflow
> description.
> Then I parse that JSON and the parser creates a string which contains the
> Flink code, as the user can modify the dataflow, the description can change
> every time it calls "Execute Dataflow".
>
> Now I should be able to execute the generated String code, so I was first
> thinking about to write it to a .java file.
> What could you suggest to me? Is it possible to execute the string code
> directly from the backend.jar I have?
>
>
> On Mon, Sep 21, 2015 at 6:54 PM, Robert Metzger <rmetz...@apache.org>
> wrote:
>
>> Hi,
>>
>> you have to make sure that the Flink classes are contained in your class
>> path.
>> Either add the flink-dist jar from the binary distribution to your class
>> path, or use maven to build the backend.jar as a fat jar.
>>
>> Why are you generating a java class from your dataflows?
>> Isn't it easier to just call the Flink APIs when parsing your flow
>> description language?
>>
>> Robert
>>
>>
>> On Mon, Sep 21, 2015 at 6:41 PM, Giacomo Licari <giacomo.lic...@gmail.com
>> > wrote:
>>
>>> Hi guys,
>>>
>>> I'm developing a dataflow client whose backend, exported as jar, allows
>>> users to convert dataflows to a Flink file .java with some code inside. The
>>> generated file naturally calls some classes I have in jar file, like
>>> MapFunction, DataSet.
>>>
>>> My question is:
>>> How to compile the generated file and pack it into a jar file, so I can
>>> execute it with Flink?
>>>
>>> I have tried several methods like:
>>>
>>>    - javac -cp backend.jar:. GeneratedClass.java
>>>    - javac -cp ".:backend.jar" GeneratedClass.java
>>>    - javac -cp ".:./backend.jar" GeneratedClass.java
>>>
>>> with no success.
>>>
>>> I receive errors like:
>>> GeneratedClass.java:2: error: package
>>> org.apache.flink.api.common.functions does not exist GeneratedClass.java:3:
>>> error: package org.apache.flink.api.java does not exist
>>>
>>>
>>> Thanks a lot,
>>>
>>> Giacomo
>>>
>>
>>
>

Reply via email to