Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-24427

Hide Scala in flink-table-planner from API

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Hide
      The new module flink-table-planner-loader replaces flink-table-planner_2.12 and avoids the need for a Scala suffix. It is included in the Flink distribution under /lib. For backwards compatibility, users can still swap it with flink-table-planner_2.12 located in /opt. As a consequence, flink-table-uber has been split into flink-table-api-java-uber, flink-table-planner(-loader), and table-runtime. flink-sql-client has no Scala suffix anymore.

      It is recommended to let new projects depend on flink-table-planner-loader (without Scala suffix) in provided scope.

      Note that the distribution does not include the Scala API by default. Scala users need to explicitly add a dependency to flink-table-api-scala or flink-table-api-scala-bridge.
      Show
      The new module flink-table-planner-loader replaces flink-table-planner_2.12 and avoids the need for a Scala suffix. It is included in the Flink distribution under /lib. For backwards compatibility, users can still swap it with flink-table-planner_2.12 located in /opt. As a consequence, flink-table-uber has been split into flink-table-api-java-uber, flink-table-planner(-loader), and table-runtime. flink-sql-client has no Scala suffix anymore. It is recommended to let new projects depend on flink-table-planner-loader (without Scala suffix) in provided scope. Note that the distribution does not include the Scala API by default. Scala users need to explicitly add a dependency to flink-table-api-scala or flink-table-api-scala-bridge.

    Description

      FLIP-32 has decoupled the planner from the API. However, the planner code base is still the largest Scala code base we have in Flink that we cannot port to Java easily.

      In order to allow arbitrary Scala versions in the user API, we suggest to hide the Scala version of the planner from the Scala version of the API. The API is mostly developed in Java and contains only a couple of classes implemented in Scala. Those should be easier to maintain for various Scala versions. The planner is already discovered via Java SPI.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            slinkydeveloper Francesco Guardiani
            twalthr Timo Walther
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment