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

Hide Scala in flink-table-planner from API

    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

            People

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

              Dates

                Created:
                Updated:
                Resolved: