beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (BEAM-2021) Fix Java's Coder class hierarchy
Date Fri, 05 May 2017 16:21:04 GMT


ASF GitHub Bot commented on BEAM-2021:

GitHub user tgroh opened a pull request:

    [BEAM-2021] Convert Coder into an Abstract Static Class

    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
     - [ ] Make sure the PR title is formatted like:
       `[BEAM-<Jira issue #>] Description of pull request`
     - [ ] Make sure tests pass via `mvn clean verify`.
     - [ ] Replace `<Jira issue #>` in the title with the actual Jira issue
           number, if there is one.
     - [ ] If this contribution is large, please file an Apache
           [Individual Contributor License Agreement](

You can merge this pull request into a Git repository by running:

    $ git pull coder_abstract_class

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2914
commit 518335c0245a00f3740440aba074f66cf6f448d5
Author: Thomas Groh <>
Date:   2017-05-05T16:20:10Z

    Convert Coder into an Abstract Static Class


> Fix Java's Coder class hierarchy
> --------------------------------
>                 Key: BEAM-2021
>                 URL:
>             Project: Beam
>          Issue Type: Improvement
>          Components: beam-model-runner-api, sdk-java-core
>    Affects Versions: First stable release
>            Reporter: Kenneth Knowles
>            Assignee: Thomas Groh
>              Labels: backward-incompatible
>             Fix For: First stable release
> This is thoroughly out of hand. In the runner API world, there are two paths:
> 1. URN plus component coders plus custom payload (in the form of component coders alongside
an SdkFunctionSpec)
> 2. Custom coder (a single URN) and payload is serialized Java. I think this never has
component coders.
> The other base classes have now been shown to be extraneous: they favor saving ~3 lines
of boilerplate for rarely written code at the cost of readability. Instead they should just
be dropped.
> The custom payload is an Any proto in the runner API. But tying the Coder interface to
proto would be unfortunate from a design perspective and cannot be done anyhow due to dependency

This message was sent by Atlassian JIRA

View raw message