flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Till Rohrmann (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLINK-5513) Remove relocation of internal API classes
Date Mon, 16 Jan 2017 15:30:26 GMT
Till Rohrmann created FLINK-5513:

             Summary: Remove relocation of internal API classes
                 Key: FLINK-5513
                 URL: https://issues.apache.org/jira/browse/FLINK-5513
             Project: Flink
          Issue Type: Improvement
    Affects Versions: 1.2.0, 1.3.0
            Reporter: Till Rohrmann
             Fix For: 1.3.0

Currently, we are relocating the {{curator}} dependency in order to avoid conflicts with user
code classes. This happens for example in the {{flink-runtime}} module. The problem with that
is that {{curator}} classes, such as the {{CuratorFramework}}, are part of Flink's internal
API. So for example, the {{ZooKeeperStateHandleStore}} requires a {{CuratorFramework}} as
argument in order to instantiate it. By relocating {{curator}} it is no longer possible to
use this class outside of {{flink-runtime}} without some nasty tricks (see {{flink-mesos}}
for that).

I think it is not good practice to relocate internal API classes because it hinders easy code
reuse. I propose to either introduce our own interfaces which abstract the {{CuratorFramework}}
away or (imo the better solution) to get rid of the {{Curator}} relocation. The latter might
entail that we properly separate the API modules from the runtime modules so that users don't
have to pull in the runtime dependencies if they want to develop a Flink job.

This message was sent by Atlassian JIRA

View raw message