@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 <[email protected]>
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 <[email protected]>
> 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 <
>> [email protected]>
>> 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 <
>> > [email protected]
>> > > 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.
>> > >
>> >
>>
>
>

Reply via email to