apex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chinmay Kolhatkar <chin...@datatorrent.com>
Subject Re: Ability to generate POJO class on the fly
Date Fri, 22 Jan 2016 10:00:04 GMT
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