I like moving the type system classes to core.

But one blocker so far was that the TupleX classes are in flink-java, and
no one moved them.

We have this long discussion pending whether we want to merge flink-core
and flink-java, actually...

On Sun, Jun 21, 2015 at 12:29 AM, Chiwan Park <chiwanp...@icloud.com> wrote:

> +1 for moving the whole type extractor and type information classes to
> "flink-core".
>
> The user cannot see "flink-core” because it is a hidden package from
> user’s perspective.
> So the package could be deployed with Scala version variation safely. I
> think that we can
> mix “flink-core” and some Scala codes which are used widely.
>
>
> Regards,
> Chiwan Park
>
> > On Jun 21, 2015, at 8:48 AM, Robert Metzger <rmetz...@apache.org> wrote:
> >
> > I like option 1 the most ("move to flink-core"), however, it would
> scatter
> > the type extractor / type information classes accross multiple projects.
> > Why are we not moving the entire type extractor system into "flink-core"?
> >
> > There were some thoughts in the past to restructure the maven module
> > layout: https://issues.apache.org/jira/browse/FLINK-1712 .. I think the
> > change would be in line with the move.
> >
> >
> > On Wed, Jun 10, 2015 at 7:52 AM, Gábor Gévay <gga...@gmail.com> wrote:
> >
> >> I see four options to solve this without adding the dependency:
> >> 1. Move CaseClassTypeInfo and CaseClassComparator to flink-core. Till
> >> said that we want to avoid mixed Scala and Java modules, which rules
> >> this out.
> >> 2. Create a new toplevel maven project scala-core, and move things
> there.
> >> 3. Hacky solution: What I actually need is just to determine if a
> >> TypeInfo instance is a CaseClassTypeInfo. This could be achieved by
> >> adding an isCaseClassTypeInfo() method to TupleTypeInfoBase returning
> >> false, and override it in CaseClassTypeInfo to return true.
> >> 4. Reimplement CaseClassTypeInfo and CaseClassComparator in Java. I
> >> hope that this can be avoided.
> >>
> >> I think the decision boils down to whether similar problems will
> >> probably arise in the future. If this is a unique issue, then 3. is
> >> fine. Otherwise it won't be possible to avoid doing 2. later anyway.
> >> Maybe someone who knows Flink better than me can estimate how likely
> >> this is?
> >>
> >> Best regards,
> >> Gabor
> >>
> >>
> >> 2015-06-10 15:55 GMT+02:00 Gábor Gévay <gga...@gmail.com>:
> >>>> "it does not feel right to add an API package to a core package
> >>>
> >>> Yes, that makes sense. I just tried removing the flink-java dependency
> >>> from flink-streaming to see what needs it, and it builds fine without
> >>> it :)
> >>>
> >>> What do you think about the second option? (to move the Scala
> >>> typeutils (or just CaseClassTypeInfo and CaseClassComparator) to
> >>> flink-core, to where the Java typeutils are) This would be mixing
> >>> scala code to an otherwise java module, but I don't know whether that
> >>> is a problem.
> >>>
> >>> Cheers,
> >>> Gabor
> >>>
> >>> 2015-06-10 15:46 GMT+02:00 Till Rohrmann <trohrm...@apache.org>:
> >>>> Btw: I noticed that all streaming modules depend on flink-core,
> >>>> flink-runtime, flink-clients and flink-java. Is there a particular
> >> reason
> >>>> why the streaming connectors depend on flink-clients and flink-java?
> >>>>
> >>>> On Wed, Jun 10, 2015 at 3:41 PM Till Rohrmann <trohrm...@apache.org>
> >> wrote:
> >>>>
> >>>>> I see the reason why you want to add flink-scala as a dependency to
> >>>>> flink-streaming-core. However, it does not feel right to add an API
> >> package
> >>>>> to a core package IMHO.
> >>>>>
> >>>>> But I noticed that flink-streaming-core also depends on flink-java.
> >> Which
> >>>>> seems odd to me as well. I'm not a streaming expert and thus cannot
> >> tell
> >>>>> much about the reasons why a core package has a dependency on an API
> >>>>> package but for me this looks more like an indicator for a necessary
> >>>>> restructuring of our packages. Maybe someone working on the streaming
> >> parts
> >>>>> can chime in and shed some light on the required dependencies.
> >>>>>
> >>>>> Cheers,
> >>>>> Till
> >>>>>
> >>>>>
> >>>>> On Wed, Jun 10, 2015 at 2:13 PM Gábor Gévay <gga...@gmail.com>
> wrote:
> >>>>>
> >>>>>> Hello,
> >>>>>>
> >>>>>> I would like to ask if it would be OK if I added flink-scala as a
> >>>>>> dependency to flink-streaming-core. An alternative would be to move
> >>>>>> the Scala typeutils to flink-core (to where the Java typeutils are).
> >>>>>> Why I need this:
> >>>>>>
> >>>>>> While I am implementing the fast median calculation for windows as
> >>>>>> part of my Google Summer of Code project, I am refactoring the way
> >>>>>> sum, min, max, etc. are accessing the user-specified field
> >>>>>> (https://github.com/apache/flink/pull/684). Currently both the
> logic
> >>>>>> of their aggregators are duplicated for the different kinds of types
> >>>>>> (tuple, pojo, array, Scala case class, simple), and also the field
> >>>>>> access logic is duplicated across the different aggregators. In my
> >>>>>> GSoC project I will implement some further methods (avg, variance,
> >>>>>> etc.) that take the same kind of parameters as sum, min, etc., so it
> >>>>>> will be neccassary to have the field access logic centralized (this
> is
> >>>>>> the FieldAccessor class in the PR). It would be convenient if this
> >>>>>> could also handle Scala case classes, for which CaseClassTypeInfo is
> >>>>>> needed which is currently in flink-scala.
> >>>>>>
> >>>>>> Best regards,
> >>>>>> Gabor
> >>>>>>
> >>>>>
> >>
>
>
>
>
>

Reply via email to