apex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Priyanka Gugale <priya...@datatorrent.com>
Subject Re: Ability to generate POJO class on the fly
Date Fri, 22 Jan 2016 12:44:21 GMT
We do need configuration in some form like json, but I was thinking we can
have default wherever possible. This is an option and not replacement to
json config.

-Priyanka

On Fri, Jan 22, 2016 at 4:34 PM, Chinmay Kolhatkar <chinmay@datatorrent.com>
wrote:

> @priyanka
>
> Advantage with JSON schema is that one can represent nested POJO definition
> in that. If you're referring to FieldInfo, I'm not sure if that is possible
> there.
>
> Even if we chose not to have nested POJO now, I think JSON schema input to
> this utility gives more chance to expand easily later.
>
>
>
> On Fri, Jan 22, 2016 at 3:30 PM, Chinmay Kolhatkar <
> chinmay@datatorrent.com>
> wrote:
>
> > Sure. We can make this utility to provide byte[] for compiled class.
> > Though the utility will give a OutputStream object.. One can get byte[]
> > out of that.
> >
> > On Fri, Jan 22, 2016 at 2:56 PM, Timothy Farkas <tim@datatorrent.com>
> > wrote:
> >
> >> Suggestion: +1 for automatic generation of schema. The user should be
> able
> >> to override the a manually specified schema though.
> >>
> >> Question: If the mechanism used to generate the class can produce a
> byte[]
> >> array, then you can send the byte[] array for the class to downstream
> >> operators and load the class from the byte[] array in each operator. An
> >> example of how to do this is here:
> >>
> >>
> >>
> http://stackoverflow.com/questions/1781091/java-how-to-load-class-stored-as-byte-into-the-jvm
> >>
> >> Thanks,
> >> Tim
> >>
> >> On Fri, Jan 22, 2016 at 12:59 AM, Priyanka Gugale <
> >> priyanka@datatorrent.com>
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > Suggestion:
> >> > This came up with one of the discussion with Pramod, will it be a good
> >> > idea, for database input operators to generate pojo based on the
> >> selected
> >> > column field names and types? No need to accept json input from user.
> >> >
> >> > Question:
> >> > How can we share this POJO among multiple operators when application
> is
> >> > already launched and class is generated on the fly?
> >> >
> >> > -Priyanka
> >> >
> >> > On Thu, Jan 21, 2016 at 11:16 PM, Chinmay Kolhatkar <
> >> > chinmay@datatorrent.com
> >> > > wrote:
> >> >
> >> > > Hi All,
> >> > >
> >> > > We're planning to add a utility in malhar-library for generating a
> >> POJO
> >> > > class on the fly from given JSON schema.
> >> > >
> >> > > Use case is where the application is provided with schema and that
> >> needs
> >> > to
> >> > > be used in one or more operators either as a tuple over the stream
> OR
> >> for
> >> > > processing.
> >> > >
> >> > > General Design:
> >> > > 1. Utility will be provided with fqcn of the class and schema
> >> definition
> >> > > provided as json.
> >> > > 2. The schema definition will look like following:
> >> > >     {
> >> > >        "fqcn":"<qualified class name>",
> >> > >        "fields": [
> >> > >          {
> >> > >            "name":"field1",
> >> > >            "type":"long"
> >> > >          },
> >> > >          {
> >> > >            "name":"field2",
> >> > >            "type": "string"
> >> > >          }
> >> > >        ]
> >> > >     }
> >> > > 3. Supported types identified in "type" JSON field are:
> >> > >       boolean, char, byte, short, int, float, long, double
> >> > > 4. The output of this utility will be a generated .class file in the
> >> form
> >> > > of FSDataOutputStream.
> >> > > 5. Xbean asm5 library will be used for this.
> >> > > 6. Following methods will be added to the generated class:
> >> > >     a. Getter/Setter methods for given fields.
> >> > >     b. simple toString - Generate string equivalent for all the
> fields
> >> > >     c. hashCode method - calculate the overall hashCode using
> >> individual
> >> > > field hashcodes, similar to how String.hashCode generates hashCode
> of
> >> > > string using chars in it.
> >> > >     d. equals method - Similar to how String.equals method has done
> it
> >> > > using individual char.
> >> > >
> >> > >
> >> > > Questions I have about the functionality:
> >> > > 1. Should the utility also support nested pojo definition via schema
> >> > json?
> >> > >     In such case the field definition can look like following:
> >> > >     { "name":"nestedField", "type":"<fqcn of nested class>",
> >> > > "fields":[....] }
> >> > >     The nested class will be provided
> >> > >
> >> > > 2. Should the utility also support giving out the JarOutputStream
> >> which
> >> > > will have a generated jar?
> >> > >
> >> > > Please let me know your thoughts.
> >> > >
> >> > > Thanks,
> >> > > Chinmay.
> >> > >
> >> >
> >>
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message